All articles

Custom CRM

How to Track WIP in QuickBooks: 6 Inputs

QuickBooks has no WIP report. A WIP schedule needs 6 inputs, QuickBooks gives you 3, and 2 are judgment forever. The 30-minute monthly routine.

Om Patel 18 min read
Photo: Alain Pham / Unsplash

The short answer

QuickBooks Online and Desktop do not produce a work in progress schedule. A WIP schedule needs six inputs per job. QuickBooks supplies three of them automatically (costs to date, billed to date, contract value), one needs clean setup, and two stay manual forever: cost to complete and approved change orders. You build the schedule in a sheet fed by those reports.

QuickBooks does not have a WIP report. Not QuickBooks Online, not QuickBooks Desktop, not Advanced. What it has is the raw material: job costs and billings. A work in progress schedule is the thing you build on top of that data, and the reason it feels impossible to find in the menu is that it was never in the menu.

That is the honest starting point, and almost every guide on this topic gets past it quickly so it can sell you software. This one will not, because there is a more useful question underneath: a WIP schedule needs six inputs per job, QuickBooks can hand you three of them, one depends on how you set the file up, and two are permanent human judgment. Once you know which is which, you know exactly how far this can be automated and where the manual line genuinely sits.

Why bother, when the P&L already shows profit

Your profit and loss statement blends every open job into one number. If four of your six jobs are healthy and two are quietly eating their margin, the P&L shows you the average. Worse, on draw-billed work it reflects when money moved, not when work happened. A month where you collected three deposits looks like a great month. It was a great collections month.

The WIP schedule pulls the jobs apart and asks one question of each: have I earned what I billed? That gap is invisible everywhere else in QuickBooks. The second reason arrives with less warning. If you ever want a line of credit, a bond, or a larger GC relationship, someone will ask for a WIP schedule. Securem, which audits construction back offices, notes that when a surety underwriter opens a quarterly package the WIP is the first document they pull and the financial statements are read second.

The six inputs, and which three QuickBooks gives you

Every WIP schedule, at every size of contractor, runs on the same six numbers per job. Everything else on the schedule is arithmetic derived from these.

#InputWhere it comes fromCan QuickBooks give it to you?
1Contract valueSigned contractYes, if you enter estimates properly
2Approved change ordersYour change order logNo. This is the one that breaks
3Costs to dateJob cost reportYes, automatically
4Billings to dateInvoice list by jobYes, automatically
5Cost to completeYour judgment, this monthNo. Never
6Original estimated costYour bidYes, if the estimate is in the file

Costs to date, billings to date and original estimated cost come straight out of QuickBooks with no thought required. Contract value comes out cleanly only if you set the file up so estimates map to jobs. Change orders and cost to complete do not come out at all, because QuickBooks has no field for either in the sense a WIP schedule means it.

Read the table again: the two inputs QuickBooks cannot give you are the two that decide whether the schedule is true. Every WIP product on the market automates the three easy ones.

By the numbers

Every top-ranking guide on this topic is written for a far larger company than yours. Civil CFO states plainly that it works exclusively with 10 million to 70 million dollar construction companies. Securem targets the 50 million to 300 million band. Their advice assumes a controller, project managers who sign estimates, and a CFO who writes variance commentary. At a 6-person contractor doing 1.5 million dollars, you are all three of those people on a Sunday afternoon.

The QuickBooks Online Advanced myth

Ask about this and the most common answer is "upgrade to Advanced, it does WIP." It does not, and there is a clean on-the-record walk-back.

In a February 2026 r/Bookkeeping thread on handling WIP reports and job costing for construction clients in QBO, a bookkeeper replied: "QBO advanced has full WIP reporting if you use projects, create estimates in the project, and job cost everything." The original poster asked whether that native reporting was reliable enough for monthly client reports or whether they still ended up in Excel. The same commenter answered: "I still export to a excel template and change the cost to complete based on PM cost reports."

That is the whole story in two comments. Advanced gives you better job cost reporting. It does not give you a WIP schedule, because it has nowhere to put cost to complete, and without cost to complete there is no percent complete. Another commenter in the same thread was blunter: "generally QBO is not great for construction. Best to use excel for the WIP for a whole host of reasons but overall QBO is weak for it."

Set QuickBooks up so the three automatic inputs are actually right

The arithmetic is easy. Garbage inputs are what kill WIP schedules, and at a small contractor the garbage enters at setup.

In QuickBooks Online (Plus or Advanced). Turn on Projects under Settings, then Advanced. Create one project per job, not one per customer. Every bill, expense, timesheet and invoice has to carry the project, or it lands in overhead and your costs to date understate reality. Pull costs to date from the Project overview, budget against actual from Estimates vs Actuals, and billings from the project's transaction list.

