Your invoice
Built from the estimate you saved — same lines, same total, to the cent.
Why does it have to match the estimate exactly?
Because a total that moves between the estimate and the invoice is the most common way a job turns into an argument, and the customer is always the one who spots it. The invoice is the same sheet re-headed: it does not re-price anything, it does not re-apply a regional multiplier, it does not round a second time. It reads the saved estimate and reproduces it. The reconciliation is shown on the document in an expandable trace rather than asserted, so if you ever do need to defend the number you can open the arithmetic in front of the customer.
How is money already taken handled?
A deposit is entered as a figure and subtracted from the total, and the balance due is what the invoice leads with. The deposit can never exceed the job total — enter a larger one and it is clamped — so an invoice cannot be produced showing a negative balance. Both figures stay on the document, because a customer who paid a deposit needs to see it credited, not merely see a smaller number than they were quoted.
Why overhead and profit arrive as one line
The line items on an invoice are the takeoff’s line items, and they sum to the takeoff’s subtotal. Everything above that — your overhead percentage and your profit percentage — is carried as a single “Overhead & profit” row, and that row is computed as the difference between the estimate total and the line subtotal rather than by re-running the percentages. It is a subtraction, not a second calculation, which is what makes the equality structural: there is no arrangement of rounding that lets the invoice total drift from the estimate total, because the margin line absorbs whatever the difference is. The trade is visibility: your margin arrives as one figure on the customer’s copy instead of being spread thinly across the line items, which is the honest way round and occasionally an uncomfortable one.
When is it due?
You set the issue date and the number of days, and the due date is computed from them rather than typed — a due date that contradicts the terms printed beside it is worth nothing in a dispute. The default is net 14. Nothing here calculates interest, a late fee or a lien deadline: those are set by your state and your contract, and this tool will not guess at them.
What is missing from this invoice on purpose
There is no sales-tax line, no retainage line and no late-fee line, and none of them is an oversight. The invoice engine has no tax field at all: what is taxable, at what rate, and whether labor is treated differently from materials is not something this tool knows about your job, and a tax line that is wrong is worse than no tax line, because it looks authoritative. The same goes for retainage held back against completion, and for anything you charge on a balance that goes past due. Add them where your accounting already handles them.
The invoice number is yours to keep track of
It is a free-text field that starts at INV-001 and is never checked against anything. Nothing is stored on a server, so the tool has no way of knowing what you numbered the last one — it cannot warn you about a duplicate and will not auto-increment behind your back. If you invoice from a book or a ledger, carry your own sequence across; if two customers ever hold the same number, the argument that follows is about which one you meant.
Does it print?
Yes — the page is designed for it. Everything that is screen furniture is dropped from the printed sheet, so what comes out is the document and nothing else, from a browser print dialogue and with no export step. Print to PDF and it is a PDF.
Where is the invoice stored?
Nowhere but your own browser. There is no account, no upload and no server-side copy — the estimate the invoice is built from lives in your browser’s local storage, and clearing your site data deletes it. That also means an invoice does not follow you to a different device or a different browser, which is the trade for not asking you to hand over a customer’s job details.
What this invoice is not
It is not a binding quote, not a lien notice and not a tax document. Prices in the takeoff sheet are reference data on a dated basis, not a live market feed — see the pricing methodology for what they rest on and how stale they are allowed to get. The paperwork that carries legal weight is the contract, and its clause language is still awaiting attorney review.
This is an independent estimating and paperwork tool. It is not a quote, not a contract until you and your customer sign one, and not legal advice — a state’s required clauses change, and a contract that matters is worth an hour of a construction attorney’s time. Nothing you enter leaves your browser.
Pre-launch build, and the prices are the part to be careful with. Every unit cost, labour hour, labour rate, waste factor, access multiplier and regional multiplier in all 3 rulesets is placeholder reference data, modelled rather than licensed, and none has been sanity-checked by a working contractor. Each file also sets its own staleness window of 120 days from , which has already elapsed. Use the structure — the takeoff, the assemblies, the ranges, the clause list — and put your own numbers over the top. The state contract requirements are a different matter: those are cited to statute, and where a statutory notice has not been transcribed word for word the generator refuses to produce the document rather than paraphrase it. What is settled and what is not is on sources and pricing methodology.