I'm an electrical contractor, and progress billing used to be the part of a big job I dreaded. On a fixed-price or AIA-style contract you don't send one invoice at the end — you bill a portion every month based on how much of the work you've completed. Simple in theory. In practice it's a schedule of values, a percent-complete for every line, prior amounts to net out, and retainage to hold back — and if any of it is off, your draw gets kicked back and you wait another month to get paid.
Start with the schedule of values
The schedule of values (SOV) is the backbone of a progress-billed job. It breaks the contract into line items — rough-in, gear, devices, trim — each with a dollar value, and the whole thing adds up to the contract amount. Every month you bill against it by setting how complete each line is. The cleanest way to build an SOV is straight off the job's phases and budget, so it ties to how you're actually costing the work instead of being a separate spreadsheet that drifts.
Bill the percentage, net the prior
Each billing period you set percent-complete per line — rough-in went from 40% to 70%, gear landed so it's 100%. The invoice should bill the new work only: this period's completed value minus everything you've already billed.
Bill 70% complete when you already billed 40%, and you're invoicing the 30% you did this month — not the whole 70% again.
Getting that prior-amount math wrong is the classic progress-billing mistake. Bill the full percentage and you've double-billed the customer; forget to carry the prior and you under-bill yourself. It should net automatically from what you've already invoiced, so the only thing you decide is percent-complete.
Retainage: the money you earned but can't touch yet
On most contracts the customer holds back a percentage of each payment — usually 10% — as retainage, released when the job's done and accepted. Two things matter here. First, retainage is money you've earned, sitting in someone else's account, so you need to track it as a receivable, not forget it exists. Second, it's a cash-flow reality: you're financing 10% of the job until closeout, on top of your normal float. More on that cash-flow squeeze here.
Why it should live with your costing
Progress billing and job costing want to be the same system. When your SOV comes from the job's phases, percent-complete drives both your billing and your earned-revenue number, and retainage is tracked as you go, you get a clean line from "how much have we actually done" to "how much can we bill" to "how much is still being held." Run them in separate tools and you spend the last week of every month reconciling two versions of the truth.
The one-minute version
- Build the schedule of values off the job's phases so it ties to your costing.
- Bill new work each period — this period's completed value minus prior billed.
- Track retainage as a receivable; it's money you earned but can't touch yet.
- Keep billing and costing in one system so month-end isn't a reconciliation.