
EU Seller Event Week: What to Audit Before Scaling
06.03.2026
The Operational Guide to ICS2 Phase 3: Technical Logistics Requirements for E-commerce Growth
06.03.2026
EU Seller Event Week: What to Audit Before Scaling
06.03.2026
The Operational Guide to ICS2 Phase 3: Technical Logistics Requirements for E-commerce Growth
06.03.2026

FLEX. Logistics
We provide logistics services to online retailers in Europe: Amazon FBA prep, processing FBA removal orders, forwarding to Fulfillment Centers - both FBA and Vendor shipments.
A seller running skincare and a seller running phone cases both use the same 3PL, the same racking, the same pick process. One of them is quietly writing off stock every quarter; the other never thinks about it. The difference usually is not the warehouse. It is whether inbound stock gets rotated by arrival date or by expiry date, and whether anyone decided that on purpose.
FIFO (first-in-first-out) moves the oldest received unit first. FEFO (first-expired-first-out) moves the unit closest to its expiry or best-before date first, regardless of when it arrived. For sellers with no perishability risk, this choice barely matters. For sellers with cosmetics, supplements, food-adjacent items, or anything with a printed date code, picking the wrong model creates a slow leak of unsellable inventory that nobody notices until a stock count. This article compares both models against the same operational criteria so you can decide which one your SKU mix actually needs.
What FIFO and FEFO Change on the Warehouse Floor
FIFO is a sequencing rule tied to receiving date. Pallet A arrived Monday, pallet B arrived Wednesday, so pallet A ships first no matter what the labels say. It works because most non-perishable SKUs do not degrade in a way that receiving order fails to capture. A phone case from March and a phone case from June are functionally identical, so oldest-in-first-out is a fine proxy for freshness.
FEFO ignores receiving order and sorts by the printed expiry or best-before date instead. This matters when a later-arriving batch can have an earlier expiry than an already-shelved batch, which happens more often than sellers expect. A supplier restock delay, a different production run, or a bulk buy of near-dated stock at a discount can all put a shorter-dated batch behind a longer-dated one on the shelf. Under FIFO logic, the older-arrival batch would ship first even though the newer-arrival batch expires sooner. Under FEFO, the WMS or pick list flags the shorter-dated batch regardless of arrival sequence.
The mechanical difference is small ‒ a sort key change in the picking logic ‒ but the operational requirement behind it is not. FEFO needs expiry data captured accurately at receiving, batch or lot tracking through storage, and a pick system that can actually sort on that field rather than on location or arrival timestamp.
What FIFO Requires You to Control
FIFO is largely self-enforcing if your slotting is disciplined. Put new pallets behind old pallets, pick from the front, and the sequence takes care of itself. The main control point is location logic in the warehouse management system: pick faces need to be assigned so the oldest stock is physically first in the pick path, not just first in the database.
The failure mode is subtle. If cross-docking, restocking, or a rush replenishment puts a newer pallet in front of an older one, FIFO breaks silently. Nobody notices because there is no expiry date forcing a correction. The oldest stock simply sits longer, cycle counts still reconcile, and the only symptom is slower turnover on certain batches that nobody is watching.
What Breaks When FEFO Is Missing on Dated Stock
When a business with dated inventory runs plain FIFO, the consequence shows up as write-offs, not as a process error. A batch with an earlier expiry sits behind a batch with a later one, ships last, and crosses its shelf-life threshold while still in storage or in transit to the FC. On marketplaces this is worse: an item can fail Amazon's minimum remaining shelf-life requirement at receiving and get rejected at the FC, turning a storage problem into a blocked inbound shipment.
The commercial cost is not always visible in a single line item. It shows up as a rework queue, a removal order for expired stock, or a quietly rising reject rate at FC intake. Sellers often discover the pattern only after a customs release or FC handoff delay stretches a batch past its usable window.
The Data Check That Decides Which Model You Actually Need
Before choosing, pull one report: for your top 20 SKUs by volume, do any of them carry a printed expiry, best-before, or use-by date? If the answer is no across the board, FIFO is the right default and FEFO adds cost without benefit. If even a handful of SKUs carry dates, especially high-velocity ones, FEFO logic needs to apply at least to that subset.
This is not an all-or-nothing decision at the catalog level. Many 3PL setups run FIFO as the default warehouse rule and layer FEFO only on the SKUs flagged with expiry tracking, which keeps most of the pick process simple while protecting the dated inventory that actually carries write-off risk.

