- ERP · AFAS, Exact
- WMS
- POS
- CSV export
Inventory decision intelligence
We showed it eighteen months of a real wholesaler’s sales and hid the rest. It named 542 products as dead and priced the capital inside them. Then the hidden six months were revealed — four out of five had not sold a single unit.
1.07 million order lines · 24 months · real wholesale demand
The product
Not a forecast. One line per product that needs a decision, ranked by the money standing behind it. The trace on the right is that product’s real sales history — two years, week by week.
| SKU | Status | At risk | Signal | Two years of sales | Sage says |
|---|---|---|---|---|---|
| 85014A | Excess | €23,763 | 1,470 d cover | Stop reordering. 1,470 days of stock on hand, €23,763 tied up. | |
| 79323P | Dead | €23,437 | 332 d quiet | Stop reordering. No sales in 332 days. 7,324 units, €23,437 at cost. | |
| 22083 | Excess | €16,800 | 270 d cover | Stop reordering. 270 days of stock on hand, €16,800 tied up. | |
| 85042 | Dead | €9,834 | 415 d quiet | Stop reordering. No sales in 415 days. 2,724 units, €9,834 at cost. | |
| 85014D | Dead | €9,338 | 620 d quiet | Stop reordering. No sales in 620 days. 2,300 units, €9,338 at cost. | |
| 79321 | Reorder | — | below reorder pt. | Order 2,208 units now (368 cases of 6), lead time 7 days. |
Your ERP records what happened. Sage tells you what requires attention.
Every system you already own can show you a stock level. None of them will walk 3,304 products, work out which ones stopped, price the exposure, and put the worst one at the top of the list.
The difference
Nothing goes wrong in a way anyone notices. That is the whole problem — the money leaves quietly, one reorder at a time.
Financial impact
Validation
It made every call blind — which products were finished, which were overstocked, which to leave alone. Only then were the hidden months revealed and the calls scored. No number on this page comes from data the engine had seen.
| Sage said | Products | Capital at risk | Sold nothing after |
|---|---|---|---|
| Dead — stop reordering | 542 | €272,108 | 80% |
| Excess — stop reordering | 536 | €355,456 | 3% |
| Slow — hold off | 220 | €15,600 | 3% |
| Healthy — no action | 947 | — | 6% |
| Reorder now † | 1,059 | — | 94% |
† The one bad row, left in on purpose. A product that has gone silent and already run down to zero stock has nothing on the shelf to flag, so it falls through to “reorder” instead of “dead”. It costs nothing today — the quantity it computes is zero, so no money moves — but the label is wrong, and it is the next thing we fix.
Read the rest downward. Stock Sage called dead mostly never moved again. Stock it called excess did sell, slowly — which is what excess means, and why the advice there is to buy less rather than to dump it. Products it left healthy carried on. The gap between the first row and the fourth is the entire product.
Products do not fade. They stop. There is no downward trend to spot, which rules out every method that looks for one. What works is noticing silence — a product quiet for far longer than it has ever been quiet, judged against its own rhythm. A line that sells every three days is in trouble after three weeks. One that sells every six weeks is not.
What we claim, and what we don’t
If a vendor shows you one big number and calls it savings, ask them which of these four it is.
Where the data comes from. Demand is real: two years of a wholesaler’s invoice history, 1.07 million order lines, publicly available. The warehouse around it — unit cost, supplier, lead time, case pack, stock on hand — is not in that data, so it is simulated. The silence Sage detects is therefore real customer behaviour. The euros are real quantities priced at modelled costs, so read them as scale rather than one company’s books. On your file, both halves are real.
Next
Two years of sales history, exported from your system. At minimum: date, product code, quantity, price. We run it and send back what we find, in euros.