Phantom inventory is the gap between what your system says you have and what is actually on the shelf, when the book is positive but the bin is empty. It is corrosive because it hides: the system keeps promising stock that is not there, so you accept orders you cannot fill and never reorder the item because, on paper, you still have it. You do not need a full count to catch it. The signal is usually sitting in your transaction stream.
The tell: sales stop when they should not
The clearest phantom-inventory signal is a sales rate that drops to zero on an item that should still be selling, while the book still shows stock. A real seller that suddenly stops selling, with on-hand greater than zero, is often not a demand change, it is an empty shelf the system has not noticed.
# illustrative signal: expected-to-sell but isn't
if on_hand > 0 and days_since_last_sale > k * typical_inter_sale_interval:
flag('possible phantom stockout')
Other stream signals worth modeling
- Negative-then-corrected on-hand. A SKU that periodically dips negative and gets adjusted back is telling you the book and the shelf disagree regularly.
- Adjustment clustering. Frequent manual adjustments on a location or SKU class are a phantom hotspot; the adjustments are the symptom, not the cure.
- Sell-through outpacing receipts. When cumulative sales drift ahead of what receiving recorded, the book is inflating.
Simple models beat nothing
You do not need deep learning here. A per-SKU baseline of normal inter-sale interval, with an alert when an item with positive on-hand goes quiet beyond its normal gap, catches most phantom stockouts. For maturity, a seasonal or velocity-adjusted expectation reduces false positives on genuinely slow movers, which is the same intermittent-demand problem as elsewhere in forecasting: do not flag a part that normally sells once a quarter for not selling this week.
From signal to fix
Detection just points the cycle counter at the right shelf. Feed the flagged SKUs into your cycle-count queue so a human verifies and corrects the record. Phantom inventory is ultimately an inventory control accuracy problem; the anomaly model is what turns “count everything eventually” into “count this, now, because the data says it is wrong.”
The takeaway
Phantom inventory hides in plain sight as silence: stock that should sell but does not, while the book says it is there. Watch the transaction stream for that pattern, route the hits to cycle counting, and you catch the empty shelves long before a quarterly count would.
Implementing this at your scale?
The walkthrough above comes from production work. AvanSaber’s inventory practice has implemented variations of this pattern across multiple customer engagements.
If you are building this and want expert review of your design, or would rather have the team that built this build yours, book a discovery conversation or describe your situation at [email protected].