Hidden Cost of Pharmacy Expiry: A Chennai Wake-Up Call
How one pharmacy discovered they were losing ₹1.8 lakhs annually to expired stock - and the 3 blind spots that caused it.
The number was ₹1.8 lakhs. The owner thought it was ₹40,000.
This is a composite scenario built from patterns I have seen across pharmacy operations in Tamil Nadu. I am not describing one pharmacy — I am describing a pattern so common that if you own a pharmacy doing ₹8-15 lakhs monthly, at least two of the three blind spots below are present in your business right now.
The pharmacy: 300 square feet in a busy Chennai neighbourhood. ₹11 lakhs monthly revenue. Two pharmacists, one helper. Approximately 3,200 SKUs. Decent foot traffic from three nearby clinics. The owner has been in business nine years.
When asked about expiry losses, his estimate was ₹3,000-4,000 per month, roughly ₹40,000-48,000 per year. This was based on what he saw in the write-off register — strips, bottles, and tubes physically discovered as expired, documented, and destroyed. An honest estimate based on visible evidence.
The actual annual loss, once three blind spots were accounted for, was ₹1,82,000. Not four times the estimate — four and a half times.
For a pharmacy with 8-10% net margins on ₹1.3 crore annual revenue, net profit is ₹10-13 lakhs. Losing ₹1.82 lakhs to expiry means losing 14-18% of net profit. Not to competition, not to rent, not to regulation. To products sitting on a shelf past their date.
Not sure how much you're losing to expiry?
Run a free inventory waste audit — find your bleeding SKUs in 60 seconds. No sign-up required.
Run free auditBlind spot one: the write-off register only counts what gets found
The write-off register captures expired stock discovered through existing checking processes. Whatever the process misses is not in the register.
In this pharmacy, the monthly expiry check worked like this: one Saturday per month, the helper scanned front-facing stock in each major category, pulled forward anything under three months, set aside anything expired. Two hours for 3,200 SKU positions — approximately 2.25 seconds per position. Enough to read the front-facing expiry date. Not enough to pull stock from the back.
The shelves were 60-75 cm deep. Stock stacked two to three layers deep per position. The monthly check inspected one layer. Back layers — where older stock migrates when newer deliveries go in front — were not effectively inspected.
Approximately one-third of physical stock (₹4 lakhs of ₹12 lakhs inventory) lives in those uninspected back layers. If the expiry rate on inspected stock is ₹3,500/month, and uninspected stock has a higher rate (it contains older, pushed-back batches), a conservative estimate is ₹2,000-4,000/month in additional expiry discovered late.
Annual impact: ₹24,000-48,000 in expired stock the register understates.
Blind spot two: distributor return windows, systematically missed
This blind spot hurts the most because it represents recoverable loss that becomes irrecoverable through inaction.
Every pharmaceutical stockist has a return policy: stock can be returned for credit with 3-6 months remaining shelf life. The return window is specified in terms. Most pharmacy owners know it generally.
Knowing the window and acting on it are different things. Acting requires knowing, at any moment, which SKUs on your shelf approach the return window for their respective stockists. This is a complex data problem: 3,200 SKUs, multiple stockists with different policies, multiple batches per SKU with different expiry dates, and a window defined relative to each batch's specific expiry.
In this pharmacy, returns were processed reactively. When the monthly check found near-expiry stock, it was set aside for return. But the monthly check does not align with batch-specific return windows. A batch expiring October 15 with a 3-month window needs return by July 15. If the July check happens July 6 and this batch is in the back of the shelf, it might not be found until August 3 — window closed.
Of the pharmacy's ₹1.8 lakhs in annual expired stock, an estimated 40-55% had been within the return window at some point. The stock was returnable. It just was not returned in time.
This is not negligence. It is a systematic failure of information. The pharmacist does not have a list saying "these 47 batches across 35 SKUs enter their return windows in the next 30 days." Without that list, returns are reactive and late.
Annual impact: ₹72,000-99,000 in recoverable value that became irrecoverable.
Blind spot three: scheme-induced surplus nobody tracks
Pharmaceutical companies push volume through schemes: buy ₹10,000 of Brand Y, get 10% free goods. The company rep presents the scheme, the owner evaluates: "Product I sell? Yes. Good scheme percentage? Seems good. I'll take it."
What the evaluation almost never includes: "How many months of supply will this create, given my sell-through rate? Given the batch expiry, will the surplus sell before it expires?"
In this pharmacy, scheme purchases were 15-20% of total monthly purchases. Over a year, schemes generated aggregate surplus of approximately ₹2.5 lakhs. Not all expires — fast movers with long shelf life sell through fine. But medium-movers and slow-movers (disproportionately included in schemes because manufacturers use schemes to push precisely these products) linger.
₹35,000-40,000 of annual expired stock was scheme-induced surplus. The scheme margins totalled ₹28,000 on those specific purchases. Net impact: a loss of ₹7,000-12,000 on schemes that appeared profitable at acceptance.
Each individual scheme looks profitable. The margin improvement is immediate and visible on the next invoice. The expiry cost is delayed 12-18 months and distributed across dozens of SKUs, invisible to any analysis that does not connect scheme purchases to specific batch outcomes.
Annual impact: ₹35,000-40,000 gross, partially offset by margins.
The total: how ₹40,000 becomes ₹1,82,000
- Visible loss (write-off register): ₹42,000
- Blind spot one (uninspected deep-shelf stock): ₹36,000
- Blind spot two (missed distributor returns): ₹85,000
- Blind spot three (scheme surplus expiry): ₹38,000
- Handling costs (Form 29 documentation, disposal time): ₹15,000
- Total: approximately ₹2,16,000 gross, or ₹1,82,000 net after scheme offsets
The largest component is not the expired stock itself. It is the missed distributor returns — stock that was recoverable and became a write-off because the return window passed without action.
Why this pattern persists
Three reasons, each reinforcing the others.
The loss is invisible in the form it takes. Monthly write-offs of ₹3,500 do not trigger alarm. Missed returns are not tracked. Scheme surplus blends into the general expiry pool. No single line item says "this expired because you accepted a scheme without checking sell-through."
The fix requires data manual systems do not generate. Knowing which batches approach return windows requires batch-level tracking. Evaluating schemes against sell-through requires historical sales data at SKU level. A pharmacy running on basic billing and manual registers does not have these data points.
The perceived cost of the fix exceeds the perceived cost of the problem. If you think your loss is ₹40,000, spending ₹50,000-80,000 annually on a system looks like a bad deal. If you know it is ₹1,82,000, the same system is a clear return.
What changes with batch-level tracking
At ShelfLifePro, we built batch-level inventory tracking specifically for these blind spots. Our production client is Kavitha at Dharmik Supermarket in Coimbatore — grocery context, not pharmacy. But the mechanics are identical: every unit tagged to a batch and expiry date, alerts when batches approach thresholds.
The alerts address blind spot two directly. When the system knows batch ABC expires October 15 and the return window is 3 months, it generates a return alert on July 1 with buffer for processing. The pharmacist does not need to discover this through a shelf check. The information arrives proactively.
For blind spot three, the system provides sell-through rate data for scheme evaluation. Before accepting, check: current stock, monthly sell-through, months of supply the scheme creates, batch expiry. The decision becomes arithmetic, not instinct.
A pharmacy that reduces total expiry loss by 50% — not eliminates, just halves — recovers ₹91,000 annually. On ₹10-13 lakhs net profit, that is a 7-9% increase without selling a single additional strip.
The write-off register tells you the truth. It just does not tell you the whole truth.
See what batch-level tracking actually looks like
ShelfLifePro tracks expiry by batch, automates FEFO rotation, and sends markdown alerts before stock expires. 14-day free trial, no credit card required.