Esc

↑↓ move↵ openIndex · Pagefind

Over billing vs under billing: what your WIP is telling you

Over 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.

Charley Forey5 min readAccountingWIPBilling
On this page
  1. The two numbers behind the column
  2. What overbilling usually means
  3. What underbilling usually means
  4. Billing problem or estimate problem?
  5. Five questions for every WIP review
  6. Why the column is so often wrong
  7. What we’re building

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?

OVERBILLED · BILLINGS IN EXCESS OF COSTS AND ESTIMATED EARNINGSEARNEDBILLEDLIABILITYUNDERBILLED · COSTS AND ESTIMATED EARNINGS IN EXCESS OF BILLINGSEARNEDBILLEDASSET
The same gap, read from both sides. Which bar moved is the real question.

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.

The other overbillingAn overbilling can also be manufactured by a cost to complete that’s too high. A pessimistic estimate lowers percent complete, lowers earned revenue, and makes the job look overbilled. Rare, but it happens when a PM pads the forecast to create a cushion for later.

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:

Illustrative numbersThese four jobs are made up to show the pattern. They are not drawn from real contractors.
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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Try thisTake your three most underbilled jobs from last month. For each, list the approved change orders not yet billed, and when the cost to complete was last revised. You’ll usually find one billing problem and one estimate problem hiding in the same column.

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

Written by

Charley Forey

Founder of os.construction. We're building the operating system for construction. Project Financials follows job money, and company Accounting covers the books and controls. AI agents remain planned. We write about how money and data actually move on a job, and we build in public.

Apply to the founding program →Start a free trial →
Open file