Home › Blog › FEFO vs FIFO for Pharmacy Inventory — Why FEFO Wins Every Time

FEFO vs FIFO for Pharmacy Inventory — Why FEFO Wins Every Time

2026-07-20 • 6 min read

Picture a pharmacist opening a carton of a fast-moving antibiotic and finding a few strips already past expiry — buried behind a batch that arrived weeks later. The newer stock had been selling fine. The older batch had been sitting in the back, invisible, until it wasn't. Stock written off for no reason except that nobody could see which batch was really the oldest by expiry.

That's not a warehouse problem. That's a FIFO problem. First In First Out sounds logical — sell the oldest stock first — but it assumes your team always knows which batch is oldest. In a busy pharmacy dispensing 300+ bills a day, they don't. They reach for what's nearest. And what's nearest is usually the most recently stocked shelf. FEFO — First Expiry First Out — solves this by sorting on the only number that actually matters: the expiry date on the batch, not the date it arrived in your shop.

If you found this post because expired stock is quietly eating your margin, read the next four sections. What you stand to lose by staying with FIFO is not a rounding error — for a mid-size pharmacy in Chennai or Nagpur, that write-off can add up to a meaningful sum every year.

---

Free tools for Indian pharmacies — check a medicine's Schedule (H1/H/X), look up its HSN code and GST rate, or search more than 2.5 lakh medicines. No signup, no account.

Open the free pharmacy tools →

The Hidden Write-Off Nobody Budgets For

Inventory loss to expiry is a real and recurring cost for many pharmacies — stock that is not returned, not sold, not claimed, just destroyed. For a pharmacy turning over ₹40 lakh a year in purchases, even a modest share of that lost to expiry adds up to a meaningful sum leaving the building as waste every year.

The reason the number stays hidden is that a lot of pharmacy billing software records the sale but not the miss. When a batch expires, it disappears from active stock. No alert fires. No report flags it. The owner finds out during a manual stock audit, usually quarterly.

By the time you see the damage, the window to act is closed:

Picture a pharmacy writing off expired inventory every month, where tracing the batches shows that most of the time a newer batch of the same molecule had been purchased and sold in full before the older batch was ever touched. That's the classic FIFO failure mode.

---

The Compliance Risk Sitting in Your Cold Chain

Every supply of a Schedule H or H1 medicine must be recorded with its batch number and expiry under Rule 65 of the Drugs and Cosmetics Rules, and Schedule H1 supplies also go in a separate register kept for three years. A spot inspection that finds you dispensed from a batch not recorded correctly, or that you held expired Schedule H1 stock without proper disposal documentation, is a finding you then have to answer for — and selling a Schedule H1 drug without a prescription is punishable under Section 27(d) of the Drugs and Cosmetics Act, 1940, with imprisonment of one to two years and a fine of not less than ₹20,000.

The batch management problem and the compliance problem are the same problem. When your team picks stock by reach rather than by expiry, the batch number on the bill often doesn't match the batch number that actually left the shelf. That discrepancy is exactly what a drugs inspector looks for.

FEFO batch management fixes this at the point of billing: the system tells the dispenser which batch to pick, and the bill records that exact batch. The audit trail writes itself. It only works if the batch numbers and expiry dates were in the system to begin with, which is why what you load during the opening stock import decides whether FEFO protects you from day one or from your first physical count.

---

Your Counter Staff Cannot Do FEFO Manually at Scale

Picture asking the counter staff at a 1,000-SKU pharmacy to check expiry dates on every pick during a peak-hour rush. It doesn't happen. Not because they're careless — because it's physically impossible at the speed the counter moves.

A single billing session of 40 customers between 6 PM and 8 PM might touch 120 different SKUs across brands, generics, OTC, and Schedule H. Manually comparing batch expiry dates on each pick, especially when multiple batches of the same molecule sit on the same shelf, is not a reasonable ask.

The FEFO discipline has to live in the software, not in the staff's memory. When the billing system presents the correct batch — the one expiring soonest — and the staff simply confirms, the cognitive load drops to near zero and the compliance record is accurate by default.

---

What Operations Look Like When FEFO Is Running Correctly

Here is the before/after at the inventory level for a typical single-outlet pharmacy:

MetricWithout FEFO batch managementWith FEFO batch management
Expiry write-offs (annual)Recurring, often unmeasuredTracked and reduced
Schedule H1 batch traceabilityManual register, prone to gapsRecorded at billing with the batch sold
Staff training needed to complyHigh — depends on individual diligenceLow — system enforces correct pick
Monthly stock auditsHours of shelf-by-shelf checkingA review of what the system already lists

The rupee impact is direct. Picture a pharmacy purchasing ₹50 lakh of stock per year: even a modest cut in expiry loss recovers a meaningful sum annually. It's the difference between two percentages applied to a known purchase number. You can run this calculation on your own last 12 months of purchase invoices tonight to see what it means for your pharmacy specifically.

---

What Changes on Nesayo

