First-expiry-first-out is how pharmacies, grocers and pet stores stop writing off stock they could have sold. Here is why FIFO quietly fails.
FIFO — first in, first out — assumes that what arrived first will expire first. It is a reasonable assumption and it is wrong often enough to be expensive.
Suppliers break it constantly. A delivery that arrives today can carry an earlier expiry than one that arrived last month, because it sat longer in the distributor's godown. Pick by arrival date and you ship the fresher batch while the older one ages behind it.
FEFO picks by the date that matters
First-expiry-first-out sorts by expiry date rather than arrival date. The batch closest to expiring leaves the shelf first, regardless of when it came in.
It sounds like a small change. In categories where a meaningful share of stock dates — pharmacy, packaged food, dairy, cosmetics, pet feed — it is the difference between discounting stock while it still has value and writing it off after it does not.
It only works if the data is already there
FEFO is not a report you run. It is a picking rule, and a picking rule can only apply if the system knows each batch's expiry at the moment stock enters.
That means goods receipts have to capture lots line by line — not "50 units received" but "20 from lot A expiring in March, 30 from lot B expiring in June". Shops that do not capture this at receipt cannot adopt FEFO later without a full recount, because the information was never recorded.
The payoff is measurable
Two things change once FEFO is running. Write-offs shrink, because near-expiry stock is visible early enough to discount or return. And the movement ledger shows exactly which batches aged out and why, per outlet — which turns waste from a number you accept into one you can attack.
In VAP, FEFO is configurable per site, because a warehouse and a front counter do not always want the same rule.