Export your item master, drop the file here, and you get these four back in about a minute. If a migration is anywhere on your roadmap, everything dead or duplicated in that file is something you pay to move and then keep paying to store.
It is read on this computer. Nothing is uploaded and nothing is stored, unless you use the send box at the end of the report.
paste it out of Excel instead · run it on a sample catalogue
No customer names, no customer pricing, nothing personal. Only the item number and the description are required. Leave a column out and the finding that needed it says so instead of guessing.
Leave the report headers and the total row in, they get stripped. CSV, tab separated text and real Excel workbooks all work.
| Field | Column in your file | First value we found | Match |
|---|
Matched on description, vendor and unit of measure together, never description alone. Two records for one item split the demand history in two, so every reorder point, forecast and stocking decision built on top of them is calculated on half the picture. This is the finding no reporting tool gives you, because a reporting tool reports the data rather than questioning it.
Some of these are deliberate. A second number for the same part under a different vendor agreement is a real thing. The list is where you decide that, one line at a time.
No category, no unit of measure, or a description nobody could match against an incoming purchase order. A BI platform will chart this data beautifully and never once mention that it is wrong. Anything you buy that reads your item master, ours included, inherits these.
One item family carrying different units of measure across its records. Each is defensible on its own and together they are where wrong quantities and short shipments come from: somebody orders twelve and gets twelve boxes, or twelve feet.
No transaction on the record in twenty-four months, quantity still on the shelf, valued at your own standard cost. This is the one finding here you can partly get elsewhere, which is why it is fourth rather than first.
Worth saying plainly, because a power user will know the difference. Prophet 21 classifies items for replenishment and its forecasting module can flag an item obsolete. Those are settings that control purchasing. They are not a report that values what has not moved and ranks it, which is why people ask on the Epicor forum how to build one.
Nor is anyone claiming this problem is unsolved. Phocas and EazyStock both do this, and do it well, at roughly thirty to sixty thousand dollars a year before setup and implementation. What we are saying is narrower: you should not have to sign a licence and run an implementation to find out how much of your item master is dead, duplicated or broken. That part is one export and a minute.
If it was useful, the next file answers what this one structurally cannot. Twelve months of invoice history shows real margin instead of theoretical margin, how long a price stayed wrong after a cost moved, and which customers are quietly fading. Customer names can be replaced with C0001 before it leaves your building; the work only needs to know that a customer is the same customer across months. That is a conversation, not a purchase.
Duplicates are matched on description, vendor and unit together. The description is compared with case, punctuation and word order thrown away, so PVC ELBOW 90 1/2 and Elbow 90 1/2" PVC are the same string to us, while a bare number keeps its place, because a 1/4 x 2 nipple is not a 1/2 x 4 nipple. Two records only count as duplicates when the vendor and the unit agree as well. Matching on description alone would flag half a catalogue and you would be right to stop reading. Where two records word it differently, the report shows the wording on the lowest item number, usually the record the others were copied from.
Dead stock is measured from the newest date in your own file, not from today, so an export that sat in a downloads folder for a fortnight does not age its own stock. Twenty-four months, quantity on hand above zero, valued at quantity times standard cost.
Rows with no date on them are counted separately and never assumed dead. Same for rows with no cost: they appear in the count and not in the money.
Standard cost is a book number. What the stock is worth on a liquidation is a different question and a much smaller number. This figure is what it costs you to hold and to migrate, not what anyone will pay for it.
Nothing here is a judgement about your business. A slow line held for a contract, a spare for a machine that has not broken yet, a second item number a customer insists on: all real, all in these lists. The lists are where you take them out.
Nothing was estimated. Every row that could not be used is counted at the top, with the reason it was dropped.