Bill straight off the estimate

The invoice knows which estimate the job came from and lets you insert its materials, labour, markup, total, material breakdown or payment stages as line items in one click.

What it is

A sidecar panel inside the invoice editor bound to the project's own estimate. It shows the material total, labour total, markup, customer total, a per-component material breakdown (Framing, Sheathing, Trim, Doors & Windows, Trusses, Freight, Foundation…) and the payment schedule. Each is a one-click insert that becomes an editable line item.

Also called: attach estimate to invoice · pull the estimate numbers · invoice from estimate · one-click line items

See it, piece by piece
01

You bill the number on the signed contract, not whatever the estimate says today

When a fully executed contract exists for the job, its total is read out of the document that was actually signed, and that figure is what the invoice bills. The approved estimate snapshot comes next; only a job with neither falls back to live figures. One real case had the estimate link at $37,828.19 while the contract the customer signed read $34,016.87 — the invoice bills $34,016.87.

New Invoice — payment schedule
Estimate (Job #41208)Locked to this projectHide ▴
Generate 4 invoices from payment schedule
One draft per stage, each with its $ amount pre-filled. Edit + send each separately.
Generate 4
Or pull modular pieces into a single invoice manually:
+ Materials $41,850.00+ Labor $27,300.00+ Markup $8,140.00+ Customer Total $88,450.00
Payment Schedule (select stages to invoice)+ Insert 1 Stage
Down30%$26,535.00
Delivery40%$35,380.00
Frame Complete20%$17,690.00
Final10%$8,845.00
The + Customer Total chip — that figure is the one the invoice will carry. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
02

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. Billing the newer number charges for scope nobody agreed to; hiding it means you did the extra work for nothing. Scope creep surfaces at billing time, in dollars, with the remedy named.

03

Bill the trusses this month and the framing next, without opening the estimate

The estimate's own components — framing, sheathing, trim, doors and windows, trusses, freight, foundation — are listed with their subtotals. Tick the ones you are billing and each becomes its own line at the estimate's own figure. Materials, labour, markup and the customer total are single-click inserts too, and every inserted row stays editable.

New Invoice — Line Items
Line Items?+ Add Line
Project Estimate
Materials — Post-Frame Package
40×64×14 shop: posts, trusses, purlins, 29ga steel, trim package.
Quantity
1
ea
Unit
EachHoursqft…
Unit Price
$
41850.00
/ea
Total
$41,850.00
Change Order
CO-3 — Add two 12×12 overhead doors
Openings framed, headers upsized, jambs and track included.
Quantity
2
ea
Unit
EachHoursqft…
Unit Price
$
3240.00
/ea
Total
$6,480.00
Subtotal$48,330.00
Tax (6%)$2,899.80
Total$51,229.80
A Project Estimate row — a component dropped in as a line, still editable. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
04

The invoice is bound to the estimate its job came from, and pointing it elsewhere is on the record

The binding comes from the estimate 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 stores your name and the date against the invoice. An override somebody clicked through once with nothing written down cannot be audited later.

New Invoice — payment schedule
Estimate (Job #41208)Locked to this projectHide ▴
Generate 4 invoices from payment schedule
One draft per stage, each with its $ amount pre-filled. Edit + send each separately.
Generate 4
Or pull modular pieces into a single invoice manually:
+ Materials $41,850.00+ Labor $27,300.00+ Markup $8,140.00+ Customer Total $88,450.00
Payment Schedule (select stages to invoice)+ Insert 1 Stage
Down30%$26,535.00
Delivery40%$35,380.00
Frame Complete20%$17,690.00
Final10%$8,845.00
The Locked to this project badge beside the job number. The real screen, drawn from the product’s own design system. Sample data — no customer information appears here.
05

If it cannot prove which contract belongs to this job, it refuses to guess

The contract lookup is keyed on the bond between the job and its paperwork. When that identifier is missing, the lookup stops and the estimate snapshot stands, rather than widening 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 project's invoice too.

How it works
  1. 1The binding comes from estimate_links.project_id, stamped when Start Project ran — not a guess.
  2. 2Legacy projects fall back through a heuristic chain: contact with a job id, exact customer-name match, last-7-digit phone match, then a fuzzy project-name match against the cached job list.
  3. 3Both estimating engines are supported — a SmartBuild job id, or a Leads 2 Build estimate link keyed by design id.
  4. 4Insert buttons append typed rows; the material breakdown and payment stages are multi-select and reset their checkboxes after inserting so the press visibly registers.
Why we built it

An invoice raised on a project that came out of the platform's own estimating flow opened with no estimate attached and asked the builder to go and find one — on a job that knew exactly which estimate it came from. The link existed; it was being thrown away for precisely those projects. The estimate is now bound at creation and shown as the source rather than offered as a choice, and the material breakdown is read from the job on the server, so the one-click item palette works on a machine that has never opened the estimator instead of quietly inserting zero-dollar lines.

The problem
  • 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.
Sound familiar?
What you get
Bill any component of the estimate without opening the estimate.
Numbers on the invoice are the numbers on the estimate, not a re-typing of them.
What's inside
Bill the number the customer actually signed
When a fully-executed contract exists, its price — parsed from the literal signed document — outranks the live estimate for invoicing.
Warning when the estimate has moved since signing
If the estimate now totals more than the signed contract, the editor shows both figures and the exact difference and tells you to raise a change order.
Never put another customer's number on your invoice
If the invoice cannot prove which contract belongs to this job, it refuses to look one up rather than guessing.
The estimate is locked to the project — changing it is recorded
An invoice uses the estimate its project was created from; pointing it at a different one takes a confirmation, a written reason, and is stamped with who did it.
Bill individual estimate components
Tick the estimate components you want to bill — Framing, Sheathing, Trim, Doors & Windows, Trusses, Freight, Foundation — and insert each as its own line.
Resync the attached estimate
Re-read the estimate's totals and payment schedule after it has been revised, without detaching it.

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 →