In QuickBooks Desktop. Use Customer:Job, run Job Profitability Detail for costs to date by cost type, and Job Estimates vs Actuals Detail for the estimate and the billed column. One Desktop trap: timesheet hours only become job cost when assigned to the customer:job and run through payroll or a zero-dollar item. Verify labor shows up on the Job Profitability report, not only in payroll, or your costs to date is missing your largest cost line.

Three setup traps worth knowing, all documented in Intuit's own community threads:

  • Projects cannot contain sub-customers. If you run a customer with sub-jobs under it, flattening that structure is a prerequisite. It is the source of the "a project cannot contain subcustomers" validation error that breaks third-party syncs.
  • Time already posted does not move. An Intuit community answer states flatly: "It is impossible to move payroll time activity to a new project." Code time to the right job the first time.
  • Sub-customer to project conversion is one way and fussy. Intuit's help article requires the sub-customer be linked to only one parent and not be a sub-sub-customer before it converts.

This is the difference between a costs-to-date figure you can build a schedule on and one you cannot.

Cost to complete: the input that will never be automated

Cost to complete is your current best estimate of what is left to spend on a job. It is not what you bid. It is what you believe this month, after seeing how the work is actually going.

This number makes a WIP schedule useful or useless, and CBIZ puts the stakes plainly: without accurately determining the estimated cost to complete on contracts in progress, a contractor's financials can fluctuate wildly from one month to the next.

The failure mode is doing nothing. Securem calls it the stale estimate to complete: the estimate is set at job start and rolled forward unchanged, so costs to date rise, percent complete rises mechanically, the math holds, and no judgment is applied anywhere. When the job closes, the entire difference between the stale estimate and reality lands in one month. You find out in month nine what you could have known in month two.

You have no PM to sign an estimate, so the discipline has to be lighter and blunter. Once a month, for each open job, ask two questions and write down the answer:

  1. What is left to buy, and what is left to install?
  2. Is that number bigger or smaller than what I said last month, and why?

If the answer to the second question is "the same," be suspicious. On a job that moved all month, cost to complete should have moved.

The WIP math is easy. Getting clean contract values, approved change orders and job-coded costs out of a business where half of that lives in text messages is the hard part. We build custom CRM systems around how your crew actually works, so the job record, the change orders and the invoices are one thing instead of three.

Book a free CRM demo

The three formulas

Run them in this order. Each feeds the next.

Percent complete (cost-to-cost, the construction standard):

Costs to date / (Costs to date + Cost to complete)

Earned revenue, what you have actually earned by doing the work:

Percent complete x (Contract value + Approved change orders)

Over or under billing, the punchline:

Billings to date - Earned revenue

Positive means overbilled. Negative means underbilled.

Note what is absent from the percent complete formula: contract value. Percent complete is a cost question, not a revenue question.

A worked example at contractor scale

A siding and window job, contract signed at 92,000 dollars, bid at 28 percent gross margin. Mid-job the homeowner adds a rear dormer, approved and signed at 11,000 dollars against 8,000 dollars of expected cost. At month end QuickBooks says you have spent 48,000 dollars, you estimate 27,000 dollars left to finish, and you have billed 71,000 dollars against your draw schedule.

LineValueSource
Contract value92,000Signed contract
Approved change orders11,000Signed CO
Revised contract value103,000Sum of the two
Costs to date48,000QuickBooks job cost
Cost to complete27,000Your estimate this month
Total estimated cost75,00048,000 plus 27,000
Percent complete64%48,000 / 75,000
Earned revenue65,92064% of 103,000
Billings to date71,000Invoices issued
Over/(under) billed+5,08071,000 less 65,920
Gross profit to date17,92065,920 less 48,000
GP percent27.2%17,920 / 65,920

Reading it: 64 percent done, modestly overbilled by about 5,000 dollars, which is a healthy draw position rather than a red flag, and margin holding at 27 percent against a 28 percent bid. Nothing to fix.

Now change one thing. Suppose the dormer change order was agreed by text and never entered anywhere. Revised contract value stays at 92,000 dollars, but the 8,000 dollars of dormer cost is already in costs to date. Earned revenue drops to roughly 58,900 dollars, you appear overbilled by 12,100 dollars, and gross profit to date reads 22.6 percent instead of 27.2. The job looks like it is fading. It is not. Your paperwork is.

That is the most common WIP distortion at contractors under 3 million dollars, and it is not an accounting problem. The change order was approved in a conversation and never became a record. We covered that pattern in how to handle change orders without losing money.

