Export it from Prophet 21, Eclipse, Infor or NetSuite and drop it here. About a minute, free, and the file never leaves this computer.
Two fields actually required:
Nine more that sharpen the numbers, if your export has them. Most standard Inventory Value or Stock Status reports already do:
Leave any column out and the finding that needed it says so instead of guessing, rather than the whole report failing. 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 together, never description alone. Some are deliberate: a second number under a different vendor agreement is real.
A missing category or unit isn’t always an error; some shops carry non-stock lines on purpose. Anything that reads your item master, ours included, inherits the gaps.
Each record is defensible alone. Together they’re how somebody orders twelve and gets twelve boxes, or twelve feet.
Two findings on one record can be one fault or two; fixing one may not fix both.
Twelve months of invoice history shows realized margin instead of risk, and which customers are quietly fading. Names can be C0001 before the file leaves your building.
Margin at risk isn’t a claim about what any customer actually pays. Prophet 21 resolves a pricing cascade of contract prices and pricing libraries before it ever reaches the item’s own price field, so that claim would need invoice history to back it up. What the item master alone can prove is narrower and still real: the cost you’d pay to replace this stock today is higher than the cost it’s priced against, and nothing has caught up.
The 7 to 8 times multiple is a market convention, not your valuation. It assumes the margin you stop losing lands in EBITDA, which on a price-against-cost gap on volume you already sell is close to true, and that a buyer prices this business in that range. Your banker’s number is the one that counts. Dead stock is left out of it on purpose: that is a one-time balance-sheet item, not a recurring earning, and multiplying it would flatter the figure.
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 isn’t 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.
A product group is judged only against the words already filed under it. Each group is read as the vocabulary of its own descriptions, and every record is scored against every group. A record is named only when another group fits its wording far better than its own, beats the runner-up clearly, and carries at least one word lopsided enough to quote back to you. Item number prefixes are never read: they encode vendor or branch as often as product line. A group whose own records don’t word themselves consistently can neither accuse nor be accused, and the caveat under that finding names any group set aside for it.
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 doesn’t age its own stock. Twenty-four months, quantity on hand above zero, valued at quantity times 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.
On Prophet 21 specifically, this date can read optimistically. Depending on how a shop’s P21 is set up, the last-sale-date field is sometimes stamped when an item is entered on an order rather than when it actually ships, and the field that would settle it lives in invoice history, not the item master. If a dead-stock number here looks lower than it feels, that’s the first thing to check against twelve months of invoices before trusting it.
Cost, whichever figure your file carried, 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.
Dead stock is sized in months of the last twelve months of cost of goods. That is cost times units sold in the last twelve months, summed across the file, divided by twelve. Same average-cost basis on both sides, so the ratio is your own trade and not an outside benchmark.
Nothing was estimated. Every row that couldn’t be used is counted at the top, with the reason it was dropped.