On this page
Every month the WIP schedule produces one column that gets more attention than the rest: over / (under) billing. Bankers look at it. Sureties look at it harder. And in a lot of review meetings it gets read like a score, overbilled is good, underbilled is bad, move on.
That reading is wrong often enough to be dangerous. Over and under billing are not results. They’re the gap between two numbers that come from different places, and the gap only means something once you know which number moved.
The two numbers behind the column
For a job using cost-to-cost percent complete, the column is:
over / (under) billing = billed to date − earned revenue
and earned revenue is:
earned revenue = (cost to date ÷ estimated total cost) × revised contract
So the column depends on four inputs: what you’ve billed, what you’ve spent, what you think it will cost to finish, and the contract value including approved change orders. Billing is a decision your team makes every month. Earned revenue is an estimate built on the cost to complete. When the column changes, the first question is always: did billing move, or did the estimate move?
What overbilling usually means
Overbilling shows on the balance sheet as a liability: billings in excess of costs and estimated earnings. You’ve been paid, or at least invoiced, for work you haven’t done yet. You owe the owner that work.
A modest overbilling is normal and often healthy. It usually comes from one of these:
- A front-loaded schedule of values. Mobilization, general conditions or early trades weighted heavier than the cost curve. Common, sometimes negotiated, and it reverses later in the job.
- Deposits and stored materials. Billing for equipment or material that’s been bought or delivered before it’s installed and before the cost hits your books.
- Timing. You billed through the 25th, and some costs for that work haven’t been invoiced to you yet.
The question to ask about overbilling is where the cash went. If a job is overbilled by $400,000, the company should be sitting on roughly that much extra cash from it. A common surety check compares total overbillings to cash on hand. If overbillings exceed cash, the overbilling cash has already been spent, usually funding other jobs or overhead. That’s the warning sign, not the overbilling itself.
What underbilling usually means
Underbilling is an asset: costs and estimated earnings in excess of billings. You’ve done work you haven’t billed for. You’re financing the owner.
There are innocent explanations:
- Approved change orders that aren’t on the pay app yet. Cost is in, contract value is up, nothing has been billed.
- Retainage and billing cutoffs. Not retainage itself (retained amounts are billed, just not collected), but billing periods that end before the cost period.
- Back-loaded SOV. The opposite of front-loading.
And there’s the explanation that keeps CFOs up at night: the cost to complete is too low. An optimistic estimate inflates percent complete, which inflates earned revenue, which creates an underbilling that isn’t really billable. It’s unrecognized fade. That’s why sureties and lenders often discount underbillings when they assess a contractor, and why a large, persistent underbilling on a single job is worth a hard conversation.
Billing problem or estimate problem?
When a job swings, put the change into one of two buckets. Here’s an illustrative portfolio of four jobs, before and after a month:
| Job | Last month | This month | What moved | Bucket |
|---|---|---|---|---|
| A | $120K over | $310K over | Billed a large stored-materials line | Billing |
| B | $90K under | $640K under | Two approved COs not yet billed | Billing |
| C | $50K under | $480K under | Cost to date jumped, estimate unchanged | Estimate |
| D | $200K over | $20K under | Cost to complete raised by $900K | Estimate |
Job B is a billing problem with an easy fix: get the change orders onto the next pay app. Job C is the one to worry about. Costs came in faster than planned and nobody touched the forecast, so percent complete jumped and earned revenue followed. Either the work really is further along (great, bill it) or the job is overrunning and the cost to complete is stale. Job D is honest bad news: the PM raised the estimate, margin faded, and the underbilling is real arithmetic, not cash you can collect.
Five questions for every WIP review
- What’s the trend, not the balance? One month tells you little. A job that’s drifted further underbilled for four straight months is telling you something.
- Does it reconcile to the CO log? Approved but unbilled change orders should roughly explain a billing-driven underbilling. If they don’t, look at the estimate.
- When was cost to complete last updated, and by whom? A forecast that hasn’t moved while costs have is the most common source of a misleading column.
- Does field progress agree? Compare cost-to-cost percent complete with the PM’s physical percent complete. A gap of more than a few points deserves a sentence of explanation.
- Where’s the cash? Total overbillings against cash, every month.
If you want to run the numbers on a single job, our WIP calculator does the math in your browser, and the WIP schedule glossary entry covers the columns.
Why the column is so often wrong
None of the math is hard. The column is wrong because the inputs arrive from different systems on different days. Billed to date comes from AR or the billing spreadsheet. Cost to date comes from accounting, missing whatever hasn’t been invoiced or accrued. Approved change orders live in the PM platform and reach the contract value when someone updates it. Cost to complete lives in a PM’s spreadsheet. By the time all four agree, the month is two weeks old.
What we’re building
In os.construction, the contract, the change orders, the schedule of values, the commitments and the forecast are one record. We’re designing WIP so the over/under column can show why it moved: billed change, cost change or estimate change, with the source records one click away. WIP is planned. It isn’t in the app yet. It will build on the contract, change orders and budget that are live today.
If your WIP review is still a debate about which number is right, join the founding program and show us how you read the column today.
Share this article