Progress billing for contractors: get paid as the work gets done
There's a particular kind of broke that only contractors know: the job is going great, the client is happy, and your bank account is empty because every dollar you've spent on materials and labour is sitting in a job you won't invoice for another six weeks. The work is profitable. The cash flow is a disaster. Those are not the same thing, and the gap between them is where good contractors get into trouble.
Progress billing is the fix, and it's not complicated: instead of one big invoice at the end, you bill the job in stages as the work gets done, so money comes in roughly as money goes out. Here's how it actually works — the ways to trigger a payment, what retainage and lien waivers are protecting, and how to run it without turning billing into a second full-time job.
Why one invoice at the end is a cash-flow trap
Bill once, at completion, and you're financing the entire job out of your own pocket until the day you hand over the keys. On a small job that's an annoyance. On a kitchen that runs ten weeks, it means fronting materials, paying your crew every Friday, and covering the subs — all before a single dollar comes back. Run two or three of those at once and you can be busy, profitable on paper, and unable to make payroll in the same week.
Progress billing breaks the job into pieces and bills each piece as it's finished, so the client funds the work alongside you instead of at the very end. You keep cash flowing to pay your people and suppliers on time, and the client gets to pay against visible progress rather than writing one alarming cheque. Almost every contract over a few weeks should be billed this way — the only question is what triggers each payment.
Three ways to trigger a draw
A progress payment — often called a draw — gets triggered one of three ways, and most jobs use a blend. Pick the one that's easiest for the client to verify, because a payment the client can see is a payment that doesn't get argued about.
- Milestone-based — bill when a defined stage is done: demo complete, framing up, rough-ins passed, finishes set. The cleanest trigger for renovation and new build, because each milestone is a moment the client can physically see.
- Percentage-complete — bill an agreed share of the contract value as the job advances (say 30% / 60% / 90%). Common on longer jobs where work is continuous and there aren't obvious stage breaks.
- Time-based — bill on a set schedule, usually monthly, against the work and materials delivered in that period. Used on long-running jobs where a calendar is simpler than chasing milestones.
Your estimate is the schedule of values
Progress billing is far easier when the way you quoted the job is the way you bill it. If you priced in phase buckets — demo, framing, electrical, finish — then each draw is just "this bucket is done, here's that line." That list of work items and their values is what the trade calls a schedule of values, and you already built it the moment you wrote a real estimate instead of a round number.
Build the estimate from actual quantities, not a guess — measure the space once in the Takeoff Builder and the dimensions drive the line items — and the same breakdown that won you the job becomes the spine of every invoice on it. When the client can match each draw back to a line they already approved, billing stops being a negotiation and starts being arithmetic. (New to pricing the work itself? Start with markup vs margin and how to write a detailed quote.)
Retainage and lien waivers: the two things that protect the deal
Two pieces of progress billing exist purely to keep everyone honest, and skipping them is how contractors get burned. The first is retainage (or holdback): the contract may let the client withhold a percentage — often around 10% — from each draw, released at substantial completion. Bill the full amount you earned and show the withheld percentage as its own line, so the client sees exactly what's being held and when it comes back. It's not money lost — it's money parked until the punch list is closed.
The second is lien waivers. When you're paying subs out of your draws, collect a signed waiver from each one for the amounts already paid before you release their next payment. That keeps work you've already paid for from coming back as a lien against your client's property — which protects your client, your reputation, and your final cheque. Note that Stairkey is the workspace where these invoices and the job records live; it doesn't generate AIA payment-application forms or calculate retainage for you, so where a contract specifies a formal draw package, you'll still assemble the schedule-of-values backup and waivers yourself.
Running it without a billing department
The reason contractors avoid progress billing isn't that they don't get it — it's that doing it by hand means rebuilding the same job's numbers in a spreadsheet over and over, then reconciling what got paid against what's still open across a stack of invoices. That's the part that doesn't happen after a twelve-hour day.
It gets manageable when each draw is just another invoice on the same job. In Stairkey you can invoice a job in stages — name the milestone on each one — and every invoice stays on the job record with draft, sent, and paid status and outstanding totals right beside the work it belongs to. Crews capturing time and receipts from the contractor portal means the costs behind each draw land on the right job as they happen, so you're billing against what really got spent. Turn on the optional accounting add-on and those invoices post straight into double-entry books — no separate ledger to keep in sync.
Want the rest of the get-paid system around it? The get paid without chasing guide covers the follow-up side, and the free general-contractor invoice template shows how to lay out a draw the client can actually read. Progress billing is one piece of running the money side on one record — see job costing for contractors for the profit side of the same coin.