- Retainage is earned revenue held back — commonly 5–10% of each progress payment.
- It flows down: owners hold it from GCs, GCs from subs.
- Negotiate a reduction at 50% complete where the contract allows.
- Track it by job and age since substantial completion — it does not age like a normal invoice.
How retainage works
Each pay application bills the work completed to date. The owner withholds a percentage — the retainage — and pays the rest. The general contractor usually withholds the same or a higher percentage from each subcontractor, so the risk flows down the chain.
payment due = earned less retainage − previous payments
Retainage is earned revenue, not a discount. It sits on the contractor’s balance sheet as retainage receivable, and on the subcontractor side as retainage payable.
A worked example
A $4,000,000 contract at 10% retainage, reducing to 5% at 50% complete. About 60% of the work is subcontracted, and the general contractor holds 10% from its subs throughout. Figures are illustrative.
The two readings of the same reduction clause differ by $100,000 of cash. Agree which one the contract means before the 50% application, not after it. Note too that most of what the owner holds is the subcontractors’ money — which is why releasing retainage to subs only when you are paid yours matters.
For more inputs, a second forecast and a shareable link: the pay application & retainage calculator →
Typical rates and the rules around them
Rates of 5% to 10% are common. Many US states cap retainage — especially on public work — and set deadlines for releasing it after completion, often as part of prompt-payment statutes. Private contracts vary widely. Check your state’s law and the contract itself; the contract governs where the law allows.
A common negotiated term is a reduction: retainage drops (for example from 10% to 5%) once the job reaches 50% complete with satisfactory progress.
Getting retainage released
- Reach substantial completion and get it certified in writing.
- Close the punch list quickly — it is the usual reason release stalls.
- Deliver closeout documents: warranties, O&M manuals, as-builts, final lien waivers.
- Submit a dedicated retainage billing — do not assume it will be paid automatically.
- Track it by job and by age, and chase it like any other receivable.
Tracking it so it is not forgotten
Retainage is easy to lose because it does not age like a normal invoice. Track retainage receivable by job and by age since substantial completion, and retainage payable to each sub, so you release theirs when you are paid yours. The AR view in the demo separates retainage from ordinary receivables.
Retainage on the WIP schedule and in cash forecasts
Retainage is billed revenue, so it counts in billings to date on the WIP schedule — excluding it would make every job look under-billed. It is not cash, though: in a 13-week cash flow forecast each progress receipt is net of retainage, and the retainage itself appears only in the week you realistically expect release.
- AR aging: report retainage separately, aged from substantial completion rather than invoice date, or it will look permanently overdue.
- Subcontractor side: track retainage payable by sub and by job, and tie each release to the owner’s release on that job.
- Closeout: a retainage billing is its own pay application; put the documents it needs on the closeout checklist from day one.

Retainage per job: the rate, completed to date and retainage held, substantial completion and days since, what has been billed for release, what has been paid and the balance still held.
10 columns: 7 you fill in and 3 calculated by formula and filled down 200 rows, so nothing is worked out by hand. In the Excel version, 5 columns reject entries of the wrong type (a date column only takes dates, an amount column only numbers), the header row stays frozen with filters on it, and the workbook opens on an Instructions sheet that lists every column below.
Every column, and how it is captured
| Column | Type | What goes in it |
|---|---|---|
| Job | Text | Job number exactly as in your accounting system (e.g. J-1104), so rows join to job cost. |
| Owner | Text | The person responsible for the row. |
| Retainage % | Percent | Retainage rate held under the contract, 0–100. |
| Completed to date | Amount ($) | Enter the amount in dollars. |
| Retainage held | Calculated | Calculated: [Completed to date] × [Retainage %] ÷ 100 |
| Substantial completion | Date | Enter the date. |
| Days since | Calculated | Calculated — days since substantial completion — the clock most retainage release terms run on (= IF([Substantial completion]=blank, blank, TODAY() − [Substantial completion])) |
| Billed for release | Amount ($) | Enter the amount in dollars. |
| Paid | Amount ($) | Enter the amount in dollars. |
| Balance held | Calculated | Calculated: [Retainage held] − [Paid] |
See it on real-looking numbers
Constructelligence is a construction intelligence platform: it reads your ERP, project and field systems read-only and does this arithmetic every week, for every job. The demo runs it on a sample eight-job portfolio.
Try the demoJoin the private betaFrequently asked questions
What is retainage in construction?
Retainage is a percentage of each progress payment — commonly 5% to 10% — that the owner holds back until the work is complete, as security for finishing the job and correcting defects. General contractors usually hold retainage from their subcontractors too.
Is retainage revenue?
Yes. Retainage is earned revenue that has been billed but not yet paid. It is recorded as retainage receivable, separately from ordinary accounts receivable, until it is released.
When is retainage released?
Usually at or after substantial completion, once the punch list and closeout documents are complete. Many states set deadlines for release on public projects; the contract sets the terms on private work where the law allows.
Can retainage be reduced during a job?
Often, if the contract allows. A common term reduces retainage, for example from 10% to 5%, once the project is 50% complete and progress is satisfactory.
What is retainage payable?
Retainage payable is the retainage a general contractor has withheld from its subcontractors and still owes them. It is a liability, usually released to each subcontractor when the owner releases the matching retainage.
Does retainage count in over- and under-billing?
Yes. Retainage is part of billings to date, so it is included when billings are compared with earned revenue on the WIP schedule. Leaving it out makes jobs look under-billed.
Related guides
More in Billing & cash
- The schedule of values: how to build one, bill against it and avoid front-loading
- Construction invoice template: what to put on it, a filled-in example, and a free download
- Lien waivers in construction: the four types, when to sign each, and how to track them
Free tools for this topic: Over/under billing calculator (WIP) · Pay application and retainage calculator · G703 continuation sheet PDF to Excel
All billing & cash resources →