WIP in Business Central: Where the Money Sits Before It Becomes Stock

Reading Time: 12 minutes

Every month end I get the same question, from clients and in the forums. The accountant opens the trial balance, finds a balance on the WIP account that nobody can explain, and asks “what is this number and why it does not go away?”.

Most of the time the answer is not complicated. But you cannot give it if you do not know how Business Central moves cost through a production order, and which three things must happen before the WIP of an order goes to zero. I wrote before about costing for manufacturing, about flushing methods and about production order statuses. WIP is the place where all three meet, and where a small mistake in any of them shows up as a number on the balance sheet.

So here is the whole picture in one place: the logic, the setup, one production order followed in numbers from the first consumption to zero, the month end routine I leave with my clients, the mistakes I keep finding on live systems, and what the new Subcontracting app in v28 and v29 changes for your WIP account.

What WIP Really Is

Work in progress is the value of production orders that started but are not finished yet. Material was issued, people and machines worked on it, but the finished item is not in stock. The money left the raw material inventory and did not arrive yet in finished goods, so it waits in the WIP account.

Three things push cost into WIP:

  • Consumption of components
  • Capacity, meaning setup time and run time on work centers and machine centers, and also the subcontractor cost
  • Overhead applied on top of that capacity

Only one thing takes it out, and this is the output of the produced item.

Cost flow diagram: consumption, capacity and overhead debit the WIP account from the component inventory, Direct Cost Applied and Overhead Applied accounts, and output credits WIP into the produced item inventory, with the difference to standard going to the variance accounts
Three ways in, one way out. If you remember only this picture, you can already explain most WIP balances.

The Setup and the Postings

The WIP Account lives in Inventory Posting Setup, per location and inventory posting group. The Direct Cost Applied and Overhead Applied accounts are in General Posting Setup. The variance accounts (Material, Capacity, Mfg. Overhead, Capacity Overhead and Subcontracted Variance) are again in Inventory Posting Setup.

This is what happens in the G/L.

TransactionDebitCredit
ConsumptionWIPInventory (component)
CapacityWIPDirect Cost Applied
Overhead on capacityWIPOverhead Applied
Output, while the order is open (expected cost)Inventory (Interim) of the produced itemWIP
Finish + Adjust Cost, actual costInventory (produced item)WIP
Finish + Adjust Cost, standard cost itemsVariance accountsInventory (produced item)

Two details in this table are worth a minute.

The output of an open order is an expected cost. It reaches the G/L only if Expected Cost Posting to G/L is switched on in Inventory Setup, and then it goes to the interim inventory account, not the real one. If the switch is off, the item ledger shows the output but the G/L does not see it, and the WIP account carries the full cost of the order until the order is finished and adjusted. Both setups are correct. But you must know which one you have before you try to reconcile, because the WIP account looks very different in the two cases.

The overhead in the table is the overhead on capacity, the Indirect Cost % of the work center. The Indirect Cost % and Overhead Rate on the card of the produced item are a different thing. They post from Overhead Applied directly to Inventory at the output, and they never pass through WIP.

One more thing many people miss. You often read that consumption takes the WIP account from the setup line of the component. It does not. For the WIP side Business Central always looks up the inventory posting group of the produced item, for consumption and for output. What comes from the entry itself is the location. Consumption uses the location of the component line, output uses the location of the production order line. So if you consume from one location and post the output to another, and the two lines in Inventory Posting Setup have different WIP G/L accounts, the order can be perfectly balanced and still leave a debit on one account and a credit on the other. My advice is simple: one WIP G/L account for all lines of Inventory Posting Setup, unless there is a real reporting reason to split.

One Production Order, Followed in Numbers

Theory is nice, numbers are better. Item 4000, a Welded Frame, costing method FIFO, unit cost on the item card 55. A released production order for 10 pieces. Expected Cost Posting to G/L is on.

InputValueWhere it comes from
Components consumed40010 tube kits at 40
Capacity1505 hours welding at 30 per hour
Overhead on capacity30Indirect Cost % of 20 on the work center
Output10 piecesexpected cost 55 each, so 550

Now follow the WIP account step by step.

