# Portfolio Review — Q3 2025

<Callout tone="info" title="Portfolio health summary">
9 of 12 projects on track. One critical risk (Apollo migration) and two overdue milestones. Budget burn is within tolerance, but team utilization is at 91% — watch for burnout.
</Callout>

<Columns>
<div>
<Stat label="Active projects" value="12" change="+2 vs Q2" icon="briefcase" />
</div>
<div>
<Stat label="Budget spent" value="68%" change="+5 pts vs plan" tone="warning" icon="chart-line" />
</Stat>
</div>
<div>
<Stat label="Team utilization" value="91%" change="+6 pts vs Q2" tone="warning" icon="users" />
</Stat>
</div>
<div>
<Stat label="Overdue milestones" value="3" change="1 critical" tone="danger" icon="warning-circle" />
</Stat>
</div>
</Columns>

<Card title="Quarter selector">
<Select label="Review quarter" options="Q1 2025 | Q2 2025 | Q3 2025 (current) | Q4 2025 (planned)" name="quarter" value="Q3 2025 (current)" />
<Button variant="secondary" label="Apply" />
</Card>

<Card title="Active projects">
| Project | Owner | Deadline | Health | Budget | Actions |
|---|---|---|---|---|---|
| Apollo Migration | <Avatar name="Sarah Chen" subtitle="Product" /> | Oct 15 | <Badge tone="danger">Critical</Badge> | 78% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Nova Launch | <Avatar name="Marcus Webb" subtitle="Eng" /> | Nov 02 | <Badge tone="success">On track</Badge> | 55% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Data Platform Revamp | <Avatar name="Priya Nair" subtitle="Data" /> | Oct 28 | <Badge tone="warning">At risk</Badge> | 71% spent | <Button variant="secondary" size="small" label="Request people" /> |
| CRM Upgrade | <Avatar name="Tom Okafor" subtitle="Sales" /> | Dec 10 | <Badge tone="success">On track</Badge> | 40% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Mobile App 3.0 | <Avatar name="Lisa Park" subtitle="Mobile" /> | Nov 20 | <Badge tone="success">On track</Badge> | 62% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Security Hardening | <Avatar name="James Reed" subtitle="Infra" /> | Oct 30 | <Badge tone="warning">At risk</Badge> | 83% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Partner Portal | <Avatar name="Ana Silva" subtitle="BizDev" /> | Dec 05 | <Badge tone="success">On track</Badge> | 35% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Billing Revamp | <Avatar name="David Kim" subtitle="Finance" /> | Nov 12 | <Badge tone="success">On track</Badge> | 58% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Search Upgrade | <Avatar name="Elena Rossi" subtitle="Platform" /> | Oct 22 | <Badge tone="warning">At risk</Badge> | 76% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Onboarding Flow | <Avatar name="Michael Tan" subtitle="Growth" /> | Nov 08 | <Badge tone="success">On track</Badge> | 48% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Analytics Dashboard | <Avatar name="Sofia Martin" subtitle="Data" /> | Dec 18 | <Badge tone="success">On track</Badge> | 22% spent | <Button variant="secondary" size="small" label="Request people" /> |
| Legacy Decommission | <Avatar name="Greg Wilson" subtitle="Infra" /> | Oct 25 | <Badge tone="success">On track</Badge> | 66% spent | <Button variant="secondary" size="small" label="Request people" /> |
</Card>

<Columns>
<Card title="Overdue milestones">
| Milestone | Project | Due | Days late |
|---|---|---|---|
| API contract freeze | Apollo Migration | Sep 28 | 6 |
| Load test sign-off | Search Upgrade | Sep 30 | 4 |
| Security audit prep | Security Hardening | Oct 02 | 2 |
</Card>

<Card title="Blocked work items">
| Item | Project | Blocked by | Days blocked |
|---|---|---|---|
| Payment gateway integration | Billing Revamp | Vendor SLA | 5 |
| Data migration script | Data Platform Revamp | Missing credentials | 3 |
| Push notification cert | Mobile App 3.0 | Apple review | 2 |
</Card>
</Columns>

