HomeGuidesHow to build a WIP schedule
Guide

How to build a WIP schedule

A plain-English walkthrough of the construction work-in-progress schedule: the cost-to-cost method, over and under billing, the columns it contains, and a full worked example you can follow line by line.

What a WIP schedule is, and why it matters

A work-in-progress (WIP) schedule is a report that shows, for every open job, how far along the work is, how much revenue you have actually earned, and how that earned revenue compares to what you have billed. On long-duration construction contracts, revenue is recognized as you perform the work, not when you send an invoice. The WIP schedule is the tool that translates "we're about halfway done" into a dollar figure your financial statements can stand on.

It matters because almost everyone who evaluates a contractor reads it. Your bonding company and surety use the WIP to judge how well you estimate and control jobs before they extend a bond line. Your bank leans on it to understand the real earnings behind your balance sheet. Your CPA needs it to book percentage-of-completion revenue correctly at year end. And internally, it is the earliest warning system you have: a WIP schedule updated every month catches a job that is bleeding cost (or one you have overbilled and are quietly borrowing against) while there is still time to react.

Skip it, or build it once a year in a hurry, and you are flying blind on the two questions that sink contractors: are my jobs actually making the margin I bid, and am I billing ahead of the work I've done?

The cost-to-cost percentage-of-completion method

Almost every construction WIP schedule is built on one simple idea: you are as far along as the share of your costs you have already spent.

The cost-to-cost method measures percent complete by comparing costs incurred to date against the total costs you expect the job to require:

That last line is the one everyone cares about. When you have billed more than you have earned, the difference is called billings in excess of costs and estimated earnings. It is a liability on your balance sheet, because it represents work you have collected for but not yet performed. When you have billed less than you have earned, the difference is costs and estimated earnings in excess of billings, an asset, because you have done work you have not yet invoiced.

A healthy contractor tends to bill slightly ahead of cost to stay cash-positive, but large or growing overbillings are a red flag: they can mask a job that is losing money, and they represent cash you may have to give back in production later. Underbillings are money left on the table and a sign your billing is lagging your field.

A worked example

Numbers make this concrete. Follow one $500,000 roofing contract through the math.

Say you hold a commercial re-roof contract worth $500,000. Your estimate says the job will cost $350,000 in labor, material, equipment, and subcontract to complete. As of month-end, your job-cost report shows you have spent $175,000 so far.

Now bring in billings. Suppose your pay applications to date total $300,000. Compare that to the $250,000 you have earned:

You are carrying a $50,000 billing in excess, a liability. That is not automatically bad; you are ahead on cash. But it means the next $50,000 of work is, in a sense, already spoken for, and if your cost estimate is too optimistic, that cushion can evaporate. Flip the billings to $220,000 instead and the sign reverses: $220,000 − $250,000 = −$30,000 underbilled, an asset. You have performed $30,000 of work you have not yet invoiced, and you should get a pay application out.

The columns a WIP schedule contains

A standard WIP schedule is one row per open job and a set of columns that walk left to right from contract value to over/under billing. The typical layout:

Controllers frequently add a few more: costs remaining (estimated total cost − cost to date), gross profit earned to date, and a comparison of this month's estimated margin to last month's, which surfaces jobs whose margin is quietly slipping.

How to build one, step by step

The mechanics, in the order you actually do them each month.

1. Gather contract values, including change orders

Start with each open job's original contract. Add every approved change order to get the revised contract value. Only signed, approved changes belong here. Pending or verbal changes are not contract yet, and including them overstates both revenue and margin.

2. Update your total estimated cost

For each job, refresh the forecast of what it will cost to finish. This is your best estimate today, not the original bid frozen in time, reflecting cost overruns, buyout savings, and any change-order scope. A stale estimate is the single biggest source of a wrong WIP.

3. Pull actual cost to date

From job costing, total the labor, material, equipment, and subcontract cost booked to each job through the cut-off date. Committed costs matter here: an installed material you have received but not yet been billed for is a real cost incurred, and leaving it out inflates your percent complete downward.

4. Compute percent complete

