Free AuditEnterprise AIShelfSense
Back to Blog
PharmacyMar 202611 min read

Pharmacy Expiry Management: Batch Tracking Saves Lakhs

Indian pharmacies lose 2-4% of purchase value to expired stock annually. Batch-level tracking with FEFO enforcement prevents most of it.

The expiry problem pharmacists won't talk about at conferences

Ask any pharmacist in India about their biggest operational headache and you will hear about GST compliance, or drug pricing regulations, or the difficulty of hiring reliable staff. What they rarely mention — because it feels like an admission of failure — is expiry waste.

The numbers tell a different story. The average Indian pharmacy loses 2-4% of its purchase value to expired stock annually. For a pharmacy doing ₹30 lakh in monthly purchases, that is ₹7 to ₹14 lakh per year in dead inventory. Not slow-moving inventory. Dead. Products that cannot legally be sold, must be disposed of, and represent pure loss.

The tragedy is that most of this loss is preventable. Not with better guessing or more attentive staff, but with batch-level tracking that makes expiry visible before it becomes a crisis.

Free Tool

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 audit

Why pharmacy expiry is harder than retail expiry

Pharmacy inventory is uniquely difficult for expiry management. Here is why:

The SKU explosion

A typical Indian pharmacy carries 3,000 to 8,000 SKUs. A supermarket might carry similar numbers, but a supermarket's products move predictably — milk sells every day, bread sells every day. In a pharmacy, 60% of your SKUs are slow-movers that sell a few units per month. That antibiotic that a doctor prescribed heavily for three months? The doctor moved to a different hospital. Now you have 40 strips sitting with 8 months of shelf life, and nobody is prescribing it.

Multiple batches of the same drug

You receive Paracetamol 500mg from three different distributors. Each shipment has a different batch number and a different expiry date. One batch expires in March 2027, another in September 2027, another in January 2028. If your staff dispenses from whichever box is most accessible — the one on top, the one in front — the March 2027 batch sits at the bottom gathering dust until it is too late.

This is where FEFO — first expiry, first out — stops being a nice idea and becomes essential. FEFO ensures the March 2027 batch gets dispensed before the September 2027 batch, regardless of which one arrived first or which one is more convenient to reach.

Regulatory exposure is higher

Dispensing an expired drug is not just wasteful — it is a criminal offence under the Drugs and Cosmetics Act. Unlike a supermarket selling expired biscuits (which is a food safety violation), a pharmacy selling expired medicine can face licence suspension, prosecution, and imprisonment. The stakes are fundamentally different.

Return windows are shrinking

Historically, Indian pharmacies relied on distributors accepting returns of near-expiry stock. This safety net is disappearing. Major distributors have tightened return policies: many now require returns at least 90 days before expiry, and some have shifted to credit-note-only policies with deductions of 10-15%. If you miss the window, the stock is yours.

The batch tracking gap

Here is the core problem: most Indian pharmacies track inventory at the product level, not the batch level.

They know they have 120 strips of Azithromycin 500mg. They do not know that 30 of those strips expire in 4 months, 50 expire in 9 months, and 40 expire in 14 months. Without batch-level visibility, the 30 strips expiring in 4 months are invisible until someone physically checks the shelf — which, in a busy pharmacy, happens too late.

What product-level tracking misses

  • Which batches to dispense first — without FEFO enforcement, staff default to LIFO (last in, first out) because recent stock is on top
  • When to initiate returns — you cannot return stock to distributors if you do not know which batches are approaching the return deadline
  • True expiry loss — your accounting shows a lump "expired stock" write-off; you cannot identify which suppliers, categories, or purchasing decisions drove the loss
  • [Schedule H1 compliance](/blog/schedule-h1-digital-register-pharmacy-compliance) — H1 drugs require batch-level sale records, which is impossible to maintain accurately without batch-level inventory

What batch-level tracking enables

When every unit in your pharmacy is tracked by batch number and expiry date, you gain:

90-day visibility. You know today what will expire in 90 days. Not approximately — exactly. 14 strips of Cefixime 200mg, batch BN4521, expiring 15 June 2026. 8 bottles of Cough Syrup X, batch CS7890, expiring 30 June 2026. Every item, every batch, every date.

Automated FEFO dispensing. When your billing software is connected to batch-level inventory, it automatically deducts from the nearest-expiry batch. The pharmacist does not need to think about it. The system enforces it.

Return planning. The system knows distributor return windows and flags batches that are approaching the return deadline. A WhatsApp alert at 8 AM tells you: "These 12 items from Distributor ABC are within 30 days of their return window. Process returns today or absorb the loss."

Expiry-aware purchasing. Before placing a reorder, the system shows you current stock including batch-level expiry data. If you already have 60 strips with 10 months of shelf life, maybe you do not need to order 100 more just because the distributor offered a scheme.

The morning routine of a batch-tracked pharmacy

