Builder dashboard

The landing screen: pipeline value, projects, stage completion, tasks due and delays across the top, then a rearrangeable grid of charts covering sales, schedule, revenue and crews.

What it is

A greeting by time of day, five KPI cards, and ten sections the owner can drag into their own order — upcoming tasks, active projects, pipeline by stage, stage status, planned vs actual duration, revenue by building type, top delay reasons, crew comparison and their own milestone ladders. Everything is derived from live pipeline, stage and task data.

Also called: home screen · my dashboard · overview screen · business at a glance

See it
Builder dashboard
Apr
May
Jun
Jul
Gideon Alt — Riding Arena
Framing
Marlin Hoover — Equipment Storage
Concrete
Sutter Kline — Riding Arena
Trim
Gideon Alt — 40×64 Shop
Framing
Gideon Alt — Equipment Storage
Concrete
Framing crewConcrete crewTrim crew
The dashboard from the top: 'Good morning, Chris.' then five KPI cards, then the two-up chart grid with drag handles. DashboardView.tsx. Sample data — no customer information appears here.
How it works
  1. 1Contacts, stages and tasks come from app state; stage logs and delay reasons are fetched on mount.
  2. 2Section order is persisted per browser and validated on load, falling back to the default order if it does not match the known set.
  3. 3Charts use themed tokens so they render correctly in light and dark.
  4. 4Every widget is crew-scoped: a user without permission to view all crews only sees their own crew's projects.
  5. 5Demo leads seeded for a training tour are excluded from money KPIs and deal counts.
Why we built it

Several fixes are recorded in the file. The KPI variance line used to read 'NaNd behind avg' because the denominator was the count of completed stages rather than the count that actually carried a variance — 'it's possible to have completed stages where none carry a variance_days value… → 0/0 = NaN'. The greeting reads from the real identity first because the legacy cache fell back to the role string, 'which then surfaces as "Good afternoon, worker." on a fresh sign-in'. And the data load stopped swallowing errors: the old silent catch meant 'the dashboard would render its empty states ("No active delays", "All on track") with no indication that the load actually failed.'

The problem
  • Owners had to visit five screens to get a sense of the week.
  • A failed data load looked identical to having no data.
  • Dashboard widgets leaked other crews' work to crew-scoped users.
Sound familiar?
What you get
One screen answers sales, schedule, money and crew questions.
Each person arranges it in the order they actually read it.
Role scoping applies to summary widgets, not just detail screens.
What's inside
Dashboard KPI cards
Five cards: pipeline value with active deal count, projects with active stages, stages complete with average schedule variance, tasks due with overdue count, and delays logged.
Rearrangeable dashboard
Drag any dashboard section by its handle to put it where you want, and the order sticks for next time.
Pipeline by stage (dashboard)
A bar per sales stage with the count and value sitting in it, built from the same stage catalogue the board renders.
Planned vs actual duration
Average planned days beside average actual days for every stage type that has completed work, including custom stages.
Stage status overview
A pie of every tracked stage by status — planned, in progress, completed, delayed.
Revenue by building type
Pipeline value grouped by building type, top six, so you can see which product actually carries the business.
Top delay reasons (dashboard)
A ranked breakdown of recorded delay causes, with the 'ahead of schedule' code excluded so a good outcome is never counted as a delay.
Crew comparison (dashboard)
Stages completed, projects touched and average variance per crew, with retired crews kept out of the default view.
Crew-scoped dashboard
A user who cannot view all crews sees only their own crew's projects in every dashboard widget.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →