How to Record Retainage in QuickBooks (Receivable and Payable)
Convert a PDF bank statement to a QuickBooks file
Drop in a PDF statement and get a QBO (Web Connect) or IIF file you can import into QuickBooks Online or Desktop.
Retainage (also called retention) is the 5 to 10 percent of each progress billing that a customer holds back until the job is complete and accepted. It is revenue you have earned and invoiced but cannot collect yet, so it belongs in its own Retainage Receivable asset account instead of sitting in regular accounts receivable aging past due for months. QuickBooks has no dedicated retainage feature, so you build it with one balance sheet account plus one item that goes on the progress invoice as a negative line. When you hold retainage back from your own subcontractors, the mirror applies: a Retainage Payable liability that stays on your books until you release it.
Retainage is the most misrecorded number on a contractor's books, and the two common mistakes are opposite. Some contractors invoice only the net, which understates revenue and gives away money they are owed. Others invoice the full amount and leave the holdback in AR, where it sits at 120 days past due and makes the aging useless for collections. Separating retainage into its own account fixes both.
What is retainage in construction?
Retainage is a portion of each progress payment, commonly 5 to 10 percent, that the paying party withholds until the project reaches substantial or final completion. It gives the owner or general contractor leverage: the money is your incentive to finish punch list work, hand over closeout documents, and correct defects. It is not a dispute and not a discount.
The percentage and the release trigger come from the contract, not from custom, so read the retainage clause before the first billing goes out. Some contracts drop the holdback percentage once the job passes a completion milestone. Others release it in stages by scope. Many states cap how much can be withheld, particularly on public work, and some require the funds to be held in escrow or to accrue interest, but the rules vary widely by state and project type, so confirm what applies to your job.
Is retainage an asset or a liability?
It depends on which direction the money flows. Retainage your customer holds back from you is an asset, because you earned it and have a contractual right to collect. Retainage you hold from a subcontractor is a liability, because you owe it once they satisfy their obligations. On a job where you are the general contractor, both exist at once.
Under GAAP, retainage receivable is a receivable. Most contractors classify it as an other current asset if the job closes within a year and as non-current if closeout runs longer. Keeping it out of the standard AR account is the important part, because retainage is not delinquent and should not look like a collection problem on your aging.
How do I set up a retainage account in QuickBooks Online?
Create one balance sheet account and one item, and you have everything QuickBooks needs. Go to the chart of accounts, select New, choose Other Current Assets as the account type with a detail type of Retainage or Other Current Assets, and name it Retainage Receivable. That account will hold the running total of everything customers are withholding from you.
Next, in Products and Services, create a service item called Retainage and point its income account at the Retainage Receivable account you just made. QuickBooks will warn you that you are mapping an item to a balance sheet account. That is intentional and it is what makes this work. Leave the rate blank and uncheck the taxable box. QuickBooks Desktop Contractor edition and Enterprise work the same way: an other current asset account plus an item pointed at it.
How do I record retainage in QuickBooks?
Bill the full value of work completed, then add the Retainage item on a second line as a negative amount. The invoice total drops to the net currently collectible, revenue is recognized in full, and the withheld portion lands in Retainage Receivable instead of accounts receivable.
Here is how a $50,000 progress billing with 10 percent retainage posts:
| Invoice line | Amount | Where it posts |
|---|---|---|
| Work completed this period (contract revenue) | $50,000 | Credit Construction Income $50,000 |
| Retainage withheld at 10% | ($5,000) | Debit Retainage Receivable $5,000 |
| Net due on this invoice | $45,000 | Debit Accounts Receivable $45,000 |
| Cumulative retainage after three identical billings | $15,000 | Retainage Receivable balance |
Read that as one entry: $50,000 of income, $45,000 of collectible receivable, $5,000 parked as an asset you will bill later. The profit and loss shows the full $50,000 because you did $50,000 of work, while the AR aging shows $45,000, which is the number collections calls should be based on. If the customer pays $40,000 of that, handle the shortfall like any partial payment applied to an invoice and leave the retainage line alone.
How do I bill for retainage at the end of a job?
When the job is accepted and the contract's release conditions are met, create a final invoice with a single positive line using the same Retainage item for the full accumulated balance. That entry credits Retainage Receivable, clearing the asset, and debits accounts receivable, making the money collectible and visible to whoever chases payment.
Do not add a second revenue line on the release invoice. Revenue was already recognized on each progress billing, and repeating it double counts income for the job. The release invoice moves an existing asset into AR, nothing more. Send it with the closeout package the contract requires (lien waivers, warranties, as-builts, O and M manuals), since a missing document is the most common reason a release invoice sits unpaid.
Before sending it, run a transaction report on Retainage Receivable filtered by customer and confirm the total matches the retainage column on your billing log. Differences usually trace to a progress billing where someone forgot the negative line or used the wrong percentage.
How do I record retainage held from a subcontractor?
Set up an Other Current Liability account called Retainage Payable, create a Retainage item mapped to it, and enter the sub's bill for the full value of their work with the holdback as a negative line. The bill total becomes the net you pay now, job cost hits in full, and the withheld amount sits as a liability until you release it.
It is the receivable pattern in reverse. A sub bills you $20,000 with 10 percent retainage: $20,000 to job costs, $2,000 credited to Retainage Payable, $18,000 in accounts payable on your normal terms. When the sub finishes and delivers their lien waiver, enter a bill for $2,000 using the Retainage item as a positive line, clearing the liability and creating the payable. Contractors carrying many subs often automate the payables side so subcontractor bills go out on schedule, which keeps net payments and retainage releases from being handled inconsistently.
Two practical notes. Match the percentage you hold from subs to the percentage being held from you where the subcontract allows it, or you finance the holdback out of your own cash. And do not release a sub's retainage before you collect the matching retainage from the owner unless the contract obligates you to.
Does retainage count as income before it is paid?
On the accrual basis, yes. Revenue is recognized when the work is performed, not when the cash arrives, so retainage is income in the period you earned it even though it may be six months from being collectible. That is exactly why it goes to a receivable account instead of being left off the invoice entirely.
This matters most for percentage-of-completion reporting. Your WIP schedule derives earned revenue from costs incurred against total estimated costs, then compares that to amounts billed to produce over and under billings. If retainage was never invoiced, billed-to-date is understated and every job looks underbilled by the holdback. Sureties and bank underwriters read that schedule closely, and a WIP that does not tie to the balance sheet raises questions about the whole file.
Cash basis filers recognize retainage when it is received, but the same account structure still tells you how much cash is sitting out on open and completed jobs. Retainage is why a profitable contractor can be short on cash: on a $2 million year at 10 percent, roughly $200,000 of margin is tied up in holdbacks while the payroll and material costs behind it were paid months ago.
What happens if retainage is never released?
If a customer refuses to release retainage and you exhaust your collection options, write the balance off as bad debt so the asset stops overstating what you own. Create a credit memo using the Retainage item and apply it against the open release invoice, following the same process you would use to write off an uncollectible invoice in QuickBooks.
Do this deliberately, not passively. Before writing anything off, check whether your lien or bond claim rights are still open, since construction claim deadlines are short and retainage disputes have their own timing rules in many states. Confirm the holdback is genuinely uncollectible rather than blocked by a closeout document you can still produce. A stale Retainage Receivable balance with no matching open job means something was billed, forgotten, and never chased, so review that account quarterly against your job list.
Getting progress payments and retainage releases into QuickBooks
Retainage accounting stays clean only if every payment that touches it is in the books on the right date. Progress payments arrive as ACH deposits and checks, the final release often lands months later as one large deposit, and sub payments go out on a different rhythm. If those live only on PDF statements, none of it reaches QuickBooks by itself. Converting each statement into a QBO file gets every progress payment and retainage release into the banking feed with its actual date, so you can apply it to the right invoice and watch the Retainage Receivable balance clear as the job closes.
Start with the PDF bank statement to QuickBooks converter, or the converter set up for contractors if you are reconciling job accounts, sub payments, and material vendors together. Once the transactions land, categorize them to the right accounts and apply the release deposit to the retainage invoice rather than to income. Retainage that is billed, tracked separately, and cleared on receipt keeps your WIP accurate and shows exactly how much margin is still being held.