Here is what pharmacy expiry management looks like when it works:

8:00 AM — [Daily expiry alert](/alerts) arrives on WhatsApp.

The pharmacist receives a categorised summary:

  • Red alert: 5 products expiring within 7 days (total value: ₹2,340). Action: remove from shelf, process disposal.
  • Amber alert: 18 products expiring within 30 days (total value: ₹12,780). Action: push sales, check return eligibility.
  • Green alert: 42 products expiring within 90 days (total value: ₹34,500). Action: monitor, adjust purchasing.

8:15 AM — Staff pulls red-alert items from shelves.

These are removed from dispensing inventory. The system generates a disposal log with batch numbers, quantities, and values. If any are eligible for distributor return, they are separated and added to the return queue.

During the day — FEFO runs silently.

Every prescription filled, every OTC sale processed, the billing system dispenses from the nearest-expiry batch. The pharmacist focuses on patient care. The software handles inventory logic.

End of day — Dashboard shows the numbers.

Stock value at risk of expiry (90-day window): ₹34,500. Change from last week: -₹4,200 (improvement). Distributor returns processed this week: ₹8,900 recovered. Items pushed to near-expiry discount: 12 (for non-prescription items like supplements and OTC products).

Setting up batch tracking in your pharmacy

Phase 1: Data capture at receiving (Week 1-2)

Every delivery from a distributor must be entered with batch number and expiry date. This is the foundation. Without accurate receiving data, everything downstream is unreliable.

The fastest way to do this: use invoice OCR. Photograph the distributor's invoice. The system extracts every line item — drug name, quantity, batch number, expiry date, rate — into a goods receipt note in under 60 seconds. Compare this with manual entry of a 40-line invoice, which takes 15-20 minutes and introduces transcription errors.

Phase 2: FEFO activation (Week 2-3)

Once your existing stock is entered at the batch level (which you can do during a weekend stock-take), activate FEFO in your billing software. Every sale will now deduct from the nearest-expiry batch automatically.

Phase 3: Alert configuration (Week 3-4)

Set up your expiry alert zones:

  • Red zone: 0-7 days (immediate action)
  • Amber zone: 8-30 days (clearance strategies)
  • Green zone: 31-90 days (monitoring and planning)
  • Return zone: configurable per distributor, based on their return policy deadline

Phase 4: Purchasing integration (Month 2)

Connect your reorder logic to batch-level data. Before generating a purchase order, the system shows:

  • Current stock of each item, broken down by batch and expiry
  • Average monthly sales velocity
  • Months of stock on hand (considering expiry dates, not just quantity)

If you have 3 months of stock that expires in 5 months, you probably do not need to reorder yet — even if your reorder point based on quantity alone says you should.

The economics of prevention

Let's do the math for a pharmacy doing ₹25 lakh in monthly purchases:

Without batch tracking:

  • Annual expiry waste: 3% = ₹9 lakh
  • Missed distributor returns: ₹2-3 lakh (could not return in time)
  • Over-purchasing (redundant stock): ₹1-2 lakh
  • Total preventable loss: ₹12-14 lakh per year

With batch tracking:

  • Annual expiry waste reduced to: 0.5-1% = ₹1.5-3 lakh
  • Distributor returns captured: ₹2-3 lakh recovered
  • Purchasing optimised: ₹1-2 lakh saved
  • Total savings: ₹9-11 lakh per year

The expiry tracking system that enables this typically costs ₹1,000-3,000 per month. The ROI is not measured in percentages. It is measured in multiples.

What to look for in a pharmacy expiry management system

Not all pharmacy software handles batch-level expiry equally. Here is what separates adequate from excellent:

  • Batch capture at every touchpoint — receiving, dispensing, returns, transfers, disposal. Not just at purchase.
  • FEFO enforcement at billing — automatic, not advisory. The system should not let staff override FEFO without manager approval.
  • Distributor-specific return tracking — different distributors have different policies. The system should know each one.
  • [WhatsApp alerts](/alerts) — because dashboards require login, and login requires remembering to check. WhatsApp is already open.
  • Schedule H1 integration — batch-level dispensing data feeds directly into the H1 register. No duplicate entry.
  • GST-compliant invoicingexpiry-aware billing with GST so your tax compliance and inventory compliance share one source of truth.

Start this week

You do not need to overhaul your pharmacy overnight. Start with one step: the next time a delivery arrives, record every batch number and every expiry date. Do it in a spreadsheet if you must. But do it.

Once you have two weeks of batch-level receiving data, the waste becomes visible. And once it is visible, you will not tolerate it.

ShelfLifePro automates the entire workflow — from invoice scanning at receiving to FEFO dispensing to WhatsApp expiry alerts to Schedule H1 compliance. Built for Indian pharmacies, with rupee math, GST integration, and distributor return tracking included.

The drugs on your shelf have an expiry date. Your patience for preventable losses should too.

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.