2,200+ contractors benchmarked. How do your margins stack up? See where you stand →
Level
Construction Accounting

WIP Schedules Explained: The Report That Predicts Your Cash Flow

Sam Young·2026-04-09·12 minute read
WIP Schedules Explained: The Report That Predicts Your Cash Flow — Level CFO

The Report Most Contractors Don't Have

If you run a contracting business over $3M and someone asks you, "On your ten biggest active jobs, are you overbilled or underbilled right now?" — and you can't answer in under 30 seconds — you have a WIP problem.

A WIP schedule (Work-in-Progress) is a single report that shows every active project, the costs you've incurred, the revenue you've earned based on completion, and the billings you've sent to date. The gap between earned revenue and billings is either overbilling (you've billed more than you've earned — cash is good, but you owe work) or underbilling (you've earned more than you've billed — you're financing the customer's project).

It is the most important financial report in construction accounting. And most contractors under $10M have never built one.

Why Contractors Fly Blind

After working with hundreds of contractor teams — in private equity evaluating acquisitions, at BuildOps building financial products, and now running financial reviews at Level — I can tell you the root cause is always the same: cost isn't tracked at the job level.

In the financial reviews I've conducted, 87% of active jobs had no cost amount recorded against them. Not low cost. Not estimated cost. Zero. The field runs. The system logs revenue. Nobody allocates the labor, materials, or subs to the specific job.

The result: 91% of jobs show margins above 80% in the system. That's not because contractors are phenomenally profitable. It's because cost isn't being captured. The "margin" is fiction. And if you can't see cost, you can't build a WIP.

What a WIP Schedule Actually Shows

A WIP schedule has one row per active job. Here's what each column tells you:

ColumnWhat It Means
Contract ValueTotal price of the job (original + approved change orders)
Cost to DateAll labor, materials, subs, equipment charged to this job
Estimated Cost at CompletionYour current estimate of what the job will cost when finished
% CompleteCost to date / estimated total cost (the cost-to-cost method)
Earned RevenueContract value × % complete
Billings to DateWhat you've actually invoiced the customer
Over/(Under) BillingBillings to date minus earned revenue

The over/under column is where the story lives.

Overbilled means you've invoiced ahead of your completion. You've collected cash for work you haven't done yet. That's good for cash flow — but it's a liability on your balance sheet. You owe that work to the customer.

Underbilled means you've done more work than you've invoiced. You've financed the customer's project out of your own pocket. That's bad for cash flow. The work is done, the cost is real, and the cash hasn't come in.

A Concrete Example

JobContractCost to DateEst. Total Cost% CompleteEarned RevenueBilledOver/(Under)
Office HVAC Retrofit$400K$180K$320K56%$224K$280K+$56K overbilled
School Plumbing$250K$200K$225K89%$222K$175K-$47K underbilled
Warehouse Electrical$180K$30K$150K20%$36K$36KEven
Total$830K$410K$695K$482K$491K+$9K net overbilled

This contractor looks fine in aggregate: net overbilled by $9K. But look at the School Plumbing job: they're 89% complete and have only billed 70% of the contract. That's $47,000 in work they've financed for the customer. If you don't see it, you can't fix it.

The Real Cash Flow Impact

Here's why underbilling kills contractors. I reviewed one contractor's books and found 50 jobs open past 90 days without an invoice sent. At an average project size of $20K, that's approximately $1M in unbilled completed work — just sitting there.

Same contractor: 83 draft invoices totaling $321K that had been created in the system but never sent. Work done, invoice drafted, nobody clicked send.

And the 185 jobs worked in the last 30 days with real costs incurred — labor, materials, trucks — but $0 billed? Over $67K in cost sitting against $0 in revenue. Every day that continues, the contractor is writing a check for work they've done and getting nothing back.

This is what a WIP schedule catches. Not in a single heroic audit, but every month, automatically, as part of your standard financial reporting.

Why Sureties and Banks Care

If you're pursuing commercial work that requires bonding, your surety will ask for a WIP schedule. Period. It's not optional.

Here's why: a bonding company is guaranteeing that you'll finish the work. They need to know:

  1. Are you overbilled or underbilled? Heavy overbilling means you've collected cash you haven't earned — and if you can't finish the work, the surety is on the hook. Heavy underbilling means you're cash-strapped and may not have the liquidity to complete.
  2. Are your cost estimates accurate? If your estimated cost at completion hasn't been updated since the bid, the WIP is stale. Sureties look for contractors who update estimates monthly.
  3. Is the portfolio balanced? A few underbilled jobs aren't a crisis. But if your entire portfolio is underbilled by 15-20%, your working capital position is worse than your balance sheet shows.

The bonding capacity formula is simple: your net worth and working capital determine how much you can bond. But an underbilled WIP erodes your real working capital — even if the balance sheet doesn't show it yet. A surety who sees $500K in net underbilling will reduce your bonding capacity accordingly.

Banks care for the same reason. If you're seeking a line of credit or construction financing, the WIP tells the lender whether your receivables are real and whether your cash position reflects actual economic reality.

How to Build a WIP Schedule

Step 1: Get Job-Level Cost Tracking Right

You cannot build a WIP without cost data by job. This means:

  • Labor: Every tech hour allocated to a specific job (not just "labor expense" in total)
  • Materials: POs and material costs tagged to the job they're used on
  • Subcontractors: Sub invoices coded to the right project
  • Equipment: Rental and equipment allocations

If you're using QuickBooks, this means using the Projects feature or Classes to track cost by job. If you're on a field service platform (ServiceTitan, BuildOps, Jobber), much of this happens automatically through dispatch and time tracking — but you need to verify it's flowing to your accounting system.

