Construction WIP report: how to build one

A construction WIP (work in progress) report is a schedule with one line for every open job. It shows how much of the work is done, how much of the contract you've earned, and whether you've billed ahead of the work or behind it. Percent complete is cost to date divided by estimated total cost, and earned revenue is the contract value times that percent. Billed to date minus earned revenue is your overbilling, or your underbilling when the number comes out negative.
You need one once your jobs cross a month-end: remodels, pool builds, big roof replacements, new-construction HVAC installs. On those jobs the bank balance misleads you both ways. A fresh deposit makes you look rich, and a job that's 80% built and half billed makes you look broke. The WIP report sits next to the financial reports every contractor needs, and it's the main thing that sets construction bookkeeping apart from service-shop books.
What goes on a WIP report?
Eight columns, one row per open job. Four of them are inputs, and the other 4 are math.
- Contract value: the signed price plus approved change orders. A change order the customer hasn't signed stays out.
- Estimated total cost: cost to date plus what it'll take to finish, meaning labor at its fully loaded rate, materials, subs, permits and equipment. Your project manager updates it every month.
- Estimated gross profit: contract value minus estimated total cost.
- Cost to date: every job cost posted through the last day of the month.
- Percent complete: cost to date ÷ estimated total cost.
- Earned revenue: contract value × percent complete.
- Billed to date: every dollar invoiced on the job, deposits included, paid or not.
- Over (under) billed: billed to date minus earned revenue. A positive number means you're overbilled, and a negative one means you're underbilled.
One catch on percent complete. Materials delivered and not yet installed, like a pool equipment package sitting in your yard, push cost to date up before the work is done. Leave them out of cost to date until they're in, or the job looks further along than it is.
A WIP report example
Here's an example pool builder at the end of a month with 3 open jobs. The numbers are made up and rounded to show the math. Job A is a new pool a few weeks in, Job B is a pool and spa at the tile stage, and Job C is a remodel that's almost done.
| Column | Job A | Job B | Job C | Total |
|---|---|---|---|---|
| Contract value | $100,000 | $80,000 | $50,000 | $230,000 |
| Estimated total cost | $70,000 | $60,000 | $35,000 | $165,000 |
| Estimated gross profit | $30,000 | $20,000 | $15,000 | $65,000 |
| Cost to date | $21,000 | $45,000 | $31,500 | $97,500 |
| Percent complete | 30% | 75% | 90% | |
| Earned revenue | $30,000 | $60,000 | $45,000 | $135,000 |
| Billed to date | $45,000 | $50,000 | $45,000 | $140,000 |
| Over (under) billed | $15,000 | ($10,000) | $0 | $5,000 |
Read down Job A. $21,000 spent out of a $70,000 budget is 30% complete, so the job has earned 30% of $100,000, or $30,000. The customer has been billed $45,000 for the deposit and the first draw, so Job A is overbilled by $15,000. Job B has earned $60,000 and been billed $50,000, so it's underbilled by $10,000. Job C is billed right where it should be.
What does overbilling mean?
Overbilling means the customer has been billed for work you haven't done yet. On Job A, $15,000 of the money in your account belongs to work you still owe. Treat it like a loan from the customer that you pay back in labor and materials.
Some overbilling is normal, even healthy, for a remodeler or a pool builder. Deposits and front-loaded draws mean the customer's money funds the job instead of yours. The danger is spending it. Buy a truck or take a big owner draw off a bank balance that's really deposits, and the last weeks of every job have bills with no payment coming in. When sales slow down, the new deposits that were covering those bills slow down too.
So check one thing every month: your cash should cover your total overbilling. In the example that's $15,000, all from Job A. Don't net Job B's $10,000 against it, because underbilled work isn't cash until you bill it and the customer pays. Then put the draws still to come into your cash flow forecast, so you can see the weeks where costs land before the next payment.
Deposits also need their own home in the books. If they land as income the day they arrive, your P&L shows a profit in the month you sign jobs and a loss in the months you build them. The construction chart of accounts has a customer deposits account for this.
What does underbilling mean?
Underbilling means you've done more work than you've billed, so you're paying for part of the customer's job yourself. Job B has $10,000 of it. There are 2 reasons a job lands here, and they need different fixes.
- You're behind on billing. The draw schedule lags the work, or the tile-stage invoice never went out. Bill it this week if the contract allows.
- The job is over budget. Cost-to-cost math counts every extra dollar spent as progress. When a job runs over, percent complete jumps and the job looks underbilled. Before you send a bigger invoice, walk the job and ask whether it's really 75% done.
When it's the first reason, that invoice is cash you've already earned. Brandon Vaughn, who coaches home service owners, told a pool builder in a cash crunch, who was combing through small expenses, where his time would pay off more:
If you get $100 grand in cash collected more this month, that's going to help more than cutting out $4,000 a month worth of expenses … It's not going to move the needle nearly as much as just cash collected and revenue inbound.
He pointed that owner back to closing jobs and collecting deposits. Work you've already paid for and haven't billed belongs on the same list, ahead of the expense report.
What is profit fade?
Fade is a drop in a job's estimated gross profit from one month to the next. In the example, Job B was sold with $24,000 of gross profit. This month the project manager's cost to finish went up $4,000, so the estimate now shows $20,000.
Compare every job's estimated gross profit with last month's, because fade is the earliest warning a long job gives you. At the tile stage, $4,000 can still be dealt with: a talk with the sub, or a change order for the extra the customer asked for. Found at the final walkthrough, it's gone.
A second check takes a minute. Ask the project manager how far along each job is before you show the math. If cost says 75% and the person on site says half, the estimate to finish is too low and the overrun hasn't hit the books yet.
The weekly job costing review catches hours running over on a single job. The WIP report adds the billing side and the forecast to finish, once a month.
The monthly WIP routine
Run it after the books close, on the same days every month. Here's the routine for a shop on QuickBooks Online, where the bookkeeper closes the month and the project manager owns the estimates:
- By the 5th, close the month. Enter every supplier bill, sub invoice and payroll for the month, each tagged to its project. If you run payroll through QuickBooks, labor posts to a project only after that payroll runs, so wait for the last one of the month.
- Pull cost to date. Go to All apps, then Projects, then Projects, and select the job. The Overview tab shows its income, costs and profit margin.
- Pull billed to date. If you bill draws as progress invoices from the estimate, open Reports and run Estimates & Progress Invoicing Summary by Customer. It shows each estimate, what's been invoiced and what's left. To turn progress invoicing on, select Settings (the gear), then Account and settings, then Sales. In the Progress Invoicing section, select Edit, turn on "Create multiple partial invoices from a single estimate" and select Done.
- By the 7th, get the cost to finish. The project manager gives a cost to finish for every open job, split into labor, materials and subs. Add it to cost to date for the new estimated total cost.
- Fill in the schedule. One row per job in a spreadsheet, with the 8 columns above. On QuickBooks Online Advanced, the Estimates vs. actuals report (open the project, then Project Reports) puts estimated cost beside actual cost. The estimate only shows once you've marked it Accepted.
- By the 10th, act on it. Send the invoices for underbilled jobs, check cash against overbilling, and call the project manager about any job that faded.
If your books can't give you cost to date by job yet, fix that first. Bring your open job list and last month's P&L to a free profit call and we'll show you what's missing. With YetiBooks you get one profit specialist, the same person every time (how it works).
Questions owners ask
Do I need a WIP report if I bill when the job's done?
Not if your jobs start and finish inside the same month. Job costing and the P&L cover a shop that runs service calls and one-day installs. Once a job carries a deposit or a draw across a month-end, it belongs on a WIP report.
Can I use my project manager's percent complete instead?
You can, but keep cost-to-cost as the main number, because it ties to the books and nobody has to guess. Use the project manager's number as the check on it.
Does the WIP report change my taxes?
Not by itself. It's a report for running your jobs and your cash. How long jobs get reported on a tax return is a separate decision, so bring this schedule to whoever prepares your return.


