Construction Resource

Retainage, and Where It Should Sit in Your Books.

Retainage is money you have earned and cannot collect yet. Recorded as an ordinary receivable it distorts your aging, hides a real cash position, and quietly ages into something nobody chases.

  • QuickBooks ProAdvisor Gold
  • 10+ Years Finance Systems Experience
  • Secure Cloud Bookkeeping
  • Serving Clients Nationwide

Almost every contractor has a retainage story, and it is usually the same story: a job finished eighteen months ago, five percent still outstanding, and nobody noticed because the balance was sitting in a receivables aging that everyone had stopped reading.

Retainage is not complicated to account for. It is just different enough from an ordinary receivable that treating it the same way causes predictable problems.

What retainage is, in accounting terms

Retainage, also called retention, is a portion of each progress payment that the owner or general contractor withholds until the work is complete and accepted. Five and ten percent are the common rates.

From an accounting standpoint the key fact is that retainage is revenue you have earned and billed, with the collection deferred by contract until a future event. That makes it a receivable, but a receivable with two properties that ordinary receivables do not share.

  • It is not overdue. A retainage balance from a job that finished last quarter is not a collection problem. It is a contractual timing arrangement working exactly as written.
  • Its due date is an event, not a date. It becomes collectible on substantial completion, final acceptance, lien release, or whatever the contract specifies, and that event may be months away with no invoice date attached to it.

Mix those balances into ordinary accounts receivable and two things break at once. Your aging report shows large balances at 90 and 120 days that look like collection failures and are not, which trains you to stop trusting the aging. And the genuinely overdue invoices hide among them.

The specific terms, the release conditions, and the state law that governs them vary by contract and by jurisdiction. This article covers the bookkeeping treatment. Meridian Ledger Group LLC does not provide legal advice, and questions about enforceability, lien rights, or prompt payment statutes belong with your attorney.

Retainage receivable: what you are owed

The cleanest treatment is a separate asset account. Create Retainage Receivable as an other current asset, or as a separate accounts receivable account, and keep it out of the account your ordinary aging runs on.

When you issue a progress billing with retainage withheld, the invoice records the full earned amount as revenue, with the retained portion posted to Retainage Receivable and the currently payable portion to accounts receivable. When retainage is later released and billed, the balance moves from Retainage Receivable to accounts receivable, and then to cash on payment.

A fictional illustration, with invented figures:

Fictional demonstration

  • Progress billing of $80,000 earned, with 10 percent retainage withheld.
  • Revenue recorded: $80,000.
  • Accounts receivable: $72,000, subject to normal payment terms.
  • Retainage receivable: $8,000, collectible on the contract release condition.

The reason this matters practically: your accounts receivable aging now shows $72,000 that genuinely should be paid within terms, and your retainage balance sits in its own account where it can be reviewed against contracts rather than against dates. Two different questions, two different reports.

Keep the detail by job and by customer. A single lump retainage balance with no breakdown is only marginally better than no separation at all, because you still cannot tell which job or which release condition each portion belongs to.

Retainage payable: what you are withholding

If you are a general contractor, you are usually on both sides. You withhold retainage from your subcontractors on the same principle.

This gets recorded as a liability, Retainage Payable, and it is the mirror image. When a subcontractor invoice arrives, the full amount is recorded as job cost, with the retained portion posted to Retainage Payable and the rest to accounts payable.

The cost hits the job immediately, which is correct: the work was performed and the cost was incurred, regardless of when you pay it. Recording only the payable portion as cost understates job cost and overstates margin, on every job, by the retainage percentage of subcontract value. On a subcontract-heavy job that error is material.

The liability side is also where a specific cash trap lives. Retainage payable is money you are holding that is not yours to spend. A cash balance that looks comfortable while carrying a large retainage payable position is less comfortable than it appears, because a run of job closeouts will release those balances at roughly the same time.

What retainage does to your cash position