The 30-minute monthly routine

Securem describes a five-step monthly discipline with job cost cutoff, project manager signed estimates, controller review of material movements, CFO sign-off with variance commentary, and distribution to the bonding agent by the tenth business day. That is correct for a 50 million dollar contractor. If you have four to twelve open jobs, do this instead.

  1. Reconcile first. Bank and credit cards, through month end. Civil CFO identifies unreconciled books as the usual cause when a WIP and the financials disagree: the schedule was built outside the accounting system instead of from it.
  2. Check for uncoded costs. Run Profit and Loss by Customer and look at the unassigned column. Anything sitting there is a job cost hiding in overhead.
  3. Export costs to date and billings to date for every open job.
  4. Set cost to complete. The only step that takes real thinking. Budget 15 of your 30 minutes here.
  5. Update revised contract value from your change order log, approved and signed only. Keep pending change orders in a separate column.
  6. Let the sheet calculate and read the five signals below.

Do it on the same day every month. Cadence matters more than polish, because the value of a WIP schedule is entirely in the comparison to last month.

Tip

Stop copying and pasting. Two construction bookkeepers in the same r/Bookkeeping thread independently described the same fix: pull QuickBooks project and job cost data live into the sheet with a data connector, build the formulas on top, and it refreshes. One, with 20 years in construction accounting, described the workflow as pulling everything out with a connector, doing the WIP in Excel, then posting a journal entry for the over/under. The other said it "cut down sooo much manual work." That is the realistic automation ceiling: the three mechanical inputs refresh themselves, and you still type cost to complete.

Reading it: five signals

Scan these every month. They are the reason you built the thing.

SignalWhat it meansWhat to do
Growing underbillingYou did work you have not invoicedBill up to earned revenue now, then fix the billing cadence
Overbilling that keeps growingPossible job borrow, new deposits funding old overrunsCompare closed-job margins against bid before you take a draw
GP percent below bid, drifting downMargin fade in motionFind the overrunning cost code while there is job left
Percent complete stuck two months runningEither the job stalled or costs are not being bookedCheck for uncoded bills before you blame the crew
Percent complete above 100Costs blew past total estimateRe-estimate cost to complete today, the job is bleeding

Two of these deserve names. Job borrow is when overbilled cash from new jobs quietly funds cost overruns on old ones, so the bank balance looks healthy while the business bleeds. The tell is an overbilled position that keeps growing while margins on closed jobs keep falling.

Fade is the gap between the margin you bid and the margin you finish at. Securem's benchmark from auditing construction firms: average fade of one to two percentage points reads as good estimating discipline, four to six points signals a gap that constrains bonding capacity, and above six points is structural. Run that comparison on every job you closed in the last twelve months. It takes an hour and tells you more than the WIP schedule will.

Watch the closeout trap too: jobs that sit at 99 percent complete for months while punch list costs trickle in and the estimate is nudged upward to absorb them. The job finished, the schedule says otherwise, and the fade hides because the closed-job comparison never triggers. Review anything above 95 percent for closeout monthly.

Why your WIP will not match your tax return

This is where most small contractors abandon the exercise, and it is a misunderstanding rather than a mistake.

A WIP schedule is built on percentage of completion, which recognizes revenue as work happens. You almost certainly do not file that way. Under the IRC 460 small contractor exception, a contract qualifies if it was expected at signing to complete within two years and average annual gross receipts for the prior three tax years stay under the threshold, which CBIZ puts at 32 million dollars for tax year 2026 after inflation adjustment. Home construction contracts, where 80 percent or more of estimated total contract costs relate to buildings with four or fewer dwelling units, are exempt regardless of size, and the One Big Beautiful Bill Act extended that exception to residential construction contracts including apartment buildings and condominium complexes.

So you are likely filing cash or completed contract, both of which defer income until the money moves or the job finishes. CBIZ describes the consequence directly: under the cash method it is not uncommon for a contractor to show significant income for financial statement purposes while possibly showing a loss for income tax reporting purposes.

Your WIP and your tax return are supposed to diverge. The WIP tells you whether the jobs you are standing in are making money. The tax return tells the government when to tax you. Do not try to reconcile them, and do not throw out the WIP because it disagrees with your 1120S.

If your CPA wants the entry on the books

Most small contractors should keep the WIP as a management spreadsheet and stop there. If your accountant wants the over and under billing on the books, the standard approach uses two accounts covered by the National Association of Home Builders chart of accounts: Costs in Excess of Billings for underbillings, carried as a current asset, and Billings in Excess of Costs for overbillings, carried as a liability.

