Data integrity · ERP · Inventory
Why your ERP master data does not match inventory (and what it costs)
Duplicate product records, swapped units of measure and late postings explain most gaps between the ERP and physical stock. How to map them and what to fix first.
Every company running an ERP has lived the scene: the system says there are 140 units in stock, the warehouse counts 96, and nobody can say which one is right. The stock count turns into a negotiation, purchasing buys “just in case”, and finance discovers the difference months later, in the margin.
The gap almost never starts in the warehouse. It starts in master data, and it spreads to everything that reads master data: purchase orders, invoices, requisitions, average cost and, increasingly, the reports and AI agents the company is trying to put on top of that data.
Where the gap begins
In the mappings we do, the same causes show up in almost every company, regardless of the ERP:
- Duplicate records. The same item exists as “Cement CP II 50kg”, “CEMENT CPII 50 KG” and “Cement 50kg”. Each purchase lands in one of them, and the real balance is split across three codes.
- Swapped units of measure. The product is bought by the box and consumed by the unit, or registered in meters and measured in square meters. The conversion factor lives in someone’s head, not in the system.
- Late postings. The invoice is posted on the 5th, but the goods arrived on the 28th of the previous month. Closing stock is wrong in both months, and so is the period’s average cost.
- Whoever creates, approves. Without separation of duties, a typo (or a fraud) goes through the whole flow without a second reading.
- Free text doing structured work. The project, cost center or supplier goes into the “notes” field, and the report that needs it depends on someone remembering to look.
None of these is an ERP bug. They are business rules the system does not know, because nobody wrote them down anywhere.
What it costs
The visible cost is the stock count: hours of counting, adjustments, arguments. The bigger cost is invisible:
- Duplicate purchases and stockouts at the same time. One code shows surplus while another shows a shortage of the same item.
- Distorted average cost, which contaminates sale prices, margin per project or product, and the decision to keep or drop a line.
- Reports nobody trusts, which pushes every manager to keep their own spreadsheet, and the spreadsheet becomes the parallel “truth”.
- AI that is confidently wrong. An agent or assistant reading the ERP will answer with the same wrong numbers, only more convincingly and faster. Before any AI project, the data has to reconcile.
Map before you fix
The temptation is to “clean the master data”. Without a map, the cleanup lasts until the next purchase. The work that solves it has three parts:
Data dictionary. For each entity (product, supplier, project, cost center), what it means in your company, which fields are mandatory, who owns it and which rules apply. It is the document that explains the business to people, systems and AI models. We cover it in detail in The data dictionary: the document that makes Claude and ChatGPT understand your company.
Integrity rules. What must not happen: two descriptions for the same item, an invoice without a project, a purchase above the group median without justification, a posting dated before the close. Written rules become signals that run every day on the data.
Integrity report. A snapshot of the current state: how many duplicate records, how much stock sits in “orphan” codes, which reports depend on free text, where separation of duties fails. The report is what lets you prioritize by financial impact, not by volume of complaints.
What to do first
If you want to start today, without a consultancy, three small steps already change the game:
- Pick the 20 entities that move the most value and write, on one page, what each field means and who answers for it.
- Separate creation from approval, even if approval is a weekly check by someone who did not create the record.
- Lock the unit of measure. One item, one purchasing unit, one conversion factor stored in the system.
If you would rather have Koltren do the full mapping, with the integrity report and the data dictionary, the first call is a diagnosis and comes with no strings attached.