top of page
Search

Turn Retainage into Cash Flow

Retainage is the tax you pay for getting paid. That 5 to 10 percent holdback is supposed to keep everyone honest until the punch list is done, but it also starves your cash flow if you do not set it up right. Good news: with the right AR and AP setup, clean AIA billing, tight WIP math, and a forecast that actually includes release dates, you can turn retainage from a choke point into a planned inflow.


Why Retainage Exists


Retainage, also called holdback, is a contract term that withholds a fixed percentage of each progress payment. Most jobs land at 5 to 10 percent. Owners use it to make sure the last 5 yards get run hard: closeout docs delivered, punch list cleared, final inspections complete, lien waivers in. The problem is simple. If you bill 100, you only collect 90 now and wait for the final 10 later. If your labor and subs expect full pay each month, your cash flow gets squeezed. The cure is not begging the GC. The cure is putting retainage exactly where it belongs in your accounting, your billing, and your forecast.


Set Up AR, AP And Retainage


You need two dedicated accounts in your chart so retainage does not hide inside Accounts Receivable and Accounts Payable.


- Retainage receivable: Other current asset. This is what your customers owe you but are allowed to hold back. It is not regular AR because it is not due now.

- Retainage payable: Other current liability. This is what you owe subs and vendors but are allowed to hold back. It is not regular AP because it is not due now.


Here is how the flow works on the customer side. You bill an application for payment for 100, the contract retains 10 percent. You record income for the full earned billing but shift 10 to Retainage Receivable. Your AR shows 90 now. Retainage Receivable shows 10 later. When retainage is released, you move the 10 from Retainage Receivable into AR with a separate retainage release invoice, then collect it.


On the vendor side, when a sub bills you 100 and you hold 10, your job cost or CIP gets the full 100, AP shows 90 due now, and Retainage Payable increases by 10. Later, when you release the holdback, you book a bill against Retainage Payable and pay it.


QuickBooks Online Setup


You can set this up with native accounts and a couple of item codes. No add-ons required.


1) Create accounts  

- Settings, Chart of Accounts, New.  

- Retainage Receivable: Detail type Other current assets.  

- Retainage Payable: Detail type Other current liabilities.


2) Create service items  

- Settings, Products and services, New service.  

- Billing item: points to your income account.  

- Retainage item: name it Retainage Held. Income account should be Retainage Receivable. Check I sell this product.  

- For AP, create a Retainage Withheld expense item that points to Retainage Payable. Check I purchase this product.


3) Invoice your customer with retainage  

- Create invoice for the period. Line 1: Progress Billing, amount equals work completed plus stored materials if billable, linked to income.  

- Line 2: Retainage Held, quantity 1, rate equals negative 10 percent of Line 1, mapped to Retainage Receivable. For example, if Line 1 is 100,000, Line 2 is -10,000.  

- The invoice total is 90,000. QBO posts 100,000 to income, 90,000 to AR, 10,000 to Retainage Receivable.


Pro tip: Save a bundle template that auto calculates the retainage line at a set percentage so your math is consistent every month. If your contract uses different rates for work vs stored materials, split the base billing into two lines and apply separate retainage lines.


4) Receive the progress payment  

- Receive payment for 90,000 against the invoice.


5) Release retainage later  

- When the GC issues the retainage release, create a new invoice with one line: Retainage Release, mapped to Retainage Receivable, for 10,000. That moves the balance from Retainage Receivable into AR.  

- Receive payment when the check arrives.


6) Record vendor retainage on bills  

- Enter bill from the subcontractor. Line 1: Job cost or CIP for the full earned value, for example 100,000.  

- Line 2: Retainage Withheld, negative 10,000, account Retainage Payable. Bill total is 90,000.  

- Pay the bill for 90,000 on normal terms.


7) Release retainage to a sub  

- When their retainage is released, enter a new bill to that vendor with one positive line to Retainage Payable for 10,000. This debits the liability and credits AP. Pay that bill.


This method keeps profit reports clean because revenue and job costs reflect the earned work in the right period while net working capital isolates what is held back.


Xero Setup


Xero works nearly the same, just with different buttons.


1) Create accounts  

- Accounting, Chart of Accounts, Add Account.  

- Retentions Receivable: Current asset.  

- Retentions Payable: Current liability.


2) Create items  

- Business, Products and services, New item.  

- Progress Billing item points to your income.  

- Retention Held item points to Retentions Receivable. Mark I sell this item.  

- Retention Withheld item points to Retentions Payable. Mark I purchase this item.


3) Customer invoice with retainage  

- Create invoice. Line 1: Progress Billing, amount 100,000, account Sales.  

- Line 2: Retention Held, amount -10,000, account Retentions Receivable.  

- Approve. AR shows 90,000. Retentions Receivable shows 10,000.


4) Vendor bill with retainage  

- Enter bill. Line 1: Job cost or CIP 100,000.  

- Line 2: Retention Withheld, -10,000, account Retentions Payable.  

- Approve and pay 90,000.


5) Release retainage  

- Customer: create a new invoice line to Retentions Receivable for the release amount.  

- Vendor: enter a bill coded to Retentions Payable for the release amount, then pay it.


