FIFO, first in first out, means using stock in the order it arrived. FEFO, first expired first out, means using it in the order it expires. They give the same answer as long as the older delivery also has the earlier date, and they part company the day a delivery arrives with a shorter date than something already on the shelf. In a food business that's most weeks. For anything with a date on it, FEFO is the rule to follow. FIFO is for things that don't expire, and for the accountant, which is a different FIFO altogether and the source of most of the confusion.
The short version
- FIFO: use the oldest arrival first. FEFO: use the soonest date first.
- For food with a use-by or best-by date, run FEFO on the shelf. It costs nothing but reading the date.
- FIFO is also the name of a costing method. That one is about which cost goes with which sale, and it can run in the books while FEFO runs on the shelf.
- You can't run either without one row per lot. "Coconut milk: 102 cans" has no date.
- A customer's minimum-shelf-life rule can override FEFO for one shipment. Example below.
The full forms, and two more
FIFO is first in, first out. FEFO is first expired, first out. You'll also meet LIFO, last in first out, which in food is only ever an accounting method and never a shelf rule, because using the newest cream first is how you end up throwing away the oldest. And LEFO, last expired first out, which I've only ever seen as a joke.
Where they disagree
Three lots of coconut milk in a commissary walk-in on Monday, September 21:
| Lot | Arrived | Best-by | Cans |
|---|---|---|---|
| A | Sep 7 | Dec 15 | 30 |
| B | Sep 14 | Nov 30 | 48 |
| C | Sep 18 | Oct 20 | 24 |
FIFO says use A, then B, then C. FEFO says C (October 20), then B (November 30), then A (December 15): the exact reverse. Lot C came from a different supplier who had it in their warehouse a while. That happens with cash-and-carry runs, short-dated deals, and any supplier who runs FIFO badly themselves.
Say the kitchen uses 18 cans a week. Under FIFO, lot A lasts until October 2, lot B until October 21, and lot C's turn comes on October 21, the day after it expired. All 24 cans go in the bin, about $37 at $1.55 a can. Under FEFO, C is gone by September 30, B by October 19, and A by October 31, every one of them inside its date. Same stock, same kitchen, and the only difference is which case somebody reached for. That's what FEFO is worth, and it's why the date has to be written big on the side of the case facing out. Nobody's reading six-point type on the bottom of a carton at 5 a.m.
FEFO with a customer's rule on top
Windward Roots, the sample business inside the TaroStack app, has two lots of taro chips at its distribution center: 216 pouches with 28 days left, and 1,020 with 78. Foodland's standing order needs at least 30 days of shelf life on delivery. Plain FEFO would pick the 28-day lot first, and Foodland would refuse it at the dock. So Foodland's 600 pouches come from the 78-day lot, and the 216 older pouches go to the Saturday market and the company's own shops, where they'll sell in a week. The rule is still FEFO. It's FEFO filtered by who's receiving, and it's worth writing each customer's minimum down somewhere other than in your head. Minimum remaining shelf life for wholesale is about those rules.
The accountant's FIFO
FIFO also names a way of costing stock. Under FIFO costing, the cost of the earliest-bought stock is charged to the earliest sale, whichever physical can was used. The alternative is a moving average. Neither one has any opinion about which case the cook opened. So a business can run FEFO on the shelf and FIFO in the books, and most small ones should; the picks don't need to match the cost layers. If a bookkeeper tells you "we're FIFO", ask which FIFO they mean. (Ask your accountant which costing method your return uses. That isn't a shelf question.)
Your own products have dates too
Federal law doesn't require date labels on packaged food, apart from infant formula, and FDA backs "Best if Used By" as the standard phrase for quality dates (FDA). But food you prepare and hold in a retail or food-service setting is different. The FDA Food Code, which most states adopt in some version, says ready-to-eat food that needs temperature control and is held longer than 24 hours "shall be marked to indicate the date or day by which the food is to be consumed on the premises, sold, or discarded when held at a temperature of 5°C (41°F) or less for a maximum of 7 days", with the day of preparation counting as day 1 (FDA, section 3-501.17). Ask your health department which version applies to you.
The practical point is that FEFO applies to what you make, not only what you buy. Date your finished goods, and send the oldest to wherever it'll sell soonest. Check your state's food code for the rules on your own dates; this is general information and not legal advice.
How to run FEFO in a small kitchen
Four habits, none of them software.
- Date it at the door. Marker, tape, the date in figures you can read from across the walk-in.
- Shelve by date, not by arrival. Soonest date at the front, even when it's a nuisance to rearrange.
- Keep one line per lot for anything short-dated: what it is, the date, how much is left. Here's a sheet for it.
- Once a week, compare each lot's days left with how many days of stock it is at your rate of use. That check is the one that warns you before the bin, and it's worked through with real numbers in how to keep track of expiring ingredients in a bakery.
Where this stops working
The habit breaks with the new hire who wasn't told, or with the delivery put away in a hurry on the wrong shelf. The sheet breaks when quantities drift, because production takes from a lot and nobody subtracts it. And the customer rule breaks when it lives in the owner's head and the owner is off on Thursday. None of these is a discipline problem. FEFO is a decision made at every pick, and a decision made forty times a day by different people needs something that decides the same way every time.
How TaroStack does it
In TaroStack, first-expired-first-out is the default. When you record a batch or pick an order, the stock comes from the lot that expires soonest, and the record notes which lot it was. A customer's minimum days of shelf life is stored on the customer, so Foodland's order is picked from the 78-day lot without anyone remembering the rule. Expired stock and anything on hold stop counting as available. The expiring-stock forecast shows, for every lot, how much will still be left on its date at your real rate of use, and what that's worth. And costing is a separate setting: FIFO cost layers or moving average, whichever your accountant wants, with freight and other landed costs included. Lots and expiry are part of every plan, from $49 a month.
