Skip to content

FeatureData

Retainage aging summary Worked example

How to track retainage aging by job and by owner, with a $1.35 million example

As of September 30, 2026 US dollars Example figures with round numbers

Retainage aging starts when the release comes due. On six example jobs, that clock puts $500,000 of the $1.35 million past due, and the oldest balance is 123 days late.

$500,000

past due at September 30, 2026, or 37 percent of $1.35 million in retainage

Past due $500,000 · 37%Not yet due$850,000 · 63.0%31 to 60 days$350,000 · 25.9%Over 90 days$150,000 · 11.1% Past due $500,000 · 37%Not yet due$850,000 · 63.0%31 to 60 days$350,000 · 25.9%Over 90 days$150,000 · 11.1%
  1. Not yet due$850,000Developer A and school district, in progress
  2. 1 to 30 days$0None
  3. 31 to 60 days$350,000Jobs 101 and 106
  4. 61 to 90 days$0None
  5. Over 90 days$150,000Job 104
Retainage receivable by days past the release due date, September 30, 2026. Example figures, US dollars. Data: aging buckets (CSV).

Retainage is the part of each progress payment that the owner holds until the work is done. The billing team records it on every pay application, and the controller carries it as a receivable. On a standard aging report it lands in the current column or in one lump at the bottom, because the date on the invoice says little about when the money is due.

A retainage aging report fixes that by running its clock from the release date in the contract or the statute. It also shows the retainage the contractor holds from its own subcontractors on the same jobs, because part of each release passes through to those subcontractors.

California caps retention at 5 percent and allows 60 days to release it

Federal work

FAR 32.103 and 52.232-5

Cap
10%
Held when
Progress is not satisfactory
Released
At substantial completion, less what the government needs for protection

California public works

PCC 7201 and 7107

Cap
5%
Release
60 days after completion
To subs
7 days after receipt
Paid late
2% per month
In dispute
150% of the disputed amount may be held

Private work

The contract

Trigger
The event the contract names
Day count
Entered once, when the contract is signed

Federal work runs under the Federal Acquisition Regulation (FAR). FAR 32.103 says a contracting officer may retain part of a progress payment when the contractor has not made satisfactory progress, decides case by case, and may not withhold more than 10 percent of the approved estimated amount. The same section says retainage should not stand in for contract management and that retained amounts are paid promptly once the work is complete.

The payment clause in federal fixed-price construction contracts, FAR 52.232-5, sets the release. When the work is substantially complete, the contracting officer keeps what the government needs for protection and releases the rest. A separately priced building or division of the work is paid without retention once it is complete and accepted.

California public works follow two sections of the Public Contract Code:

  1. Section 7201 caps retention at 5 percent of each payment and 5 percent of the contract price. A subcontract cannot carry a higher percentage than the prime contract. An agency can go above 5 percent on a project only after it finds, before bid, that the project is substantially complex.
  2. Section 7107 requires the public entity to release retention within 60 days after completion. Completion includes acceptance, or occupation and beneficial use with labor stopped. In a dispute the entity may hold up to 150 percent of the disputed amount.
  3. Once the prime contractor receives retention, it has seven days to pay each subcontractor its share, again with up to 150 percent of a disputed amount held back.
  4. Retention paid late under section 7107 carries a charge of 2 percent per month on the amount improperly withheld, and the winning side in a collection action recovers attorney's fees.

On private work, the release terms come from the contract. Each job's release trigger and day count belong in the report as data, entered once when the contract is signed.

Each job needs one row with five fields from the ledger and the contract

The report needs one row per job, built from the billing ledger and the contract file:

  1. Pull retainage receivable by job as of the report date. This is retainage billed less retainage collected.
  2. Pull retainage payable to subcontractors on the same job from the AP subledger.
  3. Record the release trigger date. That is the event the contract or statute names, such as substantial completion, acceptance, or a filed notice of completion. Leave it blank while the job is in progress.
  4. Compute the release due date as the trigger date plus the days the contract or statute allows.
  5. Compute days past due as the report date minus the release due date, and assign each job to a bucket.

Job 101's row: the release came due 60 days after acceptance, and by September 30 it was 47 days past due

1Retainage receivable$200,000Billing ledger
2Payable to subs$120,000AP subledger
3Release triggerJun 15Accepted by the district
4Release dueAug 14Trigger plus 60 days, section 7107
5Days past due47Sept. 30 less Aug 14, bucket 31 to 60
One row of the example report, Job 101, City water district, California public work at 5 percent. Example figures. Data: retainage by job (CSV).

Retainage on a job still in progress is "not yet due." Everything else ages from its release due date. A job billed in January and completed in September starts its retainage clock in September.

On the example jobs, Job 104's retainage is 123 days past due

The figures below are an example with round numbers. A general contractor has six jobs open on its books at September 30, 2026. Two are California public works at 5 percent, which is the cap in section 7201, and the subcontracts on those jobs carry 5 percent as well.

Three release clocks: each starts at completion, runs through the allowed days, then ages until the report date

OVER 9061 TO 9031 TO 601 TO 30APRMAYJUNJULAUGSEPOCTSEPT. 30Job 104Developer ASubstantially complete Mar 31, then 60 days to releaseDue May 30123 daysJob 101City water districtAccepted Jun 15, then 60 days to releaseDue Aug 1447 daysJob 106Private hospitalComplete Jul 31, then 30 days to releaseDue Aug 3031 days OVER 9061–9031–601–30APRMAYJUNJULAUGSEPOCTJob 104, Developer ASubstantially complete Mar 31, 60 days, due May 30123 daysJob 101, City water districtAccepted Jun 15, 60 days, due Aug 1447 daysJob 106, Private hospitalComplete Jul 31, 30 days, due Aug 3031 days

