A pharmacy receives two deliveries of the same paracetamol a week apart. The second delivery, from a different distributor, happens to expire three months sooner than the first. Staff do what they've always done: older delivery to the front, newer delivery behind. Months later someone pulls a whole box from the back of the shelf, past its date, and it goes in the bin.
Nobody did anything wrong by the usual rule. The usual rule was the wrong one for that product.
FEFO stands for First Expired, First Out. It means you sell, dispense or use the stock with the nearest expiry date first, regardless of when it arrived. For anything with a date on it, such as medicines, dairy, bread, cosmetics or fresh meat, it's the difference between selling stock and writing it off.
FEFO vs FIFO
FIFO, First In, First Out, sells stock in the order it arrived. It works well for products that don't expire, and for dated products when every delivery has a later date than the one before.
The trouble is that real deliveries don't always behave that way. Different suppliers, different factories, a distributor clearing older stock, a delivery delayed at the border: any of these can mean the newest arrival expires first. FIFO would move the older delivery first anyway. FEFO looks at the date on the pack.
| Method | What goes first | Good for | The catch |
|---|---|---|---|
| FEFO | The batch that expires soonest | Medicines, food, cosmetics, anything dated | Needs expiry dates recorded at delivery |
| FIFO | The batch that arrived first | Non-perishables, general goods | Assumes arrival order matches expiry order |
| LIFO | The batch that arrived last | Some accounting methods, rarely shelves | Risky for anything that expires |
If a product can expire, FEFO is the safer default.
Where FEFO matters most
Pharmacies. Medicines carry batch numbers and expiry dates for a reason, and dispensing expired stock is something no pharmacy wants to explain to a patient or a regulator. FEFO also makes recalls easier, because you know which batch went where.
Supermarkets and minimarts. Dairy, bread, chilled meat, juice and snacks. High volumes, short dates, and a constant stream of deliveries.
Restaurants and cafés. Proteins, dairy, sauces and fresh produce. Kitchens that use the nearest date first throw away less and keep food safer.
Cosmetics and beauty supply. Creams, serums and hair products have shelf lives too, and a customer who opens a product past its date won't come back.
Agro-vets and wholesalers. Animal medicines, seed treatments and packaged foods sold by the carton, where a single expired pallet is a large loss.
What it costs to ignore it
Expired stock costs you more than the price you paid for it.
- The write-off: what you paid, plus the profit you would have made.
- Customer trust: a parent who buys yoghurt that's turned won't forget which shop it came from.
- Regulatory risk: pharmacies and food businesses can face serious consequences if expired products reach customers.
- Staff time: without a system, someone has to check dates shelf by shelf, and things still get missed.
- Phantom stock: if expired goods are thrown away without being recorded, your system thinks you still have them and your reorders go wrong.
How to make FEFO a habit
FEFO only works if the dates are known before the goods reach the shelf. Paper and memory struggle with that once you have more than a few dozen dated lines. A POS with batch and expiry tracking makes it routine.
1. Record batch and expiry at delivery. When stock arrives, the batch number and expiry date go into the system along with the quantity. This is the one step that makes everything else possible.
2. Know which batch to sell first. With dates in the system, staff can see which batch should go to the front, rather than guessing from the delivery order.
3. Get warned before stock turns. Set an alert period that suits each category: shorter for bread and milk, longer for medicines and cosmetics. That gives you time to move stock forward, run a price cut, or send it to a busier branch.
4. Move stock between branches early. If one branch is sitting on near-dated stock that another sells quickly, a recorded transfer saves the sale.
5. Record what does expire as a damage, with a reason. Some stock will still turn. When it's recorded rather than quietly binned, your stock stays accurate and you can see which products, suppliers or branches keep producing waste.
6. Review it monthly. Look at what expired, why, and whether you're ordering too much of it. Often the real fix is a lower reorder point.
A note on the shelf itself
Systems help, but the shelf still matters. Train staff to restock from the back, pull older dates forward, and check the date on the pack against the batch the system expects. A minute spent rotating a shelf is cheaper than any write-off.
How EliteTeQ handles FEFO
In EliteTeQ, batch numbers and expiry dates are captured when stock is received. FEFO tells staff which batch to sell first, and near-expiry alerts flag stock before it turns, so you can mark it down or move it in time. Branch transfers are tracked, so near-dated stock can go where it sells fastest. Anything that does expire is recorded as a damage with a reason, so your stock and profit figures stay accurate. With every branch in one view, you can see expiry risk across the whole business from one screen.
If you sell anything with a date on it and want to see this on your own products, book a free demo, or talk to a real person on WhatsApp.
Frequently asked questions
What is the difference between FEFO and FIFO? FIFO sells stock in the order it arrived. FEFO sells stock in order of expiry date, whatever order it arrived in. For dated products, FEFO is safer because deliveries don't always arrive in expiry order.
Is FEFO required by law? Rules differ between countries and trades. Pharmacies and food businesses are generally expected not to sell expired products, and FEFO is the standard way of making sure that doesn't happen. Check the specific requirements for your trade in Hong Kong.
Do I need FEFO if I only sell a few dated products? If you have only a handful, careful shelf rotation may be enough. Once you have many dated lines, several suppliers or more than one branch, a system that records expiry dates saves both stock and time.
What should I do with stock that's about to expire? Move it to the front, reduce the price, send it to a branch that sells it faster, or, where suitable, return it to the supplier if your terms allow. Whatever happens, record it, so your stock figures stay true.
Can FEFO work across several branches? Yes. When batch and expiry dates are recorded per branch, you can see near-dated stock everywhere and transfer it before it turns.
How does FEFO help with shrinkage? Expired stock that's thrown away without a record is one of the most common causes of unexplained gaps. Our guide to [preventing inventory shrinkage](/blog/prevent-inventory-shrinkage/) covers the rest.
Let's discuss how EliteTeQ POS can help you achieve the results you just read about.