← Back to full page
Fulfillment.com · Reading view

FEFO or FIFO for Food & Beverage: How the Product Decides

Updated October 2026

FIFO goes by the day a lot arrived. FEFO goes by its best-by date. When lots of a dated food or beverage SKU come in out of date order, the two send different units out, and the date on the product tells you which one you need.

FEFO (first-expired, first-out) ships the lot with the nearest best-by or use-by date first. FIFO (first-in, first-out) ships the lot that arrived first. If lots of one SKU carry different dates, the two pick different units. We run both and match the method to the product. On dated SKUs we run FEFO on the best-by date we record at receiving.

By The Fulfillment.com team

Arrival date or best-by date

Each method sorts on a different date

Both methods decide which unit leaves the shelf next. FIFO looks at the arrival date, so the unit we received earliest ships first. FEFO looks at the best-by date, so the unit that expires soonest ships first. On goods with no shelf life the two give the same answer, and FIFO is the natural choice. Most packaged food and beverage isn't like that. Each SKU carries a best-by, use-by or sell-by date the customer can read. The day a lot arrived and the day it expires often point to different units.

A lot received this week can carry an earlier best-by date than one that has sat on the rack for weeks. Perhaps it was already partway through its shelf life when it reached us, or the supplier shipped from older stock. Pick by arrival order and the longer-dated lot goes out while the nearer-dated one keeps aging behind it. Then a customer opens a jar or a case with only days left on the date. The unit is returned or charged back, and the marketplace listing can pick up a bad review. FEFO prevents that by sending the picker to the nearest-dated stock first. It is one of the basics of food & beverage fulfillment.

Who picks the lot

Ask whether the system runs FEFO, or a picker does

Start by finding out who chooses the lot. Rotation only works when the date code is recorded at receiving and the system sends the picker to a specific lot because of that date. Without that, it comes down to a picker reading cartons, and neither method is really in use. In system-directed FEFO, the best-by date is saved with the lot when it is checked in. The warehouse system works out the pick order from that date and routes the picker to the right lot, not just the nearest bin.

We record the date code and the traceability lot code at receiving in BestOMS, our order system, with Deposco behind it. The system chooses the lot, not the picker, and every pick is barcode-verified before it ships. Two questions tell you whether a 3PL really runs FEFO. Is the best-by date saved in the system, so the system tells the picker which lot to take? Does the system block a lot once it falls below a shelf-life threshold? If either answer is no, rotation rests on people remembering to check. Both are at the center of our lot, expiry, and FEFO control service.

Close to the date

What a shelf-life threshold does

Sorting by best-by date covers most orders. The harder call is a lot that is still in date but too close to it to ship. By the time it reaches the customer and they get round to using it, little freshness is left. A shelf-life threshold deals with this. It sets the minimum remaining life a lot needs before it can ship. A system built for dated goods marks a lot under that line as short-coded and keeps it off the picking shelves, so nobody picks it by default.

Retailer and marketplace date rules come in here too. Grocery and wholesale accounts often turn away product that arrives without enough shelf life left, and each account sets its own window. Ship a unit short of it and the case can come back at your cost. FEFO only decides which lot ships first. The threshold is a separate check that holds back a lot too short for an account. Ask any 3PL whether its system blocks a lot once it crosses a threshold, and whether the threshold can be set per account. With us, a lot below your threshold can no longer be picked and is flagged for review. Confirm what each account requires. Our guide to traceability lot codes and FSMA recall readiness shows how the lot code we record at receiving carries through to a lot-level recall.

When arrival order is enough

When FIFO is the right fit for food and beverage

We run FIFO too, and on some SKUs it is the better rule. If a SKU has no date code, or its lots always arrive in date order, FIFO and FEFO pick the same units and arrival order is simpler to run. They split when lots of one SKU arrive out of date order. Brands that receive dated product from many production runs see that often, so dated food and beverage usually runs on FEFO. Any warehouse you are weighing should be able to tell you which method each of your SKUs would run on, and why.

FEFO is a rule about rotation. It is not a way of storing product, and it says nothing about temperature. We run it on shelf-stable goods. Refrigerated and frozen product is a separate category with its own rules, and our dry and ambient vs cold-chain guide explains the difference.

FEFO vs FIFO for food & beverage FAQs

How do you choose between FEFO and FIFO for food and beverage?

Start with the date code. Most packaged food and beverage has a best-by, use-by or sell-by date, and lots of one SKU often arrive carrying different dates. First-in, first-out (FIFO) ships whatever arrived first. First-expired, first-out (FEFO) ships whatever expires first. When a newer lot has the earlier date, the two pick different units, and only FEFO follows the date. Which one fits depends on whether the product carries a date and how its lots arrive. On dated SKUs we run FEFO on the best-by date recorded at receiving.

When does FIFO fit food and beverage?

FIFO fits a SKU with no date code, or one whose lots always come in date order. In both cases the two methods pick the same units, and arrival order is the easier rule to run. We run FIFO as well as FEFO. Lots of a SKU often arrive out of date order when they come from many production runs, and then FEFO picks by the date instead. That's why most dated food and beverage runs on FEFO.

How does receiving capture the best-by or use-by date?

When a pallet is checked in, we read the date code and save it with the lot, along with the traceability lot code, in BestOMS and the Deposco system behind it. From then on the date is in the system, which tells the picker which lot to take, so nobody has to hunt for it on the carton. Recording the date at the dock is what lets FEFO actually run.

What happens to a short-coded lot under FEFO?

It depends on the shelf-life threshold, which is the minimum remaining life a lot needs before it can ship. A system built for dated goods flags a lot under that line and keeps it off the picking shelves. What happens to the lot after that is its own decision. With any 3PL, three things are worth knowing: whether its system blocks a lot that crosses the threshold, where the threshold is set, and who decides what becomes of a held lot. With us, a lot below your threshold can no longer be picked and is flagged for review.

How does FEFO help meet retailer date-code requirements?

Retailers and marketplaces often turn away product that arrives with too little shelf life left, and each account sets its own window. FEFO ships the nearest-dated stock first. That isn't the same as checking a lot against one account's window. Confirm what each account requires, and ask your 3PL how a lot that falls short is kept off that account's orders.

Is FEFO the same as cold-chain or temperature-controlled storage?

No. FEFO decides which dated lot ships first. Temperature control is a way of storing product that needs it to stay safe. Neither depends on the other, so a 3PL can run FEFO on shelf-stable goods that need no temperature control. Our warehouses are dry and ambient, with air-conditioning in some buildings, and we don't handle refrigerated or frozen product. If your line needs cold storage, raise it when you request a quote.