For any brand selling dated or perishable goods — dairy, frozen foods, bakery, beverages, pharma — expiry is a silent margin leak and a brand risk. Stock that ages past its date is a write-off; stock that reaches a shelf expired is a safety and reputation problem. And the inventory rule most brands rely on, FIFO, doesn't actually prevent it.
Here's the batch-and-FEFO playbook that does.
Why FIFO isn't enough
FIFO — First-In-First-Out — ships the oldest-received stock first. That's usually a reasonable proxy for expiry, but it breaks exactly when it matters: when shelf life varies by batch, when stock is received out of production order, or when promotions and returns reintroduce older-dated stock into the warehouse. In all those cases, "oldest received" is not "soonest to expire," and FIFO will happily ship stock that expires before the batch sitting behind it.
FEFO: pick by expiry, not by arrival
FEFO — First-Expiry-First-Out — sorts on the actual expiry date and ships the soonest-to-expire batch first, regardless of when it arrived. It is the only rule that reliably keeps near-expiry stock moving and expired stock off the shelf. The catch: FEFO is impossible to run by eye or on paper at any scale, because it requires knowing every batch's expiry at the moment of picking.
The playbook
1. Track every batch with its expiry. The foundation is batch-level inventory — every receipt logged with its batch number and expiry date. Without this, FEFO is just a good intention. A store and inventory system with batch + expiry tracking makes it real.
2. Enforce FEFO at picking. When an order is fulfilled, the system directs picking to the soonest-expiring batch automatically. The warehouse operator doesn't have to remember or calculate — the rule does it, consistently, every time.
3. Flag near-expiry stock for action. Stock approaching its date gets surfaced as an alert so it can be prioritised, pushed via promotion, or reallocated before it becomes a write-off. Expiry stops being a quarter-end surprise.
4. Trace and recall by batch. Batch tracking also means that if there's ever a quality issue, you can trace the affected batch through distribution and recall precisely, instead of pulling everything.
Where it matters most
Every dated category benefits, but the playbook is non-negotiable for frozen foods (cold chain + expiry), bakery (ultra-short shelf life), beverages, and pharma. For these, FEFO isn't an optimisation — it's the difference between a managed write-off number and an unmanaged one, and between a precise recall and a brand crisis.
What it's worth
Brands that move from "FIFO and hope" to enforced batch + FEFO typically convert avoidable expiry write-offs into a small, declining, managed number — and remove the risk of expired product reaching a shelf. On thin-margin dated goods, the recovered write-offs alone usually justify the system, before counting the brand-risk reduction.
To see batch and FEFO picking in the inventory workflow, book a walkthrough.
Frequently Asked Questions
Quick answers
What is the difference between FIFO and FEFO?
Why isn't FIFO enough for perishable goods?
What does FEFO require to work?
Which industries most need batch + FEFO?
See it in action
Run this playbook on your own data.
Book a 30-minute walkthrough — we'll demo the exact module discussed in this article on a real fmcg dataset.
Schedule a walkthroughGet a 30-min walkthrough on your data.
No deck, no fluff. Just the modules from this article running live.