Post the entry on the last day of the month and reverse it on the first day of the next, which QuickBooks does with the reverse button inside the journal entry screen. The reversal matters: without it your following month is inflated by an adjustment that no longer describes anything. A P&L carrying a stale WIP entry mid-month is less trustworthy than one carrying none.

Which jobs belong on the schedule

Larger firms use a dollar threshold, commonly around 100,000 dollars of contract value. Applied to a residential contractor doing 1.5 million dollars across forty jobs, that rule empties the schedule entirely.

Use duration instead. If a job opened and closed inside one month and you billed it once, leave it off. If it is open across a month-end close, it belongs on. Service calls and same-week repairs stay off, anything with a draw schedule or a multi-week build goes on.

A CPA in the r/Bookkeeping thread framed the size question well: either you are large enough to afford the big project accounting software, or you are small enough that you need to work efficiently in a workbook. You are in the second group, and the workbook is the right answer, not a compromise.

The mistakes that actually cost money

  • Estimating percent complete by eye. It is a cost calculation. Walking the site and guessing 70 percent is not an input.
  • Leaving contract value stale after a change order. The biggest distortion at small contractors, and it makes healthy jobs look sick.
  • Booking unapproved change orders into contract value. Track them in a separate column. Revenue the customer has not agreed to is not revenue.
  • Never touching cost to complete. A stale estimate turns the schedule into arithmetic with no judgment in it.
  • Forgetting retainage. If a GC holds 10 percent, billings to date already include money you have not been paid. Track retainage receivable separately.
  • Running it once a year for the bank. The value is in the month-over-month comparison. One snapshot tells you almost nothing.

The WIP schedule is not an accounting deliverable. It is the gauge that tells you which job on your calendar is quietly costing you money, while you can still do something about it. QuickBooks hands you three of the six numbers. The other three are the part only you can do, and they are worth thirty minutes a month.

If you are also fighting QuickBooks on the job costing layer underneath this, start with QuickBooks job costing for contractors, because a WIP schedule built on bad job costs is a confident, wrong answer.

Frequently asked questions

Does QuickBooks have a built-in WIP report?
No. Neither QuickBooks Online nor QuickBooks Desktop produces a true work in progress schedule with percent complete, earned revenue and over/under billing. Both give you the job cost and billing data underneath it. You assemble the schedule yourself in a spreadsheet fed by those reports.
Does QuickBooks Online Advanced have WIP reporting?
Not a real WIP schedule. Advanced adds Projects reporting and Estimates vs Actuals, which get you costs to date and budget against actual. It cannot calculate percent complete, because it has no field for cost to complete. A bookkeeper on r/Bookkeeping who initially said Advanced has full WIP reporting clarified in the same thread that they still export to an Excel template and set cost to complete from PM cost reports.
How do I calculate percent complete for a job?
Use the cost-to-cost method: costs to date divided by total estimated cost at completion, where total estimated cost is costs to date plus your current cost to complete. A job with 60,000 dollars spent and 40,000 dollars left to spend is 60 percent complete. Contract value plays no part in this number.
What is the difference between overbilling and underbilling?
Overbilled means billings to date exceed earned revenue. You have collected cash for work you have not performed yet. Underbilled means earned revenue exceeds billings. You did the work and did not invoice it, so you are financing the customer out of your own cash.
Why doesn't my WIP schedule match my tax return?
Because it is not supposed to. Most contractors under the IRC 460 small contractor exception file on cash or completed contract, which defers income until jobs finish. CBIZ notes it is common for a contractor to show significant income for financial statement purposes while showing a loss for tax purposes. The WIP is a management report, not a tax report.
Which jobs belong on a WIP schedule?
Any job that is open across a month-end close. Larger firms use a dollar threshold near 100,000 dollars, which would exclude almost every job at a small contractor. Use duration instead: if you billed and finished it inside one month, leave it off. If it spans the close, it belongs on.
How often should a small contractor run a WIP report?
Monthly, at the same time every month, right after you reconcile. On jobs that move fast or bill on a draw schedule, run it every billing cycle. The entire value is catching margin fade and billing gaps while there is still job left to fix them.
Can I automate a WIP report out of QuickBooks?
You can automate about three of the six inputs. Costs to date, billings to date and contract value can be pulled live into a sheet with a data connector instead of copy and paste, which is what experienced construction bookkeepers do. Cost to complete and change order approval status are human judgment and no tool removes them.
Bespoke pipelines, automations, 360° customer records and real-time reporting, a CRM built around how your team actually works, connected to your entire stack.
Book a free CRM demo

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.