Phantom inventory is the gap between what your Shopify admin says and what is physically on the shelf. It cuts both ways. Sometimes the admin shows units that are not there. Just as often it shows nothing where there are perfectly sellable units sitting in a returns bin.
Returns are the usual cause of the second kind, and it is the kind that costs a small store the most, because it turns owned stock into stock you never sell.
The two directions of the gap
Admin says more than the shelf. A unit was sold and shipped, then a return was marked restocked but the item never actually came back, or came back damaged. The count went up; the shelf did not.
Admin says less than the shelf. A return arrived, the item was fine, and it went back on the shelf. But the refund was processed without Restock, or the return was never closed out. The shelf went up; the count did not.
A full stocktake catches both, but it is expensive and infrequent. Between stocktakes, returns keep happening.
Where to look between stocktakes
You do not need to count everything. Returns create the gap, so returns are where to look.
1. Refunds without a restock. For each refund in the last 60 days, check whether each refunded line was restocked. Lines with a zero restock quantity are candidates. 2. Open returns. A return that was started but never closed has a unit in limbo. The longer it sits, the less likely anyone remembers where it went. 3. Returns marked damaged or missing. These are real losses, but they should be recorded as write-offs so they do not look like sellable stock. 4. Restocks that did not move the count. Occasionally a restock is recorded but the inventory level does not change. That is worth its own check, and it is the hardest to spot by eye.
A quick method
Export your refunds for the period and add a column for restocked quantity. Filter for zero. Price each line at its sale price and total the column. That number is a floor on your phantom inventory from returns, and it is usually the first time anyone has seen it.
What not to conclude
An audit like this compares records: a refund against an inventory adjustment. It cannot see the shelf. A refund with no restock is a strong signal, not proof, that a unit is sitting unsold. Treat each case as a question to answer, not a verdict.
StockReclaim runs the four checks above automatically and gives you a dollar total on install, then keeps it current. The figure is always free. Read about what each rule detects.