S16 · Approved

S16 Approved Mockups

Locked designs from the Time & Billing + Estimates sprint · nothing wired, nothing pushed
Design sprint · building more until Seth's QuickBooks notes land

The locked S16 designs, in one place

Each card below is a design MJ has signed off on. They are frozen here so ongoing mockup work cannot disturb them, and so the whole set can be shared or wired in as a batch. QuickBooks-write pieces stay greyed until Seth's architecture review comes back.

Mockup 1 · Approved Aug 22

Estimate builder

The QuickBooks-style project estimate: hidden cost + markup drive the customer rate, an inline Live snapshot guards the 30% margin floor, sections with subtotals, unit of measure, and a client/job header. Locked format: D (compact power grid) with the internal cost/markup columns shaded and hidden from the client.

PM · EstimatesFormat Dbackend proven
Open approved design →
Mockup 2 · Approved Aug 23

Estimate approval & send

The estimate's lifecycle after the builder: mark ready → internal approvesend to the client (they accept online, price only) → it converts to a project. Live activity trail, and a Check pricing vs history pop-out (greyed, coming soon) at the approval gate. QuickBooks sync stays greyed until Seth.

PM · Estimatesclient accepts onlinepricing pop-out
Open approved flow →
Mockup 3 · Approved Aug 23

Job cost vs estimate

The payoff: a plain verdict on whether you're holding the margin you quoted, an inline snapshot, and a drillable per-phase matrix - est cost, labor (time clock), a shaded From QuickBooks column (bills + POs), projected, variance and margin. Click any phase to see the entries behind it, badged by source.

PM · Financialsdrill to entriesQB provenance shaded
Open approved dashboard →
Mockup 4 · Approved Aug 23

Smart approvals + 2-stage close

Luis's field-ops flow: the crew's week lands with the entries needing a look flagged and surfaced at the top (overtime, off-site, over-budget, edited), the clean ones pre-selected to approve in one pass, and a two-stage close (crew submits → Luis approves → office posts to payroll + job cost). Approved time feeds the labor column of Job Cost.

Time & Billingsmart flagsbulk approve2-stage close
Open approved console →
Mockup 5 · Approved Aug 23

Crew mobile capture

The field side - what the crew carries. Geofenced clock in / out (off-site prompts a reason and flags it), breaks, switch job mid-shift, edit your time (a submitted day re-flags for review), a lead can clock in the whole crew, daily log + photos, materials & receipts (receipts become QuickBooks bills), tasks, and offline hold + sync. Produces the time, geofence and materials the desktop mockups consume.

Mobile · Fieldgeofenced timeoffline-readycrew clock-in
Open approved app →
Mockup 6 · Approved Aug 24

Time & Billing settings

The tenant-config surface behind the whole sprint: margin floor, labor markup, who approves and who closes the week, the smart-flag thresholds, pay cadence, internal buckets, cost codes, per-person rates and point-in-time geo - seeded with S16's answers but editable, so it scales past S16. A category workspace with a live What this affects rail. QuickBooks account mapping and the full rate card stay greyed until Seth.

Time & Billingtenant defaultsthe calls Seth punted
Open approved settings →
Mockup 7 · Approved Aug 24

Desktop time clock

The office/desk capture surface - the desk counterpart to Crew Mobile. A live clock plus the weekly crew timesheet (per-day hours, totals, submit status), and expand a name to edit their hours as a job/phase by day matrix - the QuickBooks weekly-timesheet shape, days lined up across. Flagged cells show amber; Submit week hands the sheets to Smart Approvals (M4).

Time & Billingweekly timesheetfeeds Approvals
Open approved timesheet →
Mockup 8 · Approved Aug 24

Time & Billing reports

The finance/ops command center for the week, in the full console shell: a plain "start here" that names the one thing to chase, a semantic stat bar, needs-attention cards, a labor vs estimate by phase chart (the overrun that drives the margin gap), and the tables as depth. Every number drills, with a subordinated SOC 2 approval-evidence trail. On-brand red / orange / blue.

Time & Billingcommand centerSOC 2 evidence
Open approved report →
Mockup 9 · Approved Aug 25

Estimates list & pipeline

The cross-project home the estimate builder (M1) and approval (M2) open from: every estimate across jobs as a filterable list or a stage board (draft → ready → approved → sent → accepted → project), an inline snapshot, and the 30% margin floor flagged on the ones that miss it. Click any row for a full-screen preview - the same estimate grid as the builder, dark section rows footing to a customer total - then jump into the builder or the approval flow.

PM · Estimateslist + boardbuilder-grid preview
Open approved list →
Mockup 10 · Approved Aug 25

Rates - people & crews

The rate card behind the labor math, from the Taylor 6th billing-rates model: every rate holder carries bare cost → burdened cost → bill rate, and the gap is labor profit per hour. Grouped by Design (1099), field crews (blended) and field (per person); each row expands to its burden breakdown (taxes / insurance / benefits) with overtime and rate history, and edits are effective-dated. Flags any rate below the 30% margin floor. Feeds the estimate labor lines (M1) + the job-cost labor column (M3).

Time & Billingcost → bill differentialeffective-dated
Open approved rates →
Next · Gated on Seth

QuickBooks sync & projections

The remaining slices depend on the RippleCore / QuickBooks boundary - waiting on Seth's architecture notes before we mock the estimate + TimeActivity sync and the QBO projections.

QB-gated
How this grows: as each design is approved it gets frozen here as the next numbered card. When Seth's notes on the QuickBooks handoff come back, the sync-and-projection pieces get unblocked and join the sprint. Nothing here is wired or pushed - these are the agreed looks, ready to wire when their slice is up.
Local run: node _serve.mjs 4322 · then open http://localhost:4322/