DDovel Team
Figma Dovel iQ v0.3 MVP (Active) · 2026-10-10
Product / Portfolio / Portfolio Home

Portfolio Home

SCR-PORTFOLIO-01 · Portfolio

Scopedno Figma mapping

Layout

Single screen combining all five Portfolio stories: the roll-up summary (DOV-061), health-flagged project cards (DOV-062), the risk-based default ordering of those cards (DOV-063), filter/sort controls over the same list (DOV-064), and the tap-through into a project's dashboard (DOV-065). They're documented together because there is exactly one navigable portfolio screen in this product — DOV-062/DOV-063 describe the same card list from two angles (what a card shows vs. how the list is ordered), DOV-064 is a control on that list rather than a separate destination, and DOV-065 is the list's tap behavior, not a screen of its own.

States

- **Default**: summary panel and risk-ranked card list both populated. - **Zero projects**: summary panel and card list are replaced by an empty state directing the user to create their first project (FEAT-03). - **Filtered — no matches**: card list shows a "no matching projects" empty state distinct from the zero-projects state; summary panel still reflects the unfiltered portfolio totals. - **Loading**: skeleton/loading state for summary panel and card list on first open. - **Error**: retry affordance if portfolio data fails to load. - **All healthy**: cards render in default order with no risk callouts when nothing is flagged — this is a valid, non-error state.

Acceptance criteria

  • The summary panel shows active project count, completed project count, total budget, total actual spend, estimated profit, and capital committed, aggregated across all projects.
  • The summary panel shows the total number of open alerts/attention items across the portfolio.
  • Summary figures reflect live project, payment, document, and insight data — never a stale or manually-refreshed snapshot.
  • With zero projects, the screen shows an empty state with a clear path to create the first project, not zeros with no explanation.
  • While portfolio data is loading, a loading state is shown rather than a blank screen.
  • If portfolio data fails to load, an error message with a retry action is shown.
  • Each project renders as a card with its name and a health status badge of "On track", "Needs review", or "At risk".
  • Each card shows the project's budget position at a glance.
  • Each card shows the project's most recent or most severe flagged risk, if one exists.
  • Each card shows a recommended next action when one exists.
  • Health status reflects spend, timeline, missing data, and insight severity together, not a single input.
  • A project with incomplete setup data shows "Needs review", never a default "On track" it hasn't earned.
  • The card list is ordered by urgency by default, most urgent project first.
  • Ranking factors in overspend, delayed timeline, missing documents, unreconciled payments, and profit erosion.
  • "At risk" projects rank above "Needs review", which rank above "On track".
  • The top-ranked flagged project's card shows a plain-English reason for the flag (e.g., "Renovation spend 14% above baseline, $6,200 awaiting review") without requiring the project to be opened.
  • When no project is flagged, the list renders in default order with no fabricated urgency indicator.
  • The list can be filtered by status (active, completed, at risk).
  • The list can be filtered by exit strategy, location, project type, and budget size/stage.
  • The list can be sorted by budget size, risk level, or status, in addition to the default risk-ranked order.
  • Applied filters are visibly indicated and can be cleared individually or all at once.
  • A filter/sort combination with no matches shows a distinct "no matching projects" empty state, not a blank list.
  • Tapping a project card navigates to that project's dashboard.
  • If the tapped project has a flagged risk or top-priority issue, its dashboard opens with that issue highlighted.
  • If the tapped project has no outstanding issues, its dashboard opens at its normal default view.
  • Returning from the project dashboard restores this screen's scroll position, filter, and sort state.
  • If the destination dashboard fails to load, an error with retry is shown there — the user is not silently returned to this screen.

Powered by — endpoints · the Backend agent owns these

GET /projects
P
Product agent
supports Design & PM
×