The Expiry Guard agent inside Nesayo checks stock every six hours and sorts every batch crossing into the 90-day, 60-day, and 30-day expiry windows, with the stock value at risk and a discount or return suggestion; the Morning Briefing puts that list in front of the pharmacist at the start of the day. Nothing is changed until the pharmacist approves it.

At the billing counter, Nesayo's FEFO logic means the system automatically picks the earliest-expiring batch the moment a medicine is typed, scanned or spoken, and a batch whose expiry month has passed is refused — a pack printed EXP 08/2026 stays sellable through 31 August 2026. On the paid plans, voice billing in Hindi and English (beta) gets the same FEFO batch without switching interfaces. Schedule H1 sales are logged at billing (patient, prescriber, medicine, batch, quantity); the pharmacist adds the prescriber's address to complete the Rule 65(3)(h) register. On the Full plan, a Tally export is available for your accountant (as of October 2026; see nesayo.com/pricing).

Billing on Nesayo is free, with no cap on bills or SKUs (as of October 2026; see nesayo.com/pricing for current terms). Paid plans start at ₹249 per month on Essential (voice billing, prescription scanning and Refill Radar); Expiry Guard comes with the Full plan at ₹549 per month (as of October 2026), which includes all five agents: Morning Briefing, Expiry Guard, Refill Radar, Stock Sense, and Payment Advisor (pricing as of October 2026; see nesayo.com/pricing for current rates). The catalogue of more than 2.5 lakh medicines covers generics, branded and OTC medicines, and anything you add yourself goes into your own medicine list — which means the FEFO logic applies across your entire inventory, not just a curated subset.

Picture a pharmacy that had been running manual batch management: switching that discipline into the system, without changing purchasing habits or suppliers, is what brings the write-off number down. The only change is that the system starts enforcing what the staff already intended to do but couldn't execute under time pressure.

---

The Choice in Front of You Right Now

Every month you continue with FIFO-only or manual batch management is another month of write-offs that don't appear on any single invoice but accumulate in the annual stocktake as a number that makes your stomach drop. And the staff member who genuinely tries to check every batch expiry manually will eventually stop, because the counter pressure always wins.

The alternative is a system that does the checking at the point of billing, logs each H1 sale as it happens, and tells you each morning which batches need to move.

Spend 2 minutes at nesayo.com/demo — a sample pharmacy is pre-loaded, no signup required. Go directly to the expiring stock and see what a FEFO alert list looks like. If the number on that screen doesn't make you want to act, close the tab.

---

FAQ

What is the difference between FEFO and FIFO?

FIFO — First In First Out — dispenses the batch that arrived first. FEFO — First Expiry First Out — dispenses the batch that expires first. They give the same answer only when stock arrives in expiry order, which in pharmacy it frequently does not: a distributor can deliver a batch today that expires before one received two months ago. Where they disagree, FIFO leaves the shorter-dated stock on the shelf to expire.

Why is FEFO better than FIFO for a pharmacy?

Because medicines have a hard expiry and expired stock cannot legally be sold. FIFO optimises for stock age; FEFO optimises for remaining shelf life, which is the thing that actually turns into a write-off. In most other retail categories the distinction barely matters — in pharmacy it is the difference between selling a pack and destroying it.

Is FEFO a legal requirement in India?

There is no rule that names FEFO as a method. What the Drugs & Cosmetics Act does make absolute is that expired stock cannot be sold — Section 27 carries fines and imprisonment. FEFO is simply the dispensing discipline that keeps you on the right side of that, and Rule 65 record-keeping is what lets you prove which batch went out.

How do you do FEFO manually at the counter?

You compare printed expiry dates across every open batch of that medicine before picking one, at every sale. It is workable for a handful of fast movers and not workable across a few thousand SKUs during a rush — which is why manual FEFO tends to hold for the front shelf and quietly fail everywhere else.

What is FEFO in inventory management?

A picking rule: always issue the stock with the earliest expiry date, regardless of when it was received. It requires that expiry be recorded per batch, not per medicine — an item-wise stock record cannot support FEFO at all.

Does FEFO apply to cold-chain items?

Yes, and the consequences are sharper. Insulins, vaccines and biologicals carry short dating and lose value fast, so a batch left behind by FIFO ordering is more likely to expire before it moves. Cold-chain lines are usually where a pharmacy's largest single write-offs sit.

What is the difference between FEFO and LIFO?

LIFO — Last In First Out — issues the most recently received stock first. It is an accounting convention rather than a dispensing practice, and applying it physically in a pharmacy is the least favourable ordering for expiry: the oldest, shortest-dated stock is precisely what never moves.

How do I stop expired stock reaching the counter?

Record expiry per batch, pick by earliest expiry, and block the sale rather than warn on it. A warning at the till is dismissed under pressure; a block is not. Reconcile against a physical count regularly so the register and the shelf do not drift apart.

Related free tools

Nesayo runs pharmacy operations while you serve customers

Free billing forever. Full — 5 agents, voice billing in Hindi — is ₹549/month (as of October 2026). Every new standalone pharmacy gets 1 month of Full free from signup, with no card. Manual billing and manual stock stay free forever.

Start free →