Why master data decides the project

The least glamorous chapter, and the one that determines whether any of it works.

On this page

Master data is the set of objects everything else refers to: customers, suppliers, items, warehouses, the chart of accounts. It is the least interesting part of an implementation and the strongest predictor of whether it succeeds.

The reason is structural. Transactions are created constantly and are individually cheap to fix. Master data is created once and referenced by everything, so an error in it is inherited by every transaction that follows — and by the time it is visible in a report, thousands of records point at it.

The failure everybody has

Duplicates. Specifically, duplicate customers, and they are created by well-meaning people: a salesperson cannot find "Sharma Traders" because it was entered as "Sharma Trading Co.", so they create it again. Now the credit limit applies to one of them, the ageing report splits across both, and the answer to "how much does Sharma owe us?" is wrong in a way nobody notices for a quarter.

The fix is not training. It is a search that works, a uniqueness rule at the point of entry, and — before go-live — a deduplication pass on whatever you are migrating.

See the Customer concept for the full object definition, its lifecycle, and the invariants that must hold.

Decide these before configuring anything

What is one customer? A legal entity, a billing relationship, or a delivery location? A buyer with three branches and one GSTIN is one customer with three addresses. A buyer with three GSTINs is three billing parties, whatever the letterhead says.

What is one item? If the same product in two pack sizes is one item with variants or two items, the answer changes stock valuation, reordering, and every sales report. It is very expensive to revisit.

What is one warehouse? A building, a floor, a rack, or a legal stock location? Too granular and every stock entry becomes a chore; too coarse and you cannot answer where anything is.

Migration is where this gets real

Whatever you decide, the legacy data will not comply. Plan for a cleansing pass, expect it to take longer than the import, and do not let "we'll clean it up afterwards" into the plan — afterwards never comes, and the dirty records will outlive the project.

Objects on this page