A drum of raw material expires on the shelf while an identical, newer drum sits in front of it and gets used instead. A pharmacy dispatches a batch that is three weeks from expiry when a batch expiring next month was sitting one rack over. Neither mistake is carelessness — it is what happens when stock is picked by whatever is nearest, not by what expires first. FEFO and lot tracking exist to make "what expires first" the rule the system enforces, not a note somebody is supposed to remember.
This article is for anyone handling dated or batch-controlled goods — pharma, food and beverage, chemical, dairy — who needs the discipline behind lot control, not just the buzzwords. For the wider picture of stock control, start with the pillar guide, What is inventory management software?, and see the feature it maps to, Lot, Batch & Expiry (FEFO).
1. Why lots and expiry matter
For most stock, a quantity and a location are enough. For batch-controlled goods they are not, because two units of the same item are not interchangeable — one may be fresh and one may be days from expiry, one may have passed inspection and one may be on hold. The lot layer records that difference. Each lot (or batch) carries its own batch number, production date, expiry date and status, and its own quantity and rate — so the system knows not just how much you have but which stock it is.
That distinction unlocks three things a plain quantity cannot deliver:
- Ordered consumption — issue the right lot first, so shelf life is used before it lapses.
- Traceability — trace a dispatched or consumed lot back to the receipt and supplier batch it came from.
- Segregation — hold, quarantine or block a suspect lot without touching the rest of the stock.
2. FIFO vs FEFO — the crucial difference
Two rules govern the order in which stock is consumed, and they are not the same:
| Aspect | FIFO (First-In-First-Out) | FEFO (First-Expiry-First-Out) |
|---|---|---|
| Orders stock by | Receipt date — oldest received goes first | Expiry date — nearest expiry goes first |
| Protects against | Age — stock sitting too long | Expiry — shelf life lapsing before use |
| Best for | Non-dated goods where age is the concern | Perishable, dated and batch-controlled goods |
| Failure mode | A newer batch with a shorter life expires unused | None for expiry — but needs reliable expiry data |
| Expired stock | Not inherently excluded | Excluded from issue as a hard rule |
The two rules agree whenever older stock always expires first — which is why FIFO feels good enough until it isn't. They diverge the moment a newer batch carries a shorter remaining shelf life than an older one: a supplier ships a short-dated lot, or a return comes back with less life than fresh stock. FIFO would issue the older batch and let the short-dated one expire; FEFO issues the short-dated one first and saves it. For dated goods, FEFO is simply the safer rule, and a real inventory system enforces it at the point of issue — excluding expired lots outright and ordering the eligible lots by expiry.
3. Batch genealogy — tracing a lot end to end
Traceability is not a report you run once; it is a property the system has because every movement is recorded. When a lot arrives on a goods receipt, it is created with its supplier batch, production and expiry dates. Every subsequent movement — transfer, hold, issue, return — writes an immutable ledger row against it. The result is batch genealogy: an unbroken chain from a dispatched or consumed lot back to the exact receipt and supplier batch it came from.
This is what a recall or a customer audit actually requires. If a supplier flags a bad batch, you can find every lot that came from it, everywhere it went, and every order it touched — in minutes, not days. And because the ledger is append-only, the trail cannot be quietly edited after the fact, which is precisely what makes it credible to an auditor. For the highest-assurance industries, an optional blockchain-backed ledger mode adds tamper-evidence on top.
4. Expiry buckets — turning dates into an action list
Knowing every lot's expiry date is only useful if you can act on it before the date passes. That is the job of the expiry dashboard: it takes every available lot and sorts it into time-window buckets, so the store sees not a spreadsheet of dates but a prioritised worklist.
- Blocked from issue automatically under FEFO
- Flagged for write-off or return to supplier
- Never silently consumed by mistake
- The near-expiry action list — push or discount
- Transfer to a faster-moving store or channel
- Issued first by FEFO wherever eligible
- Comfortable life — routine handling
- Watched as it moves toward nearer buckets
- Feeds realistic shelf-life planning
- Near-expiry alerts by WhatsApp or email
- Escalation before, not after, the date
- Loss becomes managed, not discovered
Paired with FEFO at issue, the dashboard closes the loop: FEFO makes sure the nearest-expiry eligible lot goes out first, and the dashboard makes sure a human sees anything that FEFO alone will not clear in time. See WhatsApp & email alerts.
5. Hold and quarantine — segregating without moving
Not every lot in stock is fit to issue. A batch may be awaiting inspection, under investigation after a complaint, or physically damaged. The naive approach is to move it to a separate store — but that means an extra movement, a new location to track, and a chance the ledger and the shelf disagree. Lot status solves it more cleanly.
Each lot carries a status — available, hold/quarantine, damage or closed. Setting a lot to hold or quarantine removes it from availability so it cannot be issued or picked by FEFO, without relocating the quantity or editing the balance. The stock stays exactly where it is; it simply becomes ineligible until someone releases it back to available. It is the difference between ring-fencing stock and shuffling it — the former leaves a clean, auditable record, the latter creates work and risk.
6. A worked example (illustrative)
The numbers below are illustrative — a made-up scenario to show how FEFO orders an issue, not figures from any real deployment. Suppose a food distributor holds four lots of one item across two stores and needs to issue 500 units.
Four lots are on hand. FEFO first excludes the expired lot, then orders the rest by expiry date — nearest first — and draws down until 500 is met:
| Lot | Received | Expires | On hand | Status & FEFO action |
|---|---|---|---|---|
| L-01 | 10 Jan | 05 Jul (past) | 120 | Expired — excluded, flagged for write-off |
| L-04 | 02 Mar | 20 Aug | 200 | Nearest eligible expiry — issue all 200 first |
| L-02 | 18 Jan | 30 Sep | 250 | Next expiry — issue 300 (needs 300 more) |
| L-03 | 25 Feb | 15 Nov | 180 | Latest expiry — untouched this issue |
Note two things a naive pick would get wrong. First, L-04 is issued before L-02 even though L-02 was received earlier — FEFO follows expiry, not receipt order, which is where it parts company with FIFO. Second, the expired L-01 is never touched, even though it is the oldest stock on the shelf. The issue is fully documented, each lot's balance drops by exactly what was drawn, and the expiry dashboard now shows L-02 as the new near-expiry lot to watch.
7. Who needs lot & FEFO control
Any operation whose stock carries a shelf life or a regulatory traceability requirement needs this discipline. In practice that means:
| Industry | Why FEFO and lot control are non-negotiable |
|---|---|
| Pharma | Batch-level traceability and expiry control are regulatory essentials; a recall must trace every lot to its receipt. See pharma inventory software. |
| Food & beverage | Short shelf lives make FEFO and near-expiry action lists the difference between selling stock and writing it off. See food & beverage inventory. |
| Chemical | Dated and hazard-classified batches need segregation, hold status and lot valuation control. See chemical inventory software. |
| Dairy | Very short lives, plus recurring returns and claims, demand tight batch and expiry discipline. See dairy inventory software. |
8. How Fast Inventory Software does it
Fast Inventory Software, built in Pune by Improsys under the Fast Technology brand and available cloud and on-premise, runs lot and expiry control as a first-class part of the stock model:
- Lot detail on every batch item — batch number, production and expiry dates, quantity and rate, tracked alongside the aggregate balance.
- FEFO at issue — expired lots are excluded as a hard eligibility filter and eligible lots are ordered by expiry, so the nearest-expiry stock goes first automatically.
- Expiry dashboard — available lots bucketed by window (previous, today, this week, month, quarter, six-month, year) as a dated action list.
- Hold / quarantine status — a lot flag that removes stock from availability without moving quantity, for failed-inspection or under-investigation batches.
- Immutable ledger — every lot movement is an append-only posting, giving full batch genealogy, with an optional blockchain-backed mode for the highest-assurance industries.
Make "nearest expiry first" a rule the system enforces, not a note on a carton.
Fast Inventory tracks every batch with its production and expiry dates and a hold/quarantine status, enforces FEFO at issue, and buckets near-expiry lots on an expiry dashboard with WhatsApp and email alerts. Because it all rides one immutable ledger, a recall or an audit can trace any lot back to the receipt it came in on — with nothing reconstructed after the fact.
9. Frequently asked questions
See FEFO and lot control on your own batches
A 30-minute demo — your items, your batches and expiry rules, FEFO issue and the expiry dashboard live on screen. No generic slideshow.
