Three-column header sets the context (estimate ID + Live Review · Interactive Estimate View · Edit/Complete). Line items table has Materials Cost / Labor (Hours) / Rate split. Financial Metrics & Grading Table is anchored bottom-right of the table area. Chat panel below drives live updates back into the estimate above.
| Task/Item | Description | Materials Cost ($) | Labor (Hours) | Rate ($/hr) | Line Total ($) |
|---|---|---|---|---|---|
| ✎Trip Charge | One-time travel + setup | $0.00 | — | — | $75.00 |
| ✎Drywall & Patching | Patch existing wall, sand, prep for paint | $0.00 | 5.0 ↑ | $123.14 | $615.70 |
| ✎Painting | Two coats walls + ceiling, primer included | $0.00 | 8.0 | $123.14 | $985.12 |
| ✎Plumbing — Vanity Swap | Disconnect old, install new vanity + faucet | $0.00 | 4.5 | $123.14 | $554.13 |
| ✎Materials — Drywall | Joint compound, tape, primer (1.8x markup) | $92.00 | — | — | $92.00 |
| ✎Disposal Fee | Haul-away of existing fixtures | $0.00 | — | — | $0.00 |
| ✎Contingency | Reserved for unforeseen conditions | $0.00 | — | — | $0.00 |
| ✎Permits | Local permitting (if required) | $0.00 | — | — | $0.00 |
| ✎Disclaimer Line | Standard estimate disclaimer text | — | — | — | — |
| Gross Margin (%) | Recalculating… |
| Net Profit ($) | $1,840.20 |
| Labor Burden | $890.40 |
| Sales Tax | $140.45 |
| Contingency Fund | $0.00 |
| Overall Grade | Recalculating… |
useQuery subscription. The agent applies refinements via the n8n workflow → Convex update → row pulses yellow + totals/metrics recalculate. No polling.chatId = refine-{sessionId}. AI Agent's response streams back. When the agent emits a finalized JSON block, the green Approve chip activates.