Reporting
What Is WIP, and Why Does My P&L Look Wrong Mid-Project?
By Jeremy Davila, CPA, PMP · Founder, KLYVNT Advisors · Published May 11, 2026 · Updated May 11, 2026 · 6 min read
WIP (work in progress) is the labor, parts, and subcontractor cost sitting inside jobs you have not invoiced yet. Until you book it as an asset, those costs hit your P&L in a month with no matching revenue, so your busiest month reads as a loss. In the trade and repair shops I clean up, $40,000 to $80,000 routinely sits stranded mid-job. A boat refit is the same shape.
Boat work makes this worse than almost any other trade. A repower or a refit runs six, eight, twelve weeks, which means you buy the engine in week one and send the invoice in week ten. On long jobs the first fix is operational, not accounting: bill progress invoices every two weeks or at milestones. WIP covers the unbilled tail that always remains.
Your accounting software does not know the difference.
Why does my busiest month show a loss?
You know the month. Every bay full, two refits running, techs on overtime. Then the P&L lands and says you lost $30,000. Owners say some version of the same sentence to me: my busiest month ever, and the books say I lost money.
Here is what actually happened. Your P&L matched this month's invoices against this month's spending, so the engine, the shaft work, and the 300 tech hours poured into the open refit all hit cost of goods sold (the direct cost of doing the work) the moment you paid for them, while the invoice for that refit does not exist yet. Cost with none of the revenue. Nobody chose this. QuickBooks expenses a part the day you buy it and posts payroll the day you run it, whether the boat splashes this month or not. Accountants call the fix matching, putting cost and its revenue in the same month. Your software will not do it for you.
Busy month, paper loss.
Then the refit wraps, you bill the whole job, and the next month looks like a windfall. It is not. June's work just showed up in July's column. Of all the distortions in the monthly reports worth reading, this is the biggest one in a project shop. Neither month is true.
What counts as WIP in a boat shop?
Everything you have put into a job you have not billed: tech labor at cost, parts pulled for the boat, the engine already sitting in the engine room, the canvas or electronics sub you already paid. If it belongs to an open work order, it is WIP.
Not the parts on your shelf (that is inventory, assigned to no job yet). Not the customer's deposit (a liability, since you still owe the work). Not future profit either. WIP is your cost only, what you have actually spent, and the markup shows up when you invoice. Left unbooked, that cost distorts two reports at once. Your balance sheet understates assets, because the $50,000 of value sitting in open boats is invisible. Your P&L overstates COGS, because it expensed cost that has no revenue next to it yet. One missing entry, two broken reports.
The month-end WIP entry, step by step
One journal entry a month fixes this, not job costing software, not a new system. This:
- Keep a jobs-open list: every open work order, with unbilled labor, parts, and sub cost per job. Your service writer can maintain it in a spreadsheet.
- On the last day of the month, total the unbilled cost across all open jobs.
- Book a journal entry for that total: debit WIP (an Other Current Asset account), credit cost of goods sold, or wherever your tech wages and parts actually post; in many QuickBooks files that is a payroll expense account, and the entry should follow the cost.
- Reverse the same entry on the first day of the next month.
- In QuickBooks Online, set this up once as a recurring journal entry against the WIP account, then just edit the amount each month from the list.
That reversal matters. Next month the cycle repeats with a fresh number, so the entry never goes stale. Once the jobs-open list exists, the monthly lift is a fifteen-minute edit. If your books are months behind, get them caught up before you start; a WIP entry on top of bad data just makes a wrong number more confident.
What does the WIP entry change on the P&L?
Same shop, same two months. Numbers here are illustrative, but this is the shape these books take in the trade and repair work I do. June: bays full, $45,000 of small invoiced work, $78,000 of total cost incurred, $48,000 of it inside an open repower. July: the repower bills at $85,000, plus $15,000 of small work.
| P&L line | June, no WIP entry | June, with WIP entry | July, no WIP entry | July, with WIP entry |
|---|---|---|---|---|
| Revenue invoiced | $45,000 | $45,000 | $100,000 | $100,000 |
| Cost hitting COGS | $78,000 | $30,000 | $22,000 | $70,000 |
| Gross profit (loss) | ($33,000) | $15,000 | $78,000 | $30,000 |
Without the entry, your best month prints a $33,000 gross loss and the slow month prints a 78% gross margin fantasy. With it, both months show roughly 30% gross margin. That is what the shop actually earns.
Same boats. Same work. Opposite stories. Only one of them is a P&L you can run a business on.
How old is too old for WIP?
Young WIP is healthy. A six-week refit carrying five weeks of cost is just a big job mid-flight.
Cost sitting in a job for more than 15 to 30 days with no invoice against it usually means finished work nobody billed, or a dispute nobody surfaced. Both bleed you the same way. Even when a deposit covered the engine, labor cash keeps walking out the door week after week with nothing invoiced against it, one of the quiet ways a shop ends up profitable on paper but short on cash.
A weekly WIP report by job is the controller-level habit: job name, unbilled cost, days since the last invoice. Three columns. Anything past 30 days gets a question on Monday morning, not at month end. Booking the entry fixes your P&L. Watching the report fixes your billing.
What June was trying to tell you
WIP is job cost you have spent but not yet billed. Book it as an asset at month end and your P&L tells the truth in both the busy month and the billing month.
One recurring entry, one jobs-open list, one weekly aging check. That is the whole system, and it is the kind of thing a controller sets up once and runs forever; if you want it built for your shop, KLYVNT's diagnostic call is free. Either way, book the entry this month. Your annual numbers were never wrong. Your months were lying.
Frequently asked questions
What does WIP mean in accounting?
WIP stands for work in progress: the labor, parts, and subcontractor cost you have put into jobs you have not invoiced yet. On the books it belongs in an asset account (an Other Current Asset), not in expenses, because you are going to bill it. In a boat repair or refit shop it is often the largest number missing from the balance sheet, commonly $40,000 to $80,000 mid-project in the trade and repair shops I clean up.
Why does my P&L show a loss in my busiest month?
Because the cost of your open jobs hits the P&L the month you incur it, while the revenue waits until you invoice. A month full of unbilled refit work carries heavy cost and light revenue, so it prints a loss. The next month, when the invoices finally go out, looks like a windfall. Neither month is real until a WIP entry parks the unbilled job cost as an asset.
How do I record WIP in QuickBooks Online?
Create an Other Current Asset account called WIP, then set up a recurring journal entry dated the last day of each month: debit WIP and credit cost of goods sold (or wherever your tech wages and parts actually post) for the total unbilled cost on your jobs-open list, and reverse the entry on the first day of the next month. Update the dollar amount monthly. Once the jobs-open list exists, the whole routine takes about 20 minutes a month.
How long should costs sit in WIP?
Cost sitting in a job for more than 15 to 30 days with no invoice against it stops being normal. A long refit legitimately carries cost for weeks while the job is mid-flight, but cost sitting unbilled beyond that window usually means finished work nobody invoiced or a customer dispute nobody surfaced. A weekly WIP report by job, showing unbilled cost and days since last invoice, catches both early.
Written by Jeremy Davila, CPA, PMP · Founder, KLYVNT Advisors. KLYVNT Advisors provides bookkeeping, controller, and fractional CFO services for founder-led service businesses. Book a call.