Article
Reading time :
8 min

Retainage tracking without spreadsheets: a control guide

Published on :

Retainage
Retainage tracking without spreadsheets: a control guide

For finance teams at contractors of 50 to 500 people who withhold retainage from subcontractors, are owed it by owners, and still track both in a spreadsheet. Homeowners and students: the next paragraph is enough.

Retainage is the portion of each progress payment, usually 5% to 10% in US contracts and capped by statute in many states, that an owner or general contractor withholds until the work is complete and accepted. Tracking it without spreadsheets means recording every holdback as an event tied to its invoice, its release condition and its legal deadline, not as one running balance. A spreadsheet keeps the balance but loses the conditions, which is where retainage goes missing, gets released too early or gets paid twice.

Key takeaways

  • Retainage is a set of conditional amounts: each holdback carries its own release trigger, such as substantial completion, final acceptance or a signed lien waiver, and its own deadline.
  • In California, a direct contractor must pay each subcontractor its share of retention within 10 days of receiving it, with a 2% per month penalty on amounts wrongfully withheld.
  • New York caps retainage at 5% of the contract sum and bars a contractor from holding a higher percentage from a subcontractor than the owner actually retains.
  • The three spreadsheet failures in retainage are a holdback never deducted from an invoice, a release paid before its condition is met, and a release paid twice.
  • At every month-end, the retainage payable balance in the general ledger should equal the sum of open holdbacks by subcontract, and any gap means one of those failures already happened.

What is retainage, and why is it so hard to track?

Retainage is a contractual holdback: a fixed share of each progress payment that the paying party keeps as security until the work is finished and accepted. Outside the US the same mechanism is usually called retention or holdback. This guide starts where the definition stops, with the question of keeping track of it.

The difficulty is not the arithmetic. Withholding 10% of an invoice is one multiplication. The difficulty is that each withheld amount lives for months or years, and what happens to it depends on events outside the invoice: a substantial completion certificate, a punch list signed off, a lien waiver received, a warranty period that ends.

Retainage builds up across dozens of pay applications, subcontracts and projects, then comes back out at different milestones, sometimes years apart. That is why the balance is the least useful number in the file. A retainage payable total can be right to the cent while half the lines behind it are wrong.

Most contractors also sit on both sides at once. They withhold retainage from subcontractors, which is retainage payable, and owners withhold retainage from them, which is retainage receivable. Two ledgers with the same mechanics, and as the sections below show, the law ties them together.

Why retainage spreadsheets fail: three errors and one blind spot

Phacet describes the problem without softening it: done in spreadsheets, retention is where amounts get lost. In practice three errors account for most of the losses.

  1. A holdback never deducted. A subcontractor bills the gross amount, nobody applies the contract percentage, and the invoice is paid in full. The retainage you think you hold does not exist, and you discover it at close-out.
  2. A release paid before its condition is met. The final invoice arrives and the retainage is paid, but the lien waiver or the completed punch list the subcontract required was never checked. The leverage retainage was supposed to give you is gone.
  3. A release paid twice. Retainage is released once on the final pay application and again on a separate release invoice, or once by project accounting and once by accounts payable. Nothing in a spreadsheet blocks the second payment, because the spreadsheet does not know the first one happened.

None of these errors is exotic, and none of them shows in a total. They are also absent from the conversation: across the five most visible retainage guides we reviewed on 27 September 2026, the words duplicate, twice and overpayment do not appear once. The market explains how retainage works. It rarely explains how it breaks.

The blind spot is the ERP. Construction ERPs such as Foundation, Sage 300 CRE, Viewpoint Vista or CMiC calculate retainage well, provided the subcontract is set up correctly. As our breakdown of construction accounts payable controls points out, the ERP applies the rule from the subcontract setup. If that setup was wrong, or the contract was amended verbally without a change order, the ERP applies the wrong percentage with perfect consistency.

Everything the rule depends on sits outside the ERP: the signed subcontract, the amendment, the lien waiver, the completion certificate. That is exactly why a spreadsheet grows next to it.

The errors also have a timing problem. They accumulate quietly over a job and surface together on the final invoice, which is why payment delays and tense conversations with subcontractors cluster around retainage release. A dispute at close-out is often three small exceptions from months earlier, reaching the controller on the same day.

What should a retainage ledger record for each invoice?

A retainage ledger you can control records events, not balances. One row per invoice or pay application, per subcontract, with the fields below. The balance then becomes a sum you compute, never a figure somebody types.

