Forty-five days of shelf life left. The system never raised an alert, and nobody on the account team knew the clock was ticking. When the customer's own warehouse finally caught it during a cycle count, what came back was a full pallet — 800 cases of juice drinks, straight to disposal. The boss did the math with a green face: over forty thousand dollars in product value, and he had to eat the return freight too. This happened in 2019 at a cold-chain 3PL in San Bernardino, a 120,000-square-foot facility, no small shop. The post-mortem was the painful part. Lot numbers were recorded cleanly at receiving. Expiry fields were all there. Nobody had wired those fields into a living management process.
I've spent close to a decade on the food-warehouse side of this industry, and I've seen this scene repeat itself too many times: the system has every field you could want, and the floor still ships on gut feel. Lot and expiry management sounds like a "management problem." In practice it's a "doing problem." Here's what I've seen work, and what's pure decoration.
FEFO Isn't a Sort Button — It's an Iron Rule for Receiving and Shipping
A lot of people think of FEFO as a button in the WMS that sorts picks by expiry date. Anyone who has actually run a food DC knows the hard part isn't the algorithm. It's the receiving dock and the pick face.
Receiving first. When a shipment arrives, lot and expiry have to be captured at the dock, on the spot. One SKU can easily arrive as three lots with three different expiry dates — separate pallets, separate putaway. I've seen a warehouse cut corners by mixing different lots of the same SKU into one location, labeled with just the SKU. Three months later they shipped product whose production date was two weeks older than the customer allowed, and the whole order got hit with a chargeback. The lesson is blunt: the lot is the smallest unit of inventory management, not a memo field. Splitting pallets and printing lot labels at receiving costs ten extra minutes. It saves you whole orders later.
Then shipping. Nearly every WMS can recommend pick sequence by expiry, but whether pickers actually follow it is another matter. A picker's instinct is to grab what's handy, what's close, what's a clean full pallet. Making FEFO stick takes three things: the audit station scans and the system hard-blocks any lot that doesn't match the recommended sequence; piece-rate pay can't be based on cases alone — lot-mispick rework and chargebacks have to hit the individual; and every month someone pulls a sample of outbound orders and checks lot compliance after the fact. A frozen-food distributor I worked with took two full quarters to lift compliance from 70% to 98%, and it was all "hard block plus accountability plus spot checks." Not one of those was about the technology itself.
One more trap: customer returns. Returned lots have to be re-inspected and re-labeled before they go back into available inventory — never let them blend straight back in. I once saw a returned pallet rolled right back to the pick face, and two weeks later it shipped to a different customer with barely three weeks of shelf life left, discovered only at outbound audit. Returns belong in a segregated inspection zone with fresh labels. Non-negotiable.
Warning Tiers Can't Be Guesswork: Grade Them by Shelf-Life Length
The most common mistake with near-expiry alerts is a one-size-fits-all cutoff — say, alert on everything with 60 days left. For canned goods with an 18-month shelf life, 60 days out is nothing. For fresh milk with a 45-day shelf life, 60 days is impossible. Warning tiers have to be graded by remaining shelf-life percentage. That's the approach I insist on.
An example (sample numbers — go by whatever your client agreements say): for products with 12-plus months of shelf life, 90 days remaining puts it on a "watch" list with a weekly report to the account team; 30 days triggers a "warning," and sales has to present a disposition plan — markdown, transfer, or disposal; 10 days freezes shipping outright, requiring special approval to release. For products under six months of shelf life, compress the three lines proportionally — say 45, 15, and 5 days. The numbers themselves aren't the point. The point is converting "how many days left" into "what fraction of life is left," so short-life and long-life goods run on the same logic.
Who gets the report matters just as much. Sending it only to the warehouse manager is useless — the warehouse can see the problem but can't sell the product. The report has to go to the account manager or customer service lead for that client, the people who can negotiate a markdown or a return with the brand. That San Bernardino warehouse in 2019 failed exactly here: the report generated every week and sat in the system unread. Once they switched to automatic email pushes plus a weekly walk-through of the near-expiry list in the ops meeting, disposal write-offs dropped by about 70% the following year — and most of that wasn't better management, it was information finally reaching people who could make decisions.
One more detail: alerts should factor in days-on-hand, not just days-remaining. A lot with 40 days of shelf life left but a three-week average sell-through is already "effectively expired." Put the projected sell-through date next to the expiry date, and the real lead time finally shows up.

Traceability Drills and Disposal Calls: Don't Wait for the Real Thing
In a food warehouse, lot traceability is a cost center on ordinary days and a lifesaver on the day something goes wrong. Eight out of ten US food clients I've dealt with write it into the contract: within 4 hours of a recall notice (sample figure — check the contract), you must produce the full trail of a lot — which locations it sat in, which customers it shipped to, how many cases per order. Miss that window and you're looking at a lost client at best, litigation at worst.
My recommendation: run a mock recall every quarter. Pick a lot at random and time it — how long from the order to a complete flow report. Plenty of warehouses blow past two hours on their first drill, and the failures always cluster in three places: returned lots not managed separately, broken-case picks with no lot recorded, manual transfers never entered in the system. Drills surface problems that daily operations never show. Keep the drill records on file — clients love seeing them during facility audits.
Disposal decisions are the other friction point. Whose signature authorizes a write-off, who bears the cost — get it in the contract up front. The practical sequence I've seen: first check whether it can be marked down or donated (in the US, food donations carry tax deductions — check the current policy so you don't leave money on the table), then whether the supplier takes back a percentage of expired goods (some brands do), and only then disposal. Disposal needs two witnesses, photos on file, and a documented destruction process. A single-signature write-off is a hole you dig for yourself. One warehouse had a supervisor quietly "disposing" expired candy to a recycler and pocketing the cash — fired when it surfaced, and nearly prosecuted.
One trade-off to be honest about: the finer your lot control, the slower receiving and picking get. That's unavoidable. One SKU in three lots means the picker makes extra trips. My verdict: a food warehouse should never save labor here. The labor you save won't cover a single recall. Find your efficiency in layout and equipment instead — lot accuracy is not where you compromise.
Something you can do tomorrow: pull a list from your WMS of all inventory expiring in the next 90 days, sort it by client and days remaining, print it, and pin it to the meeting-room wall. Then ask the account team one question — what's the plan for this stock? If nobody has an answer, what you're missing isn't a system feature. It's someone who actually takes expiry dates seriously.