Retainage receivable is the single most commonly overlooked item in a contractor cash view, and its structure is unhelpful. It accumulates steadily during a job and releases in a lump at the end, well after the costs of that job were paid.

Put plainly: you fund the retainage. You paid the labor, the materials, and the subcontractors on a schedule, and a slice of the revenue that covers them arrives months later. On a growing contractor, retainage receivable grows continuously, which means a permanently increasing amount of working capital is tied up in money you have already earned.

This is one of the main reasons a profitable contractor can run short of cash. Profit and cash diverge, and retainage is a large part of the gap.

Two things make it manageable in reporting terms. Keep retainage visible as its own line in whatever cash view you use, rather than buried in receivables. And keep a schedule of expected release timing by job, so a closeout that will release a meaningful balance appears in your near-term cash picture rather than as a surprise.

Recording it in QuickBooks Online

The mechanics are ordinary once the accounts exist. There is more than one workable method; what follows is the one that keeps the reporting simplest.

  1. Create the accounts. Retainage Receivable as an other current asset, Retainage Payable as an other current liability. Name them plainly so nobody guesses.
  2. Add a retainage line to your invoice template. A negative line item coded to Retainage Receivable, so the invoice shows full earned value, the retained deduction, and the net currently due. The customer sees exactly what was withheld.
  3. Do the mirror on subcontractor bills. A negative line coded to Retainage Payable, so full job cost is recorded and only the net is payable now.
  4. Keep both balances detailed by job. Use the job or project field on every retainage line, so the balance can be broken out per job at any time.
  5. Bill the release explicitly. When retainage becomes collectible, raise an invoice that moves the balance out of Retainage Receivable into ordinary accounts receivable. Do not simply apply a payment against the asset account, because then the release never appears in your aging and never gets chased if it is late.
  6. Reconcile both accounts monthly. Balances tied to a schedule of open jobs and their contract terms.

The one method to avoid is recording only the net billed amount as revenue and picking up the retainage as revenue on release. That understates revenue and overstates margin during the job, then produces a phantom high-margin month at closeout. Revenue recognition for construction contracts also has specific accounting and tax dimensions, and your CPA may have requirements here, which is a good reason to agree the treatment with them once rather than change it later.

The monthly checks

Retainage goes wrong through neglect rather than error. Five checks, none of which take long.

  1. Retainage receivable ties to a job schedule. Every balance traceable to a job, a contract percentage, and a release condition.
  2. No retainage sits on a job closed more than the contract allows. This is the check that catches the eighteen-month-old balance. Anything past its release condition goes on a chase list.
  3. Retainage payable ties to subcontract schedules. Balances match what you actually agreed to withhold, and released amounts have been paid.
  4. Job cost includes the full subcontract value. Not just the paid portion. Test it against one subcontract and you will know immediately whether the method is being followed.
  5. Expected releases appear in the near-term cash view. With realistic timing rather than contractual best case.

If your books currently have retainage mixed into ordinary receivables, separating it retrospectively is usually a contained piece of work: identify the balances, reclassify them to the new accounts, and rebuild the job level detail from the contracts. It is often done as part of cleanup and catch-up, and the visible improvement in the receivables aging is immediate.

The short version

Keep retainage in its own asset and liability accounts, detailed by job, so your receivables aging shows real collection problems and your retainage shows contractual timing. Record full subcontract value as job cost even when you withhold a portion, bill retainage releases explicitly rather than applying payments to the asset account, and review any balance sitting past its release condition every month.

Next Step

Find Out What Is Sitting in Your Receivables

Thirty minutes, by video, at no cost. Bring a recent receivables aging and Meridian will tell you how much of it is retainage, how much is genuinely overdue, and what the difference is doing to your cash view.

  • 30 minutes
  • Complimentary
  • By video
  • No obligation

Mon to Fri, 9:00 AM to 5:00 PM Pacific Lake Stevens, WA. Working virtually nationwide.

Book a Review Book Now