FieldWhy it matters
Subcontract and projectRetainage is governed by each subcontract, not by the supplier or the project total.
Invoice or pay application numberAnchors every holdback to the document that created it, so any release can be traced back.
Amount billed this periodThe base the percentage applies to, taken from the line items of the schedule of values, including stored materials when the contract says so.
Contract rate and its triggerA common pattern is 10% until the job is half complete, then 5%. The rate must follow the trigger, not habit.
Retainage withheld on this invoiceCatches error 1: the amount withheld must equal the amount billed times the rate in force.
Cumulative retainage on the subcontractThe figure you reconcile to the general ledger each month.
Release conditionSubstantial completion, final acceptance, lien waiver, end of warranty: whatever the subcontract names.
Evidence received and its dateThe document that proves the condition is met. No evidence, no release.
Release due dateComputed from the condition date and the governing rule, whether contractual or statutory.
Amount released and payment referenceCatches errors 2 and 3: one release per holdback, matched to one payment.

The same model works on the receivable side. Replace the subcontract with the prime contract and the release condition with what the owner requires. Keeping both sides in one structure is what makes the link between them visible.

When should retainage be paid?

Retainage should be paid once the release condition written in the contract is met, and no later than the deadline set by the statute that governs the project. The contract decides the event, and the law often decides the clock. The rules below were read at the source on 27 September 2026, and they show how much that clock moves from one jurisdiction to the next.

JurisdictionWhat the rule saysWhat it changes in your ledger
Federal contractsFAR 32.103: retainage only when satisfactory progress has not been achieved, decided case by case, capped at 10% of the approved amount, paid promptly once all requirements are met.Retainage is an exception to justify, not a default percentage.
Texas, public worksGovernment Code §2252.032: no more than 10% on contracts under $5 million, no more than 5% at $5 million or more.The cap depends on contract value, so the rate must be stored per contract.
California, private worksCivil Code §8814: pay each subcontractor its share within 10 days of receiving retention. §8818: 2% per month penalty on amounts wrongfully withheld.An inbound release starts an outbound deadline.
New YorkGeneral Business Law §756-c: the owner may retain no more than 5% of the contract sum, and a contractor may not retain more from a subcontractor than the owner actually retains.Your payable rate is capped by your receivable rate.

The federal rule deserves a second look, because it contradicts how retainage is usually described. The most visible guides present it as a percentage withheld from every payment. FAR 32.103 treats it as a remedy for unsatisfactory progress, and states that retainage "should not be used as a substitute for good contract management." On a federal job, a ledger that withholds by default applies a rule the regulation does not contain.

This table is a sample, not a legal survey. Rates, thresholds and deadlines vary by state and between public and private work, and they change over time, so check the statute that governs each project with counsel. The practical point holds everywhere: the release date is a computed field, and it has to be computed from an event you recorded, not from memory.

Contracts often split the release as well. Part of the retainage comes back at substantial completion, the balance at final completion or at the end of the warranty period. Each tranche is then a separate event with its own evidence and its own due date, which is one more reason a single balance column cannot carry the schedule.

Your payable and receivable retainage are linked

California and New York regulate the same connection from two directions. In California, receiving retention from the owner starts a 10-day clock to pay your subcontractors their share. In New York, the percentage you may hold from a subcontractor is capped by the percentage the owner actually holds from you. Either way, a movement on the receivable side creates an obligation on the payable side.

Subcontractors already live with that link. A superintendent's notice to subcontractors, shared on r/Construction, sums it up: "you will not receive your retention until we receive it". A spreadsheet with one tab for owners and another for subcontractors cannot show that dependency. A ledger that stores both sides by project can, and it can flag the day an owner's release lands.

How do you reconcile retainage to the general ledger each month?

Reconciling retainage means proving, at every month-end, that the retainage accounts in the general ledger equal the open holdbacks in your ledger, line by line. It helps to keep the journal entries in view first, because each one is a point where a line can go missing.

When a subcontractor's pay application is approved, the full amount billed goes to job cost, the net amount due goes to accounts payable, and the withheld amount is credited to retainage payable. When the retainage is released, retainage payable is debited and accounts payable credited, and the payment clears it. The receivable side mirrors this: your billing to the owner debits accounts receivable for the net amount and retainage receivable for the holdback. If a pay application is booked gross, or a release is paid straight out of accounts payable without debiting retainage payable, the general ledger and your holdback ledger stop agreeing.

