Kōami
Back to Resources
Pharmacy5 min read

FEFO: Stop Letting Drugs Expire on the Shelf

K

Kōami

Editorial team

Walk into most hospital pharmacy stores and you will eventually find it: a strip of something in a back row, three months past expiry, still on the shelf because nobody picked it up in time. It is not theft and it is not fraud. It is just stock that sat while newer stock in front of it got dispensed first. Expiry losses are quiet, they are constant, and they are almost entirely a process problem. FEFO - First Expiry, First Out - is the process that fixes it, if the software actually enforces it.

FEFO is not FIFO, and the difference is money

FIFO - First In, First Out - moves the oldest received stock first. That is fine for a warehouse of tinned food. It is wrong for medicines, because the date that matters is not when you received a batch but when it expires. A batch received later can easily expire sooner, depending on how much shelf life the supplier shipped you.

FEFO orders dispensing by expiry date, not receipt date. The batch that expires soonest goes out first, regardless of when it arrived. In a pharmacy carrying dozens of batches of the same molecule, all with different expiry dates, this is the only rule that consistently drains stock before it dies on the shelf.

  • FIFO asks: which batch did we receive first?
  • FEFO asks: which batch expires first?
  • For drugs, only the second question protects against write-offs

Batch and expiry have to be real data, not a label

FEFO is impossible if the system does not know the expiry date of the exact stock in hand. That means every unit has to be tracked at batch level, with its expiry captured the moment it enters the building. The Goods Receipt Note (GRN) is where this discipline starts. When stock is received against a purchase order, each batch number and its expiry date get recorded as the stock is booked in - not estimated, not left blank, captured off the pack.

If the expiry date was not captured at GRN, FEFO has nothing to sort by.

Once batch and expiry live in the record, everything downstream can reason about them. Kōami tracks stock at batch and expiry level from GRN onward, so every dispensing decision and every stock count knows exactly which batch it is touching and exactly when that batch runs out.

Let the system pick the batch

The moment of truth is dispensing. A pharmacist filling an order should not have to scan the shelf, compare expiry dates in their head, and consciously choose the soonest-expiring batch. That is cognitive load that fails under pressure, and pressure is the default state of a hospital pharmacy.

Instead, the system should suggest the FEFO batch automatically. When an item is dispensed, the software already knows which available batch expires first and proposes it. The pharmacist confirms rather than calculates. Override is still possible - a damaged strip, a batch on hold, a specific clinical reason - but the default action is the correct one.

  • Suggest the soonest-expiring available batch at the point of dispensing
  • Skip batches that are quarantined, recalled, or on hold
  • Allow a deliberate override with a reason, rather than silent free choice
  • Decrement the exact batch that was actually handed over, so stock stays accurate

This is where FEFO stops being a poster on the store-room wall and becomes what actually happens, thousands of times a day, without anyone having to remember the rule.

See expiry before it becomes a loss

FEFO reduces expiry losses; it does not eliminate them. Some stock will approach expiry faster than it can be used - slow-moving items, over-ordered lines, a drug whose protocol changed. The answer is visibility early enough to act while the stock still has value.

A near-expiry view that surfaces batches expiring in the next thirty, sixty, or ninety days turns a write-off into a decision. Stock coming up on expiry can be transferred to a higher-turnover location, returned to the supplier where terms allow, or simply flagged so ordering pauses until it clears. The earlier the warning, the more options remain.

  • Flag batches entering their final ninety days while there is still time to move them
  • Highlight slow movers whose on-hand quantity will outlast their expiry
  • Block, or at least warn on, dispensing of already-expired stock so it cannot slip out
  • Feed expiry risk back into purchasing so you stop reordering what you are about to bin

Kōami surfaces near-expiry batches ahead of time and keeps expired stock out of the dispensing flow, so the pharmacist sees the problem while it is still solvable rather than discovering it at the annual stock audit.

There is a cultural shift that comes with this too. When expiry is visible early and the FEFO batch is chosen for you, the pharmacy stops treating write-offs as an unavoidable cost of doing business and starts treating them as a signal that something upstream needs attention - usually over-ordering or a protocol that quietly changed. A near-expiry list that keeps surfacing the same slow-moving molecule is telling you to buy less of it, not to keep binning it. Used that way, expiry data stops being a record of losses already taken and becomes a tool for preventing the next ones.

Expiry losses feel inevitable because they are diffuse - a few strips here, a bottle there, spread across hundreds of lines and never large enough on any single day to trigger action. Add them up across a year and they are a real number on the budget. FEFO, enforced by software that knows every batch and every date, turns that slow leak off. Capture expiry at GRN, let the system pick the batch, and watch the near-expiry list so nothing sneaks up on you. The drugs get used before they expire, which is the entire reason you bought them.