Why Your Inventory Value in Finance Never Matches the Warehouse
Inventory in the GL and inventory in the warehouse rarely agree because of timing, costing and posting gaps. Here is how to find them and reconcile continuously instead of at close.
Every finance team knows the moment. The warehouse report shows one inventory figure, the general ledger shows another, and someone is asked to explain the difference before the books can close. The explanation takes days, involves several spreadsheets, and ends in a manual adjusting entry that nobody is fully comfortable with.
This is rarely carelessness. An inventory valuation mismatch between the general ledger and the warehouse is built into how most companies operate. Stock moves in a warehouse management system. Orders and receipts live in procurement. Costs are calculated in the ERP. The GL receives a summary of all of it on its own schedule. Each system is correct by its own rules, but the rules do not agree.
This article breaks down the three families of cause (timing, costing and posting), shows how to diagnose which one you have, puts a realistic price on ignoring it, and explains how to reconcile inventory to the GL continuously instead of in a scramble at month-end.
Two numbers that answer two different questions
The warehouse number answers an operational question: what is physically here, in what quantity, and where? The finance number answers an accounting question: what is the value of what we own, at cost, as of a cutoff?
Between them sits the inventory subledger, usually inside the ERP's inventory management module. It holds quantity and value by item and location, and it posts to a control account in the GL. In a healthy setup, two things are true at all times:
- Quantity in the warehouse management system equals quantity in the subledger.
- Value in the subledger equals the balance of the GL control account.
When someone says "inventory doesn't match," the break is in one of those two joins, or in both. Many teams skip this step and compare a WMS stock report directly to a GL balance. That comparison mixes quantity errors with valuation errors and makes every cause look the same. An inventory subledger discrepancy (subledger versus GL) is a different problem from a quantity discrepancy (WMS versus subledger), and it has a different owner and a different fix.
Timing differences: right numbers, wrong moment
Timing is the most common cause and the easiest to fix, because nothing is actually wrong. Two systems recorded the same event on different clocks.
Typical examples:
- Receipts before invoices. Goods are received and put away in the warehouse system on the 29th. The supplier invoice is matched in procurement on the 3rd. Depending on configuration, the GL either holds the value in a goods-received-not-invoiced account or does not recognise it at all.
- Batch postings. The WMS sends movements to the ERP in a nightly or hourly batch. A report pulled at 4 p.m. will not match a GL snapshot taken at midnight.
- Cutoff mismatches. Shipping confirms a dispatch at 11:50 p.m. on the last day, but the sales order is invoiced the next morning. Stock has left the building, but the cost of sales has not been booked.
- In-transit stock. Transfers between locations leave one site on Tuesday and arrive on Friday. The sending site has reduced stock, the receiving site has not yet increased it, and the value sits in limbo or in a transit account nobody watches.
Consider a group with twelve locations that transfer parts between sites several times a week. Each transfer creates a short window where the stock exists in neither location's on-hand figure. At any given moment, a handful of transfers are mid-flight. If finance runs its reconciliation on the last day of the month, it will always find a gap equal to whatever happened to be on a truck. It is not an error, but unless someone can list those transfers by value, it looks like one.
Costing differences: same quantity, different value
Even with perfect timing, quantity multiplied by cost only matches if every system uses the same cost. Often they do not, and inventory costing errors are the hardest to trace because they are invisible in the warehouse.
Common sources:
- Costing method. The ERP may value stock at moving average, standard cost or FIFO layers. A WMS or a spreadsheet extract might apply the last purchase price. The quantities are identical and the values are not.
- Standard cost updates. When standard costs are revalued mid-period, the revaluation entry must hit every unit on hand. If the update runs while receipts are still being processed, some units are revalued and some are not.
- Landed cost. Freight, duties and handling are added to the item cost after receipt, sometimes weeks later. Until they are allocated, the subledger value is understated relative to what the company really paid.
- Purchase price variance. The purchase order says one price, the invoice says another. Whether the difference goes to inventory or to a variance account depends on configuration, and it is often configured differently for different item classes.
- Unit of measure and currency. Stock bought by the case and issued by the each, or purchased in one currency and valued in another, creates rounding and conversion differences that accumulate across thousands of lines.
Imagine a field-service company that buys a component from a supplier at one price per carton of ten. Procurement records the purchase order per carton, the WMS tracks each, and a conversion factor is wrong on one item record. Every receipt of that item is valued ten times too high or too low in one system and correct in another. The difference is small on any one receipt, but it is permanent, and it grows quietly until someone runs a variance report by item.
Posting and mapping differences: the right event in the wrong account
The third family sits in the configuration that translates operational events into journal entries. Here, stock movements are real and costs are right, but the entry lands somewhere unexpected.
- Account determination rules. Posting logic usually depends on item category, movement type and location. A new item category created without a mapping falls to a default account. A new location opened without its own inventory account posts to a catch-all.
- Manual journals to inventory accounts. Someone books an accrual or a write-down directly to the control account. The subledger knows nothing about it, so the subledger and the GL diverge by exactly that amount, permanently, until it is reversed.
- Unposted or failed transactions. An integration job fails on a validation error, such as a closed period, a missing cost centre or an inactive item. The warehouse believes the movement happened. The ERP never received it. Nobody is alerted because the job reported "completed with errors."
- Adjustments without a trail. Cycle count adjustments, scrap, write-offs and returns to vendor are processed in the warehouse but not always with the right reason code, so they post to the wrong expense account or not at all.
Failed postings deserve special attention because they hide behind integration plumbing. A point-to-point connection between the WMS and the ERP might drop a few records a week. The warehouse manager sees correct stock. The controller sees a balance that is slightly off, with no way to know which transactions are missing.
How to diagnose your gap
Before changing any process, find out which kind of gap you have. This sequence works at any size, and a finance analyst and a warehouse lead can usually complete it in a day or two for a single site.
- Split the comparison into its two joins. Compare WMS quantity to subledger quantity by item and location. Then compare subledger value to the GL control account balance.
- Fix a common cutoff. Pick one timestamp and extract all three views as of that moment, not "end of day" from three systems in different time zones.
- List unposted and in-flight items. Pull open goods receipts without invoices, transfers in transit, shipments not yet invoiced and integration records in an error or retry state.
- Check journal sources. Filter the GL control account by source. Anything that is not from the inventory subledger is a manual entry and should be justified individually.
- Rank variances by value, not count. Sort the item-level differences from largest to smallest. A few items usually explain most of the gap, and they point to a specific costing method, unit of measure or mapping fault.
- Classify every remaining difference. Label each as timing, costing, posting or genuine physical variance. Anything you cannot classify is your real problem, and it is worth isolating before the next close.
The classification is the useful output. A reconciliation that ends with "unexplained, adjusted" teaches nothing and guarantees the same exercise next month.
What the gap really costs
A mismatch looks like a finance annoyance, but its costs spread across the business.
Time. Month-end inventory reconciliation consumes controller and analyst days that could go to analysis. Warehouse staff are pulled into recounts to settle questions that were never about the shelf.
Inventory decisions. If nobody trusts the valuation, nobody trusts the signals built on it. Purchasing buys against numbers it suspects, or holds excess "just in case." Slow-moving stock goes unnoticed because the figures that would reveal it are always under dispute.
Lost deals and customer frustration. If a sales or service team sees stock in one system and finance's availability differs, a promised part does not arrive. The customer waits, or the deal goes elsewhere.
Mistakes in reporting. Unexplained plugs inflate or deflate cost of sales. Margin by location or product line becomes unreliable, and leaders make pricing and footprint decisions on distorted margins.
Burnout. The same people do the same reconciliation under the same close deadline every month. It is tedious, high-pressure work with no lasting improvement, and it drives out the experienced people who understand the quirks.
Reconcile continuously, not at close
The close is the worst moment to reconcile, because every difference has piled up and the context behind it has faded. A daily or even intraday check turns a monthly forensic exercise into a short exception list.
The principle: compare the joins automatically, as often as the data moves, and surface only the exceptions. In practice that means:
- Match quantities between WMS and the inventory subledger on a schedule, by item and location, with a tolerance for in-flight movements.
- Monitor the control account against the subledger and alert when manual journals appear in it.
- Track every integration transaction to a result. Failed, rejected and retried postings should appear in a queue with an owner, not in a log file.
- Report open timing items by age. Goods received not invoiced, in-transit transfers and uninvoiced shipments should each have a value and a days-open figure.
- Review cost changes as they happen. Standard cost revaluations, landed cost allocations and price variances should be visible to finance before close.
- Standardise mappings and reason codes so that new locations, item categories and adjustment types cannot silently fall into a default account.
None of this requires replacing the ERP or the warehouse system. It requires a layer that can read both, compare them, and tell a person when something needs attention.
Where The Ninjaz Group fits, and what to do next
Most multi-location companies already own the right systems. The problem is that the ERP, the warehouse system and procurement were connected once, loosely, and nobody owns the connection. This is the situation The Ninjaz Group works on.
We start with a Blueprint: mapping how inventory events move from the dock to the GL, and finding where work is done twice, data goes stale or money leaks. You keep the map. From there, Build & Link connects the systems you already have, with no rip-and-replace, through Managed Link, the integration layer we build, own and maintain. Managed Business Operations can then run it day to day after go-live.
The Ninjaz Operating Platform is the hub we deploy for this. Its connectors reach ERP, inventory and WMS, and finance systems, and its unified data layer keeps one record per asset and order. Inventory and asset views across sites give operations and finance the same picture. The Command Center can show live KPIs and alerts, and workflow automations route exceptions to the right owner, with roles and an audit trail behind them. The platform will not correct a bad costing method or a wrong conversion factor on its own, since those decisions belong to your finance team. What it does is make the gaps visible while they are small and make sure each one has a clear owner.
If your close still depends on a spreadsheet that explains the difference after the fact, the next step is to see where the differences originate. Book a consultation to talk through your inventory flow, or explore the platform demo to see how connected inventory and finance views work in practice.
- inventory reconciliation
- general ledger
- inventory valuation
- erp
- warehouse management
- month-end close