<Card title="Budget spent vs allocation">
<Chart type="bar" title="Budget per project (%)" x="Project" y="Spent %">
| Project | Spent % |
|---|---|
| Apollo Migration | 78 |
| Nova Launch | 55 |
| Data Platform Revamp | 71 |
| CRM Upgrade | 40 |
| Mobile App 3.0 | 62 |
| Security Hardening | 83 |
| Partner Portal | 35 |
| Billing Revamp | 58 |
| Search Upgrade | 76 |
| Onboarding Flow | 48 |
| Analytics Dashboard | 22 |
| Legacy Decommission | 66 |
</Chart>
</Card>

<Card title="Team utilization">
| Team | Utilization | Capacity |
|---|---|---|
| Engineering | 94% | <Progress value="94" max="100" tone="warning" label="94%" /> |
| Product | 88% | <Progress value="88" max="100" tone="info" label="88%" /> |
| Design | 85% | <Progress value="85" max="100" tone="success" label="85%" /> |
| Data | 97% | <Progress value="97" max="100" tone="danger" label="97%" /> |
| QA | 90% | <Progress value="90" max="100" tone="warning" label="90%" /> |
</Card>

<Card title="Risks">
| Severity | Risk | Project | Mitigation |
|---|---|---|---|
| <Badge tone="danger">Critical</Badge> | Vendor API deprecation | Apollo Migration | Contingency plan drafted |
| <Badge tone="danger">Critical</Badge> | Data team overload | Data Platform Revamp | Hiring 2 contractors |
| <Badge tone="warning">High</Badge> | Security audit findings | Security Hardening | Remediation sprint added |
| <Badge tone="warning">High</Badge> | Search latency regression | Search Upgrade | Index tuning in progress |
| <Badge tone="info">Medium</Badge> | Partner onboarding delay | Partner Portal | Parallel workstreams |
| <Badge tone="info">Medium</Badge> | Billing compliance change | Billing Revamp | Legal review scheduled |
</Card>

<Columns>
<Card title="Upcoming deadlines (next 2 weeks)">
| Date | Project | Milestone |
|---|---|---|
| Oct 15 | Apollo Migration | Cutover complete |
| Oct 18 | Search Upgrade | Prod rollout |
| Oct 20 | Nova Launch | Beta sign-off |
| Oct 22 | Legacy Decommission | Shutdown |
| Oct 25 | Security Hardening | Audit ready |
</Card>

<Card title="Delivery pace (last 6 sprints)">
<Chart type="line" x="Sprint" y="Points">
| Sprint | Delivered |
|---|---|
| S1 | 42 |
| S2 | 38 |
| S3 | 51 |
| S4 | 47 |
| S5 | 55 |
| S6 | 60 |
</Chart>
</Card>
</Columns>

<Card title="Actions">
<Columns>
<div>
<Button label="Export review" variant="primary" />
</div>
<div>
<Form name="archive-project">
<Select label="Archive a finished project" placeholder="Select project" options="Legacy Decommission | CRM Upgrade | Partner Portal" name="archive" />
<Button variant="secondary" label="Archive project" />
</Form>
</div>
</Columns>
</Card>

<Card title="Request more people">
<Form name="staffing-request">
<Select label="Project" placeholder="Select project" options="Apollo Migration | Nova Launch | Data Platform Revamp | CRM Upgrade | Mobile App 3.0 | Security Hardening | Partner Portal | Billing Revamp | Search Upgrade | Onboarding Flow | Analytics Dashboard | Legacy Decommission" name="project" required="true" />
<Select label="Role needed" placeholder="Select role" options="Software Engineer | Product Manager | Designer | Data Analyst | QA Engineer | DevOps Engineer" name="role" required="true" />
<Input label="Number of people" type="number" min="1" max="10" placeholder="2" name="count" required="true" />
<TextArea label="Justification" placeholder="Why are more people needed?" name="justification" rows="3" required="true" />
<Button label="Submit request" />
</Form>
</Card>

<Details title="Archived projects" open="false">
| Project | Archived date | Final health |
|---|---|---|
| Website Revamp | Aug 30 | <Badge tone="success">On track</Badge> |
| Payment Migration | Aug 15 | <Badge tone="success">On track</Badge> |
| Email Platform | Jul 28 | <Badge tone="warning">At risk</Badge> |
</Details>

<FollowUps>
- What's the detailed status of Apollo Migration?
- Which projects need staffing support most urgently?
- Show me the budget variance for the top 3 projects.
- What's the plan for the blocked payment gateway work?
</FollowUps>