FEFO & Batch/Expiry Tracking: How to Cut Perishable Wastage
If your business moves food, medicine or cosmetics, the enemy isn't just theft or overstock — it's the calendar. Stock that expires on the shelf is cash you paid for and then threw away. This guide explains FEFO inventory (first expiry first out), how it differs from FIFO, and how batch, lot and expiry date management turn perishable losses into a number you can actually control.
What is FEFO inventory?
FEFO stands for first expiry, first out. It is a stock-rotation rule that always issues, sells or consumes the batch with the earliest expiry date first — no matter when that batch was received. The goal is simple: move the highest-risk stock out the door before it crosses its use-by date and becomes waste.
To run FEFO you need more than a running total per item. You need to know your stock at the level of individual batches (also called lots), and every batch has to carry its own expiry date. That is where batch tracking and lot tracking come in: instead of "480 units of Amoxicillin," your system knows "Batch A31 · 120 units · exp 2026-08-04" and "Batch A44 · 360 units · exp 2026-11-20," and it always draws from A31 first.
FEFO vs FIFO: why the difference matters
FIFO — first in, first out — issues the oldest received stock first. It's a sensible default for most goods and it's what many warehouses run by habit. But FIFO assumes the oldest stock is also the closest to expiring, and for perishables that assumption breaks constantly.
Consider a cold-storage unit that receives two paneer deliveries. Batch A arrives on Monday with 10 days of shelf life. Batch B arrives on Wednesday but was manufactured earlier in a different plant and has only 4 days left. FIFO would consume Batch A first because it came in earlier — leaving Batch B to expire in the fridge. FEFO consumes Batch B first, exactly as it should. The later arrival with the nearer expiry is the one at risk, and only expiry-aware rotation catches it.
| Method | Issues first | Best for | Perishable risk |
|---|---|---|---|
| FIFO First in, first out | Oldest received batch | General goods, non-dated stock, steady turnover | Medium — misses batches that expire out of receipt order |
| FEFO First expiry, first out | Batch with the nearest expiry date | Food, pharma, cosmetics, dairy, chemicals | Low — always clears the highest-risk stock first |
| LIFO Last in, first out | Most recently received batch | Costing / accounting method; non-perishable bulk (e.g. gravel) | High — oldest stock can sit and expire; not suited to perishables |
LIFO is really an accounting convention rather than a physical picking rule; for perishables it is the worst order, leaving your oldest stock stranded. For any dated inventory the practical choice is FIFO versus FEFO — and FEFO wins wherever expiry dates vary within the same item.
Why batch, lot and expiry tracking matters
Batch and lot tracking isn't only about rotation — it's the backbone of traceability. When a supplier issues a recall or a quality issue surfaces, you need to answer three questions fast: which batch, where is it now, and who received it? Without lot tracking you're pulling every unit of the product off the shelf. With it, you isolate a single batch number and leave the rest of your saleable stock untouched.
Different sectors lean on this for different reasons:
- Food & beverage: FSSAI expects lot identification and date marking. Restaurants and cloud kitchens use FEFO on ingredients — dairy, sauces, cut vegetables — to keep plates safe and cut spoilage.
- Pharmaceuticals & nutraceuticals: batch numbers, manufacturing dates and expiry dates are mandatory. Dispensing expired medicine is a serious compliance failure, and recalls must be traceable to the lot.
- Cosmetics & personal care: products carry a "best before" or period-after-opening date. Selling past-date stock damages brand trust and breaches labelling rules.
In each case the pattern is identical: capture the batch and expiry at the moment stock is received, consume FEFO, and keep an auditable movement history so every unit can be traced back to its lot.
Roughly a third of perishable losses come not from spoilage you couldn't prevent, but from stock nobody noticed was about to expire. FEFO plus expiring-soon alerts turns that invisible loss into a daily worklist.
How expiring-soon alerts work
FEFO decides the order of consumption; expiring-soon alerts decide what needs your attention today. An alert engine scans every open batch, compares its expiry date to the current date, and flags anything crossing a configurable window — commonly 7, 15 and 30 days out. Those flagged batches surface on a dashboard, in a daily digest, or as a coloured warning right on the item screen.
Once a batch is flagged, you have options while it's still saleable:
- Prioritise it — make sure the kitchen, counter or pick-face draws from that batch first.
- Discount it — a "manager's special" or near-expiry offer recovers most of the value instead of writing it off.
- Transfer it — move it to a location with faster turnover before it lapses.
- Stop reordering it — if a slow-moving item keeps expiring, the fix is upstream in your purchase quantities.
See it on live stock
Turn expiry dates into a daily worklist
BPIN tracks every batch, consumes FEFO automatically and pushes expiring-soon alerts before perishables become losses.
A worked example: cutting wastage in a cloud kitchen
Take a mid-sized cloud kitchen in Pune buying fresh paneer, cream and packaged sauces. Before batch tracking, it recorded stock as one number per ingredient and rotated by feel. Physical counts showed roughly ₹42,000 a month written off as expired or spoiled — about 8% of perishable purchases.
After switching on batch and expiry tracking with FEFO:
- Every delivery is received against a batch number and expiry date — for example
PNR-0714 · 30 kg · exp +6d. - Recipe consumption draws down the nearest-expiry batch first, so the 6-day paneer is used before the 10-day paneer even if it arrived later.
- A 7-day expiring-soon alert lands each morning. Batches inside the window are pushed into that day's specials or prep plan.
- Anything that still lapses is logged as a wastage movement, so the loss is measured by batch and reason instead of vanishing into a vague count variance.
Within three months, monthly write-offs fell to about ₹29,000 — a roughly 30% cut in perishable wastage — and the kitchen could finally see which ingredients drove the remaining loss and adjust purchase quantities accordingly.
Reducing wastage, shrinkage and compliance risk
Perishable wastage and shrinkage are close cousins. Shrinkage is the gap between the stock your records say you hold and what's physically there; expired-but-still-on-the-books stock inflates that gap and hides real losses. When expiry is a first-class attribute of every batch, three things improve at once:
- Wastage drops because high-risk stock is consumed or cleared before it lapses.
- Shrinkage becomes explainable because damage, spoilage and expiry are logged as distinct, batch-level movements rather than a mystery variance.
- Compliance holds because you retain a complete, auditable trail from receipt to consumption for every lot — the exact record inspectors and recall processes require.
This discipline compounds across sites. If you run more than one kitchen, store or warehouse, expiry-aware transfers let you move near-expiry stock to a faster-selling location instead of writing it off — a pattern we cover in our guide to multi-location inventory management. And for food businesses specifically, FEFO sits at the heart of good restaurant inventory management, where ingredient-level control and recipe consumption decide both food cost and food safety.
Putting FEFO into practice
You don't need a warehouse-management overhaul to start. The building blocks are straightforward: capture batch and expiry at goods-receipt, make FEFO the default consumption rule, and switch on expiring-soon alerts with a window that suits your shelf lives. BPIN ships all three, alongside multi-location stock, purchase orders and dead-stock detection — see the full feature set or the industry solutions built around perishable and regulated goods.
Frequently asked questions
What is the difference between FIFO and FEFO?
FIFO (first in, first out) issues the oldest received stock first, based on arrival date. FEFO (first expiry, first out) issues the stock that expires soonest first, based on its expiry date — regardless of when it was received. Because a batch received later can still expire earlier, FEFO is safer for perishables: it consumes the highest-risk stock before it becomes waste.
Which industries need batch and expiry tracking?
Any business handling perishable or regulated goods — food and beverage, restaurants and cloud kitchens, pharmaceuticals, nutraceuticals, cosmetics and personal care, dairy and chemicals. Batch and lot tracking gives them traceability for recalls, FEFO consumption to cut wastage, and expiry date management for compliance with FSSAI, drug and cosmetic rules.
How do expiring-soon alerts reduce wastage?
They flag batches that will cross their expiry date within a configurable window — say 7, 15 or 30 days. Teams can then prioritise, discount, transfer or promote that stock while it is still sellable, instead of discovering expired goods during a physical count and writing them off entirely.