Your ERP has tolerated a messy item master for years because people were compensating for it. A picker who knows that item 7715 comes in cases of twelve does not need the record to say so.
A WMS does not know that. It reads the field and acts.
This is why so many go lives produce a week of strange behavior that nobody can explain: pallets directed to bins that cannot hold them, replenishments that never trigger, cartonization picking a box the order will not fit in. The system is working correctly on data that was never true.
Here is the cleanup I run, in the order I run it.
Unit of measure, and the conversions under it
This is the field that causes the most damage, and it is usually wrong in a specific way. The base UOM is right, and the conversions are stale.
Check three things per item. What is the base unit you count and sell in. What does the vendor actually ship it in today. And is the conversion factor in the system the current one.
That last one is where it breaks. Vendors change case packs. A part that came 24 to a case in 2022 comes 20 now, and nobody updated the record because receiving just counts eaches anyway. Then directed receiving asks for cases, someone scans a case, and you are four units over on every receipt forever.
Pull your top 200 items by receipt frequency and verify the case pack against a recent packing slip. Not against the purchase order, which was written from the same stale data.
While you are in there, kill duplicate UOM codes. Most systems accumulate three ways to say the same thing (EA, EACH, PC). Pick one per concept and retire the others.
Dimensions and weight
Every warehouse I have worked in has cube data that came from one of three places: the vendor's spec sheet, a guess, or a copy of the item above it in the list.
You do not need all of it perfect. You need it good enough for the decisions the system makes with it. Two decisions matter most: will this fit in that bin, and will this order fit in that carton.
So prioritize. Items that go into pick faces with a size constraint need real numbers. Items that ship in their own carton need real numbers if you use cartonization or rate shopping. Slow moving items on floor stock can wait.
Practical method: put a scale and a tape at the pack station, and have someone capture actuals on whatever passes through during normal work for a few weeks. You will cover the bulk of your volume fast, because volume is concentrated. Chasing the long tail item by item is how this task becomes a six month project nobody finishes.
Round consistently and slightly generously on dimensions. A carton that says it is exactly 12 inches is 12 and a quarter with the flaps.
Duplicate and dead items
Two part numbers for the same physical thing is common, and it is worse than it looks. Stock splits across both records, neither shows a true on hand, and pickers pull whichever one they find.
Find them by description similarity, by vendor part number, and by asking your receiving team, who almost always already know which ones are the same thing.
Merging is the fussy part because history and open orders point at both records. Do the merges before conversion, and do them one at a time with the transaction history in front of you.
Deactivating dead items is easier and worth doing. Anything with no movement in two years and no on hand is noise in every search screen your pickers will use.
Item numbers that look alike
If you have 44821 and 44281 in the same aisle, you have a picking error waiting to happen, and no software fixes it because the scan is the check and both scan fine.
You are not going to renumber your catalog. What you can do is find the near-collision pairs and make sure they are not slotted next to each other, and flag them for a verification scan at pack.
Lot, serial, and expiry flags
Check which items are actually flagged for lot or serial control, then check which ones your team actually tracks in practice.
The two lists never match. Some items are flagged and everyone bypasses it. Others are tracked on paper by a customer requirement and were never flagged. A WMS will enforce the flags rigidly, so decide the real answer per item before conversion, not after receiving grinds to a halt on day two.
If a customer or a regulator requires traceability, that item gets the flag and the process gets built around it. If nothing requires it and you flagged it years ago because it seemed prudent, turn it off. Every controlled item adds handling time on both ends.
Location naming
Not the item master, but the same project and it has to happen first.
Good location codes are fixed width, sortable in pick path order, and readable out loud. Something like AISLE-BAY-LEVEL-POSITION, all numeric segments zero padded. A01-14-3-2 sorts correctly. A1-14-3-2 sorts next to A10.
Rules I hold to: no location that means two things, no free text locations like RECEIVING AREA that any pallet could be in, and separate codes for reserve and pick faces even when they are physically adjacent.
If your naming is bad, renaming during a WMS project is the only cheap chance you will get. Once there is a year of transaction history against the new codes, nobody will touch it again.
Reorder points and min/max
Every conversion I have run turns up min/max values set at go live of the previous system and never revisited. Some are for products discontinued in 2018.
You do not have to perfect these. Just find the ones that are obviously wrong (min above max, min set on items with no demand, points calculated for a lead time that has since doubled) and fix or clear them. Carrying nonsense forward means your new system starts by generating replenishment tasks nobody trusts, and trust in week one is worth a lot.
Sequencing
Start cleanup during selection, not after signing. Nothing on this list depends on which system you pick, and every one of these fields makes your current operation better on its own.
The teams that do it that way arrive at their conversion with data that loads on the first try. The teams that wait spend the first month of the project doing this work under a deadline, with a consultant billing hourly while they wait for it.
