Retainage is the 5–10% of each progress payment that a project owner or GC withholds until the work is substantially complete. For contractors, retainage creates an accounting challenge because QuickBooks Online has no native retainage feature. You've earned the money, but you can't collect it yet — and if you don't track it by project, GC, and expected release date, significant amounts get forgotten. Salisbury Bookkeeping sets up retainage tracking systems in QBO that show exactly how much is held, by whom, and when it's due.

Retainage Accounting for Contractors: How to Track It When QuickBooks Can't

5–10% of every payment is being held. Across all your projects, that's $50K–$300K you've earned but can't touch. Here's how to track every dollar.

What Is Retainage and Why Does It Matter?

Retainage (also called retention) is a percentage of each progress payment — typically 5% to 10% — that the project owner or general contractor holds back until the project reaches substantial completion. It's meant as security to ensure the contractor finishes the work. For subcontractors, retainage is often held by the GC, who is also having retainage held by the owner.

The problem isn't that retainage exists — it's that most contractors don't track it properly. Across 3–5 active projects with different GCs, retainage amounts, and release timelines, it's common for contractors to have $50,000–$300,000 in retainage they're not actively monitoring. Money gets released late, amounts get disputed, and sometimes retainage is simply forgotten.

Why QuickBooks Has No Retainage Feature

QuickBooks Online was built for general business accounting, not construction. It has no native way to split an invoice into "current payment" and "retainage held." Most contractors handle this one of three ways — and two of them are wrong.

Wrong: Ignoring Retainage Until It's Released

Some contractors invoice the full amount and don't record retainage at all. When the retainage check eventually arrives (sometimes months later), it shows up as unexpected income. Meanwhile, your books overstate what you've collected and understate what you're owed.

Wrong: Manual Tracking in Spreadsheets

Spreadsheets work until they don't. With multiple projects and GCs, a spreadsheet quickly becomes stale. Nobody updates it, amounts don't reconcile with QuickBooks, and retainage falls through the cracks.

Right: Retainage Accounts in QuickBooks

The correct approach is to create Retainage Receivable and Retainage Payable accounts in your Chart of Accounts. When you invoice $100,000 with 10% retainage, you record $90,000 as accounts receivable and $10,000 as retainage receivable. When retainage is released, you move it from retainage receivable to regular AR and collect it.

For subs: You also need to track retainage payable — the amounts your GCs are holding. This is money YOU owe your own subs but can't pay until the GC releases your retainage. Tracking both sides prevents cash flow surprises.
★★★★★

"We recovered $34,000 in forgotten retainage in Q1. Now we track every dollar held across all our GCs."

Rachel K.
Electrical Subcontractor

How to Set Up Retainage Tracking in QuickBooks

Step 1: Create Retainage Accounts

In your QBO Chart of Accounts, create two new accounts: Retainage Receivable (Other Current Asset) and Retainage Payable (Other Current Liability). These sit on your balance sheet alongside regular AR and AP.

Step 2: Record Retainage on Every Invoice

When creating a progress invoice, add a line item for the retainage amount as a credit (reducing the invoice total). Simultaneously, create a journal entry debiting Retainage Receivable and crediting Revenue for the retained amount. This keeps your revenue recognition accurate while showing what's held.

Step 3: Track by Project and GC

Tag every retainage entry with the project name and GC/owner. This lets you run a report showing exactly how much retainage is held per project, who's holding it, and the expected release date. Review this report monthly — and follow up on any retainage past its expected release.

Step 4: Release and Collect

When retainage is released, create an invoice for the retainage amount, move it from Retainage Receivable to Accounts Receivable, and collect it like any other invoice. Track days from substantial completion to retainage release — if a GC consistently delays, you have documentation.

Retainage Best Practices for Contractors

Review retainage balances monthly. Run a Retainage Receivable aging report every month. Flag anything past the expected release date and follow up immediately.

Negotiate retainage terms upfront. Some GCs will reduce retainage from 10% to 5% after the project is 50% complete. Others release retainage within 30 days of substantial completion. Get these terms in writing before you start.

Don't forget retainage payable. If you're holding retainage from your subs, make sure you release it when the GC releases yours. Holding sub retainage longer than necessary damages relationships and can create legal problems.

Include retainage in your cash flow forecast. Map expected retainage releases into your 13-week forecast. This turns locked-up cash into predictable future income.

Frequently Asked Questions

Retainage is 5–10% of each progress payment that the owner or GC withholds until the project reaches substantial completion. It serves as security to ensure the contractor finishes the work. For a $500K project with 10% retainage, $50,000 is held back.
No. QuickBooks Online has no native retainage tracking. You need to create separate Retainage Receivable and Retainage Payable accounts in your Chart of Accounts, then manually record retainage on each progress invoice. Salisbury Bookkeeping sets this up as part of our construction QBO configuration.
Create a Retainage Receivable account (Other Current Asset) and Retainage Payable account (Other Current Liability). Record retainage amounts on each invoice with journal entries, tagged by project and GC. Review the retainage aging report monthly.
Typically at substantial completion of the project, which varies by contract. Some contracts release 50% of retainage at 50% completion and the remainder at final completion. Release timelines range from 30 to 90 days after substantial completion. Get terms in writing before starting work.
Contractors in the $500K–$10M range typically have $50,000–$300,000 in retainage held across active projects. Without a tracking system, significant amounts get forgotten or released late. One Salisbury Bookkeeping client recovered $34,000 in forgotten retainage in their first quarter.
Retainage receivable is money YOUR clients or GCs are holding from you. Retainage payable is money YOU are holding from your subcontractors. Both need to be tracked separately on your balance sheet to give an accurate cash flow picture.
Retainage locks up 5–10% of every progress payment for months. Across multiple projects, this can represent $100K+ in earned-but-uncollectable cash. Including expected retainage releases in your 13-week cash flow forecast turns this locked cash into predictable future income.

Salisbury Bookkeeping — Eagle Mountain, Utah · Serving contractors nationwide · Last updated: March 2026

Trusted Integrations & Memberships
QuickBooks Online ProAdvisor Buildertrend Procore Knowify ADP Payroll NAHB Member BBB Accredited

Stop Leaving Retainage on the Table

A 30-minute look at your books will show exactly how much retainage is outstanding — and how to track every dollar.

Or call/text: 385-374-9295

Salisbury Bookkeeping — Eagle Mountain, Utah · Serving contractors nationwide