Five placements, each an extension of a component already mounted in production. Rendered with the app's exact tokens (navy ink, card chrome, type scale).
The strip already renders on every work-order page (WorkOrderProgressCard → shared Stepper). Adding two steps is a pure-derivation change in wo-progress.ts — zero UI code. The date and the dollar amount ride the existing sublabel slot.
Clones the existing "Access & Details" block pattern (same file already has five of these). The sidebar feed picks up "Invoice received" from a one-entry addition to the story derivation — the WorkOrderCheckpoints component doesn't change at all.
"Add one column" — copied from the turnover board's existing charges cell idiom (right-aligned, tabular-nums, faint em-dash when empty). M only because the list's ?view=meta projection and the mobile card renderer move in lockstep.
| Unit | Stage | Work orders | Est. charges (existing) | InvoicedNEW | Days |
|---|---|---|---|---|---|
| 204 | Make-ready | 2/3 | $1,150 | $487.00 | 11 |
| 108 | Ready to lease | 4/4 | $2,300 | $2,145.50 | 19 |
| 312 | Inspection | 0/1 | — | — | 3 |
The page (/maintenance/costs) already shows Total Vendor Spend / Active Vendors / Invoices Captured. One more ClickableStatCard ties spend to work: how much of it is attributed to a work order or turnover. ● figures are the real mined 2026 Camellia numbers.
The metric (mtdVendorSpend) already exists in the catalog — this is a surface registration plus one entry in the widget's stat strip (~6 lines). Inherits the S/M/L grammar, ghost state, and inspector for free.
The per-turnover job roll-up (MakeReadyWorkTracker) carries no money today — the cheapest place turnover-level actual spend can live. A total joins the header counter; each row gets its invoiced amount.
A + B first (the work-order page tells the whole story with one derivation change and one markup block), D1 gives the figure a home on a page literally titled Vendor Costs in ~10 lines, and E is the cheapest turnover attribution. C follows once the invoice field exists on the row. Conversations were surveyed and ruled out — a work-order door-card there was deliberately removed on 2026-07-17.
Data dependency: everything above renders from the invoice → work-order link the detection pipeline creates (PR #4935). Until PO sync is on, attribution rides unit references and vendor identity.