FEFO vs FIFO: batch and expiry tracking for food manufacturers
FIFO ships the oldest stock first. FEFO ships whatever expires first. For anything with a shelf life, that difference decides how much you write off each month.
In short
- FEFO (first expiry, first out) dispatches the batch with the earliest expiry date first. FIFO dispatches the batch that arrived first.
- They give the same result only when every batch has the same shelf life. When shelf lives vary, FEFO is the one that prevents expiry losses.
- FEFO needs batch-level stock: each receipt is a batch with its own quantity and expiry date.
- Good software suggests the FEFO batch on every dispatch, warns on overrides and refuses to ship more than a batch holds.
- FSSAI's labelling rules require a date of manufacture or packing and a best-before or use-by date on pre-packaged food. Those dates are what FEFO works from.
FEFO, or first expiry, first out, is a stock rotation rule: when you dispatch an item, you take it from the batch that expires soonest. It's the standard for food, beverages, pharmaceuticals, chemicals and anything else with a shelf life, because it keeps stock from expiring on the shelf.
What is the difference between FEFO and FIFO?
| FIFO | FEFO | |
|---|---|---|
| Rule | Oldest receipt leaves first | Earliest expiry leaves first |
| Needs | Receipt date per batch | Expiry date per batch |
| Works best when | Shelf life is uniform or irrelevant | Shelf life varies by batch or supplier |
| Typical use | Hardware, packaging, most raw materials | Food, beverages, pharma, chemicals, cold storage |
| Risk if misapplied | Shorter-life batches expire unshipped | None, if expiry dates are recorded correctly |
A worked example
You receive batch A of 500 kg of paneer on 1 October, expiring 15 October. On 3 October, batch B arrives, 500 kg expiring 10 October, because that supplier ships closer to expiry. On 4 October you dispatch 400 kg.
- FIFO takes 400 kg from batch A. Batch B, which expires first, waits, and you risk writing off up to 500 kg on 10 October.
- FEFO takes 400 kg from batch B. Only 100 kg of B is left to clear by 10 October, and A still has eleven days.
Note: FEFO is about stock, not valuation
FEFO decides which physical batch leaves. It's separate from how you value inventory in the books, where Indian standards allow FIFO or weighted average cost. You can dispatch by FEFO and still value at moving weighted average.
What does batch and expiry tracking need?
- A batch per receipt. Each goods receipt line becomes a batch with its own quantity and expiry date. Keep one row per receipt, not per supplier lot number, because the same lot can arrive twice.
- Received and issued quantities per batch. The balance is received minus issued, so it can never drift from the transactions.
- A batch on every dispatch line. Every delivery note line names the batch it came from. That gives you traceability for a recall.
- Guard rails. Suggest the FEFO batch, warn when someone overrides it, and refuse to ship more than a batch holds or to edit a receipt below what has already shipped.
What does FSSAI require on the label?
Under the FSS (Labelling and Display) Regulations, 2020, pre-packaged food must carry its date of manufacture or packing and a best-before or use-by date. "Best before" marks the end of the period during which the food stays fully marketable and keeps its stated qualities under the stated storage conditions. Record the date printed on the pack as the batch's expiry when you receive it, and FEFO follows from it.
Common mistakes
- Tracking expiry in a spreadsheet beside the stock system, so the two drift apart.
- Recording batches at receipt but not at dispatch, which breaks traceability.
- Letting pickers choose the batch by convenience, with no suggestion or warning.
- Merging receipts of the same lot number, which loses the separate quantities.
How Dravyaa handles FEFO
With batch tracking on, every direct GRN line in Dravyaa becomes a batch with its expiry date and the party it came from. On a goods delivery note, the batch picker pre-selects the batch that expires first, warns if you choose a batch that came from a different party, and refuses to ship more than a batch holds. The inventory board shows stock by batch and expiry. See the food and beverage page or the cold storage case study.
Frequently asked questions
What does FEFO stand for?
FEFO stands for first expiry, first out. The batch with the earliest expiry date is dispatched first, regardless of when it was received.
Is FEFO better than FIFO?
For goods with a shelf life, yes. FIFO and FEFO give the same result only when every batch has the same shelf life; when shelf lives vary, FEFO prevents stock from expiring unshipped.
Does FEFO affect inventory valuation?
No. FEFO decides which physical batch is dispatched. Inventory valuation in the books uses FIFO or weighted average cost under AS 2 and Ind AS 2, independently of the dispatch rule.
What dates must a food label carry in India?
Under the FSS (Labelling and Display) Regulations, 2020, pre-packaged food must show the date of manufacture or packing and a best-before or use-by date.
How do you set up FEFO in software?
Record each receipt as a batch with its expiry date, name a batch on every dispatch line, and have the system suggest the earliest-expiring batch while refusing to ship more than a batch holds.
Sources
Facts checked as of October 21, 2026. Rules change: confirm current requirements with the official source or your tax adviser.
Ship the right batch, every time
See batch-wise stock and FEFO dispatch in a 20-minute walkthrough.