Cost, Effort, Risk and Scalability Side by Side
Cost and effort favor FIFO by a wide margin. It needs no batch-level data capture, no lot tracking, and no WMS configuration beyond standard location-based picking. FEFO needs receiving staff to record expiry dates accurately for every batch, a system that stores that data at the lot level, and pick logic that can sort on it. That is more setup work and more room for data-entry error at intake.
Service level tells the opposite story for dated goods. A seller with shelf-life-sensitive SKUs who skips FEFO will eventually see FC rejections, customer complaints about near-expired product, or forced removal handling on stock that ages out before it sells. Risk scales with SKU count and turnover speed: slow-moving dated inventory under FIFO is a ticking clock, while the same catalog under FEFO gets systematically protected because the sort key does the prioritizing automatically.
Scalability depends on where the complexity lives. FIFO scales cleanly because it adds no incremental data burden per SKU added. FEFO scales fine too, but only if the receiving process and inventory accuracy checks are built to capture batch data consistently from day one; retrofitting FEFO onto a catalog that has been running loose FIFO for two years usually means a full stock audit first.

Where the Decision Gets Made Wrong
The common mistake is assuming FIFO is safe by default because it is simpler and cheaper. That assumption holds only if nobody in the catalog ever adds a dated SKU. Sellers expanding into supplements, cosmetics, food-adjacent accessories, or even certain electronics with battery date codes often keep running FIFO out of habit, not because anyone reviewed the SKU mix.
The second mistake is applying FEFO across the entire catalog when only a fraction of SKUs need it. This adds receiving friction and picking complexity to non-dated items for no operational gain, slowing down a warehouse team that now checks for expiry dates on products that never carry one.
Choose FIFO If
Your catalog has no printed expiry or best-before dates, or the dates present are so far out they never realistically expire in storage. Non-perishable goods, apparel, electronics without battery date codes, and most general merchandise fit here.
Choose FEFO If
Any meaningful share of SKUs carries expiry, best-before, or lot-based shelf-life data, especially fast movers. Supplements, cosmetics, food-adjacent items, and anything gated by Amazon's shelf-life intake rules belong here.
Choose a Hybrid If
Most of your catalog is non-perishable but a subset carries dates. Run FIFO as the warehouse default and apply FEFO logic only to flagged SKUs, which limits added receiving effort to the stock that actually needs it.
What to Check Before Locking In a Rotation Model
The decision is not really FEFO versus FIFO as a philosophy. It is whether your catalog has dated SKUs, whether your receiving process can capture that data reliably, and whether your 3PL's WMS can actually sort on it rather than just storing it as a reference field. Get those three answers first.
If you run a mixed catalog, the practical move is not choosing one model company-wide. It is confirming with your fulfillment partner that FBA prep services or general warehousing already support batch-level tracking for the SKUs that need it, and that the WMS pick logic can apply FEFO selectively without slowing down everything else. Ask specifically how expiry data gets captured at intake, whether it feeds directly into pick sequencing, and what happens when a batch is flagged as approaching its shelf-life cutoff before an FC handoff or customer shipment.
Sellers who skip this check tend to find out the hard way, usually through a removal order for expired stock or a rejected inbound shipment at an Amazon FC. Sellers who check it upfront simply configure the right rule once and stop thinking about it.

If part of your catalog carries expiry dates and you are not sure whether your current 3PL setup enforces FEFO where it matters, that is worth a direct conversation before the next inbound run. FLEX. can walk through your SKU mix, flag where batch tracking is actually needed, and confirm how rotation logic gets applied inside pre-Amazon storage and general fulfillment workflows so dated stock does not become a write-off later.

