A checklist beside the journey-stage pill in the Estimates view. Contract Out and Countersign are separate stages because they mean different things and are owned by different parties. Each row carries a description that changes with the underlying state, a completion timestamp, and a View link opening the customer's own surface.
Also called: where is this deal · contract out · countersign due · customer journey stages
- 1Timestamps come from estimate_links and contracts: approved, form completed, customer signed, counter signed.
- 2The Contract Out row's description switches between 'Generated from the customer's details — review and send it for signing', 'Sent to the customer — waiting on their signature', 'Pending — customer hasn't signed yet' and 'Customer has signed'.
- 3The Countersign row reads 'Customer signed — your counter-signature is due' or 'Unlocks once the customer signs'.
- 4contractNeedsSend surfaces the Review & Send CTA only while the contract is still pending.
- 5The final row is gated on Start Project rather than on the signature.
The split is deliberate and documented: the five stages are 'the same five the estimate list colours and filters by (src/lib/estimateStages.ts), so the two never disagree', and the numbering was corrected after a mismatch — 'The Dashboard used to sit below as an unnumbered "Destination" and the counter read X/3 — which is why the pill showed "Stages 1/3" beside a list numbered to 5.'
- Deals stalling invisibly between approval and signature
- Contract-sent and contract-signed conflated into one state
- Stage counters disagreeing between two screens
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 →