FEFO: First Expired, First Out for Food, Pharmacy and Beauty

A pharmacist in a white coat checks bottles on a pharmacy shelf, where FEFO puts the batch with the earliest expiry date first

FEFO, first expired, first out, is the rule that the batch with the earliest expiry date leaves first, whatever order it arrived in. It differs from FIFO only when a later delivery expires sooner than stock you already hold. In food, medicine and cosmetics, deliveries arrive with different dates left, and FIFO can leave the shorter-dated batch to expire.

This guide shows that gap in a Kampala pharmacy's numbers, in Uganda shillings. It sets out the rule for each kind of dated goods and how to run FEFO every day, in ArmPOS too.

What is FEFO (first expired, first out)?

FEFO is a rule for picking stock: of the batches of one product, the one with the earliest expiry date goes out first. WHO's good storage and distribution practices give the formal definition. Stock "with the earliest expiry date" goes out before "an identical stock item with a later expiry date".

The rule compares batches of the same product, never milk with bread. A batch is one delivery, or one production run, with its own expiry date.

Two yoghurt batches show it. One expires in 10 days and the other in 20, so the 10-day batch goes first, even if it arrived after the 20-day batch.

FEFO vs FIFO: what is the difference?

FIFO sends out the stock that arrived first, and FEFO the stock that expires first. When every delivery arrives with the same shelf life left, both rules pick the same batch.

They split when a later delivery expires sooner. That happens when a distributor clears older stock, or when an import waits weeks at Mombasa or Dar es Salaam before it reaches you.

FEFO and FIFO side by side
FEFOFIFO
Decides byThe expiry date on each batchThe date each delivery arrived
SuitsFood, medicine, cosmetics, reagents: anything with a dateGoods without a date, such as hardware, phones and clothes
NeedsA batch number and expiry date for each deliveryNew stock placed behind old
StopsA short-dated batch expiring behind a longer-dated oneOld stock ageing at the back of the shelf
In the accountsNothing: it is a shelf rule onlyAlso a costing method, separate from the shelf

A pharmacy uses FEFO so the medicines expiring soonest are sold first. A hardware shop uses FIFO to sell cables in the order they arrived, because cables don't expire.

For example: two batches of syrup in a Kampala pharmacy

For example, a pharmacy in Kampala sells 20 bottles a week of a paracetamol syrup. Each bottle costs UGX 4,000 and sells for UGX 6,000. The figures are an illustration, not a real pharmacy's.

In week 0, batch A arrives: 200 bottles that expire in week 26. In week 2, batch B arrives from another distributor: 150 bottles that expire in week 14.

For example: the same 350 bottles under FIFO and under FEFO (UGX)
RuleOrder of saleBottles soldBottles expiredRevenueGross profit
FIFOAll of batch A by week 10, then batch B until it expires in week 14280701,680,000280,000
FEFO40 of batch A, then all of batch B by week 9.5, then the other 160 of batch A by week 17.535002,100,000700,000

Both rules bought the same 350 bottles for UGX 1,400,000. FIFO wrote off 70 bottles, UGX 280,000 at cost, and earned UGX 420,000 less gross profit.

FIFO also ran out of syrup in week 14 instead of week 17.5. Had batch B arrived with more weeks left than batch A, both rules would have sold the same bottles in the same order.

Why FEFO matters for food, medicine and cosmetics

Wherever a date decides whether a product is safe or works, FEFO is the rule. Each trade below has its own rule or figure for it.

Where FEFO is the rule, and why
GoodsWhat an expired batch meansThe rule or the figure
Medicines and vaccinesIt may no longer work as stated, and should not be suppliedWHO: stock should be rotated, and FEFO "should be followed"
Food and drinksIt is unsafe after its use-by date, or loses quality after best beforeUNEP: 1.05 billion tonnes of food wasted in 2022, 131 million tonnes of it in retail
CosmeticsIt can irritate the skin, and customers complainEU: a date on anything that keeps for 30 months or less
Reagents and chemicalsSome lose strength and give wrong resultsThe maker's expiry or retest date on each lot

Pharmacies

For a pharmacy, FEFO is a written rule, not a tip. WHO's guidance on storing medical products says stock should be "appropriately rotated", and that FEFO "should be followed".

Start with the lines that carry the shortest dates and the highest cost. They lose the most when a batch expires.

Food shops and supermarkets

