Project Dashboard
SCR-DASH-01 · Project Dashboard & Health
Scopedno Figma mapping
Layout
Single screen combining the four Must-priority dashboard stories that together answer "am I on track": health status (DOV-069), estimated profit (DOV-070), budget vs. actuals (DOV-071), and attention cards / next best action (DOV-072). They're documented together because they render as one continuous, scrollable dashboard for a single project — not separate destinations — matching PRD §7.7's framing of the dashboard as a single interpreted view, not a set of standalone reports.
States
- **Default**: all four sections populated with live data.
- **Incomplete setup**: each section renders its own partial "needs setup" state independently (e.g., profit shows "add exit assumptions" while budget and attention cards render normally) — the dashboard as a whole is never blocked by one incomplete section.
- **Loading**: skeleton/loading state on first open.
- **Error**: retry affordance if dashboard data fails to load.
- **All caught up**: attention cards section shows a positive "nothing needs attention" state instead of an empty gap.
Acceptance criteria
- A health status badge — "On track", "Needs review", or "At risk" — renders at the top of the screen before any other detail.
- Health status reflects live budget, timeline, missing-data, and insight-severity signals, matching the same status shown for this project on Portfolio Home (FEAT-02 DOV-062).
- With incomplete project setup, the screen still renders with a "Needs review" status and an explanation of what's missing, never an error or blank screen.
- While dashboard data is loading, a loading state is shown rather than a blank screen.
- If dashboard data fails to load, an error with a retry action is shown.
- Expanding the health status shows a plain-English reason for the current status.
- A single current estimated profit figure is shown for the project.
- Estimated profit is calculated from the full acquisition + renovation + holding cost basis plus exit assumptions, never from renovation spend alone.
- Inputs feeding the estimate are labelled as actual (confirmed) versus estimated/projected.
- With no exit assumptions set, an explicit "add exit assumptions to estimate profit" state is shown instead of a misleading $0 or blank figure.
- With no financing/funding costs set up, the estimate explicitly flags that gap rather than silently omitting funding costs.
- Estimated profit recalculates automatically when budget, actuals, or exit assumptions change.
- Overall expected (budget) spend vs. actual spend to date is shown.
- Expected vs. actual spend is broken down by category/scope.
- Categories running over budget are visually distinguished from categories on or under budget.
- Budgeted, actual, and projected-to-complete figures are always visually distinct, never merged into one ambiguous number.
- With no budget set, this section shows a "no budget set" state with a link into budget setup, rather than $0 actual with no context.
- Tapping a category opens that category's underlying transactions or budget detail.
- Attention cards surface missing reviews, uncategorised transactions, overspend, missing documents, and overdue actions, whichever apply.
- Attention cards are ordered so the single next best action appears first.
- Tapping a card navigates directly to the exact underlying transaction, document, or budget category screen.
- With nothing needing attention, a clear "all caught up" state is shown instead of an empty gap.
- Resolving the underlying issue removes or updates the corresponding card without a manual dashboard refresh.
Powered by — endpoints · the Backend agent owns these
GET /projects/{project_id}/pnl