GenerateInvoicesFromPaymentSchedule creates one draft invoice per stage, titled '{Project} — {Stage} ({percent}%)', each with a single line item for that stage's dollar amount, and each stamped with its stage id, label, index and the total stage count so it reads 'Payment 2 of 3'.
Also called: split the job into invoices · draw invoices · make all my progress invoices at once
One press writes the whole billing plan for the job
A four-stage schedule becomes four draft invoices at once, each titled with the project, the stage name and the percentage, each carrying that stage's dollar amount as its only line. Working out 40% of a contract by hand for every draw is where the arithmetic errors got in, and the middle draw is the one that gets forgotten until the job is finished and the leverage is gone. Every bill for the job exists from day one.
It will not re-bill a draw the customer already paid
Before anything is generated, every invoice already on the job is read, and any stage holding a paid or part-paid invoice is left out. If that leaves nothing to generate you are told which stages were skipped, by name, instead of quietly getting a shorter list. Regenerating a schedule mid-job used to offer up draws that had been settled months earlier, with nothing between that and a second invoice except somebody remembering.
Each bill says which draw it is, so none of them look like a surprise
Every generated invoice carries its stage name, its position and the total number of stages, so it reads Payment 2 of 3 rather than arriving as another bill out of nowhere. From inside one draw you move straight to the job's others, each with its own tint. Three draws on one job otherwise look identical on screen, which is how the wrong one gets edited and sent.
The stages come off the estimate the customer approved
The schedule is read from the snapshot frozen when the estimate was approved, so the terms being billed are the terms the customer saw and agreed to. There is no second copy of the payment terms kept somewhere else in the office, and no way to bill 30/60/10 against a customer who signed 40/50/10. Revise the schedule on the estimate and the next generation reads the revision.
They are drafts, so each one is still yours to change
A generated invoice opens in the same editor as one you built by hand: add lines, fold in an approved change order, switch sections on or off, move the due date. The stage line is deliberately plain because the amount is what the customer agreed to and everything around it is yours. Each one goes out when that stage is actually due, not when the schedule was written.
- 1Available as soon as the attached estimate has two or more stages, on a new invoice.
- 2Each generated invoice inherits the tenant's default sections, tax %, terms and payment instructions.
- 3All are created as drafts so each can be edited and sent when its time comes.
- 4Stages already settled are skipped and named back to the user.
Turning an agreed payment schedule into actual invoices meant creating each one by hand and re-deriving the amount, which is where the arithmetic errors got in. The whole set is generated at once, each invoice carrying its stage's amount as a single line — deliberately plain. They arrive as drafts, so a builder can edit, reorder or add sections per stage and send each one when that stage is really due.
- Hand-building each progress invoice and recalculating the amount.
- Draws being forgotten because nothing existed to remind you.
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 →