01 The job we'll follow
Meet Job 214 — a $1.2M tilt-up warehouse, halfway through.
Every number on a WIP schedule traces back to four facts you already know about a job: what you signed up to build it for, what you thought it would cost, what you've spent so far, and what you've billed the owner. Everything else is calculated from those. Here's where Job 214 stands today.
Those last two — what you've billed and what's left to spend — are where the whole story hides. Hold onto them.
02 Build it one column at a time
Six columns. Each one answers a question, and three of them you don't enter — they're calculated.
A WIP schedule reads left to right like a sentence. The first columns are facts you type in. The last ones are answers the schedule works out for you. That's the part contractors miss: most of a WIP isn't data entry, it's arithmetic you'd want done anyway.
Contract value You enter it
The total you'll bill the owner for the finished job, including approved change orders. For Job 214 that's $1,200,000. This is the ceiling — earned revenue can never exceed it.
Estimated total cost You enter it
Your best current estimate of what the whole job will cost to build — not the original bid, today's honest number. Job 214 is at $1,020,000, which implies a $180,000 gross profit (15%) if the estimate holds.
Cost to date You enter it
What you've actually spent so far — labor, materials, subs, equipment — straight from your job-cost ledger. For Job 214, $561,000. This is the single most important number to keep current, because the next column depends entirely on it.
Percent complete Calculated: C ÷ B
Cost-to-date divided by estimated-total-cost. This is the "cost-to-cost" method every surety expects. Job 214: $561,000 ÷ $1,020,000 = 55% complete. Notice it's measured by cost, not by how far along the building looks — that's deliberate, and it's why a stale cost estimate quietly distorts everything downstream.
Earned revenue Calculated: D × A
Percent-complete times contract value. If you're 55% done, you've earned 55% of the contract: 0.55 × $1,200,000 = $660,000. This is the number your P&L should be recognizing — and it's almost never the same as what you've billed.
Over / under billing Calculated: Billed − Earned
The punchline. Billed-to-date minus earned revenue. Job 214 billed $684,000 but earned $660,000 — so it's overbilled by $24,000. That $24,000 is cash in the bank that you haven't actually earned yet. It isn't profit. It's a bill you've front-loaded, and it has to be delivered before the job closes.
03 The worksheet, doing its job
Here it is assembled — now move the one number that drives everything.
Below is Job 214 as a real WIP line, alongside two other jobs so you can see a schedule the way a surety would. The blue cells are the inputs; the rest is calculated live. The slider controls Job 214's estimated cost to complete — the forward-looking guess that's easiest to let go stale. Drag it and watch percent-complete, earned revenue, and the billing verdict move together.
| Job | A Contractvalue |
B Est. totalcost |
Est. grossprofit | C Cost todate |
Cost tocomplete | D %complete |
E Earnedrevenue |
Earnedprofit | Billed todate | F Over / underbilling |
Backlogremaining |
|---|---|---|---|---|---|---|---|---|---|---|---|
04 Reading the verdict
Column F has two faces, and neither one is automatically good or bad.
The over/under-billing number is the whole reason the schedule exists. It's the gap between the cash you've collected and the work you've actually delivered. Which side you're on tells a surety — and should tell you — something specific.
05 Why you'd run this anyway
Even if you never pull a bond, this is the report that runs your jobs.
What a reconciled WIP gives you every month
Earned profit, not billed cash. It strips out the timing noise of when you happened to invoice and shows what you've actually made on each job to date.
An early-warning radar. When estimated cost-to-complete creeps up, percent-complete and earned revenue react immediately — months before a fade reaches your income statement.
A true read on backlog. Contract value minus earned revenue is the profitable work you have left. It's the number that tells you whether next quarter is covered.
And if you ever do need bonding, it's already done. The full schedule — with gross profit, earned profit, and backlog columns — is exactly what a surety underwriter looks for. Run it for yourself every month and a bonding-ready statement is a by-product, not a scramble.