Skip to content
Field notes / Industry deep-dive
Industry deep-dive

Construction Chart of Accounts: The Accounts Behind a WIP Schedule Your Surety Will Accept

A general contractor asks for a bigger bond and the surety asks for a work in progress schedule. Whether that schedule can be produced from the books depends on eight accounts most charts do not have. Here they are, with the entries that fill them and the statement lines they create.

CTChartOfAccounts.ai Team - Construction Accounting Specialists.March 29, 2026.14 min read
1 · StructureWhich accounts exist
2 · RecordingHow a transaction resolves
3 · ReportingHow accounts become statements
4 · InsightWhich questions you can answer

A general contractor bids a job that needs a larger bond than the surety has approved before. The surety asks for a work in progress (WIP) schedule: every open job, its contract value, cost to date, estimated cost to finish, billings to date, and whether the job is overbilled or underbilled. The contractor opens QuickBooks and finds one revenue account, one cost of goods sold account, and an accounts receivable balance that mixes retainage with ordinary invoices. Nothing on the schedule can be filled in from the books. It gets built in a spreadsheet, from memory, and the surety reads it with the trust that deserves.

The schedule is not the problem. The chart of accounts is. A WIP schedule is a report on eight accounts, and if those accounts exist and are posted to every month, the schedule falls out of the trial balance. This guide covers those accounts, the three entries that fill them, and what each one does to the income statement and balance sheet.

Accounts in template
110
Ready to import into QuickBooks Online
WIP balance sheet accounts
2
Underbillings (asset) and overbillings (liability)
Retainage accounts
2
Held by customers, withheld from subcontractors
Template
construction-gaap
Import in about 60 seconds

Why a generic chart breaks down for contractors

The default QuickBooks chart assumes revenue is earned when an invoice goes out. On a twelve-month contract billed monthly, that assumption is wrong in both directions. A contractor who front-loads billings has collected cash for work not yet done. A contractor who is slow to bill has done work the books do not show. Under GAAP (Generally Accepted Accounting Principles), revenue on a long-term contract is recognized as the work progresses, usually in proportion to costs incurred against total estimated costs. The Internal Revenue Service applies the same percentage-of-completion idea to larger contractors for tax, and its Construction Industry Audit Technique Guide walks examiners through it job by job.

The generic chart also has one place for receivables and one for payables. Retainage, the slice of each billing the customer holds back until the job is accepted, sits inside accounts receivable and looks like a late payment. The retainage you hold back from subcontractors sits inside accounts payable and looks like a bill you have not paid. Both distort working capital, which is the ratio the surety looks at first.

Finally, a single cost of goods sold line cannot tell a labor overrun from a materials overrun. Job costing needs direct costs split by category, and it needs the office rent and the estimator's salary kept out of job cost entirely.

There is a tempting shortcut: keep the books on a cash basis and let the tax return sort it out. It fails at the first bond application. A surety reads accrual statements, and most ask for a reviewed or audited set once the bond program passes a certain size. The chart of accounts is the cheapest part of that requirement to get right, and the one that cannot be fixed at year end by the accountant alone.

Cost and cash flow through the job accounts

Every dollar on a job touches these accounts in this order. Revenue and cost reach the income statement on the way through; the balance sheet holds whatever has not settled yet.

5001–5301Direct job costsLabor, materials, subs, equipment, by category
1201Accounts Receivable - Progress BillingThe 90 percent you can collect now
1211Retention ReceivableThe 10 percent the customer holds
1385 / 2241Under- or overbillingsThe month-end true-up to work performed
4101Contract Revenue - CommercialEarned revenue, not billed revenue

The accounts that do the work

These are the accounts from the construction template that a generic chart does not give you. The template calls retainage "retention"; the two words mean the same thing. Account numbers and names below are exactly as they import.