StepDebitCreditAmountWIP balance
1. ConsumptionWIPInventory (component)400400
2. CapacityWIPDirect Cost Applied150550
3. OverheadWIPOverhead Applied30580
4. Output of 10 at expected costInventory (Interim)WIP55030
5a. Finish + Adjust Cost, expected cost reversedWIPInventory (Interim)550580
5b. Finish + Adjust Cost, actual cost postedInventoryWIP5800
Step chart of the WIP account balance for one production order: it rises to 400 after consumption, 550 after capacity and 580 after overhead, drops to 30 when output posts at expected cost, and reaches zero only after the order is finished and cost adjustment has run
The order produced everything, and still 30 sits in WIP. It is not an error. It is the difference between expected and actual cost, waiting for the order to be finished.

Look at step 4. All ten frames are in stock, the shop floor is happy, and the WIP account still holds 30. Nobody did anything wrong. The frames went into stock at 55 each, but they really cost 58. That gap can only be settled when Business Central knows the order will receive no more cost, and it knows this only when the status becomes Finished.

Now the same order with Costing Method Standard and a standard cost of 55. WIP clears exactly the same way, by the full 580. The difference is on the inventory side. The frames stay in stock at 550, and the 30 above standard posts from Inventory to the variance accounts, split by type: material, capacity, capacity overhead and so on. So for a standard cost item the question “where did the 30 go” has the answer “to the variances”, and for FIFO or Average the answer is “into the cost of the frames”. I wrote more about this in Standard Cost Updates in Business Central Manufacturing.

When the WIP of an Order Goes to Zero

The actual cost of the output is not known when you post it. Until the order is finished, output is valued at expected cost (for standard cost items at the standard cost). WIP for an order is cleared completely only when three things happened.

  1. The production order status is changed to Finished.
  2. Adjust Cost – Item Entries has run (or automatic cost adjustment is on).
  3. Post Inventory Cost to G/L has run (or automatic cost posting is on).
Three gates in sequence: status Finished, then Adjust Cost - Item Entries, then Post Inventory Cost to G/L, leading to WIP equals zero for the order, with a note under each gate describing what stays wrong if that gate is missed
Three gates, always in this order. When a finished job still shows WIP, check them from left to right.

For FIFO and Average items, the adjustment recalculates the output cost as consumption plus capacity plus overhead, so the WIP of the order becomes zero. For Standard cost items the output stays at standard and the difference goes to the variance accounts. If a finished order still shows WIP, almost always one of these three steps did not happen.

A Month End Routine That Works

This is the checklist I leave with my manufacturing clients.

  1. Post all consumption and capacity of the month, also for orders still running. Operators forget, and backward flushed components post only with the output.
  2. Finish the orders that are physically complete. A released order keeps its WIP forever, the system does not know the job is done.
  3. Run Adjust Cost – Item Entries.
  4. Run Post Inventory Cost to G/L, if automatic cost posting is off.
  5. Run the Inventory Valuation – WIP report and compare the total with the WIP account balance in the G/L. The Inventory to G/L Reconcile page also shows the WIP line.
  6. Review released orders older than 60 or 90 days. Each one is either still real work, or a problem waiting.
  7. If you use subcontracting, check the open subcontracting purchase orders received but not invoiced, and on v29 the Subcontracting WIP Entries per subcontractor work center.

The order of the steps matters. Steps 3 and 4 before step 2 give you a reconciliation of half-settled orders, and you will chase differences that disappear by themselves one day later.

The Usual Mistakes

When the WIP account looks wrong, I start from the symptom. This table covers nearly every case I have seen.

What you seeUsual causeWhere to look
WIP on an order that was completed long agoStatus still ReleasedReleased Production Orders, sorted by due date
Small residual on orders with full outputOrder not finished, or cost adjustment not runStatus, then the Adjust Cost job queue entry
Negative WIP on an orderOutput posted before consumptionFlushing method, and the posting dates
Debit on one WIP account, credit on anotherDifferent WIP accounts per location, components consumed from another location than the outputInventory Posting Setup, and the location on the component lines
Old balance on an account no longer in the setupPosting setup changed while orders were openG/L entries of the old account, by document number
WIP report total differs from the G/LPost Inventory Cost to G/L not run, or expected cost posting offInventory Setup, Inventory to G/L Reconcile
WIP at period end that finance calls an errorConsumption in one period, output in the nextPosting dates. This one is correct