Divide cost to date by total estimated cost for each job. This is the engine of the whole schedule: every revenue and billing comparison flows from it.

5. Compute earned revenue

Multiply each job's percent complete by its revised contract value. That is the revenue you have earned to date under percentage-of-completion, regardless of what you have billed.

6. Compare to billings and read the result

Pull billed-to-date from your pay applications and subtract earned revenue. Positive is overbilled (a liability); negative is underbilled (an asset). Scan the column: large or growing overbillings and any underbilling that should have been invoiced are your action items for the month.

Common mistakes that break a WIP

Most bad WIP schedules fail for the same handful of reasons.

🧊

Stale cost estimates

Running percent complete against last quarter's cost estimate makes a job that is over budget look on track. Re-forecast estimated total cost every period, not just when it hurts.

📦

Missing committed costs

Material received but not yet vouchered, or a sub's completed work not yet billed, is real cost incurred. Leave it out and your percent complete (and earned revenue) come in low.

📝

Ignoring change orders

Approved change orders belong in the revised contract and, if they add cost, in the estimate. Tracking billings against the original contract while the scope has grown corrupts every downstream number.

🔀

Mixing estimates into actuals

Cost to date must be actual, source-document cost, never a prorated or estimated figure. Blending the two is how a WIP quietly stops tying to the general ledger.

📆

Only doing it quarterly

A WIP built four times a year catches problems a quarter late. Monthly is the standard; the whole value is early warning, and early means monthly.

Percent complete over 100%

If cost to date exceeds your estimate, percent complete tops 100%: a sign the estimate is wrong, not that the job is 110% done. Cap it, and treat it as a signal to re-forecast the cost immediately.

Doing it without the spreadsheet pain

Every step above is arithmetic, and every step is also a place a manual spreadsheet drifts. A pasted cost number that never got refreshed, a change order that made it into the contract column but not the estimate, a billed-to-date figure keyed by hand from a stack of pay apps. Any one of them quietly throws the whole schedule off, and you usually find out when the surety asks.

The fix is to build the WIP from the same data that runs the job. When your job costing is source-document accurate and your billings live in the same system, the WIP schedule computes itself: revised contract from approved change orders, cost to date from the ledger, billed to date from your pay applications, over/under billing falling out automatically, and a month-end snapshot you can hand to the bank. That is exactly what WIP schedule software is for.

Frequently asked questions

What is the difference between overbilling and underbilling?
Both compare what you have billed to what you have earned. Overbilling (billings in excess of costs and estimated earnings) means you have billed more than the work performed, a liability, because you owe that production. Underbilling (costs and estimated earnings in excess of billings) means you have performed work you have not yet invoiced, an asset. A little overbilling keeps you cash-positive; large or growing overbillings can hide a losing job.
How often should I update my WIP schedule?
Monthly is the standard for most contractors, tied to your month-end close. The entire value of a WIP is early warning, and quarterly is usually too slow to react to a job that is drifting. Some contractors on large or fast-moving work run it more frequently.
Who actually reads the WIP schedule?
Your bonding company and surety use it to judge how well you estimate and control jobs before extending bond capacity. Your bank uses it to understand the earnings behind your balance sheet. Your CPA uses it to recognize percentage-of-completion revenue at year end. And your own leadership uses it to catch margin fade and billing problems early.
What is the cost-to-cost method, and are there alternatives?
Cost-to-cost measures percent complete as costs incurred to date divided by total estimated costs, the most common approach in construction. Some contractors instead measure completion by units installed, labor hours, or a physical milestone (an "effort-expended" or output method). Cost-to-cost is popular because it ties directly to job costing and is easy to audit.
Why does my percent complete sometimes exceed 100%?
That happens when cost to date exceeds your estimated total cost, which means the estimate is too low, not that the job is more than finished. Treat it as a prompt to re-forecast the cost immediately, and cap the reported percent complete at 100% so earned revenue never exceeds the contract.

Keep exploring

Stop rebuilding your WIP in a spreadsheet

See how SitewideOps computes over/under billing straight from your job costs and pay applications, with a month-end snapshot your surety can read.

Get early access Explore the platform