RowAccountNumberTypePurpose
01Accounts Receivable - Progress Billing1201Accounts ReceivableInvoiced progress billings the customer owes now
02Retention Receivable1211Accounts ReceivableThe portion of each billing the customer holds until completion
03Costs & Estimated Earnings in Excess of Billings1385Other Current AssetsUnderbillings: revenue earned on open jobs but not yet invoiced
04Subcontractor Payables2011Accounts PayableAmounts owed to subcontractors and payable now
05Retention Payable2231Other Current LiabilitiesRetainage withheld from subcontractors until their work is accepted
06Billings in Excess of Costs - Unearned Revenue2241Other Current LiabilitiesOverbillings: invoiced ahead of the work performed
07Contract Revenue - Commercial4101IncomeRevenue earned on commercial contracts
08Direct Labor - Field Workers5001Cost of Goods SoldWages for crews on site, charged to the job
09Materials - Lumber5101Cost of Goods SoldMaterials delivered to and used on the job
10Subcontractor Costs - Other Trades5291Cost of Goods SoldSpecialty trade contractors billed to the job
11Equipment Rental - Job Related5301Cost of Goods SoldRented equipment for a specific project
12Rent - Office6101ExpensesGeneral overhead; never charged to a job

The four cost accounts in the 5000 range are direct job costs and belong in gross profit. Rent - Office sits in the 6000 range as general overhead. Keeping that line intact is what makes gross profit by job a number you can defend to a surety, because it contains only costs that would not exist without the job.

One decision the owner has to make once, and then hold to: what counts as job overhead. A site trailer, a project manager's time, a dumpster, and the fuel for the crew truck all vanish when the job ends, so they belong in the 5000 range and get tagged to the job. The yard lease, the estimator, and the bookkeeper stay whether the job exists or not, so they belong in the 6000 range and never get tagged. A chart that draws that line makes the job cost report and the bid estimate use the same definition of cost, which is the only way to learn anything by comparing them.

How the accounts get booked

Take one commercial job: a $500,000 contract with an estimated total cost of $400,000. Figures are illustrative throughout.

In month three the contractor bills $100,000 against the schedule of values. The contract lets the customer hold 10 percent until final acceptance. The billing is split at the moment it is recorded, so retainage never hides inside ordinary receivables.

Entry 1 · Progress billing with 10 percent retainage held by the customer
AccountDebitCredit
1201Accounts Receivable - Progress Billing90,000
1211Retention Receivable10,000
4101Contract Revenue - Commercial100,000
Totals100,000100,000

The $10,000 is not late. It is due at completion, and the balance sheet now says so. Revenue is booked at the billed amount here and corrected to earned revenue in Entry 3.

The same month, the electrical subcontractor submits a $40,000 pay application. The contractor withholds 10 percent from the sub, exactly as the customer withholds from the contractor. The full $40,000 is a job cost today; only $36,000 is payable today.

Entry 2 · Subcontractor invoice as a job cost, with retainage withheld
AccountDebitCredit
5291Subcontractor Costs - Other Trades40,000
2011Subcontractor Payables36,000
2231Retention Payable4,000
Totals40,00040,000

Job cost is complete and the payable is honest. Without Retention Payable, the $4,000 would either inflate accounts payable or vanish until the sub asks for it.

At month end the bookkeeper compares work performed to work billed. Cost to date on this job is $180,000 against the $400,000 estimate, so the job is 45 percent complete and earned revenue is $225,000. Billings to date are $250,000. The contractor has billed $25,000 more than it has earned, and that $25,000 is a liability: money collected for work still owed to the customer.

Entry 3 · Month-end percentage-of-completion adjustment (overbilled job)
AccountDebitCredit
4101Contract Revenue - Commercial25,000
2241Billings in Excess of Costs - Unearned Revenue25,000
Totals25,00025,000

Reverse this entry on the first day of next month and rebook it at the new percentage. If the job were underbilled instead, the entry flips: debit 1385 Costs & Estimated Earnings in Excess of Billings, credit 4101.

Entry 3 is the WIP schedule. The schedule's overbilling column is the balance in 2241; its underbilling column is the balance in 1385. When those two accounts are posted every month, the schedule is a report, not a project.