Pro tip: Use Tracking Categories for each project so your WIP, retainage receivable, and retainage payable all roll up per job.


Bill On AIA G702 And G703


Retainage shows up explicitly on AIA billing. The G703 continuation sheet is your schedule of values. The G702 is your summary and math check.


G703, the continuation sheet, lists each cost code or division with its own values. For every line, you show:

- Original scheduled value and approved change orders.  

- Work completed this period and from previous applications.  

- Stored materials on hand this period.  

- Total completed and stored to date.  

- Percent complete and balance to finish.  


This is where accuracy starts. If the schedule of values is sloppy, the rest of the math is a plate of spaghetti. Break the contract into logical chunks that match how you actually build. Keep change orders on separate lines so progress on base work does not muddle the extras.


G702, the application for payment, rolls that detail into a summary:

- Line 1: Original contract sum.  

- Line 2: Net change by change orders.  

- Line 3: Contract sum to date.  

- Line 4: Total completed and stored to date from G703.  

- Line 5: Retainage. Many forms show 5a percent retained on completed work and 5b percent retained on stored materials. If the contract sets different rates for stored materials, use them.  

- Line 6: Total earned less retainage.  

- Line 7: Less previous certificates for payment.  

- Line 8: Current payment due.  

- Line 9: Balance to finish including retainage.


Two practical points:

- Stored materials can be your cash-flow friend. If the contract allows, bill stored materials with proper documentation and warehouse photos, but understand those amounts often get retained as well. Some owners retain the same rate on materials, others retain less, and a few do not retain on stored materials at all. Your G702 Line 5 should reflect the correct split.  

- Retainage percentage can drop at substantial completion. Many contracts reduce from 10 to 5 percent when you hit substantial completion or a milestone. Your G702 should show the changed rate starting that period, and your invoice in QBO or Xero should mirror it.


Link Retainage To WIP


WIP is where we measure what you have earned versus what you have billed. Retainage affects the cash timing but it should not distort the earned revenue. Here is the framework.


- Earned revenue to date equals percent complete times contract price including approved change orders.  

- Billed to date equals the total of your G702 Line 6 plus retainage, which usually equals G703 total completed and stored to date. In other words, billed to date is the gross amount before retainage haircut.  

- Overbilling or underbilling equals billed to date minus earned revenue. If billed is higher than earned, you are overbilled. If billed is lower than earned, you are underbilled.


Retainage does not change earned revenue. It splits your receivable into two buckets: trade AR that should collect now and retainage receivable that waits.


Example:

- Contract price 1,000,000.  

- Costs to date 400,000. Estimated total cost 800,000, so percent complete is 50 percent.  

- Earned revenue is 500,000.  

- G703 shows completed and stored to date of 520,000 because you billed ahead a bit on certain lines.  

- Retainage at 10 percent equals 52,000.  

- G702 Line 6 shows 468,000 earned less retainage. You already collected 300,000 on prior draws. Current payment due is 168,000.  

- For WIP, billed to date is 520,000, not 468,000. Overbilling is 20,000.  

- On your balance sheet: AR trade is current billed net of retainage, say 168,000 this period, and Retainage Receivable sits at 52,000.


When you prepare WIP, do not subtract retainage from billed to date in the over-under calc. Keep retainage receivable separate as an asset and let the WIP schedule explain timing differences between earned, billed, collected, and retained.


Forecast Cash Flow With Holdbacks


Bids do not kill contractors. Cash traps do. A working forecast that treats retainage as a real timeline item fixes that.


Build a simple weekly or monthly projection that includes:

- Progress billings by project with expected approval dates and customer payment days. Use historical average days to collect for each GC or owner.  

- Retainage receipts by project with the expected release date. Tie the date to the contract terms: substantial completion, final completion, or a milestone. If you know the owner always takes 60 days after final, use 60.  

- Vendor payments with normal terms and separate retainage releases by sub with expected release dates.  

- Stored materials inflows and outflows if applicable.  


Example timeline for a 6-month job with 10 percent retainage and 30 day terms:

- Months 1 to 5: Bill 150,000 per month gross, collect 135,000 the next month. Retainage receivable accumulates 15,000 per month.  

- Month 6: Bill 100,000 final gross, collect 90,000 in month 7. Total retainage receivable at substantial completion is 85,000.  

- Month 8 or 9: Retainage released, invoice and collect 85,000.  

- Subcontractor retainage mirrors yours but release dates can differ by trade. Plan each sub’s release separately to avoid surprises.


Build buffers on retainage. If the contract says 30 days after final, forecast 45. If you need that cash earlier to cover payroll, that is not a forecast problem, that is a job financing problem. Solve it with earlier stored materials billing, milestone retainage reductions if you can negotiate them, or a working capital line sized to your retainage stack.


Tactics to accelerate cash without gimmicks:

- Ask for retainage reduction at 50 percent complete. Many owners will drop from 10 to 5 percent at substantial completion if you ask early and meet safety and quality targets. Put the reduction in a change order or formal contract amendment.  

- Front-load reasonable values in divisions that complete earlier. Do not be sneaky, just allocate value to early-critical scopes like mobilization, submittals, and procurement when allowed.  

