What retainage is, how the withholding math works on a pay application, when and how you get it back, and how to track retainage receivable and payable so the money you have already earned does not quietly go missing.
Retainage (also called retention) is a percentage of each progress payment — most commonly 5% to 10% — that the owner withholds from the contractor until the work is complete. If you bill $100,000 on a pay application with 10% retainage, you are paid $90,000 now; the remaining $10,000 accumulates in a held balance you collect at the end of the job. Contractors withhold retainage from their subcontractors the same way, usually at the same rate they are subject to themselves.
The point is leverage. Retainage gives the owner assurance that the contractor will finish punch-list work, correct defects, and close out the project, because a meaningful slice of the contract value is still on the table. For the contractor, it is a real cost: on a $2,000,000 contract at 10%, you can be floating $200,000 of work you have already performed — often for months past substantial completion — which is why retainage terms deserve as much negotiation attention as the contract price.
Retainage lives on the face of the G702-style pay application. Follow one month through the numbers.
Say you hold a $500,000 contract with 10% retainage. Through this month you have completed $200,000 of work, and you billed $120,000 on earlier applications (of which $12,000 was withheld). This month's application:
Notice that retainage is always computed on the cumulative earned amount, not invoice by invoice — each application recomputes total retainage held, and the current payment falls out of the subtraction. Many contracts apply a different (often lower or zero) retainage rate to materials presently stored, which is why the G702 splits the retainage line into work completed and stored materials. If you want to sanity-check your own numbers, our free retainage calculator runs this exact math.
Retainage terms are contract terms, and they vary more than most people expect:
Release typically comes in two stages. At substantial completion, the owner certifies the work is usable for its intended purpose and releases most or all of the held balance, often keeping an amount equal to 150–200% of the remaining punch-list value. At final completion — punch list done, closeout documents delivered, lien waivers signed, consent of surety obtained — the remainder is released with final payment. Billing for release is usually just a pay application with a negative retainage adjustment: the held balance moves into current payment due.
Everything above runs downhill. A general contractor withholding 10% from you is almost certainly withholding 10% from their subs; if you are a specialty contractor holding subcontracts of your own, you are on both sides at once — retainage receivable from the owner or GC, and retainage payable to your subs.
The two must be managed together. If you release sub retainage the moment a sub finishes but wait months for your own release, you are financing the gap. Most subcontracts mirror the prime contract terms so the timing lines up, and a well-run closeout releases sub retainage as your own retainage comes in, with the same conditions flowing down: punch complete, warranties delivered, lien waivers in hand.
Retainage goes missing when it is booked as ordinary receivables. The discipline, step by step.
The withheld slice of each pay application is earned revenue you cannot collect yet. Carry it in its own account (retainage receivable), not in trade AR — otherwise your AR aging shows money as collectible that contractually is not, and your borrowing base may be overstated.
Retainage you withhold from subcontractor progress bills is a liability with its own account (retainage payable), separate from trade AP. It is not due yet, and mixing it into AP distorts both your payables aging and your cash forecast.
Every pay application should update a running retainage-held figure per project — what has been withheld, what has been released, what remains. If you cannot produce that number on demand, you will not notice when a release is due.
Retainage does not come back on its own. At substantial completion, submit the application that draws the held balance down. A surprising amount of retainage is simply never billed, especially on jobs that wind down quietly.
Owners release against punch completion, closeout documents, lien waivers, and (on bonded work) consent of surety. Track those conditions per project so the release application goes out the day they are met, not a quarter later.
The same handful of errors cost contractors real money, year after year.
The held balance sits on the books after the job ends and nobody submits the final application. On a $2M job at 10%, that is $200,000 waiting on paperwork.
Booking withheld amounts as ordinary receivables overstates collectible cash, distorts your aging, and can inflate a borrowing base your bank will later re-examine.
Releasing subcontractor retainage early while your own is still held finances the whole job’s tail out of your working capital.
Retainage caps, escrow requirements, and release deadlines are state-specific, and public work follows different statutes than private. Read the statute for the project’s state.
Many contracts retain at a different rate on stored materials than on completed work. Applying one blended rate misstates the application — usually in the owner’s favor.
A job can be profitable on paper and cash-negative in fact because 10% of every dollar is held. Cash-flow projections that skip retainage timing overstate near-term cash.
Retainage fails quietly when it lives in a side spreadsheet: the held balance drifts from the pay applications, the release never gets billed, and sub retainage is released on trust rather than conditions.
SitewideOps carries retainage through the whole chain. Pay applications compute the withholding on G702/G703-style billing automatically — including a separate rate for stored materials — and the project tracks retainage held and released as first-class numbers. On the payable side, subcontract progress bills withhold retainage into its own liability account, and closing a subcontract automatically drafts the release bill, so sub retainage cannot be forgotten in either direction. The WIP schedule and job-cost ledger read the same numbers, which is what keeps billed, earned, and held from disagreeing at month end.
See how SitewideOps computes retainage on every pay application, tracks held and released balances per project, and auto-drafts the subcontract release bill.
Anyone interested gets a free 21-day demo account: the full product, every feature, no credit card.