Four checks are enough.

  1. Payable ties out. The retainage payable balance equals the sum of open holdbacks across all subcontracts. A gap means a holdback was never recorded, or a release was booked without closing its line.
  2. Receivable ties out. The retainage receivable balance equals the open holdbacks by prime contract. A gap on this side is money you may never claim.
  3. Aging by release date. Age open holdbacks by their release due date, not by invoice date. Anything overdue on the payable side is a penalty risk. Anything overdue on the receivable side is cash you are lending the owner for free.
  4. Every release matched once. List the releases paid during the month and match each one to a single closed holdback. A release with no holdback behind it, or a holdback closed twice, is error 3.

Example: a $480,000 subcontract billed in six pay applications at 10% should carry $48,000 of retainage once fully billed. If pay application 4, for $90,000, was paid in full, your ledger shows $39,000 open against the $48,000 the subcontract implies. The $9,000 gap is error 1, found at month-end while the subcontractor is still on site, instead of at close-out when the last payment is already due.

This is the step the published guides skip: across the five we reviewed, journal entry, general ledger and aging appear zero times. Yet it is the only check that catches all three errors after the fact, and it takes minutes when the ledger is built on events rather than on a typed balance.

When the first reconciliation does not tie out, the gap usually traces back to invoices approved without anyone reading the retention clause. That is precisely the check the agent that controls invoices against contract terms runs on every incoming invoice, before approval rather than at close-out.

How Phacet tracks retainage without a spreadsheet

Phacet replaces the retainage spreadsheet with AI agents that run the checks above on every invoice. An AI agent, here, is a piece of software that reads documents, applies a defined control and flags what disagrees, with its reasoning shown.

Structure. The contract terms agent reads the retention clause of each subcontract and isolates the amount withheld on each invoice. The rate in force and the amount actually deducted sit side by side, so error 1 surfaces the day the invoice arrives.

Match. The supplier billing control agent keeps cumulative holdback balances aligned with what was actually billed and paid. Alongside it, three-way matching validates the retainage amount against the subcontract and the cumulative pay applications, and flags any deviation before the invoice reaches the ERP.

Analyze. Open holdbacks, release conditions and due dates become one table the team filters by project, subcontractor or month, instead of a tab rebuilt before every close.

Every value keeps its source document and every decision is recorded in a native audit trail, so an auditor can follow a release back to the waiver that justified it. The agents flag, and your team decides. Phacet runs in production at more than 100 companies, and a first agent is typically live in under two weeks. The page on finance controls built for construction lists the agents that apply to subcontractor billing.

You do not need to migrate every open job to start. Begin with the subcontracts that reach completion in the next two quarters, because that is where release errors concentrate and where a missed deadline costs the most. Load the subcontracts, let the agents rebuild the holdback history from the pay applications already received, and compare the result with the balance in your ledger. The differences are your first list of exceptions to clear.

Retainage will always involve waiting. It should not involve guessing which holdback is still open, which condition is met, and which deadline started this morning. Record the events, compute the balance, and let the month-end reconciliation tell you when something slipped.

FAQ

What does 10% retainage mean?

Ten percent retainage means the paying party withholds 10% of each progress payment until the work is complete and accepted. On a $50,000 pay application, $5,000 is held back and $45,000 is paid. Many contracts reduce the rate to 5% once the project is half complete, so the rate has to be tracked contract by contract.

What are the disadvantages of retainage?

Retainage ties up cash a contractor has already earned, often for months after the work is done, which strains subcontractors with thin margins. For the party holding it, the risks are administrative: holdbacks never deducted, releases paid before the conditions are met or paid twice, and statutory penalties when a release deadline passes unnoticed.

What is the 10% retainage law in Texas?

For public works, Texas Government Code §2252.032 caps retainage at 10% of the contract price when the contract is worth less than $5 million, and at 5% when it is worth $5 million or more. Private projects follow separate rules in the Texas Property Code, so confirm which regime governs your contract before setting the rate.

What is the 5% retainage law in New York?

New York General Business Law §756-c limits the retainage an owner may hold to 5% of the contract sum on the private construction contracts it covers. A contractor or subcontractor may also hold no more than 5%, and never more than the percentage the owner actually retains. The same section sets a 30-day release deadline for the owner.

Is retainage the same as retention?

Yes. Retainage, retention and holdback name the same practice: a share of each progress payment kept as security until the work is accepted. Retainage is the usual term in the United States, retention is common in UK and Commonwealth contracts, and holdback is the usual term in Canada. The tracking problem is identical under all three names.

The guide to bringing AI
into your finance team,
step by step.
Discover the guide

Unlock your AI potential

Go further with your financial workflows — with AI built around your needs.

Book a demo