And the longer version of each.

Forgotten released orders. An order released two years ago, some components consumed, no output, nobody remembers why. The WIP stays there month after month. Decide what happened in reality: post the missing output, or reverse the consumption back to stock, and then finish the order. And if you finished the wrong one, since v26 you can reopen a finished production order.

Negative WIP. Output posted before consumption, very common with backward flushing or when the shop floor reports output first. Usually it is only timing and fixes itself when consumption posts. If it is still negative at month end, check those orders one by one.

Different WIP accounts per location. Explained above. Components come from one location, the output goes to another, and the two setup lines point to different WIP accounts. The order is fine, the G/L accounts look wrong.

Posting setup changed in the middle. Someone changes the WIP account in Inventory Posting Setup while orders are open. Consumption went to the old account, output goes to the new one. The residual balance on the old account will never clear by itself, you need a manual journal.

Cost adjustment not running. Automatic Cost Adjustment set to Never, and the job queue for Adjust Cost stopped months ago. Everything looks posted, but nothing is really settled. If this is your case, read How to Troubleshoot Inventory Valuation Issues before you run it for the first time after a long stop.

Periods crossing. Consumption in March, output in April, and the March accounts already closed. The WIP at end of March is correct in fact, but people read it as an error. Explain it to finance before they start “correcting” it.

Subcontracting and WIP: What Changed in v28 and v29

Subcontracting is where WIP becomes really confusing, because part of the order sits physically at the vendor. For many years standard Business Central handled only the cost side. The subcontracting purchase order brings the vendor cost to the production order as capacity cost, and this goes to WIP exactly like your own machine time. The physical movement of components and half-finished parts to the vendor and back was your problem, unless you were on the Italian or Indian localization. That is the world I described in Managing Subcontracting in Business Central Manufacturing. Microsoft is closing this gap in the last two releases.

Version 28 (2026 release wave 1)

With the June 2026 update Microsoft released a worldwide Subcontracting app. In short it brings:

  • Transfers of components to the subcontractor, with warehouse handling and item tracking
  • Subcontractor prices by work center, item, dates and quantity
  • Receipt of the finished goods from the subcontracting purchase order, again with item tracking and warehouse handling
  • Transfer flows for the semi-finished (WIP) items going to the vendor and coming back
  • The Manufacturing Power BI app now includes subcontracted costs and subcontractor work centers, with a filter on each page to include, exclude or show only subcontracting

For Italian companies the old local subcontracting is deprecated. You decide when to move by switching the feature key in Feature Management. The rest of what changed in that wave is in BC 2026 Wave 1, what’s actually changing in Manufacturing.

Version 29 (2026 release wave 2)

Public preview is running since the first week of September and general availability is planned for the first week of October, so things can still change. What is in the preview:

  • A Subcontracting Setup assisted setup guide, plus notifications when a subcontractor vendor has no Subc. Location Code
  • Subcontracting WIP Entries, available from the Work Center Card, routing lines and production orders, and you can adjust WIP from the released production order pages
  • Inventory put-aways and inventory picks for subcontracting, so companies with basic warehouse setup can use it without warehouse receipts
  • Routing comments and attachments flow into the subcontracting purchase order, so the vendor gets the instructions without retyping
  • The Italian migration tool can now run in production, not only in sandbox. Before you switch, all open transfer orders and purchase orders with WIP item lines must be completed or cleaned

One small note: from September 2026 Microsoft stopped publishing the classic release plans. New features now appear on the AI at Work roadmap, so bookmark that one.

What It Means for Your WIP Account

This is the part that matters when you reconcile.

Two panels, your warehouse and the subcontractor location, joined by two arrows: a normal transfer order for components that creates item ledger and value entries so the value stays in the Inventory account, and a WIP transfer order that creates only Subcontractor WIP Ledger Entries so the value stays in the WIP account
Two transfers go to the vendor, and only one of them moves inventory. The half-finished parts travel, their value does not.

