Skip to content
← Back to all articles

FEFO vs FIFO — which inventory method should a pharmacy use?

FEFO sells the earliest-to-expire batch first; FIFO sells the earliest-received batch first. Which is right for a pharmacy, why it matters, and how to apply it.

Simon Tchaghlassian portrait

Simon Tchaghlassian

Co-founder · Engineering

Definition

FEFO (First-Expire-First-Out) is an inventory rotation method where stock with the earliest expiry date is dispensed first, regardless of when each batch arrived. FIFO (First-In-First-Out) dispenses the earliest-received batch first. For pharmacies, FEFO is the World Health Organization-recommended method because pharmaceutical shelf life varies sharply between batches and manufacturers.

The difference in one sentence

FIFO is about when the stock arrived. FEFO is about when the stock expires. For drugs, those are not the same thing — a batch received in March can expire before a batch received in January because the original manufacturer shelf life differed. FEFO is the only method that actually minimises expiry write-offs.

Why FEFO is the pharmacy standard

Pharmaceutical inventory has two properties that make FIFO unsafe: shelf life varies between manufacturers, and dispensing a near-expiry pack to a patient creates clinical and legal exposure. FEFO addresses both — the earliest-expiring pack is always the next one out the door, so write-offs collapse and the pack the patient takes home always has the longest remaining shelf life available at the time.

  • Minimises expiry write-offs (the dominant inventory loss in retail pharmacy)
  • Reduces patient risk from near-expiry dispenses
  • WHO-recommended for pharmaceutical inventory management
  • Required reporting practice for regulated drug categories

What FEFO requires in practice

FEFO only works if you track inventory at the batch level — every batch of every drug needs its own quantity and expiry date, recorded at goods receiving. A system that tracks inventory only at the SKU level (one count per drug, no expiry) cannot do FEFO at all. The hard part is data entry on goods-in, not the FEFO rule itself.

  • Batch number captured at goods receiving
  • Expiry date captured at goods receiving
  • Per-batch quantity tracked through dispenses, returns, and adjustments
  • FEFO sort applied automatically at the till, not by the cashier's memory

When FIFO might still apply

FIFO has a place in non-pharmaceutical retail — supermarket dry goods, hardware, anything where shelf life is essentially infinite. Even in a pharmacy, FIFO can apply to ancillary stock (printer paper, branded bags) where expiry is not a concern. But for drugs, FEFO is the rule, and any pharmacy software worth running should default to FEFO with FIFO as an explicit, audited override.

How FEFO works on PharmEasy

PharmEasy is FEFO-first by default. When a drug has multiple in-stock batches, the till allocates to the batch with the earliest expiry. The cashier sees which batch was used; if a clinical reason calls for a different batch, they can override with one keystroke and the override is logged with a reason. Reports surface batches within configurable expiry windows (90, 60, 30 days) with the at-risk value in both LBP and USD.

Frequently asked

What about LIFO?
LIFO (Last-In-First-Out) is an accounting valuation method, not an inventory rotation method, and it is not used in pharmacy operations. It surfaces in tax planning and cost-accounting contexts but has no operational role at the till.
Can a pharmacy do FEFO manually?
Yes, but it depends on the cashier remembering to check the expiry on every dispense and pick the right batch from the shelf. In practice this means the front-of-shelf batch gets dispensed because it is closest to hand, not the earliest-expiring batch. FEFO at the till requires software that allocates automatically.
What about stock that is already close to expiry?
FEFO surfaces the problem early. Most pharmacy systems should let you set expiry-warning thresholds (e.g. 90 / 60 / 30 days before expiry) and show the at-risk batches with their value. The owner can then promote, return to distributor, or transfer between branches before the stock becomes a write-off. PharmEasy surfaces these batches on the dashboard with notifications on the Pro plan.
Simon Tchaghlassian portrait

About the author

Simon Tchaghlassian

Co-founder · Engineering

LinkedIn

Run your pharmacy with PharmEasy.

Founders-run demos, 30 minutes, tailored to your pharmacy. We typically schedule within 24 hours.