What FEFO means — and why FIFO isn't enough
FEFO — First Expired, First Out — is a picking rule that dispatches the stock with the earliest expiry date first, regardless of when it arrived. It exists because the intuitive rule, FIFO (First In, First Out), quietly fails for dated goods: the batch that arrived last can expire first. In Indian supply chains this happens constantly — the same SKU arrives from two plants with different production dates, a consignment spends extra days in transit, or a supplier ships older stock to clear their own warehouse.
Run FIFO on such stock and the short-dated batch sits at the back of the rack while fresher stock ships out — until an operator discovers a pallet of expired goods worth lakhs, fit only for write-off and disposal. For food, pharma, dairy, and cold-storage businesses, FEFO is not an optimisation; it is the difference between selling stock and destroying it.
FEFO vs FIFO — the comparison
| Aspect | FIFO — First In, First Out | FEFO — First Expired, First Out |
|---|---|---|
| Sort key | Receipt / creation date of the lot | Expiry date of the lot |
| Data needed at GRN | Receipt date (automatic) | Batch number, manufacturing date, expiry date |
| Best for | Non-perishables: components, hardware, metals | Food, pharma, dairy, cosmetics, chemicals, cold storage |
| Fails when | A newer delivery has a shorter shelf life | Expiry data was never captured at receipt |
| Cost of failure | Older stock ages, slow-moving builds up | Write-offs, recalls, FSSAI/regulatory exposure, lost buyers |
| Enforcement | Pick list ordered by date | Pick list by expiry plus scan-level rejection of wrong lots |
Note one nuance from real deployments: many systems allocate FIFO by default and treat expiry as a hard eligibility filter — expired or blocked lots are simply never offered — with strict expiry-date ordering applied for the item categories that need it. What matters operationally is that the wrong batch cannot be dispatched, which is a systems property, not a policy note on the wall. See FIFO & FEFO picking in Fast WMS for how the rules are configured per item.
The regulatory picture — including FSSAI's 2026 amendment
India's expiry-discipline requirements come from several directions at once, and 2026 brought a notable change:
The practical reading for warehouse operators: regardless of where the record-keeping mandate sits this year, scanner-enforced FEFO with automatic logs is the cheapest way to satisfy all three audiences at once — the system generates the audit trail as a by-product of normal picking.
It all starts at GRN — capturing expiry on arrival
FEFO can only be as good as the expiry data behind it, and there is exactly one economical moment to capture that data: goods receipt. A FEFO-capable inbound flow looks like this: goods are received against the PO or ASN on a handheld; the operator records batch/lot number, manufacturing date, and expiry date for the received quantity; the system splits the receipt into pallets, each carrying that identity; and a barcode label is printed for each pallet so every later scan knows its expiry without anyone reading fine print on a carton.
Disposition matters here too. Stock can arrive damaged or need quality checks before release — a proper flow lets GRN mark pallets as OK, hold, or damage, and held pallets stay invisible to pick lists until released. This quarantine mechanism is the same machinery pharma uses for recalls: flip a batch to hold, and it is instantly unpickable across the warehouse. Details of the inbound flow: GRN & inbound receiving and lot & expiry tracking.
Two-layer enforcement — pick list + dispatch scan
The difference between "FEFO policy" and "FEFO system" is enforcement. A policy is a sentence in the SOP; a system makes violation physically impossible. Mature WMS deployments enforce FEFO in two independent layers:
- Layer 1 — the pick list only offers the right lot. When an order is released, the system allocates the eligible lot with the earliest expiry and directs the picker to its exact bin. The picker never chooses a batch; the system already has.
- Layer 2 — the scan rejects the wrong lot. At pick confirmation and again at dispatch, the barcode scan validates the pallet. An expired lot, a held lot, an already-consumed pallet, or a batch out of expiry order is rejected on the spot with an error — before the goods reach the truck.
Two layers matter because warehouses are human places. A pallet gets moved to the wrong bin; a rushed picker grabs the nearer carton; a returned lot re-enters stock with an old date. Layer 1 prevents the routine mistakes; Layer 2 catches the exceptions. Together they produce the number that matters to a food or pharma customer: zero expired dispatches.
Cold storage FEFO: zero expired dispatches in 12+ months
Igloo Frozen Freshness manages chilled and frozen inventory with strict FEFO requirements. With Fast WMS, dispatch enforces FEFO at both layers: the pick list shows only the correct lot, and the dock scan rejects any item scanned out of expiry order. The result across more than a year of operation: zero expired product dispatched, with full lot traceability from GRN to customer.
The expiry dashboard — seeing risk before it expires
Enforcement stops bad dispatches; a dashboard prevents dead stock. An expiry (lot) dashboard buckets every pallet in the warehouse by remaining shelf life — expiring within 30, 60, or 90 days — so managers act while options still exist: push short-dated stock into the next dispatches, run a discount or liquidation channel, return to supplier where contracts allow, or at minimum plan the write-off instead of discovering it. In Fast WMS this is the Lot Expiry Dashboard, and for cold-storage and food operators it is typically the most-viewed screen after the stock report.
FEFO by industry — pharma, food, cold storage, dairy
| Industry | What FEFO must handle | Beyond FEFO |
|---|---|---|
| Pharmaceuticals | Batch-wise expiry, strict rotation, no grace period | Quarantine/hold for recalls, batch traceability for audits, controlled storage zones |
| Food & beverage | Best-before discipline, FSSAI record-keeping (manufacturer side) | Buyer residual-shelf-life rules, seasonal volume spikes, returns handling |
| Cold storage / frozen | Expiry across temperature zones (frozen, chilled, ambient) | Zone-restricted put-away, minimal door-open time favouring directed picking, client-wise stock for 3PL cold stores |
| Dairy & bakery | Shelf lives in days — FEFO effectively daily | Same-day dispatch sequencing, tight returns and markdown loops |
| FMCG / cosmetics / agro-chem | Long but firm expiry dates; slow-moving risk | Fast/slow-moving analysis, liquidation planning from expiry buckets |
Industry-specific detail lives in the dedicated pages: cold storage WMS, food & beverage WMS, and pharma WMS — plus the in-depth guide to pharma warehouse management.
Implementing FEFO without disrupting operations
Moving from manual date-checking to system-enforced FEFO is a four-to-eight-week project in most SME warehouses, and the sequence matters:
- Classify items: which SKUs carry expiry dates (FEFO), which rotate by age (FIFO), which need neither
- Capture expiry on all new receipts from day one — inbound discipline first, it is the cheapest place to start
- Label and load existing stock during a cycle count — batch and expiry entered once, barcoded forever
- Switch on Layer 1 (expiry-ordered pick lists) first; add Layer 2 (scan rejection) once staff trust the pick lists
- Review the expiry dashboard weekly and liquidate 60–90-day stock before it becomes 0-day stock
For the broader fundamentals of receiving, put-away, and picking that FEFO builds on, start with the pillar guide: what is warehouse management?
Still checking expiry dates by reading cartons?
See two-layer FEFO live: expiry captured at GRN, pick lists that only offer the right lot, and a dock scan that rejects the wrong one — on your items, in 30 minutes.
Frequently asked questions
What is FEFO in warehouse management?
FEFO (First Expired, First Out) is a picking rule that dispatches the stock with the earliest expiry date first, regardless of when it arrived in the warehouse. It differs from FIFO (First In, First Out), which dispatches the oldest-received stock first. FEFO is essential for goods with expiry dates — food, pharmaceuticals, dairy, cosmetics, and chemicals — because a later-arriving batch can carry an earlier expiry date, and FIFO would leave it to expire on the shelf.
What is the difference between FIFO and FEFO?
FIFO sorts stock by receipt date — the batch that arrived first goes out first. FEFO sorts by expiry date — the batch that expires first goes out first, even if it arrived last. For non-perishable goods the two usually give the same result. They diverge whenever a newer delivery carries a shorter shelf life, which happens constantly in Indian supply chains where the same product may arrive from multiple plants or via slow transit. FIFO suits hardware, components, and non-dated goods; FEFO is mandatory practice for food, pharma, and cold storage.
What did FSSAI's 2026 amendment change about FEFO?
FSSAI's 2026 amendment relaxed mandatory FEFO record-keeping for retailers — retail businesses are exempted from maintaining formal FEFO compliance records, while manufacturers continue to be required to maintain them. In practice this shifts documented FEFO responsibility up the chain: manufacturers and their warehouses must still demonstrate expiry-ordered stock rotation, while retailers get relief from the paperwork burden. Warehouses serving food manufacturers should treat scanner-enforced FEFO with automatic logs as the standard, since the manufacturer-side obligation remains.
How does a WMS enforce FEFO?
A WMS enforces FEFO in two layers. First, at pick-list generation: the system captures the expiry date of every lot at goods receipt, and when an order is picked it offers only the eligible lot with the earliest expiry, showing the exact bin. Second, at scan validation: when the picker scans a pallet or carton, the system rejects any lot that violates expiry order or is expired, blocked, or on hold. Because both layers are automatic, FEFO stops depending on staff remembering dates written on cartons.
Why is capturing expiry dates at GRN so important?
Because FEFO can only ever be as good as the expiry data behind it. If expiry dates are not captured when goods arrive (at GRN), no later process can enforce expiry-ordered picking. A proper inbound flow records batch/lot number, manufacturing date, and expiry date for every received pallet, prints a barcode label carrying that identity, and stores it against the bin location. From then on, every pick, transfer, and dispatch knows each pallet's expiry without anyone reading labels manually.
Which industries in India need FEFO?
FEFO is essential wherever stock carries an expiry or best-before date: pharmaceuticals and medical devices (batch traceability plus expiry control, with quarantine for recalls); food and beverage (FSSAI shelf-life and date-marking compliance, modern-trade buyers rejecting short-dated stock); cold storage and frozen foods (high-value perishable inventory across temperature zones); dairy and bakery (very short shelf lives measured in days); and FMCG, cosmetics, and agro-chemicals (long but firm expiry dates and heavy write-off costs when rotation fails).
