The WIP Schedule, Explained: How to Build One and Read It Like Your Surety Does
The short answer: A WIP (work-in-progress) schedule lists every open construction job with its contract value, estimated total cost, cost to date and billings to date. From those, it calculates percent complete (cost to date ÷ estimated total cost), earned revenue (percent complete × contract value), and whether each job is overbilled (billed more than earned, which is a liability) or underbilled (earned more than billed, which is an asset). It's the report that turns your job costs into accurate financial statements, and it's the first thing a banker or surety looks at.
If you've been asked for a WIP schedule and aren't sure how to build one, or you have one but don't fully trust it, this guide walks through every column. It includes a full four-job worked example, the journal entries, how to handle a losing job, and how to read the results.
Why the WIP schedule matters
Construction jobs cross month-ends and year-ends. If you record revenue when you send a pay app, your P&L reflects your billing schedule, not your work. Front-load the billing on one job and you look rich this month. Fall behind on billing another and you look broke. Neither picture is true.
The WIP schedule fixes that by recognizing revenue based on progress. For most contractors' contracts, revenue is recognized over time under ASC 606, and the cost-to-cost method is one accepted way to measure progress (Deloitte DART, ASC 606 Roadmap 8.5). The schedule also produces two balance sheet lines your lender and surety care about:
Underbillings (sometimes called "costs and estimated earnings in excess of billings"; under ASC 606, a contract asset)
Overbillings (sometimes called "billings in excess of costs and estimated earnings"; under ASC 606, a contract liability)
The columns of a WIP schedule
A WIP schedule starts with four inputs per job. Everything else is calculated.
Column | What it is | Where it comes from |
A. Contract value | Original contract + approved change orders | Contract and change order log |
B. Estimated total cost | Cost to date + estimated cost to complete | Job cost report + PM forecast |
C. Estimated gross profit | A − B | Calculated |
D. Cost to date | All job costs incurred through the WIP date | Job cost ledger |
E. Percent complete | D ÷ B | Calculated |
F. Earned revenue to date | E × A | Calculated |
G. Gross profit to date | F − D | Calculated |
H. Billed to date | Total billed, including retainage | Billing records / AR |
I. Underbilled | F − H, if positive | Calculated |
J. Overbilled | H − F, if positive | Calculated |
K. Cost to complete | B − D | Calculated |
L. Backlog (revenue left to earn) | A − F | Calculated |
About retainage: billings to date should include retainage. Retainage is money you've billed and are entitled to; you just collect it later. It sits in its own receivable account, but it doesn't change the over/underbilling math (HSM University, CON-320 Lesson 5).
About the estimated total cost: this is the column that makes or breaks the schedule. Percent complete, earned revenue and profit all depend on it. If the PM's forecast is stale, the WIP is fiction, however neat the spreadsheet looks. (Our guide to job costing for contractors covers how to forecast cost to finish.)
Step-by-step: how to build your WIP schedule each month
Close job costs for the month. Get all hours, vendor bills and sub pay apps entered and coded through month-end. Accrue big costs that have been incurred but not billed yet.
Update contract values. Add change orders approved during the month. Keep pending ones on a separate list.
Get the PM's cost-to-complete by job, built from remaining hours and dollars by cost code, not a gut-feel percentage.
Pull billings to date from AR, including retainage. Make sure it agrees with the billing log for each job.
Calculate columns C through L.
Check for loss jobs. If estimated total cost is more than the contract value, the entire expected loss gets booked now (more below).
Book the over/underbilling adjustment in the general ledger.
Review it with your PMs. Ask about any job whose estimated margin moved, and any job with a large under- or overbilling.
Save the month's WIP. Comparing this month to last month is where most of the insight comes from.
Worked example: a four-job WIP schedule (hypothetical)
All numbers are made up for illustration.
A commercial contractor has four open jobs at June 30:
Job | A. Contract | B. Est. total cost | C. Est. GP | D. Cost to date | E. % complete | F. Earned revenue | G. GP to date | H. Billed to date | I. Under-billed | J. Over-billed |
Medical office | 1,200,000 | 1,020,000 | 180,000 | 612,000 | 60.0% | 720,000 | 108,000 | 680,000 | 40,000 | — |
Retail shell | 850,000 | 731,000 | 119,000 | 182,750 | 25.0% | 212,500 | 29,750 | 160,000 | 52,500 | — |
School addition | 2,400,000 | 2,064,000 | 336,000 | 1,754,400 | 85.0% | 2,040,000 | 285,600 | 2,150,000 | — | 110,000 |
Warehouse fit-out | 600,000 | 630,000 | (30,000) | 409,500 | 65.0% | 390,000 | (19,500) | 420,000 | — | 30,000 |
Total | 5,050,000 | 4,445,000 | 605,000 | 2,958,650 | 3,362,500 | 403,850 | 3,410,000 | 92,500 | 140,000 |
Here's how the medical office line works:
Percent complete = $612,000 ÷ $1,020,000 = 60%
Earned revenue = 60% × $1,200,000 = $720,000
Billed $680,000, so it's underbilled by $40,000: the work is ahead of the billing.
The warehouse is a loss job, so book the whole loss now
The warehouse fit-out is now expected to cost $630,000 on a $600,000 contract, a $30,000 loss. The percent-complete math only recognizes 65% of it ($19,500). GAAP requires the entire anticipated loss to be recognized in the period it becomes evident, not spread over the rest of the job (ASC 605-35-25-46; see Deloitte DART 13.5). So you book an additional $10,500 provision ($30,000 − $19,500) this month.
The journal entries
Say the books recorded revenue as billed ($3,410,000) during the year. The month-end WIP adjustment:
Account | Debit | Credit |
Contract revenue | 140,000 | |
Billings in excess of costs and estimated earnings (liability) | 140,000 | |
Costs and estimated earnings in excess of billings (asset) | 92,500 | |
Contract revenue | 92,500 | |
Cost of revenue: provision for anticipated losses | 10,500 | |
Provision for anticipated losses on contracts (liability) | 10,500 |
Many contractors reverse the prior month's over/under entry and book the new totals each month. Others adjust only the change. Either works if you're consistent.
What changed on the P&L
Billing-based | WIP-adjusted | |
Revenue | 3,410,000 | 3,362,500 |
Job costs | 2,958,650 | 2,958,650 |
Loss provision | — | 10,500 |
Gross profit | 451,350 | 393,350 |
Without the WIP, this contractor would be overstating gross profit by $58,000. Most of that comes from billing ahead on the school addition and from not recognizing the warehouse loss.
How to read your WIP schedule
The math is the easy part. Reading the schedule is where the value is. Over- and underbillings aren't good or bad on their own. They're questions that need an answer, job by job.
Underbillings: why is work ahead of billing?
Possible harmless reasons: - The billing cutoff falls before month-end - A big material delivery was recorded at cost - An approved change order hasn't been invoiced yet
Possible warning signs: - The estimated total cost is too low. If the job is costing more than forecast, cost-to-cost pushes percent complete (and revenue) up, which shows up as an underbilling you'll never be able to bill. - Work is being done on unapproved changes - Billing is just slow, which means you're financing the owner
This is why sureties tend to view underbillings skeptically. A pattern of large underbillings on troubled jobs is a classic early sign of an upcoming loss (HSM University; CMAA, How to Analyze WIP Schedules).
In our example, the retail shell is 25% complete and underbilled $52,500. That's worth a direct question: did a large delivery land at month-end, or is the estimated cost to finish too optimistic?
Overbillings: is the cash still there?
A moderate overbilling position is common, especially when the payment schedule front-loads mobilization. But overbilling is cash collected for work you still owe. The key question is whether that cash is still in the bank, or whether it was spent on overhead, equipment or another job's overrun. If it's gone, you'll be finishing work without the money to pay for it.
In our example, the school addition is 85% complete and overbilled $110,000. That's fine if the cash is set aside for the last 15% of the work. It's a problem if it paid for the warehouse overrun.
Margin fade: compare this month to last month
Put this month's estimated gross profit % for each job next to last month's. Here's a hypothetical:
Job | Est. GP % at bid | Last month | This month |
Medical office | 18.0% | 17.5% | 15.0% |
Warehouse fit-out | 12.0% | 3.1% | (5.0%) |
Steady fade on a job usually means the cost forecast is catching up with reality a little at a time. The earlier you see it, the more you can do: write up change orders, adjust crews, or renegotiate.
Underbilling plus margin fade on the same job
When a job is underbilled and its margin keeps shrinking, take it seriously. Often it means costs are running over, and the WIP is recognizing revenue the job will never bill. Ask the PM to rebuild the cost to complete from scratch.
Uninstalled materials and other cost-to-cost distortions
Cost-to-cost assumes that spending tracks progress. Sometimes it doesn't:
Uninstalled materials: if $200,000 of equipment lands on site before installation, cost-to-cost can overstate progress. Under ASC 606, you may need to exclude those costs from the progress measure and recognize revenue only up to the cost of the materials (no margin) when specific conditions are met (Deloitte DART 8.5).
Wasted or inefficient costs (rework, scrap, or inefficiency that wasn't priced into the contract) don't represent progress, and generally shouldn't push percent complete up.
Front-loaded subcontracts: make sure sub costs reflect work actually performed, not just a pay app that billed ahead.
These are judgment calls. Write down how you handled each one, so your CPA and surety can follow the reasoning.
WIP schedule checklist
[ ] Job costs closed for the month; significant incurred-but-unbilled costs accrued
[ ] Contract values include approved change orders only; pending ones listed separately
[ ] Cost to complete updated by the PM from remaining hours and dollars
[ ] Billings to date agree with AR and include retainage
[ ] Total cost to date on the WIP agrees with job costs in the general ledger
[ ] Every loss job has a full loss provision
[ ] Uninstalled materials and other distortions reviewed and documented
[ ] Over/underbilling and loss-provision entries booked
[ ] Balance sheet over/under accounts agree with the WIP totals
[ ] Month-over-month GP % compared for every job
[ ] Every large under- or overbilling has a written explanation
[ ] Closed jobs moved to a "completed contracts" schedule with final margin vs. bid
Common WIP schedule mistakes
Never updating the estimated total cost. Leaving the original budget in place means profit is recognized at the bid margin until the job blows up at the end.
Counting pending change orders in the contract value. Recognize them only once they're approved, or when your CPA has concluded they meet the ASC 606 criteria for including variable consideration.
Leaving retainage out of billings. That understates billings and makes underbillings look bigger than they are.
Spreading a known loss over the rest of the job. The full loss is booked when it becomes evident.
Running the WIP only at year-end. You lose the month-to-month trend, which is where the warnings show up.
Not tying the WIP to the general ledger. If the WIP's cost to date doesn't agree with the books, one of them is wrong.
Treating overbilling cash as profit. It's money you owe in work.
A note on taxes
Your GAAP WIP schedule (for lenders and sureties) and your tax method are separate questions. For tax, many long-term contracts fall under IRC section 460. Contractors under the gross receipts threshold ($32 million for tax years beginning in 2026, per Rev. Proc. 2025-32) may qualify for the small contractor exception on contracts expected to finish within 2 years (IRS Instructions for Form 8697). Even if you qualify, your bank and surety will usually still want a GAAP-basis WIP.
When to bring in a CPA
Bring in a CPA-led accounting team when:
A surety or lender has asked for a WIP schedule, or for reviewed or audited financials
Your gross profit swings wildly from month to month and you can't explain why
You have big over- or underbillings no one has explained
You suspect a job is losing money but haven't booked a loss
Your PMs' forecasts and your accounting numbers don't agree
You're about to take on a much larger job, or more bonded work
We build and run the monthly WIP with you. That means tying job costs to the general ledger, challenging the cost-to-complete forecasts with your PMs, and handing you a schedule your surety can rely on.
FAQ
What is a WIP schedule in construction?
It's a monthly report listing every open job's contract value, estimated total cost, cost to date, percent complete, earned revenue, billings and resulting over- or underbilling. It's used to recognize revenue based on progress and to show lenders and sureties the health of your jobs.
How do you calculate overbilling and underbilling?
First calculate earned revenue: (cost to date ÷ estimated total cost) × contract value. Then subtract earned revenue from billings to date. A positive result is an overbilling (a liability); a negative result is an underbilling (an asset).
Is overbilling bad?
Not necessarily. Moderate overbilling is common and helps cash flow. It becomes a problem when the cash has already been spent and there isn't enough left to finish the work you've been paid for.
Why do sureties worry about underbillings?
An underbilling is revenue you've recognized but haven't billed. If it's there because costs are running over, the revenue may never be billed or collected. That's why sureties often scrutinize or discount underbillings.
How often should I prepare a WIP schedule?
Monthly. Year-end only is too late to catch problems, and comparing month to month is how you spot margin fade early.
Does retainage go in billings to date?
Yes. Billings to date should include retainage. Track the retainage itself as a separate receivable.
Not sure your WIP is telling the truth?
Book a Free Financial Checkup. It's a 30-minute call with a CPA. We'll look at how you're producing your WIP today, where it might be off, and what it would take to get a schedule your surety trusts. No pressure, just honest next steps.
This article is general information, not tax, legal or surety advice. Talk with your CPA about your specific situation.

Comments