Anatomy of a WIP schedule
Build a work-in-progress schedule for four jobs, one column at a time, and see exactly how over billing, under billing and fade fall out of the math. Then see it the way your banker and surety do.
The WIP schedule, built column by column
- Month-end · sample data
One question per job
A WIP schedule asks, for every open job: have we billed more or less than we've earned? Four jobs, nine columns. Let's build it.
- Column 1
Contract
Original contract plus approved change orders. Riverside includes CO #14, so it's $49,300,000, the same contract sum to date as Pay App #9.
- Column 2
Estimated total cost
What the PM expects the whole job to cost now: cost to date plus cost to complete. Not the original budget. A stale estimate breaks every column after this one.
- Column 3
Cost to date
Actual job cost posted through month-end: labor, material, subs, equipment. It comes from the job cost ledger, not from billing.
- Column 4
Percent complete, cost-to-cost
Cost to date divided by estimated total cost. It's the most common method for recognizing revenue over time under ASC 606.
Riverside: $31,700,000 ÷ $43,679,800 = 72.6% - Column 5
Earned revenue
Contract times percent complete. This is the revenue you've actually earned, whatever you've billed.
$49,300,000 × 72.6% = $35,778,781 - Column 6
Billed to date
Gross billings including retainage. Riverside's ties to G702 line 4 on Pay App #9: $33,000,000.
- Column 7
Over or under billed
Billed minus earned. Positive is over billing, a liability: cash you owe back in work. Negative is under billing, an asset: work you've financed for the owner.
Harbor Point: $15,100,000 − $13,800,000 = +$1,300,000 - Column 8
Projected gross profit
Contract minus estimated total cost: what the job will make if the estimate holds.
Portfolio: $9,252,200 · 10.5% margin - Column 9
Fade
The change in projected profit since last month's WIP. Eastgate's cost estimate grew, so its profit dropped $382,500, from 9.0% to 6.0%.
Fade is the trend lenders watch. One bad month is a story; three is a pattern.
- The other side of the table
What your banker and surety see
They read the totals, then go straight to the outliers. Under billings get the hardest look: many sureties discount them because they're the asset most likely to evaporate.
Try your own numbers in the WIP calculator.
The whole WIP schedule, as a table
Every number from the walkthrough above, month-end, sample data. Over/under is billed minus earned: positive is over billed, negative is under billed.
| Job | Contract | Est. total cost | Cost to date | % complete | Earned revenue | Billed to date | Over / (under) | Projected GP | Fade vs last month |
|---|---|---|---|---|---|---|---|---|---|
| Riverside Medical Center 24-118 | $49,300,000 | $43,679,800 | $31,700,000 | 72.6% | $35,778,781 | $33,000,000 | −$2,778,781 | $5,620,200 (11.4%) | −$49,300 |
| Harbor Point Lofts 24-131 | $18,400,000 | $16,560,000 | $12,420,000 | 75.0% | $13,800,000 | $15,100,000 | +$1,300,000 | $1,840,000 (10.0%) | $0 |
| Eastgate Elementary 25-007 | $12,750,000 | $11,985,000 | $6,591,750 | 55.0% | $7,012,500 | $6,800,000 | −$212,500 | $765,000 (6.0%) | −$382,500 |
| Mill Street Warehouse 25-019 | $7,900,000 | $6,873,000 | $2,061,900 | 30.0% | $2,370,000 | $2,900,000 | +$530,000 | $1,027,000 (13.0%) | $0 |
| Total | $88,350,000 | $79,097,800 | $52,773,650 | 66.7% | $58,961,281 | $57,800,000 | −$1,161,281 | $9,252,200 (10.5%) | −$431,800 |
- Backlog
- $29,388,719
- Over billings (liability)
- $1,830,000
- Under billings (asset)
- $2,991,281
- Net
- −$1,161,281 (under billed)
Mistakes that make a WIP lie
A stale estimate
Percent complete, earned revenue, over/under and profit all move with estimated total cost. If the PM hasn't updated it, every number is wrong at once.
Overruns inflate percent complete
Spend more than planned without raising the estimate and the job looks further along, so earned revenue and under billing both look better than they are.
Unapproved change orders
Cost for pending CO work lands in cost to date while the revenue isn't in the contract yet. Decide how you treat it, and be consistent.
Re-keyed from three systems
Job cost from accounting, estimates from the PM's spreadsheet, billing from the pay app file. Every copy is a chance to be a month behind.
Keep going
Keep exploring
Related across os.construction
- DocsWIP and over/under billingHow a work-in-progress schedule is calculated with the cost-to-cost method, what over and under billing mean, and how we plan to compute it live (Planned).
- BlogWIP shouldn't be a month-end projectThe work-in-progress schedule is the most important report a contractor produces, and most build it from four sources a week after the month closes. Here's the math, what over and under billing really tell you, and why WIP should be live.
- GlossaryWIP scheduleA monthly report that compares each open job's earned revenue to its billings to show over billing, under billing and projected profit.
- GlossaryEarned revenueThe portion of contract value a contractor has earned to date, typically percent complete times total contract value.
- DocsJob cost and WIPReview job cost forecasts, then compute, approve and post the WIP schedule.
- BlogOver billing vs under billing: what your WIP is telling youOver and under billing aren't good or bad on their own. They're symptoms. Here's how to read each one, the questions that separate a billing problem from an estimate problem, and the checks a surety will run before you do.
Sample project included
Try this workflow on the sample project
Every trial workspace includes a sample project with sample data, so you can follow these steps in the app before touching a live job.
Want this on live job data?
Change orders and pay apps are live in os.construction; WIP and AP are planned. On one record, every number on this page is entered once.
14-day free trial. Pricing for paid plans isn't set yet. Talk to us. Already have an account? Sign in →
All figures are illustrative sample data, not a real project. Contract terms and state law decide how retainage, stored materials and change orders work on your job. Check both.