The world wasted 1.05 billion tonnes of food in 2022, 19% of the food available to consumers, according to UNEP's Food Waste Index Report. Retail alone accounted for 131 million tonnes.

Dairy, bread, meat and ready meals carry the shortest dates. Rotate them daily, and face only the earliest batch on the shelf.

Beauty and personal care

Many cosmetics carry no expiry date at all. Under the EU cosmetics regulation, a product that keeps for more than 30 months needs no date.

It shows instead how long it stays safe after opening, usually an open jar with a number of months, such as 12M. Rotate dated creams and serums by FEFO, and the undated ones by arrival.

How to run FEFO every day

FEFO works when the date is visible at every step, from the van to the till. Seven habits keep it running.

  1. Record each delivery's batch number and expiry date when it arrives. Refuse a delivery that is too close to its date: shelf life management shows how to work out the limit.
  2. Write the expiry date on every carton in large figures with a marker, where the printed date is small or hidden.
  3. Store the earliest date where it is easiest to reach. New stock goes behind, unless it expires sooner.
  4. Open one batch at a time. Finish the earliest carton before you open the next.
  5. Check the dates at every count, and list what expires in the coming weeks.
  6. Move expired goods to a marked spot away from stock you sell, the same day.
  7. Use the same rule in every place you keep stock: the store room, the shop floor and each branch.

Batch numbers do more than rotation: they let you find every unit of a recalled lot. Serial and lot numbers covers tracking by lot.

Common FEFO mistakes, and how to fix them

Most FEFO failures start at receiving or on the shelf, not in the rule. The five below cause most of them.

Five FEFO mistakes and their fixes
MistakeWhat happensThe fix
No date recorded at receivingStaff fall back on arrival order or pick at randomNo delivery goes on the shelf until its date is recorded
Two batches mixed on one shelfThe longer-dated batch sells first by chanceOne batch per shelf position, earliest in front
Customers reach to the backLater dates leave and earlier ones stayFace only the earliest batch; keep the next in the store room
Picking by habitA short-dated late delivery waits behind older stockShow staff the syrup example, and check rotation at each count
Expired stock left among good stockIt is sold by mistakeA marked spot for expired goods, emptied every week

How to run FEFO in ArmPOS

ArmPOS, an inventory management and point of sale system, runs FEFO through batches. The till lists the earliest expiry first, while the check on expired stock stays with you.

  • Track the product by batch. On its Edit page, under Pharmacy Settings, switch on Track batches & expiry. Stock you already hold gets its batches through Assign Batches, or the till can't sell it (Batches and expiry dates).
  • Receive each batch with its date. On a purchase, a batch-tracked line opens a Batches table for the Batch No and Expiry Date. The batches are made when the purchase is received (Record a purchase).
  • Pick at the till. In the cart, Choose batch shows each batch's expiry date and quantity, with "the one expiring first at the top". Pay Now waits until every batch line is chosen.
  • Adjust by batch. An adjustment takes from the batch you pick, or from the one expiring first (Count and adjust stock).
  • Watch what expires. Reports › Expiry Report counts the batches expired, near expiry and valid, with their value. The Batch Register lists every batch with its purchase and supplier (Stock reports).

One limit matters. In the guide's words, "ArmPOS doesn't stop you selling a batch past its expiry date, and doesn't mark it expired by itself".

Check the Expiry Report often. Set each expired batch to Quarantined, or use Write Off for what is left of it. ArmPOS posts nothing in Accounting, so book the value as an inventory write-off.

Frequently asked questions

What does FEFO stand for?

First expired, first out. Of a product's batches, the one with the earliest expiry date is sold or used first.

What is the difference between FIFO and FEFO?

FIFO sends out the oldest delivery first, and FEFO the earliest expiry date. They differ only when a later delivery expires sooner than stock you already hold.

When should you use FIFO instead of FEFO?

For goods without an expiry date, such as hardware, phones or clothes. FIFO keeps them from ageing at the back, and needs no dates.

Is FEFO a costing method?

No. FEFO decides which batch leaves the shelf, while FIFO or weighted average decides the cost your books charge. FIFO vs LIFO covers the costing side.

Does ArmPOS apply FEFO by itself?

It lists the batch expiring first at the top at the till, and the cashier picks it. It doesn't block the sale of an expired batch, so check the Expiry Report and quarantine what has expired.

Find one product whose last two deliveries carry different dates, and check which batch sits at the front. To see every batch's expiry date at the till, create a free ArmPOS account.