Most contractors I work with have at least some of this data, but it's patchy. Techs forget to clock in against the right job. Material POs don't get coded. Subs get paid against the wrong project. Step one is cleaning this up — and it usually takes 30-60 days to get disciplined.

Step 2: Estimate Cost at Completion (Monthly)

The hardest part of a WIP is the estimate. For each active job, someone (usually the PM or estimator) needs to answer: given what we know now, what will this job cost when it's done?

This isn't the original bid estimate. It's the current estimate, updated for:

  • Scope changes and approved change orders
  • Material price changes
  • Labor productivity (are we faster or slower than expected?)
  • Remaining subcontractor work

For small jobs (under $25K, completing in a few weeks), a rough estimate is fine. For large projects running months, this needs to be a deliberate monthly exercise.

The contractors who do this well have a monthly "WIP meeting" where each PM presents their active jobs: costs to date, revised estimate to complete, and any risks. 30 minutes per PM, once a month. The ones who don't have this meeting are the ones with stale backlogs and phantom margins.

Step 3: Calculate Earned Revenue and Over/Under Position

Once you have cost to date and estimated total cost, the math is mechanical:

  • % Complete = Cost to Date / Estimated Total Cost
  • Earned Revenue = Contract Value × % Complete
  • Over/(Under) Billing = Billings to Date - Earned Revenue

Aggregate across all jobs. The net over/under position is a balance sheet adjustment that your accountant (or CFO) should be making at least quarterly.

Step 4: Review Monthly

A WIP schedule is useless if it's static. Review it monthly. Look for:

  • Jobs where underbilling is growing — you're falling behind on invoicing. Send a progress bill this week.
  • Jobs where overbilling is extreme — you've collected cash you haven't earned. Make sure the remaining work is budgeted and resourced, or you'll have a completion problem.
  • Jobs where estimated cost at completion has increased — margin is eroding. Flag it for the PM. Ask why.
  • Jobs with no cost update in 60+ days — the estimate is stale. Force an update.

The QuickBooks Reality

Most contractors under $10M are on QuickBooks. QBO can produce a basic WIP if you're disciplined about job-level cost tracking:

  1. Use Projects to track income and expense by job
  2. Run the Project Profitability report to see cost vs. billings per job
  3. Export to a spreadsheet to add estimated-cost-at-completion and calculate % complete

It's manual. It's tedious. But it works. The contractors who outgrow this process — usually around $5-10M — move to construction-specific software (Sage, Foundation, CMiC) that has WIP schedules built in.

If you're between QuickBooks and full construction accounting software, a Google Sheets template that pulls from your QBO data is often the right middle ground. We build these for our clients at Level — a single sheet that updates monthly and gives you the complete over/under position across your entire portfolio.

What Top Contractors Do Differently

The best operators I've worked with treat the WIP as a management tool, not a compliance exercise. Specifically:

They update estimates monthly. Not just for sureties. For themselves. They want to know if a job's margin is eroding before the job is 80% complete — when it's too late to fix it.

They progress-bill aggressively. The top quartile of contractors bill 4 days before job completion. They use progress billing to keep their billing in line with (or ahead of) earned revenue. The result: minimal underbilling, healthy cash position.

They close jobs fast. Closeout efficiency data shows the median job closes within 1.7 days of completion, but the 90th percentile takes 36 days. Every day a job sits open after work is done, the WIP is distorted — costs are accruing on a job that should be closed.

They separate warranty work. When a callback happens, it's a new job — not additional cost on the original. This keeps the original job's WIP accurate and allows the warranty cost to be tracked as its own line item.


The Bottom Line

A WIP schedule is the only report that tells you whether your cash position matches your economic reality. Overbilling isn't free money — it's work you owe. Underbilling isn't an accounting detail — it's cash you've spent and haven't collected.

If you're pursuing bonded commercial work, you need a WIP. If you want to understand your real cash position, you need a WIP. If you want to catch margin erosion before the job is done, you need a WIP.

And if 87% of your jobs have no cost data, step one isn't building the WIP. It's fixing your cost tracking. Everything else follows from that.

Q: How does Level help with WIP schedules? A: We connect to your QuickBooks and field service software, build a WIP schedule template customized to your job mix, and update it monthly as part of your financial review. For contractors pursuing bonding, we produce the WIP in the format your surety requires. The first audit is free — we'll show you your current over/under position before you commit to anything.

Q: Do I need a WIP schedule if I only do residential service work? A: Probably not in the formal sense. WIP schedules are most valuable for project-based work lasting more than a few weeks. But the underlying discipline — tracking cost by job, invoicing promptly, and knowing your margin before the job closes — applies to every contractor. If you're running 2,000+ service calls per year and don't know your cost per call, you have a WIP problem even if you don't call it that.

Q: How often should I update my WIP? A: Monthly, at minimum. The WIP meeting — where each PM reviews their active jobs, updates cost estimates, and flags issues — should be a fixed monthly ritual. For contractors with large commercial portfolios, some do it biweekly. The key is consistency: a WIP that's updated every month catches problems within 30 days. One that's updated quarterly catches them in 90 — and by then, the margin is gone.

About the author

Sam Young

Founder of Level. Former PE investor and investment banker. Built AI-powered accounting products at BuildOps — the largest field management software for commercial contractors — benchmarking financial data across 2,200+ contractors in HVAC, plumbing, electrical, and mechanical trades. Operations analytics work with Astra Service Partners, CIVC Partners (American Refrigeration), and other PE-backed portfolios in the trades. Co-founded Overline, where his team has analyzed over $1B in real estate assets. Stanford MBA.

LinkedIn

Ready to see where your money is going?

Get a free job profitability audit.

Get Your Free Audit