Completion or acceptance Days the contract or statute allows Release due Past due, colored by bucket

Release trigger and due dates for jobs with past-due retainage, with aging buckets counted back from September 30, 2026. The jobs in progress for Developer A and the school district hold $850,000 that is not yet due. Job 103 carries no retainage. Example figures. Data: retainage by job (CSV).

Job 101 is the water district job. The district accepted it on June 15, so section 7107 put the release due date 60 days later, on August 14. By September 30 the $200,000 is 47 days past due.

Job 104 for Developer A reached substantial completion on March 31, and the contract allows 60 days for release. That retainage is 123 days past due. Job 106 for the hospital allows 30 days after completion and is 31 days past due.

Job 103 is federal. The contracting officer has found progress satisfactory on every payment, so under FAR 52.232-5 it has paid each request in full and the job carries no retainage.

Developer A holds $750,000, or 56 percent of the retainage

Two-thirds of the $500,000 past due is 31 to 60 days old, and Developer A's Job 104 holds the oldest balance

0200K400K600K800KOWNERTOTALDeveloper AJob 102, Job 104$600,000$150,000$750,000School districtJob 105$250,000$250,000City water districtJob 101$200,000$200,000Private hospitalJob 106$150,000$150,000Federal agencyJob 103No retainage held$0Not yet due$850,00031 to 60 days$350,000Over 90 days$150,000$1,350,000 0200K400K600K800KTOTALDeveloper AJob 102, Job 104$600,000$750,000School districtJob 105$250,000$250,000City water districtJob 101$200,000$200,000Private hospitalJob 106$150,000Federal agencyJob 103No retainage held$0Not yet due$850,00031 to 60 days$350,000Over 90 days$150,000$1,350,000
Retainage receivable by owner and aging bucket, September 30, 2026, US dollars. Rows foot to the total. Example figures. Data: retainage by owner (CSV) and by job (CSV).

Of the $1.35 million in retainage, $500,000, or 37 percent, is past due. Two-thirds of the past-due amount is 31 to 60 days old.

Developer A holds $750,000, or 56 percent of the retainage, across two jobs. The $150,000 on Job 104 is the oldest balance in the report. Before the next billing goes to Developer A on Job 102, the project manager and the controller can agree on what is still open on Job 104, such as punch list items, closeout documents or lien waivers.

$780,000 of the $1.35 million belongs to subcontractors once it is collected

Net retainage is the receivable minus what the contractor owes its subs on the same jobs. Of the $1.35 million, $780,000 belongs to subcontractors once it is collected, which leaves $570,000 of the contractor's own money.

The contractor's own share of the retainage is $570,000

0200K400K600K800KOWNERNETTO SUBSDeveloper A$450,000$300,000School district$150,000$100,000City water district$120,000$80,000Private hospital$60,000$90,000$780,000$570,000 0200K400K600K800KNETDeveloper Ato subs $450,000$300,000School districtto subs $150,000$100,000City water districtto subs $120,000$80,000Private hospitalto subs $60,000$90,000To subs $780,000$570,000

Payable to subcontractors on the same jobs Net retainage, the contractor's own

Retainage receivable by owner split into retainage payable to subcontractors and net retainage, September 30, 2026, US dollars, same scale as the chart above. The federal agency holds no retainage. Example figures. Data: retainage by owner (CSV).

A late release on Job 101 adds $4,000 a month

On Job 101, section 7107 puts a deadline and a 2 percent monthly charge on each step of the release

OwnerCity water district
PrimeGeneral contractor
SubsSubcontractors on Job 101
Late-payment charge under California Public Contract Code section 7107, applied to the example Job 101 when there is no dispute. US dollars.

On Job 101, if the water district has no dispute to point to, section 7107 adds 2 percent per month on the $200,000. That is $4,000 for each month the payment is late.

The same rule runs the other way. When the district pays, the contractor has seven days to pass $120,000 to the subcontractors on Job 101. A late payment on that share carries the same 2 percent per month, or $2,400.

Set an alert on the receipt of any retainage on a job with retainage payable. The cash team then sees the seven-day deadline on the day the money arrives.

Three of the six jobs carry past-due retainage

Every job in the example at September 30, 2026, sorted by days past due. Example figures, US dollars.

Retainage by job, September 30, 2026
JobOwnerStatusBilledRateReceivablePayable to subsTriggerDueDays past due
Job 104Developer ASubstantially complete$3,000,0005%$150,000$90,000Mar 31May 30123
Job 101City water districtAccepted$4,000,0005%$200,000$120,000Jun 15Aug 1447
Job 106Private hospitalComplete$1,500,00010%$150,000$60,000Jul 31Aug 3031
Job 102Developer AIn progress$6,000,00010%$600,000$360,000BlankBlankNot yet due
Job 105School districtIn progress$5,000,0005%$250,000$150,000BlankBlankNot yet due
Job 103Federal agencyIn progress$2,000,0000%$0$0BlankBlankNo retainage
Total$21,500,000$1,350,000$780,000

Download the data: by job, by owner, by aging bucket (CSV).

The WIP schedule counts retainage, and this report dates it

The work-in-progress schedule counts retainage inside receivables when it compares cash received to cash paid on each job. The retainage aging report splits that receivable by due date, so a job that looks cash positive on the WIP can still carry six figures of past-due retainage at closeout.

Pay applications feed both reports. The earned value post uses the same billing lines to measure schedule and cost performance.

How to start on your jobs

Pick one job that reached substantial completion in the last six months. Find the release clause in the prime contract, write down the trigger date and the day count, and compute the release due date. Then pull retainage receivable and retainage payable for that job from the ledger and enter them in the same row.

Once the row matches the ledger, add the remaining jobs and sort by days past due. Review it each month with the WIP schedule.