Back to the blog

September 19, 2026 · 9 min read

Progress Billing and Retainage: How to Record Them So Your Books Stay Accurate

By 909 Bookkeeping

How to record progress billing and retainage for a construction job. Bill each stage as earned income, hold the retainage in its own receivable, and release it at job close. Plain English from 909 Bookkeeping.

Trade illustration for this bookkeeping guideA flat illustration of a contract with a billed amount and a held retainage box, showing progress billing tracked for a construction job.LEDGER10%

What progress billing means

A big job does not get paid all at once. The work spreads over weeks or months, and the bills go out the same way. Progress billing is the practice of billing the job as it moves forward.

Each bill covers the work done since the last one. The first bill might cover the site prep and the rough work. The next bill covers the next stage. By the end, the full contract price has been billed across several invoices, and each one lines up with a real piece of finished work.

The clean way is to bill each stage against the contract. The billed total climbs toward the contract price as the job moves. When the job is done, the billed total equals the contract, and every bill ties to a stage that actually got finished. You can read more about how we keep this tied to the job on our bookkeeping service page.

What retainage is and why it gets held

Retainage is a slice of each bill the customer holds back. The contract says the customer can hold a set percent of every bill until the job is complete and accepted. A common amount is ten percent, but the real number is in your contract, so check it before you bill.

The point of retainage is leverage. The customer keeps a piece of your money until the work is finished and the punch list is done. It gives the owner a way to make sure the last details get finished.

For your books, retainage is money you earned but have not been paid yet. It is income, and it is also receivable. The clean way is to record the full bill as earned, then show the held part as retainage receivable. When the job closes and the customer releases the hold, the retainage turns into cash.

Here is what to keep straight.

  • **The full bill is earned income: ** not the net amount the customer paid.
  • - **The held part is retainage receivable: ** money you earned but have not collected.
  • - **The contract sets the percent: ** check it before you bill, not after.
  • - **The release comes at the end: ** when the job is done and accepted.

How progress billing shows up in your books

Each progress bill lands as income on the date you send it. The income line goes up by the full bill amount, not the net the customer paid. The cash line goes up by what the customer actually sent.

The gap between the two is the retainage. That gap sits in a receivable account we call retainage receivable. It is the record of what you earned and what is still owed on the job.

Here is what one job looks like across three bills.

BillEarnedPaidHeld as retainage
First progressFull amountNet amountThe held part
Second progressFull amountNet amountThe held part
Final and retainageFull amountFull amount plus the held partZero, the hold is released

When each bill records the full earned amount, the income line tells the truth. The receivable line shows what is still coming. The cash line shows what the bank got.

How to record retainage so it stays visible

The messy way is to bill only the net amount and skip the held part. The income line looks low, and the job looks like it earned less than it did. The owner can not tell what the job really earned, what is still owed, or when the last payment will land.

The clean way is to record the full bill as earned income first. Then book the held part to a retainage receivable account. The net that hit the bank is the cash side. When you do it this way, three things stay true at once. Income shows what you earned. Receivable shows what is held. Cash shows what the bank got.

Here is the entry to make for each progress bill.

  • **Record the full bill as earned income: ** the full amount, tied to the job.
  • - **Book the held part to retainage receivable: ** so the hold stays visible.
  • - **Record the net payment to cash: ** what the customer actually sent.
  • - **Tag every line to the job: ** so the job total is real at month end.

How to bill the retainage when the job closes

The retainage does not sit there forever. When the job is done and the customer signs off, the hold gets released. You send a final bill for the held amount. When it clears the bank, the retainage receivable drops to zero.

The clean way is to bill the retainage as its own invoice at job close. The invoice pulls the held amount out of retainage receivable and moves it into regular receivable, then into cash when it clears.

Here is what to check at job close.

  • **Confirm the job is done and accepted: ** the contract ties the release to sign off.
  • - **Send a retainage invoice for the held amount: ** the last bill on the job.
  • - **Move the held amount out of retainage receivable: ** so the account goes back to zero.
  • - **Match the final payment to the bank: ** the last check clears and the job is settled.

How to keep job costs and progress billing in line

Progress billing only tells the true story when it lines up with job costs. Each stage you bill should match the work that got done. Each cost you book should tie to the job it was spent on.

When the costs and the bills move together, you can see the profit on the job as it goes. The billed income climbs with the finished work. The job costs climb with the spent work. The gap between them is the earned profit on the job so far.

When the costs land in one pile and the bills land in another, the story is lost. You can not tell which job is ahead and which one is behind. You can not tell whether a stage billed too early or too late.

Here is what to keep lined up.

  • **Bill each stage against the contract: ** so the billed total tracks the finished work.
  • - **Tie each cost to the job: ** so the job total is real.
  • - **Compare billed to spent at each stage: ** the gap is the profit so far.
  • - **Watch for a stage billed ahead of the work: ** it inflates income for the month.

How the month end close works with progress billing

At month end, every open job needs its billing and its costs added up. The progress bills for the month go to income. The retainage held goes to the receivable. The job costs go to the job. The cash that cleared goes to the bank.

We start with the bank. We match each progress payment to the invoice it pays. We book the full bill as earned income. We move the held part to retainage receivable. We tie every cost to its job. Then we send the reports.

Here is a simple month end check.

  • **Match each progress payment to its invoice: ** the bank shows what cleared.
  • - **Record the full bill as earned income: ** not the net.
  • - **Move the held part to retainage receivable: ** so the hold stays visible.
  • - **Tie every job cost to the job: ** so the profit per job is real.

A situation we clean up

The retainage that disappeared

A contractor bills a job in four stages. Each bill holds back a set percent. The bookkeeper records only the net amount that hit the bank. The income line shows four small deposits, and the job looks like it earned far less than the contract. The retainage never shows up anywhere. At month end, the owner can not tell what the job earned, what is still held, or how much is left to collect. The job costs sit in one big pile, and the profit per job is a guess.

Here is how we handle it. We pull the contract and the invoices for the job. We rebook each bill at the full earned amount. We move the held part to a retainage receivable account, tagged to the job. We match the bank deposits to the net payments. We tie the job costs to the job. When we are done, the income line shows what the job really earned, the receivable shows what is still held, and the cash line shows what the bank got. The owner can see the profit on the job and the amount still to collect at close. We set up a rule so the next progress bill records the full amount from the start.

Mistakes we fix

  • Progress bills booked at the net amount instead of the full earned amount
  • Retainage never recorded, so the receivable is invisible
  • Job costs piled in one account with no job tag
  • A stage billed ahead of the work, so income is overstated for the month
  • The final retainage invoice never sent, so the hold never releases
  • No retainage receivable account to track what is held across jobs

Common questions

Do I book the full bill or just what the customer paid? Book the full bill as earned income. The held part goes to a retainage receivable account. The net that hit the bank goes to cash. When you book only the net, the job looks like it earned less than it did.

What is retainage receivable? It is the account that holds the slice of each bill the customer kept back until the job is done. It is money you earned but have not collected yet. When the job closes and the hold releases, the amount moves to cash.

When do I bill the retainage? You bill it at job close, after the work is done and accepted. Send a final invoice for the held amount. When it clears the bank, the retainage receivable goes back to zero and the job is settled.

How do I keep the profit per job real? Tie every cost to the job and bill every stage against the contract. The billed income tracks the finished work, and the job costs track the spent work. The gap between them is the earned profit so far.

Ready for books that close on time?

Free 20-minute call. We reply with a fixed quote within one business day.

Book a callCall