Lot tracking and expiry dates: FEFO, recalls, and why FIFO is not enough
4 min read · Updated
The short answer
Lot tracking records which batch of a product each unit came from, so you can trace any shipped order back to its lot and any lot forward to every customer who received it. FEFO — first expired, first out — is the allocation rule that picks the lot with the nearest expiry date rather than the one received earliest. The distinction matters because FIFO and FEFO disagree whenever a later delivery has a shorter shelf life, which happens routinely with supplements, cosmetics, food and anything a supplier ships from mixed stock. Under FIFO, that short-dated lot sits behind the older one and expires on the shelf, or worse, ships to a customer with two weeks left on it. The control has to be in the allocation logic; a human reading an expiry column is not a control.
What a lot actually is
A lot (or batch) is a quantity of a product made or received together, sharing a manufacture date, an expiry date and a supplier reference. It is the unit at which quality problems occur, which is why it is the unit at which recalls are issued. A supplier does not tell you that one tub is contaminated; they tell you that lot 2411-B is.
That means lot tracking is only useful if the link survives all the way to the customer. Recording the lot at receiving and losing it at pick time gives you an inventory feature and no traceability at all — you know what you have, and you still cannot answer the only question anybody will ever ask you about it.
Why FIFO ships expired stock
FIFO — first in, first out — allocates the oldest received stock first. It is the right rule for anything that does not perish, and it is a reasonable proxy for FEFO when deliveries arrive in shelf-life order. They frequently do not.
| Lot | Received | Expires | FIFO picks | FEFO picks |
|---|---|---|---|---|
| 2403-A | March | December | First — it arrived first | Second |
| 2408-C | August | September | Second | First — it expires first |
Under FIFO in that table, the August lot sits behind the March one and expires in September while unsold. You write it off. Under FEFO you ship it first, while it still has a month of shelf life, and the March lot goes out later with plenty of margin. Same stock, same warehouse, and the difference is entirely a line of allocation logic.
This is the failure that makes people distrust their own expiry columns. The data was right and visible the whole time; nothing acted on it.
What you need in place to answer a recall
A recall question has two directions, and a system that only answers one of them will let you down on the day.
- Forward trace: given a lot, list every order that received a unit of it, with the customer and the ship date. This is what you need to notify people. It requires the lot to have been recorded at pick time, per order line.
- Backward trace: given a customer complaint, identify which lot they were sent. This is what you need to decide whether there is a recall at all, and it needs the same record read the other way.
- Remaining stock by lot, including anything already reserved against unshipped orders. Those reservations have to be released before the picks go out, and that is a job with a deadline measured in hours.
- A way to quarantine a lot immediately, so it stops being allocatable while you investigate. Without it your only options are trusting everyone to remember, or physically moving stock off the shelf.
The reason to check all four before you need them is that a recall is not the moment to discover that your system records lots at receiving and drops them at pick. That combination looks fine in a demo and produces exactly nothing when queried.
Short-dated stock is a commercial decision, not a warehouse one
Once the system knows expiry dates, it can tell you which lots are approaching them and how much money is sitting in each. That number turns a write-off into a decision with a deadline: discount it, bundle it, send it to a channel that moves faster, or accept the loss.
The value of the alert is entirely in its lead time. Told six weeks out, you have options. Told at expiry, you have a disposal cost and a note for the accountant. The threshold worth setting is the one that gives your slowest sales channel time to actually clear the stock.
Where quarantine fits
Quarantined stock is physically present and not sellable — held pending a quality check, damaged in transit, or under investigation. The critical property is that it counts in your on-hand total and not in your available total, because those are two different questions and merging them causes both kinds of error.
If quarantined units are excluded from on hand, your counts stop matching the shelves and every cycle count reports a discrepancy. If they are included in available, the system will happily allocate them to an order and send a picker to fetch stock they have been told not to touch. Both failures erode trust in the numbers, which is the thing the whole system runs on.
Common questions
What is the difference between FIFO and FEFO?
- FIFO — first in, first out — allocates the stock that was received earliest. FEFO — first expired, first out — allocates the stock with the nearest expiry date. They give the same answer only when deliveries arrive in shelf-life order. When a later delivery has a shorter remaining shelf life, FIFO leaves that short-dated stock behind newer-received but longer-dated stock, so it expires unsold or ships with very little life left. Anything perishable should allocate by FEFO.
Do I need lot tracking for supplements or cosmetics?
- Yes, in practice. Both categories carry expiry or best-before dates, both are subject to supplier-issued batch recalls, and both are regulated in most markets in a way that assumes you can trace a batch to its recipients. The operational reason is simpler than the regulatory one: without lot tracking, a single supplier batch problem means contacting every customer who ever bought that product rather than the few dozen who received the affected lot.
How does FEFO allocation work in practice?
- When an order is allocated, the system searches the available lots of each product, sorts them by expiry date, and reserves from the nearest-expiring lot that has enough stock, moving to the next lot when one runs short. The picker is then directed to the specific bin holding that lot, and the lot is recorded against the order line at the moment of the pick. That recorded link is what makes traceability work later.
What does it mean to quarantine stock?
- Quarantined stock is physically in the warehouse but blocked from being sold or allocated — typically held for a quality check, damaged on arrival, or under investigation after a complaint. It should still count toward on-hand quantity so physical counts reconcile, but be excluded from available quantity so no order can reserve it and no picker is sent to fetch it.
How far in advance should I be warned about expiring stock?
- Far enough that your slowest sales channel can still clear it. For a brand selling mostly direct-to-consumer, six to eight weeks is usually workable. For anything moving through wholesale or retail, where a purchase order and a delivery window sit between the decision and the sale, three months is more realistic. The alert is only worth having if there is still time to act on it.
Kinetel does the things described on this page.
Inventory and lot tracking, barcode scanning, guided and batch picking, pack verification and shipping — for growing product companies, not for enterprises with an implementation budget.