Inventory reconciliation in Business Central means confirming that your inventory subledger (item ledger entries and value entries) matches the inventory-related accounts in your general ledger (G/L). In practice, this means: run the Adjust Cost / Post Cost to G/L batch jobs, then compare the Inventory Valuation report (or the built-in Inventory - G/L Reconciliation page) against your chart of accounts for the same date. If the totals match, you're reconciled. If they don't, the difference is almost always caused by a direct G/L posting, a document posted straight to the inventory account instead of through an item, or a changed inventory posting group. This should be done monthly, as part of your period-close process.
Inventory reconciliation is a required accounting control, not a nice-to-have. Auditors expect to see it performed regularly, differences investigated, and corrections documented. This guide covers the setup that drives inventory value, the reports built specifically for reconciliation (including one that many guides skip), and how to actually track down and fix a discrepancy.
Table of Contents
Why Inventory Reconciliation Matters?
Every inventory transaction in Business Central creates two parallel records: a quantity/value movement in the inventory subledger, and a corresponding entry in the general ledger. In theory, the subledger total and the G/L inventory account balance should always agree. In practice, they often don't, because of timing differences, direct journal entries, or setup changes.
Reconciling monthly (not just at year-end) matters for three reasons:
- Financial accuracy. Your balance sheet is only correct if inventory is correct.
- Audit readiness. Auditors specifically look for evidence the reconciliation was performed, that differences were investigated, and that any correcting entries were reviewed and documented.
- Early detection. Catching a discrepancy the month it happens is far easier than tracing it back through a year of transactions.
The Inventory Setup Fields That Drive Reconciliation
Six fields on the Inventory Setup page directly influence how (and when) inventory value hits the G/L:
- Automatic Cost Posting – When set to Yes, Business Central posts to the inventory, adjustment, and COGS accounts in real time as transactions happen, instead of waiting for a batch job. Even with this on, it's still good practice to periodically run Adjust Cost / Post Cost to G/L. Setting it to No can improve performance on high-volume systems; the tradeoff is you must run the batch job (often overnight) to keep the G/L current.
- Expected Cost Posting to G/L – When inventory is received or shipped but not yet invoiced, Business Central treats the value as an estimate ("expected cost"). If this is Yes, those expected values post to interim G/L accounts so you get a real-time estimate before invoicing.
- Automatic Cost Adjustment – Controls when costs get recalculated (Never, Day, Week, Month, Quarter, Year, or Always). If set to Never, you must run Adjust Cost / Post Cost to G/L manually. Most companies pick either Always (real-time) or Never with a scheduled nightly job.
- Average Cost Calc. Type – For items on average costing, defines whether the average is calculated per item, or per item, location, and variant. Avoid changing this after go-live; it recalculates average cost across all open periods.
- Average Cost Period – The time bucket used for average cost calculation: day, week, month, or accounting period.
- Prevent Negative Inventory – Recommended set to Yes. Negative inventory breaks Business Central's ability to match an outbound entry to an inbound cost layer, which is a common root cause of unexplained cost differences.
The Three Entry Types Behind Every Inventory Transaction
Understanding these three record types is the foundation of troubleshooting any reconciliation difference:
- Item Ledger Entries – The quantity record. Created when inventory physically moves (a receipt or a shipment), not when it's invoiced.
- Value Entries – The cost/value record tied to each item ledger entry. Created for expected cost at receipt/shipment, then adjusted to actual cost at invoicing. This is where most reconciliation investigation happens, since G/L entries are generated from value entries.
- General Ledger Entries – Created either automatically (if Automatic Cost Posting is on) or by manually running the Post Inventory Cost to G/L batch job. These post with a source code of INVTPCOST when they come from the normal inventory process.
If a G/L entry related to inventory does not have an INVTPCOST source code, that's usually your first clue something bypassed the normal process, more on that below.
The Reports Built for Inventory Reconciliation
This is the part most reconciliation guides shortchange, so it's worth covering all three.
1. Inventory Valuation Report
Shows the value of inventory as recorded in the subledger: actual (invoiced) cost plus expected (received/shipped but not invoiced) cost, as of a chosen date. Run Adjust Cost / Post Cost to G/L first so the numbers are current.
2. Inventory to G/L Reconcile Report
Ties the Inventory Valuation report to what's actually posted in your G/L inventory accounts. It's especially useful when your Inventory and Inventory (Interim) accounts are separate G/L accounts, since it breaks out received-not-invoiced and shipped-not-invoiced amounts separately. Key columns to watch: Expected Cost to be Posted and Inv. Value to be Posted. Anything other than zero in these fields means you need to run Adjust Cost / Post Cost to G/L again before your comparison will be valid.
3. Inventory - G/L Reconciliation Page (the one most guides skip)
Business Central also includes a purpose-built Inventory - G/L Reconciliation page that goes beyond the static reports above. It displays a matrix comparing what's recorded in the G/L against what's recorded in the inventory ledger (value entries), broken out by Inventory, Inventory (Interim), and WIP Inventory columns for each relevant G/L account type. Two things make it worth using alongside the older reports:
- Built-in explanations. Turn on the Show Warning option and, when there's a discrepancy, Business Central displays a message explaining the likely reason, rather than just a number that doesn't tie out.
- Drill-down. You can click into the totals to see the underlying entries, rather than exporting to Excel to investigate manually.
Search for Inventory - G/L Reconciliation, set your date, item, and location filters, then choose Show Matrix. For work-in-progress accounts specifically, this page (or the Production WIP report) is the most reliable way to confirm your WIP balance, since WIP differences persist by design until all production orders are finished and all related purchase invoices are received; they're not necessarily an error.
If you reconcile inventory frequently across many posting groups, some AppSource apps (such as an enhanced version of the Inventory to G/L Reconcile report) add color-coding and additional expected-cost columns on top of the standard report. Worth evaluating if your team runs this reconciliation weekly rather than monthly.
Step-by-Step: How to Reconcile Inventory in Business Central
- Confirm cost posting and adjustment settings: If Automatic Cost Posting and Automatic Cost Adjustment are both set to Always, skip to step 3, the system is keeping things current for you.
- Run Adjust Cost - Item Entries, then Post Inventory Cost to G/L, if step 1 doesn't apply. This ensures all costs are calculated and posted before you compare anything.
- Choose your reconciliation date and run the Inventory Valuation report, the Inventory to G/L Reconcile report, or open the Inventory - G/L Reconciliation matrix, using the same ending date across all of them.
- Compare the subledger total to your chart of accounts: Pull up your inventory G/L account(s) as of the same date and compare the balance to the Inv. Value Posted to G/L (and Expected Cost Posted to G/L, if applicable) from your report.
- If they match, you're done: Document the reconciliation (date, preparer, totals compared) for your records.
- If they don't match, investigate using the causes and fixes below.
- Post any correcting entries, clearly documented, and re-run the comparison to confirm it now ties out.
Common Causes of Inventory-to-G/L Differences (and How to Fix Them)
1. Direct journal entries to the inventory account
The most common cause. Someone posted a manual entry straight to a G/L account that's supposed to be driven entirely by the item subledger.
How to find it: Open the G/L Account Card for your inventory account, view Ledger Entries, and filter by Source Code. Entries with a blank source code or GENJNL were posted from a general journal rather than through the normal inventory process (which posts as INVTPCOST). Note: beginning balance entries from your original data conversion will also show this way; don't reverse those.
How to fix it: Select the entry and use Process > Reverse Transaction to reverse it cleanly. Business Central creates a matching reversal entry and links the two via the Reversed by Entry No. / Reversed Entry No. fields, so the correction is traceable. Going forward, disable Direct Posting on inventory-related G/L accounts to prevent this from happening again.
2. Documents posted directly to the inventory G/L account
Similar issue, but from a purchase or sales document line where a G/L account was selected instead of an item. These post with a source code of PURCHASE or SALES, not INVTPCOST, so source code alone won't isolate them from all your normal purchasing activity.
How to find it: Filter the relevant line tables (Purchase Line, Purchase Credit Memo Line, Sales Invoice Line, Sales Credit Memo Line) for lines of Type "G/L Account" pointing at your inventory account number.
How to fix it: Post the opposite type of document for the same amount (a credit memo to offset an invoice, or vice versa). Use Process > Copy Document to copy the original and speed this up. Track which documents have been corrected so the same one isn't corrected twice.
3. Inventory posting group changed after transactions were posted
If an item's Inventory Posting Group is changed after purchases and sales have already posted, Business Central does not retroactively update the historical entries. The item may have been purchased into one G/L account and sold out of a different one, individually incorrect even though the combined total is right.
How to find it: Export Value Entries (Posting Date, Item No., Document No., Cost Amount Expected, Cost Amount Actual, Inventory Posting Group) to Excel and pivot by Item No. and Inventory Posting Group. Any item showing more than one posting group has had its setup changed mid-stream.
How to fix it: Post a general journal entry moving the affected balance from the old inventory G/L account to the new one, with a clear description referencing the item and date range so it isn't mistaken for an error in a future reconciliation.
4. System issues (rare)
If none of the above explain the difference, it may be a code-level issue, often introduced by a third-party extension that posts inventory-related entries outside the standard process. These are uncommon but time-consuming to isolate. The general approach: run the Inventory - G/L Reconciliation report as of your original go-live date to confirm you started in balance, then narrow down by year, month, week, and finally day until you isolate the point the numbers diverged. From there, compare Value Entries to G/L Entries for that specific window to identify the transaction.
Best Practices for Ongoing Inventory Reconciliation
- Reconcile monthly, not just at year-end: Smaller, more frequent checks are dramatically easier to investigate than a year's worth of unreconciled activity.
- Use the Inventory - G/L Reconciliation matrix as your first stop: Its built-in warning messages often point straight to the cause, saving the manual detective work described above.
- Disable direct posting on inventory G/L accounts: This single control prevents the most common cause of differences.
- Document every correction: A clear description on any manual correcting entry saves the next person (possibly you) from duplicating or reversing it by mistake.
- Set cost posting and adjustment consistently, and understand the performance tradeoff of Automatic Cost Posting before turning it on for a high-transaction-volume company.
- Don't panic over WIP differences: A non-zero WIP variance is often expected behavior tied to open production orders, not an error, confirm with the Production WIP report before treating it as a discrepancy.
Frequently Asked Questions
What is inventory reconciliation in Business Central?
It's the process of confirming that the value of inventory recorded in the inventory subledger (item ledger entries and value entries) matches the balance of the corresponding inventory accounts in the general ledger, as of the same date.
How often should inventory be reconciled in Business Central?
Monthly, as part of period close, is standard practice. Auditors typically expect evidence of a regular reconciliation cadence, not just a year-end check.
Which report should I use to reconcile inventory in Business Central?
Start with the Inventory - G/L Reconciliation matrix page for its built-in discrepancy explanations and drill-down. The Inventory Valuation report and Inventory to G/L Reconcile report remain useful for period-end documentation and for companies with separate Inventory and Inventory (Interim) G/L accounts.
Why doesn't my inventory match the general ledger in Business Central?
The most common causes are: a manual journal entry posted directly to the inventory account, a purchase or sales document line posted to a G/L account instead of an item, or an item's inventory posting group being changed after transactions were already posted.
What does Automatic Cost Posting do?
When enabled, Business Central posts inventory, adjustment, and COGS values to the general ledger in real time as transactions are processed, instead of waiting for a scheduled batch job. It can be turned off for performance reasons on high-volume systems, but the Post Inventory Cost to G/L batch job must then be run on a schedule.
Why is my WIP account not reconciling?
A WIP difference is often expected, not an error. It reflects open production orders and unreceived purchase invoices, and will naturally go to zero only once all related production and purchasing activity is completed and invoiced. Use the Inventory - G/L Reconciliation matrix or the Production WIP report to confirm the difference is consistent with open activity rather than an actual discrepancy.
Final Thoughts
Inventory reconciliation in Business Central isn't complicated once you understand the three entry types (item ledger, value, and G/L entries) and the reports built to compare them. The process is straightforward: adjust and post costs, run your reconciliation report of choice, compare to the chart of accounts, and investigate anything that doesn't tie out. Doing this monthly, with documented corrections, keeps your books audit-ready and catches problems while they're still small.
If your reconciliation regularly turns up the same unexplained difference month after month, that's usually a setup issue hiding behind a symptom, not a one-off error worth writing off. Dynamics Square includes certified accountants who've traced this exact kind of discrepancy back to its root cause more times than we can count.
Stuck on a recurring inventory variance? Contact us what your reconciliation report shows and we'll help you find where it's actually coming from.
