Skip to main content

Construction Retainage: How to Book It So Your Cash Flow Stops Lying to You

8 min readMike ThriftMike Thrift
Construction Retainage: How to Book It So Your Cash Flow Stops Lying to You

A general contractor finishes a $400,000 job, sends the final invoice, and waits. And waits. Ninety days pass. Then a hundred and eighty. The client isn't disputing the work — the punch list closed months ago. The money is just sitting in someone else's bank account, and it's not a small amount: $20,000 to $40,000, held back one progress payment at a time since the day the job started.

That's retainage, and for a lot of small contractors and subcontractors, it's the difference between a profitable year and a project that technically made money but never actually paid the bills. If you've ever looked at a job's income statement, seen a healthy margin, and then wondered why your bank balance doesn't reflect it, retainage is very often the answer.

What Retainage Actually Is

Retainage (sometimes called "retention") is the portion of each progress payment — typically 5% to 10% — that a project owner or general contractor withholds from a contractor or subcontractor until the work is substantially or fully complete. The idea, in theory, is reasonable: it gives the paying party leverage to make sure the job gets finished and any defects get fixed before the last dollar changes hands.

In practice, it means every single invoice you send is really only worth 90% to 95% of its face value in cash, right now. The rest is a promise — a promise that's contractually valid but functions, in your day-to-day cash flow, more like an IOU with an uncertain due date.

Here's a simple version of how it shows up on a pay application:

  • You bill $50,000 for work completed this month
  • The contract specifies 10% retainage
  • You receive $45,000 in cash
  • $5,000 sits as retainage, uncollected, until the project (or a milestone) closes out

Do that every month for a year-long project and you can easily have $30,000–$60,000 of your own earned revenue parked on someone else's books, waiting for a release that depends on punch lists, lien waivers, and sometimes just how busy the owner's accounting department is.

Why the Percentage Varies So Much

Retainage isn't set by a single national rule — it's a patchwork of contract terms and state statutes, and it's shifted meaningfully in 2026.

  • The general range is 5–10% of each progress payment, though some contracts step down the rate as the project reaches key milestones (e.g., 10% until 50% completion, then 5% afterward).
  • States increasingly cap it. Roughly half of the states that regulate retainage cap it at 5%, and the rest at 10%, with the clear trend running toward 5% for private work.
  • California's SB 61, effective January 1, 2026, caps retention on most new private construction contracts at 5% of each progress payment and the total contract price. It also puts teeth behind release timing: owners must release retainage to the general contractor within 45 days of completion, and the GC has 10 days after receiving it to pass retained amounts through to subs and suppliers.
  • New York now requires that, for projects with a lender disbursing funds after January 2026, retainage can't exceed 5% regardless of what the original contract says.
  • Public projects often have their own caps that differ from private-contract rules in the same state — Texas, for example, splits the difference by contract size (10% under $5M, 5% over $5M on certain public works).

The takeaway: don't assume the retainage rate on your last job applies to this one, and don't assume your state's rules are the same as a project owner three states away is used to. Check the contract terms and your state's prompt-payment statute every time.

The Cash Flow Problem This Creates

Construction invoices already take a long time to collect — 90 days is common even without retainage in the mix. Add retainage, and the retained portion often doesn't get released for another 30 to 365 days after project completion, depending on the jurisdiction, the contract, and how clean the lien-waiver paperwork is.

For a contractor running several jobs at once, that's not a rounding error. It's real, tied-up working capital — frequently a seven-figure balance across an active project portfolio for a mid-sized contractor. That money isn't available to make payroll, buy materials for the next job, or cover a slow month. And because retainage is contractually earned revenue, it shows up on your income statement as if you already have it, which is exactly how a "profitable" contractor ends up unable to make payroll: the P&L says one thing, the bank account says another.

"Line-item" retainage release is one trend worth knowing about, since it directly addresses this problem. Instead of holding every dollar of retainage until the entire project wraps, some modern contracts and state prompt-payment laws let subcontractors collect their retainage shortly after their specific scope is accepted — you don't have to wait for the slowest trade on the job to finish before you see your money.

How to Book Retainage Correctly

This is the part that trips up a lot of small contractors: retainage is not the same account as your regular accounts receivable or payable, and lumping them together makes your books useless for actually managing cash.

If You're the One Owed Money (Retainage Receivable)

When you bill for work completed, the retained portion is still revenue you've earned under the work-in-progress method — you just haven't collected it yet. Set up a separate asset account called Retainage Receivable, distinct from regular Accounts Receivable.

Example: you bill $100,000 for the month, with 10% retainage.

  • Debit Accounts Receivable: $90,000
  • Debit Retainage Receivable: $10,000
  • Credit Construction Revenue: $100,000

You still recognize the full $100,000 as earned revenue (accrual accounting doesn't care when the cash lands), but only $90,000 is collectible in the short term. Keeping retainage in its own account lets you age it separately — you want to know if $10,000 has been sitting there for 60 days versus 400 days, and that distinction disappears the moment you merge it into general AR.

If You're Withholding From a Subcontractor (Retainage Payable)

Same idea, mirrored. When you receive a sub's invoice and withhold retainage per the contract:

  • Debit Construction Expense: $50,000
  • Credit Accounts Payable: $45,000
  • Credit Retainage Payable: $5,000

Retainage Payable is a liability, kept separate from regular AP so you can track exactly what you owe each sub once their scope closes out — and so you don't accidentally treat it as available cash in the meantime.

On Release

When the retained amount finally gets paid:

  • Debit Retainage Payable (or Credit Retainage Receivable on the other side)
  • Credit/Debit Cash

Common Mistakes That Make This Worse

  1. Assuming the rules are uniform. Retainage caps, step-downs, and release triggers vary by state and by public-vs-private contract. What applied last year, or on last year's job, may not apply now.
  2. Dumping retainage into regular AR/AP. This is the single biggest bookkeeping error in construction accounting. It makes it impossible to tell how much of your "receivables" balance is actually collectible this quarter versus locked up indefinitely.
  3. Tracking it in spreadsheets outside the books. Retainage needs to be tied to specific pay applications and specific projects. A spreadsheet that lives outside your ledger drifts out of sync fast, especially across multiple active jobs.
  4. Missing lien-waiver dependencies. Release is frequently conditioned on delivering an unconditional final lien waiver. If your paperwork isn't clean, the money doesn't move — no matter how done the job is.
  5. Not tracking release timelines against statute. If your state or contract sets a deadline (like California's new 45-day owner release window), you need to know that date and follow up the moment it passes — nobody else is going to chase it for you.

Keep Retained Earnings Visible, Not Buried

Retainage isn't going away, and for most contractors it shouldn't — it's a normal part of how construction financing works. But it only becomes a real problem when your books can't tell you, at a glance, exactly how much money is earned-but-not-yet-collectible, on which project, and since when. That visibility is what turns retainage from a silent cash-flow trap into a manageable, predictable part of the job.

Beancount.io provides plain-text accounting that makes accounts like Retainage Receivable and Retainage Payable first-class citizens in your ledger rather than an afterthought bolted onto a spreadsheet — every dollar is tracked, dated, and auditable in version-controlled text files you fully control. Get started for free and see why contractors and finance-minded operators are switching to plain-text accounting.

Share this article