Progress Billing: Draws, Change Orders, Retainage in One Invoice

· 4 min read

You are three months into a $180,000 remodel. Framing and rough-in are done, the drywall is up, and it is time to bill again. But your last invoice bounced back from the general contractor because the retainage math did not match their schedule of values, and there is a change order the client approved by text that nobody has priced yet. This is the part of contractor billing that trips people up: getting a draw, a change order, and retainage onto one clear invoice that accounts payable will actually pay.

Here is how those three pieces fit, with a full worked example you can copy line by line.

The three moving parts on a progress bill

A progress draw is a partial invoice for the percentage of the contract you have completed since the last billing. If your contract is $180,000 and you were at 40% complete last month and 65% now, this draw covers that 25% difference: $45,000 of work.

A change order is work outside the original contract. The client added a bathroom exhaust fan run and a rerouted vent, priced at $2,400. That amount does not belong in the base contract percentage. It gets its own line so the original contract value stays clean and auditable.

Retainage is the slice the client holds back on every draw until the job is accepted, usually 5% or 10%. It is not a discount and it is not lost. You bill it, the client withholds it, and you collect the accumulated total at closeout. The trick is showing it as a deduction on the invoice rather than quietly shrinking your line items.

A worked example, line by line

Contract value: $180,000. Retainage: 10%. Previously billed: 40% of contract. This draw: work completed through 65%, plus one approved change order.

DescriptionAmount
Original contract value$180,000.00
Completed to date (65%)$117,000.00
Previously billed (40%)-$72,000.00
Current base draw (this period)$45,000.00
Change order 03: bath fan vent reroute$2,400.00
Subtotal this invoice$47,400.00
Retainage withheld (10%)-$4,740.00
Amount due this draw$42,660.00

Notice the change order is inside the retainage calculation. If the client holds 10% on all work, they hold it on approved extras too, unless your contract says otherwise. Read that clause before you bill. The retainage line is a running total problem: after this draw, the client has held $4,740 on the current amount plus whatever they held on the first draw. Track the accumulated retainage separately so you know exactly what to release at closeout.

For the base draw, always show the three rows that get you there: completed to date, previously billed, and the difference. AP teams reconcile against a schedule of values, and if they cannot see how you arrived at $45,000, they park the invoice. The same logic underpins milestone billing, where each stage is a fixed sum rather than a running percentage.

Fields AP will check before releasing payment

A progress bill is exactly the kind of invoice that gets rejected on a technicality. Before you send it, confirm the PO number is present and matches the contract, the billing entity is the correct legal name, and the change order references a signed authorization. Missing any of these is the quiet reason a draw sits unpaid, which the piece on the missing PO number that kills your invoice covers in detail.

Number your draws so the sequence is obvious: Draw 3 of an estimated 6, or use your standard invoice numbering with a draw suffix. When AP pulls up your account, they should be able to line up every draw against the contract without a phone call. If your GC's accounts payable keeps sending things back, the accounts payable approval checklist shows what they check field by field.

Send it as a link the recipient can work with

The friction on progress bills is rarely the math. It is the back and forth: AP wants the PO added, the project manager wants the change order described differently, someone needs it forwarded to a different email. A static PDF turns each of those into a new attachment and a new version buried in a thread.

With JupiterInvoice you send the draw as a private link. The recipient can add their PO number, set the correct billing entity, and name the AP contact directly, and you get notified of each edit and can revert anything. If they want the change order line reworded or the retainage percentage corrected, they submit a change request and you approve it, which creates a clean V2 rather than a mess of emailed files. Once they approve a version, it locks permanently, so the amount everyone agreed to cannot drift.

Start from the contractor billing template, which is set up for draws, change orders, and a retainage deduction line. If you handle several projects at once, invoicing built for 1099 contractors keeps each draw sequence and its retainage balance straight. When you are ready, create the draw and share the link. Track the accumulated retainage yourself and bill it as a final draw once the job is accepted.

Send an invoice your customer can actually respond to

JupiterInvoice lets recipients add PO numbers, update billing details, request changes, and approve for payment, all from a private link. No account needed on their side.

Create an invoice