- Bill stored materials the minute they are on site or secured in an approved warehouse.  

- Submit complete packages. Incomplete lien waivers and missing shipping docs push your retainage release into next month’s committee meeting, which might as well be next season.


Release Subcontractor Retainage


Releasing retainage to subs is not a feel-good handshake. It is a controlled accounting and compliance event.


- Track retainage at the vendor and project level. In QBO and Xero, you can run a report on the Retainage Payable account filtered by vendor and job. Keep a shared list with PMs that shows status by trade, amount, and the checklist to release.  

- Define the release rules in your subcontracts. Match your upstream terms. If the owner releases at substantial completion minus 60 days, your subcontract should not require you to release at substantial completion minus 30.  

- Tie the release to deliverables. Closeout docs complete, warranties received, as-builts submitted, O&M manuals handed off, lien waivers collected.  

- Post the release cleanly. In QBO and Xero, create a bill that debits Retainage Payable for the exact amount released. Do not net it inside a regular progress bill where it gets lost.


If your PM wants to release retainage early to keep a sub loyal, run the math on your forecast first. Early release is a financing decision. If the project can carry it and your upstream owner is reliable, fine. If not, push for partial release against stored materials or a specific milestone, then mirror it to the sub.


Avoiding Common AIA Retainage Mistakes


This is the section that saves you from angry emails.


- Wrong base for retainage. Apply the percentage to completed work and stored materials as specified, not to the whole contract or to just the new work this period. The G702 lets you show retainage split. Use it.  

- Schedule of values that does not match the job. If the PM cannot quickly show what is 85 percent complete on a line, your approver cannot either. Make it easy to approve.  

- Math drift. The G703 total completed and stored to date must tie to G702 Line 4. Retainage must be the correct percent of the right base. Your QBO or Xero invoice must match the G702 Line 8 current payment due. If those numbers do not match exactly, you just volunteered for the slow pile.  

- Retainage left floating in AR. Do not leave retainage buried in Accounts Receivable where your team chases it like a past due. It is not past due. It is a separate asset with separate rules.


Best Practices You Can Implement Today


- Put retainage accounts on your balance sheet and use them. Your future self will thank you.  

- Mirror AIA math on every invoice. The G702 controls the story, your accounting mirrors it.  

- Build a WIP report that shows for each job: earned, billed including retainage, cash collected, AR trade, retainage receivable, over-under, and projected retainage release date.  

- Forecast cash weekly. Rolling 13-week forecast is perfect. Tag retainage as a separate line per job.  

- Ask for retainage reduction early. It costs nothing to ask.  

- Track sub retainage with a checklist and release only with full documentation.


FAQ


How do I set up retainage in QBO so it does not mess up my profit reports?  

Create Retainage Receivable as an other current asset and use a Retainage Held item mapped to it as a negative line on your invoices. Revenue stays at the full earned amount, AR shows the net due now, and Retainage Receivable holds the difference. For vendors, use a negative Retainage Withheld line mapped to Retainage Payable on bills. This keeps job profitability aligned with earned work while pushing holdbacks to the balance sheet.


When and how is retainage released under AIA contracts?  

Most contracts release at substantial completion or final completion, sometimes with a reduction at substantial completion and full release after closeout. The G702 will reflect the changed retainage percentages when they apply. Release requires paperwork: final lien waivers, warranties, O&M manuals, as-builts, punch list completion, and often a certificate of substantial completion. Expect a lag from approval to check. Put that lag in your forecast.


What percentage retainage is standard, and can it change?  

Five to ten percent is common. It can change by contract, by stored materials versus completed work, and at milestones. Ask for a drop from 10 to 5 percent at substantial completion. If the owner trusts your performance and paperwork, many will agree. Make it formal.


Does retainage affect over- and under-billing?  

Retainage affects cash but not earned revenue. When you calculate over-under, compare earned revenue to billed to date including retainage. Keep retainage receivable on the balance sheet so you can see the cash timing separately.


How should stored materials be handled on G702 and G703?  

List stored materials on G703 for the relevant line item with documentation to prove title and location. Retainage may apply at the same rate or a different rate. G702 Line 5 can show separate retainage rates for completed work and stored materials. Your QBO or Xero invoice should mirror the same split so the net due matches Line 8.


What is the cleanest way to pay subcontractor retainage later?  

When you hold retainage, create a liability in Retainage Payable with a negative line on the original bill. When you release, enter a new bill coded to Retainage Payable for the exact release amount. That debits the liability and creates AP you can pay. This keeps the payable separate from progress pay and makes audit trails painless.


Let’s Close The Loop Between Field And Finance


Retainage only creates pain when it lives in three different universes: on the AIA forms for the owner, on your accounting for the controller, and in a spreadsheet in the PM’s inbox. Align all three. Let the G702 and G703 tell the official story of earned work, let QBO or Xero mirror that with clean retainage accounts, let WIP show the gap between earned and billed, then let a 13-week forecast schedule when the held cash finally shows up. Do that, and 5 to 10 percent stops being a chokehold. It becomes a planned inflow you can bank on.


 
 
bottom of page