On a lot of commercial jobs, and on some larger residential ones, the owner or general contractor holds back part of every payment until the work is finished. That held-back money is called retainage (or retention). It's money you've earned, but you won't see it for months.
Retainage is normal. The problem is what it does to your books when nobody tracks it on purpose. It slips into the wrong account, gets mixed in with regular receivables, or simply gets forgotten when the job closes out. This guide covers what retainage is, how to record it, and the habits that make sure you actually collect it.
What retainage is
Say you have a $200,000 contract with a 5% retainage clause. When you bill $40,000 for work completed this month, the customer pays $38,000 and holds back $2,000. Over the life of the job, that adds up to $10,000 sitting with the customer until substantial completion, final inspection, or whatever release point the contract names.
It works the other way too. If you're the general contractor, you probably hold retainage from your subcontractors. That's money you owe them later, and it belongs on your books as a liability.
So most contractors deal with two kinds:
- Retainage receivable: money customers are holding back from you.
- Retainage payable: money you're holding back from your subs.
The amounts, release terms and any legal limits depend on your contract and on state and project rules, so read your contract closely and check with your attorney or CPA on what applies to you.
Why retainage causes bookkeeping headaches
It hides inside accounts receivable. If the full $40,000 invoice goes into regular AR and only $38,000 gets paid, the leftover $2,000 sits there looking like a late payment. Your AR aging gets noisy, and real collection problems get harder to see.
It gets written off by accident. Months later, somebody cleaning up AR sees an old $2,000 balance and assumes it's uncollectible. Now you've written off money the customer still owes you.
It distorts cash flow. Your profit and loss statement can show a healthy job while your bank account tells a different story. If 5 to 10 percent of every progress payment is held back, that's a lot of working capital tied up across several jobs.
It's easy to forget at closeout. Retainage usually isn't released automatically. You often have to request it, sometimes with lien waivers, closeout documents or a final pay application. If no one has a list of what's outstanding, the request doesn't get sent.
How to record retainage the right way
You don't need fancy software to do this well. You need separate accounts and a consistent process.
1. Set up dedicated accounts
Create a Retainage Receivable account (a current asset, separate from regular AR) and a Retainage Payable account (a current liability, separate from regular AP). Some contractors split them further by job, but at minimum keep retainage out of the regular buckets.
2. Split the invoice when you bill
When you send a progress bill, record the full amount earned, then move the held-back portion to Retainage Receivable. Using the example above, $38,000 goes to regular AR (what you expect to be paid now) and $2,000 goes to Retainage Receivable. Your revenue for the period is still $40,000.
If you use AIA-style pay applications, the G702 and G703 forms already show retainage held to date. Your books should match those numbers every month.
3. Do the same on the subcontractor side
When a sub bills you $15,000 and you hold 5%, record the full cost against the job, pay $14,250 through regular AP, and put $750 in Retainage Payable. Your job cost stays accurate, and you have a clear record of what you owe each sub when the job closes.
4. Bill the release as its own invoice
When retainage is due, send a separate retainage release invoice. That moves the balance from Retainage Receivable back into regular AR so it can be collected and tracked like any other invoice. Paying out sub retainage works the same way in reverse.
5. Reconcile retainage every month
Once a month, run a retainage report by job and compare it to your pay applications and contracts. For each job you should know how much has been held so far, how much has been released, what's still outstanding, and what the release conditions are.
Habits that help you actually collect it
- Keep a closeout checklist for every job. Include the retainage request, lien waivers, warranty documents and anything else the contract requires before release.
- Put release dates on the calendar. If retainage releases 30 days after substantial completion, set a reminder for that date.
- Watch the total across all jobs. A single summary number for all retainage receivable tells you how much cash is tied up and helps you plan.
- Factor retainage into bids and cash planning. If a large job will hold back a meaningful amount for a year, plan for that before you sign, not after.
- Don't let anyone write off old balances without checking. Make it a rule that any old AR item gets checked against the retainage report first.
QuickBooks or Odoo?
Both can handle retainage well when they're set up with intention.
In QuickBooks, contractors typically use separate retainage accounts and items on invoices and bills, along with progress invoicing. It works, but it depends on everyone entering it the same way each time.
In Odoo, you can tie retainage to projects and analytic accounts so it lines up with your job costing, and reports can show retainage by job next to costs and billing. As a specialist Odoo Partner, Brapps can also build custom fields, reports or workflows when a contractor needs something beyond the standard setup.
Either way, the system matters less than the process. Separate accounts, split invoices, monthly reconciliation and a closeout checklist will get you most of the way there.
The bottom line
Retainage is money you've earned. Treat it that way in your books: keep it in its own accounts, match it to your pay applications, reconcile it monthly and request it on time. Do that and it stops disappearing, your AR stays clean, and you know how much cash is waiting for you across every job.
Brapps does hands-on bookkeeping for construction and renovation companies, including progress billing, AIA pay apps, retainage tracking and job costing, in QuickBooks or Odoo. We keep your books tax-ready and work alongside your CPA. If retainage has gotten messy on your books, reach out for a free bookkeeping review.