The Invisible Wall Blocking Your FEFO (First Expired, First Out) Strategy
- Gandhinath Swaminathan

- 20 hours ago
- 5 min read
FEFO is simple: Find the lot that expires first. Pick it. Ship it.
It is the iron law of fresh food logistics. It keeps inventory moving and waste low.
Let's explore with a real-time example: Consider a product, a refrigerated hummus, with a 60-day shelf life. On paper, it is a single SKU. On your floor, it is three. The rule of FEFO fails if your system sees three products when your warehouse holds only one.

The Phantom Inventory Problem
Lot A: Made at your own plant, expires June 5
Lot B: Made at a co‑packer, expires May 20
Lot C: Bought through a regional distributor, expires July 10
Physically, they sit in the same cold room. Same recipe. Same lid. Similar labels.
However, digitally, they live three separate lives:
“ORG HUMMUS 10OZ” → Lot A, June 5, Bin B‑12
“Organic Hummus 10oz – CP” → Lot B, May 20, Bin D‑03
“Hummus Org 10oz” → Lot C, July 10, Bin F‑07
Now a retailer like Walmart sends an order. They do not just ask for product; they demand freshness. Their contracts often specify a Minimum Shelf Life on Receipt, for example, requiring 75% of shelf life remaining.
If you ship Lot A (June 5) because your system doesn't “see” Lot B (May 20), you aren’t just shipping the wrong box. You are triggering a rejection.
Three engines. Three queues. Three “oldest” lots. It does not compare them. It treats them as different products. So, your pickers load the June 5 stock. The May 20 stock sits. It ages. It dies.
You pay freight to ship the fresher stock. Then you pay to dispose of the older stock.
Why CPG Keeps Tripping Here
CPG traceability is a chain of entities and links, not a single table.
It starts with the Supplier providing ingredients and ends with the Retailer enforcing shelf life rules. The hardest connection is the many‑to‑many link between Production Batches and Ingredient Lots.
One Production Batch consumes many Ingredient Lots (e.g., flour, salt).
Conversely, one massive Ingredient Lot can span ten different Production Batches.
If this web of connections is not mapped perfectly, you lose the “Golden Link” for traceability.

FEFO sits late in that chain, at the pick decision in the Warehouse Management System (WMS). By the time the WMS is picking, product identity has already crossed:
Product Lifecycle Management PLM (SKU + BOM)
Enterprise Resource Planning ERP (materials + purchasing)
Manufacturing Execution Systems MES (batch consumption facts)
Warehouse Management System WMS (bins + lots + expiry)
Then add the reality every brand lives with: co‑packers are separate companies with their own ERP/WMS and their own item codes. So the brand doesn’t get “one master” across the network. It gets multiple masters plus exchanged documents and mappings.
The Co‑Packer Gap
A co‑packer runs production. They also act as custodian of batch data, then share batch records back to the brand owner. They do not give you database access. They send you a file—usually an EDI 856 (ASN).
That means a lot number and an expiration date often enter your world as an inbound message, not a controlled record. If the brand doesn’t reconcile the co‑packer’s product identity to the brand’s product identity, the WMS ends up rotating lots inside separate buckets. That’s the whole FEFO failure mode.
Where Governance Shows Up
When teams say “FEFO failed,” they’re describing the last visible step. The earlier failure mode is identity drift across systems and partners. Data governance is the discipline that keeps identity stable as it moves across partner feeds.
In CPG, that becomes concrete in a few places:
New SKU creation standards (name, UOM, case pack, identifiers, shelf-life attributes)
Partner onboarding and mapping upkeep
Traceability joins (batch ↔ ingredient lot)
Exception handling when inbound shipment data conflicts with internal definitions
What Data Stewards Do
In this context, a Data Steward is not a librarian. They are the firewall against bad data. In CPG product identity, a good steward spends time on the unglamorous work that prevents FEFO surprises:
Guardrails for SKU creation so duplicates do not keep spawning across PLM/ERP/WMS.
Match/merge workflows when duplicates slip through.
Ownership of partner mappings (co-packer codes, distributor catalogs, retailer item numbers), plus review queues when inbound messages do not line up.
Coordination across functions when a traceability link breaks (batch, ingredient lot, finished-good lot).
What stewards typically do not control is the co-packer’s internal master data. The co-packer owns that. Stewardship here is about the brand’s governed view and the mappings between views.
Cloning the Steward: How Active Learning Captures Tribal Knowledge
You cannot write an “If/Then” statement for every mismatch. That creates a ceiling on automation. You either accept bad data, or you drown your team in manual review.
Active learning breaks this cycle. It acts as a filter, separating the routine from the ambiguous.
When statistical confidence is high, the system executes the match. When it falls below a threshold, it stops. It places that specific record in front of a human—not to fix a row, but to teach the model.
The Standard Approach: A system records: “User said A does not equal B.” This fixes the immediate error but teaches the system nothing.
The Agent Approach: An agent capable of rationale capture asks for the variable. The Steward does not just click “No Match.” They highlight the conflicting data point—perhaps an “SP” in the suffix. The agent learns a specific negative constraint: “SP” in this field indicates a separate SKU.
It updates the model weights immediately. You transfer logic from the steward’s head into the application layer.
From Algorithms to Reality
This brings us back to the warehouse floor. FEFO is simple: Find the lot that expires first. Pick it. Ship it.
What makes it messy in CPG is identity. One sellable product shows up as three items across a brand ERP, a co-packer’s system, and a distributor feed. FEFO sorts three queues and makes the wrong choice.
This is a governance problem, not a warehouse problem.
Entity resolution at high volume becomes your operational edge. It decides when “ORG HUMMUS 10OZ,” “Organic Hummus 10oz – CP,” and “Hummus Org 10oz” are the same thing. It keeps the identity stable.
The goal isn’t to replace stewards; it is to arm them with a system that proposes matches, scores confidence, and keeps an audit trail. This is how you bridge the gap between algorithms and reality: by finally making governance run as fast as the rest of your business.


Comments