11% of your stock will expire. Most of it doesn't have to.
Hospital pharmacies in India write off an average of 11% of their stock value to expiry every year. It's not negligence. It's a visibility problem. And it's almost entirely preventable.

"He wrote off ₹12,000 in a single afternoon. The drugs had been there for months. He knew they were there. He just couldn't see them in time."
11% is not a rounding error. It's a recurring loss.
Walk into any hospital pharmacy running on paper or on retail billing software and ask the owner: how much stock did you write off to expiry last year?
Most of them won't have a precise number. That's part of the problem.
The ones who do — who've done the exercise of going through their stock and calculating what they actually lost — the number is usually somewhere between 8 and 15 percent of purchase value. On a pharmacy doing ₹30 lakh in annual purchases, that's ₹2.4 to ₹4.5 lakh written off every year. Not because the drugs were bad. Because nobody caught the expiry date in time.
This is not a Tier 2 problem or a small pharmacy problem. It's a visibility problem. And visibility is something software can fix.
It's not carelessness. It's a back-row problem.
Expired stock in a hospital pharmacy almost always comes from the same place: the back row, the bottom shelf, the corner of the storage area where slow-moving inventory goes to wait.
The pharmacist knows it's there. In most cases, they put it there deliberately — older stock gets moved back when new stock arrives, the new stuff goes in front. Standard FIFO logic. Except FIFO only works if the back-row stock actually gets dispensed before it expires.
When a drug moves slowly — a specialist antibiotic, a less-common paediatric formulation, an infrequently prescribed blood pressure medication — the back-row batch sits. And sits. And one day, it quietly crosses the expiry date while the pharmacist is managing 90 other things.
The failure isn't attention. It's that there was no alert. No moment where the system said: this batch, this shelf, this rupee value — 30 days left.
At 90 days, you still have options. At 7 days, you don't.
Here's the part that makes expiry waste so frustrating. Most of it is recoverable — if you know about it early enough.
At 90 days, you can return the batch to the supplier. Many supplier agreements allow this. The conversation is straightforward: here's the batch, here's the expiry date, here's the credit note.
At 60 days, you can push the drug to front-of-shelf, train counter staff to dispense it first, and move through it before the date arrives.
At 30 days, you can offer it to the hospital at a discount, coordinate with the doctor to prescribe it where clinically appropriate, or at minimum flag it for immediate action.
At 7 days, none of those options are realistic. You're writing off.
The difference between a 90-day alert and no alert isn't just ₹12,000 on one afternoon. It's every batch, every month, every quarter — compounding into an annual loss that shows up as a vague feeling that the margins are tighter than they should be.
- WeDose tracks expiry at the batch level — not just by drug name. Batch CR-2401 and batch CR-2309 of the same drug can have different expiry dates, and both are tracked separately.
- Alerts fire at 90, 60, and 30 days before expiry — each with the batch number, quantity remaining, and rupee value at stake.
- The morning digest groups expiring batches by urgency, so the pharmacist knows what needs action today versus what can wait until Friday.
- FIFO is enforced at the billing screen — when a drug is added to a bill, the oldest unexpired batch is selected automatically. The pharmacist can override, but the default is always FIFO.
When you can see it coming, you can do something about it.
The pharmacists we spoke to in Haryana are not running careless operations. They're running deeply optimised ones, under real constraints, with limited time and no margin for error.
What they're missing is not effort. It's information — delivered early enough, specific enough, and in a channel they're actually checking, to make a difference.
That's the whole job of the expiry alert. Not to report a problem after the fact. To give you the 90-day window where the problem is still preventable.
Most of that 11% doesn't have to expire. It just needs to be seen.
The write-off at the end of the quarter is always a surprise. It shouldn't be.
If you want to see how batch-level expiry tracking works in practice — and what the 90-day window looks like when it's actually visible — we're happy to walk you through it.