The underbilled case deserves its own sentence, because it is the one owners ignore. A job that has earned more than it has billed is not a good sign to a surety. It usually means one of three things: the billing is late, the estimate of total cost is too low so the percentage complete is overstated, or the job has costs on it that the customer will never pay for. All three reduce cash. A growing balance in 1385 is the earliest warning the books can give, and it only exists if the account does.

When the job reaches final acceptance, the retainage releases. The $10,000 in Retention Receivable moves to Accounts Receivable - Progress Billing with a debit to 1201 and a credit to 1211, and the invoice goes out. The same day, the $4,000 in Retention Payable becomes a bill to the sub. Neither move touches revenue or cost, because both were recorded when the work was done, not when the cash moved.

What this looks like on the statements

The same three entries, seen from the reports. The highlighted lines exist only because the accounts above exist.

Income statement, excerpt · one job, cumulative through month three
Contract Revenue - Commercial (earned, not billed)225,000
Direct job costs
Direct Labor - Field Workers62,000
Materials - Lumber48,000
Subcontractor Costs - Other Trades55,000
Equipment Rental - Job Related15,000
Total direct job costs180,000
Gross profit45,000
Operating expenses
Rent - Office6,500

Example figures.

Gross profit of 45,000 on 180,000 of cost is the same 20 percent margin the estimate promised. If revenue were left at the 250,000 billed, gross profit would read 70,000 and the job would look better than the bid, which is exactly the number a surety learns not to believe.

Balance sheet, excerpt · month-end, all open jobs
Current assets
Accounts Receivable - Progress Billing90,000
Retention Receivable25,000
Costs & Estimated Earnings in Excess of Billings8,400
Current liabilities
Subcontractor Payables36,000
Retention Payable12,000
Billings in Excess of Costs - Unearned Revenue25,000

Example figures.

The two retention lines are cumulative across every open job, which is why they are larger than the single job in the entries above. The 8,400 in underbillings comes from a different job that is behind on invoicing. A surety reads the two WIP lines together: underbillings that keep growing suggest revenue that may never be billed, and overbillings that keep growing suggest the contractor is living on the next job's cash. The generic chart shows neither line, so the surety asks for the spreadsheet instead.

Without these accounts you cannot answer
  1. 01How much of our receivables can we actually collect this month? With retainage inside accounts receivable, the aging report overstates collectible cash on every open job.
  2. 02Are we ahead of or behind our billings across all jobs, and by how much? Without 1385 and 2241 the answer lives in a spreadsheet the surety has to take on faith.
  3. 03Which job is losing money, and is it labor, materials, or a sub? One cost of goods sold account reports a total and nothing else.

What the template changes

The diff, in the grammar the product uses everywhere else.

Generic chart → construction chart
  • Accounts Receivableretainage mixed with invoices
  • 1201Accounts Receivable - Progress Billingasset
  • 1211Retention Receivableasset
  • 1385Costs & Estimated Earnings in Excess of Billingsasset
  • 2231Retention Payableliability
  • 2241Billings in Excess of Costs - Unearned Revenueliability
  • Cost of Goods Soldone blended line
  • 5001Direct Labor - Field Workerscogs
  • 5101Materials - Lumbercogs
  • 5291Subcontractor Costs - Other Tradescogs
  • 5301Equipment Rental - Job Relatedcogs
  • 6101Rent - Officestays in overhead
2 removed+9 added

Get started

The construction chart of accounts template includes every account on this page, pre-numbered and ready to import into QuickBooks. It takes about 60 seconds to optimize and gives a contractor the balance sheet a surety expects to see.

If you already have a chart, the optimizer reads it and shows the diff above against your own accounts, so you can see which of the eight are missing before you change anything. Tag every job cost to a customer or project from the first invoice on, post Entry 3 on the last day of every month, and the next bond application starts from the trial balance instead of a spreadsheet.

Try the free demo →

More from field notes

All posts ->