Skip to content

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.

Comparison of FIFO, FEFO and LIFO stock-rotation methods
MethodIssues firstBest forPerishable risk
FIFO
First in, first out
Oldest received batchGeneral goods, non-dated stock, steady turnoverMedium — misses batches that expire out of receipt order
FEFO
First expiry, first out
Batch with the nearest expiry dateFood, pharma, cosmetics, dairy, chemicalsLow — always clears the highest-risk stock first
LIFO
Last in, first out
Most recently received batchCosting / 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:

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:

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:

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:

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.

Stop throwing away profit

Cut perishable wastage with FEFO

Track every batch, consume first-expiry-first-out and act on expiring-soon alerts across all your locations — free to start.