June 9, 2026 · By John Thieszen, MD
Pharmacy dead stock: spotting the SKUs you reorder and never use
Every pharmacy has it. Somewhere on the shelf is a product that was ordered months ago, has barely moved since, and will get reordered again the next time the par level trips — not because anyone needs it, but because the reorder point says so. Multiply that by a few dozen SKUs and you have dead stock: inventory you keep buying and almost never dispense.
It is easy to ignore because it doesn't announce itself. Dead stock isn't a stockout a patient complains about or an expired bottle an inspector finds. It just sits there quietly, costing money in ways that don't show up on any single report — until the day it leaves the pharmacy as a write-off instead of a sale.
What dead stock actually costs
Three costs, and the third is the one that stings.
Cash tied up. Every bottle on the shelf is money you already spent and haven't recovered. Dead stock is working capital frozen in product that isn't turning. For a small pharmacy running on thin margins, capital parked in slow movers is capital not available for the fast movers that actually pay the bills.
Shelf space and attention. Dead stock occupies the same shelves, bins, and cycle-count time as productive inventory. Every slow mover a tech walks past, counts, and checks for expiration is overhead spent on product that isn't earning it.
The expired write-off. Here is the part that makes dead stock worse than just idle: most of it doesn't sit forever. It sits until it expires. A SKU that moves slowly enough to be dead stock is, almost by definition, a SKU at high risk of reaching its expiration date before it is ever dispensed. So the typical end state of dead stock is not "we finally sold it" — it is an expired-medication write-off, often after the return-credit window has already closed. Dead stock and expired stock are usually the same bottles, viewed at two different points in time.
Why it accumulates
Dead stock is rarely one bad decision. It builds up from ordinary drift:
- Reorder points set once and never revisited. A par level that made sense when the item moved every week keeps reordering it long after demand dropped off. Nobody set out to overstock it; the rule just kept firing.
- One-time and seasonal needs. A drug brought in for a single patient or a seasonal spike never fully clears once that need ends, and the leftover lingers.
- Formulary and prescriber changes. A prescriber leaves or a formulary shifts, demand for an item evaporates overnight, and the on-hand stock becomes orphaned.
- Ordering out of habit. "We always keep that" is how a lot of dead stock stays on the reorder list long after the reason for keeping it is gone.
How to find it
The mistake is to look at quantity on hand. A large on-hand count isn't dead stock if the item turns over quickly, and a small one can be dead stock if it never moves at all. The signal isn't how much — it's movement.
Three signals, in combination, find dead stock reliably:
- Last-movement date. When was this item last dispensed or pulled? A last-movement date that is months old is the clearest single flag.
- On-hand relative to usage. Quantity on hand measured against how often the item actually moves — months of supply, not raw units. Two units can be a year's supply for something that moves twice a year.
- Received but never scanned out. Stock with a receiving date well in the past and no record of having been touched since is dead stock in its purest form.
Dispensing velocity itself lives in your pharmacy management system — that's where the sales data is. What the physical inventory layer adds is the other half: what you received, when it physically arrived, and whether it has actually moved on the shelf since. Put the two together and the slow movers stop hiding.
The move: catch it before it expires
Because dead stock and expired stock are usually the same bottles at different times, the highest-leverage thing you can do with a dead-stock list is act on it while the product is still returnable. A slow mover spotted with eight months of shelf life left can often go back to the wholesaler for credit. The same bottle discovered the week it expires is a total loss, and frequently past the reverse-distribution window where any credit was possible.
That reframes dead-stock review from an accounting chore into a recovery opportunity. The question isn't only "what are we overstocked on" — it's "which of our slow movers still has enough dating left to return for credit, and which are about to cross the line into a write-off." Cross-referencing the slow-mover list against expiration dating is what turns a dead-stock problem into recovered cash instead of thrown-away product.
Building a dead-stock review into the routine
Dead stock is a quarterly habit, not a one-time purge. A workable rhythm: once a quarter, pull the items with no movement in the last 60–90 days, cross-check each against its expiration dating, and split the list into two actions — return the ones with enough shelf life left for credit, and stop reordering the ones the par level is still buying. Then adjust the reorder points that created the problem, so the same SKUs don't quietly rebuild over the next two quarters.
The discipline is the cross-check. A slow-mover report on its own tells you what to stop buying. A slow-mover report read against expiration dating tells you what to return — and that's where the money is.
RxRescue is the physical-inventory layer that makes this visible: it captures receiving dates, tracks what's been scanned and pulled, surfaces expiration dating with color-coded urgency, and exports wholesaler return manifests — so the slow movers with shelf life left go back for credit before they become a write-off. See how it works on the expiration tracking and wholesaler returns and credit pages, or start a 30-day free trial.