First-in-first-out (FIFO) ships the oldest stock first. First-expiry-first-out (FEFO) ships the stock that will expire first. In most plants they give the same answer, but not always: a batch made later may have a shorter shelf life because of its ingredients, its packaging or simply because a different product was made. For short shelf-life food such as bread, cakes, milk and curd, FEFO is the rule that actually protects you from waste.
Why near-expiry stock builds up
- Pickers take the nearest stock, not the oldest.
- Expiry dates are printed on packs but not recorded in the system, so nobody can see them in total.
- Production runs to a plan that does not reflect returns and slow-moving products.
- Returns come back without being checked, sorted and recorded by reason.
Step 1: Give every batch an expiry date in the system
The expiry or best-before date should be calculated from each product's shelf life when the batch is packed, and printed from the same record. That way, the date on the pack and the date in the system can never disagree. In Formezy, the batch code and date are taken from the batch record at packing.
Step 2: Pick by expiry, not by convenience
When a dispatch is prepared, the system should suggest the batch with the earliest expiry date that is still acceptable for that customer. Some customers, such as modern trade, accept only stock with a minimum remaining shelf life; record that rule against the customer so the picker is not guessing.
Step 3: See near-expiry stock before it is too late
An alert for stock within a set number of days of expiry gives sales and dispatch time to act: push it on a nearby route, offer it to a customer who sells it quickly, or move it to a channel that can use it. The threshold depends on the product: a day or two for bread, longer for biscuits.
Step 4: Record returns properly
In a bakery, returns are part of the business. Recording them by route, product, batch and reason, such as stale, damaged or short-dated, turns returns into information. If one route returns far more than others, the problem may be the order quantity, the delivery time or the outlet mix.
Step 5: Feed it back into the plan
Production plans for short shelf-life products should start from orders and recent sales, not from last week's plan. When returns and near-expiry stock are visible, the next plan can be adjusted before more stock is made than the market will take.
Do not forget raw materials
FEFO applies to ingredients as much as to finished goods. Yeast, cream, milk powder, fruit pulp and flavours all have expiry dates, and an ingredient that expires in store is a straight loss. Record the expiry date of every lot at receipt and issue the earliest-expiring lot first, so stores and production follow the same rule as dispatch.
The same rules in a dairy
A dairy faces the same problem with milk, curd and paneer, often with even shorter windows and colder storage. Use-by dates come from the batch record, route indents are picked by expiry, and crates of short-dated product that come back on the morning route are recorded as returns with their reason. The difference is that temperature matters too: stock kept outside its temperature range may need to be treated as expired regardless of its date.
What to measure
- Value of stock written off or discounted because of expiry, by product
- Returns as a percentage of dispatches, by route and product
- Stock within its near-expiry window at the end of each day
- Average remaining shelf life at dispatch
The bakery ERP page shows where expiry, dispatch and returns are recorded in a bread and bun plant, and our page on shelf-life, expiry and FEFO management covers the full approach for dairy, beverage and packaged foods too.



