An append-only version spine any module can write to, plus one shared 'See Versions' modal opened from the Estimates tab and from a pipeline opportunity card. Each version carries its number, date and time, author, quoted price and its full snapshot. Versions are never edited after they're written, because a historical reference has to be truthful.
Also called: see versions · revision history · what was in the last quote · previous version of the estimate
Every revision is kept, numbered, dated and attributed
Reps make three to eight revisions on an average estimate, and before this the prior state was gone the moment anything changed. Each version carries its number, its date and time, who built it, the price quoted and its full line breakdown — and is never edited afterwards, because a record that can be rewritten isn't one.
Put two versions side by side and see what moved
Pick any two and the section subtotals line up column by column with the difference between them, each number colour-tied to its own version. “Why is this one $4,422 more than the last?” becomes a list of the lines that changed, rather than two totals and a guess.
Every send captures the exact document the customer received
A send version stores the customer's marked-up snapshot and the grand total quoted — not your internal pre-markup figures, which are structurally barred from ever appearing on their page. When a customer quotes a price you don't recognise, you open the version they were sent.
Put the customer back on an earlier version without destroying the new one
Pin any sent version and their portal shows that one, deliberately, until you change your mind. Each sent version also has a show-or-hide switch, so a superseded quote can be taken out of the buyer's view instead of sitting there being compared against.
Answer “what's the price without the concrete” without touching the quote
Labour, porch, each service line, markup and change orders can be ticked in and out of a version's total, and the preview recomputes on your screen only. Nothing saves, so a negotiation on the phone doesn't leave you with an edited estimate you have to put back.
- 1A version row is one immutable snapshot of a component at a point in time, numbered sequentially per estimate, which gives 'v3 of 5' semantics for free.
- 2A cheap change-detect signature means a new version is only cut when the content actually changed — reps sync and re-open constantly and the history must not fill with noise.
- 3The list shows every version newest-first with the selected one badged.
- 4Expanding a version shows its stored line breakdown so a rep can answer 'what was in the last one?' mid-call.
- 5The same modal is reachable from the estimate and from the opportunity card, taking the linked job id as its key.
A rep makes three to eight revisions on an average estimate and spends the whole sales conversation referring back to earlier ones — what was the price on the last one, put back the version with the bigger porch. There was no history, so once an estimate changed its prior state was gone and the answer came from memory or a forwarded email. Every meaningful change is now captured as an immutable, numbered version you can open, compare and pin, from the same place everywhere. It was built as general versioning rather than an estimates-only feature so other documents can carry their own independent history.
- Prior estimate states disappearing the moment anything changed
- Rebuilding an old quote from memory during a live call
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 →