What is retainage?
Retainage (also called retention) is a percentage of each progress payment that the owner or general contractor holds back until the job is complete and accepted. In US construction it is most commonly 5% or 10% of the contract value, released after substantial completion, punch list sign-off, or final lien waivers.
Retainage protects the paying party. It does not change the fact that the work has been performed and the cost has already been incurred by the contractor. That gap is why retainage is one of the most common causes of a profitable contractor running short on cash.
What is retainage in accounting?
Retainage you are owed is an asset. Retainage you are holding from a subcontractor is a liability. Both should sit in their own general ledger accounts rather than being buried inside ordinary accounts receivable and accounts payable.
- Retainage receivable — an asset, usually presented separately from trade A/R because collection is contingent on completion
- Retainage payable — a liability for amounts withheld from subcontractors
- Both are recognized as the work is billed, not when the retainage is finally released
- Under long-term contract accounting, retainage is disclosed separately from the contract asset or contract liability
Should retainage be an accounts receivable account?
It is a receivable, but it should not be mixed into the trade A/R aging. Retainage has a different collection trigger and a different aging profile. If it sits inside normal A/R, the aging report shows balances that look 120+ days overdue when they are simply not due yet, and the real collection problems get lost in the noise.
Separating retainage keeps the A/R aging usable as a weekly collections tool and lets you report retainage by job and by expected release date.
Retainage and cash basis accounting
On a pure cash basis, retainage is recorded only when it is received, which means the balance sheet shows nothing about the money outstanding. For contractors of any real size, this is the wrong lens: retainage is often the difference between the year's reported profit and the year's actual bank balance.
Most contractors report on an accrual or percentage-of-completion basis for lenders, bonding, and CPA purposes, then use a separate cash forecast for operations. Retainage needs to appear in both.
How to set up retainage in QuickBooks
The practical setup is the same in QuickBooks Online, QuickBooks Desktop, and Xero:
- Create a 'Retainage Receivable' other current asset account
- Create a 'Retainage Payable' other current liability account
- Add a retainage item mapped to those accounts so it can be applied as a negative line on progress invoices
- Bill 100% of the earned amount, then reduce the invoice by the retainage line so revenue is fully recognized
- Track the retainage balance by job so release can be requested on the right date
- When the retainage is released, invoice against the retainage account rather than creating new revenue
Zeroing out retainage accounts
Retainage accounts drift out of balance when release invoices are booked to revenue instead of to the retainage asset, when jobs close without the final release being requested, or when subcontractor retainage is paid without clearing the liability.
A quarterly retainage reconciliation — schedule by job, tied back to the general ledger balance — usually recovers real money for contractors who have not run one.
Collecting retainage on time
Retainage that nobody chases becomes retainage that nobody collects. A workable process:
- Maintain a retainage schedule by job with contract value, percent held, and expected release date
- Trigger the release request at substantial completion, not at final invoice
- Track punch list and closeout documents as collection blockers, because that is what they usually are
- Include expected retainage releases as their own line in the 13-week cash forecast
- Review the schedule monthly with the same discipline as A/R aging
Retainage Tracking Checklist
A two-page working checklist covering chart of accounts setup, billing, job-level tracking, collection triggers and month-end close for retainage. Print it or run it with your controller.
- Chart of accounts and retainage item setup
- Progress billing and subcontractor withholding checks
- Job-level retainage tracking and WIP tie-out
- Collection triggers so releases are never forgotten
- Month-end reconciliation and cash forecast steps
Want this reviewed against your actual numbers?
