Construction WIP Schedule and Over/Under Billing Calculator
Runs a job portfolio through cost-to-cost percentage of completion, splits the billing position into contract assets and contract liabilities the way ASC 606 presents them, and measures profit fade against the prior estimate job by job. Built for construction CFOs, controllers and the CPAs who prepare their WIP schedules — the people who hand this document to a surety or a bank and get asked about it.
Download This Calculator
Get the Excel spreadsheet behind this calculator to use offline, customize for your needs, and publish as a web tool using Sheetflow.
Gross, Not Net
The defaults read $257,546 net overbilled. The balance sheet carries $326,369 of contract assets and $583,915 of contract liabilities — $910,283, or 3.53 times the net figure. ASC 606 determines the position per contract and never nets across them.
Worse Jobs, Better-Looking Billings
Raising a cost estimate lowers percent complete, so the job looks more overbilled. Before the estimates deteriorated the portfolio was $101,425 net underbilled; $445,000 of profit fade alone swung it $358,971 toward overbilled.
Overbillings on Loss Jobs
Job 3 expects a $180,000 loss and is overbilled by $375,581 — 64.3% of every overbilling dollar in the portfolio. That is billing run ahead on work guaranteed to lose money, and it is what gets a bonding line reduced.
Frequently Asked Questions
This is the portfolio schedule, not the single-contract calculation. If you need earned revenue on one contract, or the loss-recognition rule for a single job, use the Percentage-of-Completion Method Calculator instead. This one takes five jobs at once and answers the balance sheet question: where do you stand on billings, and what does the schedule reveal that the net figure does not.
What is a WIP schedule actually telling me?
Two different things at once, which is why it gets misread.
The income statement half is earned revenue. Measure progress by cost-to-cost — costs incurred to date over total estimated cost, the input method described at ASC 606-10-55-20 — then multiply by the contract price. On the defaults that gives $8,022,454 of revenue earned across five jobs.
One thing to get right on entry: the denominator is the total estimated cost of the job, not the cost still remaining. Enter job 1's remaining $1,260,000 instead of its $3,360,000 total and it reads 100% complete rather than 62.5%, because percent complete is capped at 100% and the cap swallows the error. The calculator counts jobs whose incurred cost exceeds their estimate so a mistyped figure shows up rather than passing silently.
The balance sheet half is the gap between what you billed and what you earned. Billings ahead of earned revenue is a contract liability: you have been paid for work you have not done. Billings behind earned revenue is a contract asset: you have done work you have not yet billed. The defaults carry $8,280,000 of billings against that $8,022,454 earned, so the portfolio reads $257,546 net overbilled.
The two halves move independently, and neither one is cash. A job can be profitable and underbilled, or losing money and overbilled, and most contractors have both in the portfolio at the same time.
| Job | Percent complete | Earned revenue | Billing position |
|---|---|---|---|
| 1 — riverside bridge | 62.50% | $2,625,000 | $175,000 over |
| 2 — metro clinic fit-out | 66.07% | $1,222,222 | $172,222 under |
| 3 — harbour warehouse | 69.77% | $1,674,419 | $375,581 over |
| 4 — school annex | 66.06% | $634,146 | $154,146 under |
| 5 — data centre shell | 33.33% | $1,866,667 | $33,333 over |
Three jobs overbilled, two underbilled. The net of all five is the $257,546.
Why is the net over/under billing figure misleading?
Because it is not what appears on the balance sheet, and it conceals how large both sides are.
Under ASC 606 the position is determined per contract. Each job nets its own billings against its own earned revenue and lands entirely in either the contract asset column or the contract liability column. You then report the aggregate of each — two separate lines. There is no netting across contracts.
So the defaults produce:
| Amount | |
|---|---|
| Contract assets, underbillings | $326,369 |
| Contract liabilities, overbillings | $583,915 |
| Total carried on the balance sheet | $910,283 |
| Net figure commonly quoted | $257,546 |
The balance sheet carries 3.53 times what the net figure suggests. The net is a management number. It is useful for a quick read on working capital, and it is the wrong number to hand anyone evaluating your balance sheet.
The net is also unstable in a way the gross is not. Bill job 3 to exactly its earned revenue — change its billings to date from $2,050,000 to $1,674,419 — and the portfolio flips from $257,546 net overbilled to $118,035 net underbilled. One job moved. Contract assets did not change at all; they sit at $326,369 in both cases. A figure that changes sign when a single job adjusts its billing is not describing the portfolio.
Why did my billing position improve while the jobs got worse?
This is the one worth sitting with, and it is arithmetic rather than anything sinister.
Percent complete is costs incurred over total estimated cost. Raise the estimate and the denominator grows, so percent complete falls, so earned revenue falls — and because billings have not moved, the job looks more overbilled. Bad news about cost makes the billing position look healthier.
Set every job's current estimate back to its prior estimate in the calculator, so the deterioration never happened, and watch what the portfolio does:
| Estimates never moved | Estimates as they stand | |
|---|---|---|
| Contract assets | $479,146 | $326,369 |
| Contract liabilities | $377,721 | $583,915 |
| Net position | $101,425 under | $257,546 over |
| Total profit fade | $0 | $445,000 |
The portfolio was net underbilled by $101,425 before the estimates deteriorated. The $445,000 of gross profit that evaporated is precisely what pushed it to $257,546 net overbilled — a $358,971 swing toward "overbilled" produced entirely by cost estimates rising. Nothing was billed differently. No work was done differently.
That is why profit fade belongs on the same page as the billing position. Read on its own, the billing position moved in the direction that usually signals strength. Read next to fade, it is the signature of three jobs whose total cost estimate got worse:
| Prior estimate | Current estimate | |
|---|---|---|
| Portfolio gross profit | $2,862,800 | $2,417,800 |
| Portfolio margin | 19.07% | 16.11% |
2.96 margin points gone across three of five jobs. The calculator reports fade per job so you can see where: job 3 lost $300,000, job 2 lost $185,000, job 1 lost $10,000, and job 5 improved by $50,000.
What is a surety or a banker looking for in this schedule?
Four things, and the calculator computes all of them.
Overbillings on loss jobs. Job 3 now expects to cost $2,580,000 against a $2,400,000 contract — an expected loss of $180,000. It is also overbilled by $375,581. That is billing run ahead on work guaranteed to lose money, and it is 64.3% of every overbilling dollar in the portfolio. Those are the jobs where billings on one contract are quietly funding costs on another, and that is the pattern that gets a bonding line reduced.
Note how fast this appears. Job 3 crosses from profitable to loss-making somewhere between a $2,400,000 and a $2,580,000 cost estimate — a 7.5% move:
| Job 3 total cost estimate | Loss jobs | Overbillings on loss jobs | Portfolio margin |
|---|---|---|---|
| $2,400,000 | 0 | $0 | 17.31% |
| $2,580,000 | 1 | $375,581 | 16.11% |
| $2,900,000 | 1 | $560,345 | 13.98% |
The loss itself, recognised in full. Once a loss is evident, ASC 605-35-25-46 requires the whole expected loss in that period — not spread across remaining progress. The calculator reports the $180,000 so you know the charge is coming; the mechanics of booking it sit in the single-contract calculator.
Profit fade as a trend. One quarter of fade is an estimate correction. Three consecutive quarters is a message about how you bid or how you run jobs, and bonding capacity responds to the trend rather than the quarter.
Projected margin against history. The defaults project 16.11% on work in progress against 14.5% achieved on completed jobs — 1.61 points above what you have actually delivered. A modest gap is normal. A portfolio projecting several points above its own completed-work history is forecasting an improvement it has not demonstrated, and that is what draws the question.
What does this calculator not cover?
Five boundaries, and the first two will matter to most users.
No retainage. Retainage is generally a contract asset rather than a receivable, because payment usually depends on conditions beyond the passage of time. It affects classification and it affects cash badly, and this model does not carry it. Add it before the schedule goes to a lender.
Profit fade isolates the cost side. Fade here is the movement in estimated cost between two periods. If your contract price also changed, put approved change orders into the current contract price so the comparison stays like for like — otherwise an unpriced change order reads as fade when it is really a pricing timing difference. Unapproved and disputed change orders are a variable consideration question and belong nowhere in this schedule until they clear the constraint.
Five jobs, one period. The method is per-job and scales by adding rows, but a real portfolio runs to dozens of contracts and the useful version of this report is a query against your job cost system. Treat this as the model that proves what the report should say.
Contract-level loss measurement. The loss flag compares total estimated cost to the contract price for the whole job. ASC 605-35-25-47 permits measuring at the performance obligation level instead, applied consistently to similar contracts. If you have elected that, the loss figure here is indicative rather than your number.
No current and noncurrent split, no cash. A classified balance sheet needs contract assets and liabilities bifurcated, though many contractors classify everything current because the operating cycle exceeds a year. And nothing here is cash — billings are invoiced, not collected, and the difference between the two is a separate conversation with the same banker.
Transform Your Excel Models into Web Tools
Turn your complex Excel calculations into online calculators, web forms, and APIs. No coding required — upload your spreadsheet and publish your calculations instantly.
Calculations are for estimation and planning purposes. Users should verify important results for their specific situations. No signup required. Calculations performed securely.