How to pick and rotate perishable stock by which lot expires soonest instead of which one arrived first — and why a system that only records the lot isn't enough.
Chef Diego runs a real food plant. If this page didn't get you there, tell us — a person reads every message.
After this lesson you can set a rotation rule that sends the soonest-expiring lot out the door first, spot the places where your current process picks by convenience instead, and make sure whoever pulls stock can actually see each lot's expiry at the moment they choose.
FIFO moves stock by arrival. FEFO moves it by expiry.
Most people learn one rule for rotating stock: . Line the boxes up by receive date, pull from the oldest, and you keep product moving instead of aging on a shelf. For a lot of goods that is exactly right.
For anything with an expiry date it is only right by accident. What you actually want is . FIFO and FEFO give the same answer only when arrival order and expiry order happen to line up. For perishables they drift apart constantly, and when they do, FIFO quietly sends out the wrong lot.
Why arrival order and expiry order drift apart
The of a lot has nothing to do with when it landed on your dock. A supplier can ship you a lot that has already spent three weeks in their warehouse, right behind a fresher truck that comes the next day. Your own production does the same thing: a slow-moving lot sits in the back while a newer batch stacks up in front of it.
Here is a made-up example to make the drift concrete. Say two lots of the same ingredient are in your cooler:
Lot A arrived on a Monday. Its printed expiry is August 30.
Lot B arrived that Thursday — later — but it came off an older supplier run, and its printed expiry is August 12.
FIFO says pull Lot A first, because it arrived first. But Lot B expires August 12, eighteen days ahead of Lot A. Follow FIFO and Lot B keeps sitting there until it is at or past its date, while you consume the lot that had the most life left. Arrival order was A then B; expiry order is B then A — the reverse. FEFO catches that and pulls Lot B first. This is the whole reason the operators who run perishables say it as a correction: FEFO, not just FIFO.
The failure mode: a system that records the lot but lets the picker grab any lot
Plenty of operations can already tell you, after the fact, exactly which lot shipped. The lot got scanned or written down on the way out, so the record is clean. The problem is that the record is built after the person picking already made the choice — and nothing in front of them steered that choice toward the soonest-expiring lot. So you end up with a precise, auditable record of the wrong pick.
That is the trap worth naming: knowing which lot left is not the same as controlling which lot leaves. A lot field that captures the pick is traceability after the decision. FEFO is a rule that shapes the decision. You need both, and the second one is the part cheaper stock tools tend to skip — they store the lot, but they let the picker grab whatever is in front of them or whatever scans first.
Tell pickers which lot to pull — by expiry
A FEFO rule only works if it reaches the person with their hands on the stock. Two things have to be true at the moment of the pick.
1
The picker can see each lot's expiry
Whoever pulls stock has to be able to read the expiry for each lot in front of them — on the unit, on the case, on the shelf label, or on a screen. If the expiry is buried in a back-office record the picker never opens, the rule is advice, not a control.
2
The soonest-expiring lot is the one they reach first
The pick either names the specific lot to pull, or the stock is arranged so the nearest expiry is physically in front. If your fastest-expiring lot is stacked behind three fresher pallets, FEFO loses to gravity every time — the person picks what they can reach.
This is where software built for food earns its keep: it can rank a product's lots by expiry and put the soonest-expiring one in front of whoever is picking, rather than leaving them to sort it out from paper. Bettr Manager, the platform this site is part of, works that way — it tells the picker which lot to pull. It is one way to enforce the rule; a disciplined shelf layout with clearly dated lots and a written pick order gets to the same place with more hand-work.
Rotation you can defend
FEFO is not only good housekeeping — it is how you meet a duty you already carry. FDA's current good manufacturing practice rule for human food requires, in 21 CFR 117.93, that the storage and transportation of food be under conditions that protect against "deterioration of the food and the container." A rotation habit that lets product sit until it is past its date is the opposite of that. A related section, 21 CFR 117.80, carries the same theme for holding: hold raw materials and product under conditions that minimize deterioration. FEFO is the practical shape that duty takes on your floor.
There is also a customer angle that bites even when the food is fine. Many retailers and distributors set a minimum amount of remaining shelf life a delivery must have on receipt — a lot that is technically good but too close to its date can be rejected at the dock. That threshold is contractual and varies by customer, so read your own agreements rather than assuming a number; the point is that shipping your nearest-expiry lot first is often the only way to keep enough life on the product to be accepted.
FEFO is only as good as the dates behind it
Every FEFO decision leans on the expiry you assigned when you made or received the lot. If those dates are guesses, sorting by them just sorts your guesses. Getting the code and the date right is the prerequisite here — the lot codes and date codes lesson covers how the lot code and the consumer date are two different marks doing two different jobs. Remember that on most foods the printed date signals quality, not a safety cliff: under USDA FSIS product-dating guidance, dating is not required by federal law except on infant formula, and the date tells a shopper when the product is at its best (verified July 2026).
What FEFO can't do
FEFO answers one question well: of the good lots you could ship, which one goes first. It has nothing to say about a lot that should not ship at all — one that failed a check, is waiting on a test result, or is under investigation. Sort those by expiry and FEFO will happily hand a picker a bad lot because it expires soonest. Stopping a lot from shipping regardless of its date is a different control: a quality hold that blocks a batch until someone releases it. That is the next thing to put in place.