Components at the subcontractor are still inventory. Sending them to the vendor location is just a transfer. They become WIP only when consumption posts.

WIP item transfers carry quantity but no stock. A WIP transfer keeps the displayed quantity, but the base quantity stays zero. Posting it creates no item ledger entries, no value entries and no warehouse entries, only entries in the Subcontractor WIP Ledger Entry table. It shows production progress, it does not create inventory. So the value of the half-finished parts stays in the WIP account even when the parts are physically in the vendor’s yard. Explain this to your accountant before the year end stock count at the vendor, because the physical count will not match any inventory value, and this is correct.

Final or intermediate operation makes a difference. When the subcontractor does the last operation, posting the put-away records the output and the capacity together, so the WIP of the order starts to clear. For an intermediate operation, the outside work is recorded on the order without item or warehouse ledger entries, and the cost waits in WIP until the final output.

Variances go to a separate account. Subcontracted cost is capacity cost, so for standard cost items the difference lands on the Subcontracted Variance account, not on the capacity variance.

Open WIP transfers block the first gate. Business Central does not let you change the status to Finished while unposted WIP transfer orders exist for the order. Post them or delete them first. On the Change Status dialog there is also a WIP Quantity Clean Up switch, which brings the remaining WIP quantities at the vendor to zero when you finish. Remember it touches quantities only. The money in the WIP account is still cleared by the three gates above, nothing else.

Some limits remain. Item tracking is not supported yet for WIP item transfers, WIP transfer lines are invisible to planning and reservations, and some follow-up steps, like Get Receipt Lines on the subcontracting invoice and specific undo receipt cases, are still restricted. Test your full flow in a sandbox before going live.

Practical Tips

Know your Expected Cost Posting to G/L setting before you reconcile. It decides whether the output of open orders is already out of the WIP account or still inside it. Half of the “unexplained” WIP balances I am asked about are explained by this one checkbox.

Reconcile per order, not per account. The G/L balance tells you that something is wrong, never what. The Inventory Valuation – WIP report and the Production Order – WIP report give you the list of orders, and the old and strange ones jump out immediately.

Put the adjustment on a job queue and watch it. Adjust Cost – Item Entries every night, and an alert when the job queue entry goes to Error. A cost adjustment that silently stopped in spring is a very bad surprise in December.

Lock the posting setup. Nobody should change a WIP account in Inventory Posting Setup while orders are open. If the chart of accounts must change, finish or at least list the open orders first, and plan the manual journal for the residual.

Give old orders an owner. A released order older than 90 days should have a name next to it. Most of them die the moment somebody has to explain them.

When the WIP Account Is Not the Problem

Project WIP is a different animal. Projects (the old Jobs) have their own WIP engine, which has nothing to do with production orders. There you work with WIP Methods like Cost Value, Sales Value, Cost of Sales, Percentage of Completion and Completed Contract, the WIP accounts are in Project Posting Groups, and you use the Calculate WIP and Post WIP to G/L batch jobs. Same three letters, completely different logic. I will cover it in a separate article.

Assembly orders have no WIP at all. Assembly cost posts one time, as actual cost, at the moment of the output. If someone looks for assembly value in the WIP account, it was never there.

Direct postings do not belong there. If the WIP account allows direct posting and somebody used it in a general journal, no inventory report will ever explain that amount. Filter the G/L entries of the account on Source Code and you find them in one minute. Then switch Direct Posting off.

Final Words

WIP in Business Central is not magic and not a bug. It is just the honest picture of work that the system believes is still on the shop floor. When the WIP account has a strange balance, the problem is almost never the posting engine. It is an order not finished, a cost adjustment not run, or a setup that was changed at the wrong moment. Keep the month end routine, look at your old released orders, and the number will start making sense to your accountant too.

Resources

If your trial balance has a WIP number that nobody in the company can explain, run the Inventory Valuation – WIP report, sort the released orders by age, and walk the three gates on the oldest ten. In my experience that is one hour of work, and it explains most of the balance.


Questions, an edge case, or a WIP balance you cannot explain? Get in touch.


Discover more from Inside Business Central

Subscribe to get the latest posts sent to your email.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top