
Every store that handles batches has to answer one question many times a day: which batch goes out first? FIFO (first in, first out) issues the oldest receipt first. FEFO (first expired, first out) issues the batch that expires first. For most engineering material the two give the same answer. For anything with a shelf life – pharmaceuticals, chemicals, adhesives, coatings, rubber compounds – they do not, and the difference ends up as expired stock written off at year-end. This guide explains both rules, works through an example where they disagree, and shows what the store and the ERP need to make the right batch go out every time.
FIFO: first in, first out
FIFO issues stock in the order it was received. It keeps material from ageing on the shelf and is easy to follow when every batch has the same life. It is also a stock valuation method – issues are costed at the oldest receipts’ rates – which is a separate decision from the physical picking rule; see the free stock valuation calculator for FIFO, LIFO and weighted average side by side.
FEFO: first expired, first out
FEFO issues the batch with the earliest expiry date first, whatever its receipt date. It matters when batches arrive with different remaining lives – a supplier may ship an older batch after a newer one, or batches from different manufacturing dates may sit together in the same bin. Under FEFO, the receipt date only breaks ties between batches that expire on the same day.
Worked example: where FIFO and FEFO disagree
Tejaxo Manufacturing (sample data) holds three batches of Product A on 1 October:
| Batch | Received | Expires | Qty |
|---|---|---|---|
| L1 | 1 Aug | 31 Dec | 400 |
| L2 | 20 Aug | 30 Nov | 300 |
| L3 | 10 Sep | 31 Mar | 500 |
Batch L2 was received after L1 but expires a month earlier. An order for 500 is dispatched on 1 October, after which the plant uses 60 a month.
- FIFO dispatches L1 400 + L2 100. That leaves 200 of L2, which expires on 30 November; using 60 a month, only 120 is consumed in time and 80 expire.
- FEFO dispatches L2 300 + L1 200. L2 is gone, and the remaining 200 of L1 has until 31 December; 180 is consumed in time and 20 expire.
Same stock, same demand: FEFO cuts the write-off from 80 units to 20. And the remaining expiry is a signal in itself – three months before 31 December, the planning team can see that 20 units of L1 will not be consumed at the current rate and can use it in another product, return it or plan around it.
Which rule to use
- No shelf life: FIFO is enough – steel, castings, machined parts, most packaging.
- Shelf life with equal lives per batch: FIFO and FEFO give the same order, but record expiry anyway so alerts work.
- Shelf life with varying remaining life: FEFO – pharmaceuticals, chemicals, adhesives, resins, paints and rubber compounds.
- Customer-specified minimum life: FEFO with a check that the dispatched batch still has the remaining life the customer demands.
What it takes on the floor
- Batch and expiry at receipt. The GRN records the batch number, manufacturing date and expiry for every lot – see how an ASN brings lot details before the truck arrives.
- A label on every pack. A QR or barcode label carrying item, batch and expiry, printed at receipt.
- Bin locations. Each batch has a known bin, so the picker goes to the right shelf instead of the nearest one.
- A suggested pick list. The system proposes which batch and bin to pick; the picker scans the label to confirm, so a wrong batch is caught at the shelf.
- Expiry alerts in advance. Batches approaching expiry are flagged early enough to be used, returned or reworked.
- Ageing and near-expiry reports reviewed weekly by stores and planning.
Production issues follow the same rule
Picking discipline is not only for dispatch. Raw material issued to production should follow the same rule, and the batch issued should be recorded against the work order. That keeps traceability intact – from a finished batch back to every raw material lot that went into it – and it charges the job with the actual rate of the batch used; see lot traceability in forging and work order costing.
How Tejaxo ERP handles it
In Tejaxo ERP, batch numbers are carried at every step from receipt to dispatch, and production material is issued first in, first out by batch. Dispatch picking follows batch and expiry, and expiry alerts are also sent on WhatsApp, so the store and planning teams see near-expiry stock without opening a report. Stock is kept by bin location with physical verification, barcode and QR scanning and serial-number tracking, and stock ageing, ABC and FSN analysis and re-order levels are standard reports – see warehouse management and inventory management. For regulated plants, see ERP for pharmaceuticals and ERP for chemicals.
Moving an existing store to FEFO
- Count and label what is on the shelf. One physical verification per item group, recording batch, expiry and bin for every pack, and printing labels for packs that have none.
- Start with the items that expire. Switch the shelf-life items first; leave non-expiring material on FIFO.
- Turn on scan-to-pick for those items and review wrong-batch scans every week for the first month.
- Set alert windows per item from how fast it moves, then tighten them once the backlog of near-expiry stock is cleared.
Measuring whether it works
- Expired stock written off each month, in quantity and value – the number FEFO is meant to bring down.
- Near-expiry stock – quantity within the alert window, and how much of it was used in time.
- Wrong-batch picks caught by the scan – high at first, then falling as the store gets used to the bins.
- Stock ageing by item, to spot slow movers before they reach their expiry.
Common mistakes
- Expiry kept on the carton only. If the system does not know the expiry, it cannot suggest the right batch or raise an alert.
- Mixing batches in one bin without labels. The picker takes the pack in front, which is usually the newest.
- Picking by memory. Without a scan at the shelf, the wrong batch is discovered only at the customer.
- Alerts too late. A warning a week before expiry leaves no time to use the stock; set the alert window to match how fast the item moves.
- Confusing the picking rule with the valuation method. FEFO picking and FIFO or weighted-average valuation can run side by side.
Next step
See batch-wise receipt, expiry alerts and scan-to-pick on your own items in a free demo, or work out safety stock with the free reorder point calculator.
Frequently asked questions
What is the difference between FIFO and FEFO?
FIFO (first in, first out) issues the oldest receipt first. FEFO (first expired, first out) issues the batch with the earliest expiry date first, whatever its receipt date.
When should a store use FEFO instead of FIFO?
When batches have a shelf life and their remaining life differs – for example pharmaceuticals, chemicals, adhesives, paints and rubber compounds. For material without expiry, FIFO is enough.
Is FEFO a stock valuation method?
No. FEFO is a physical picking rule. Valuation (FIFO, weighted average or standard) is a separate accounting choice, and the two can run side by side.
What does a store need to run FEFO?
Batch number and expiry recorded at receipt, a label on every pack, bin locations, a system-suggested pick list with scan confirmation, and near-expiry alerts.
How early should expiry alerts be raised?
Early enough to use, return or rework the stock – which depends on how fast the item moves. A slow-moving item needs a longer alert window than a fast one.
Does Tejaxo ERP pick by batch and expiry?
Yes. Dispatch picking follows batch and expiry, production issues are first in, first out by batch, and expiry alerts are also sent on WhatsApp.