A panel beside the invoice, tied to the job's own estimate. It shows materials, labour and the customer total, a breakdown by component — framing, trusses, roof and wall steel, trim, doors and windows, foundation, freight — and the payment schedule. Every one of them is a one-click insert that lands as an editable row, and every one carries the customer's price, with your markup already built in — so the pieces add up to the total they approved, and no bill ever shows your cost. Trusses, steel, trim: the components are the post-frame package itself.
Also called: attach estimate to invoice · pull the estimate numbers · invoice from estimate · one-click line items
You bill the number on the signed contract, not what the estimate says today
When a fully signed contract exists for the job, its total is read off the document that was actually signed, and that is what the invoice bills. The approved estimate comes next. Only a job with neither falls back to live figures. One real job had the estimate reading $37,828.19 while the contract the customer signed read $34,016.87 — the invoice bills $34,016.87.
The estimate was rebuilt in August to price a second building, and the September draw goes out $3,811 above what the customer signed in May.
A customer billed exactly what he signed has nothing to argue with. The signed document outranks the approved estimate, which outranks live figures — so the number on the invoice is always the most binding one that exists.
Every insert is the customer's price — your markup never shows
Try itMaterials, labour and every component come across at the price the customer was quoted, with your markup built into them — so + Materials and + Labor add up to the Customer Total, to the cent, and there is no markup line for anyone to read your margin from. A separate + Markup insert only appears when the estimate itself printed the markup on its own line. Setting the markup is on markup rules.
The customer adds up the lines on his invoice, finds they come to less than the total, and reads your 30% markup off the gap.
Your margin is your business, and a customer who can see it starts negotiating it. The invoice goes to the customer, so it quotes what the customer was quoted — the same prices on the estimate, the contract and every bill.
If the estimate has moved since signing, you see the gap in dollars
When the current estimate and the signed total differ by a cent or more, an amber banner names both numbers and the difference between them, and says the invoice stays on the signed figure until a change order covers the rest. Bill the newer number and you charge for scope nobody agreed to. Hide it and you did the extra work for nothing. Scope creep surfaces at billing time, in dollars, with the fix named.
Scope crept on the estimate after signing, and either the customer gets billed for work he never agreed to, or you do it for free.
Extra work deserves to be paid — but only after the customer has agreed to it. Naming the gap in dollars, at billing time, with the fix named, turns scope creep into a change order instead of an argument or a write-off.
Bill the trusses this month and the framing next
The estimate's own components — framing, trusses, roof and wall steel, trim, doors and windows, foundation, freight — are listed with their prices. Tick the ones you are billing and each becomes its own Project Estimate line at that price. Materials, labour and the customer total are one-click inserts too, and every row stays editable after it lands.
The supplier wants paying for the trusses this month, and you bill the customer by retyping a figure off a printout.
Billing as the materials arrive keeps cash coming in at the pace you are spending it. The components are already priced on the estimate, so a progress bill is a tick and a click, not a calculator.
The invoice is tied to its job's estimate, and pointing it elsewhere is on the record
The tie comes from the link stamped when the project started, not from a guess — so the editor never opens and asks you to go find the estimate the job already knows about. Changing it takes a confirmation, at least ten characters of explanation, and your name and the date against the invoice. An override somebody clicked through once, with nothing written down, cannot be checked later.
Somebody points an invoice at the wrong estimate in a dropdown, and nobody can say later who changed it or why.
Changing what a bill is based on should be a deliberate act with a name on it. The tie comes from the project link itself, and an override needs a confirmation, ten characters of explanation, and your name and the date.
If it cannot prove which contract belongs to this job, it refuses to guess
The contract lookup is keyed on the tie between the job and its paperwork. When that is missing, the lookup stops and the approved estimate stands — instead of widening out to "the newest signed contract in the business". That exact failure once put one customer's $180,944.01 onto another customer's invoice, and would have put it on every other job's invoice too.
One customer's contract total lands on another customer's invoice because a lookup guessed.
One customer's price on another customer's bill is the kind of mistake people remember. When the tie between job and contract is missing the lookup stops and the approved estimate stands — it never widens out to guess.
- 1Open a new invoice on a job that came off an estimate.
- 2The estimate is already attached — you never go looking for it.
- 3Tick the pieces you are billing and press insert.
- 4Each lands as its own row at the customer's price, still editable.
- 5A separate + Markup insert only appears when the estimate itself printed the markup on its own line.
An invoice raised on a job that came out of our own estimating flow opened with no estimate attached, and asked the builder to go and find one — on a job that knew exactly where it came from. The estimate is attached at creation now and shown as the source rather than offered as a choice, and the component breakdown is read off the job itself, so the one-click list works on a machine that has never opened the estimator. Then a customer added up his quote and read the builder's markup off the gap between the lines and the total — so the lines now carry the customer's prices, markup built in, on the estimate, the contract and every invoice insert.
- Manual transcription of estimate figures onto an invoice.
- The editor asking a builder to find an estimate the project already knows.
- Inserts producing $0 when the estimate cache was cold.
- Invoice lines exposing the builder's cost or markup to the customer.
Warning when the estimate has moved since signing
An amber banner on the estimate panel. It shows only when the signed total and the current estimate differ by a cent or more. It names the signed amount, the current amount and the difference, and says the invoice stays on the signed figure until a change order covers the rest.
Never put another customer's number on your invoice
The contract lookup is keyed on the tie between the job and its paperwork. When that tie is missing, the lookup is abandoned and the approved estimate stands. It never widens out to "the newest contract in the business".
The estimate is locked to the job, and changing it is recorded
A tied estimate wears a Locked to this project badge. Change estimate opens a red confirmation explaining that this is what your customer approved and signed, and wants at least ten characters of explanation before the picker even opens. Your reason, your name and the time are written onto the invoice.
Bill individual estimate components
A tick list of the estimate's material sections with their subtotals, and the same pattern for payment stages. Tick several, press insert, and you get one line per tick — titled with the component and priced at its subtotal.
Resync the attached estimate
One Resync button on the estimate panel. It pulls the current figures — totals, component sections and stages — onto the invoice you have open. The tie to the job is untouched, so this is not an override.

