Skip to content

Inventory management5 min read

FEFO Expiry Management: A Practical Guide for Food, Pharma and Cosmetics Distributors

Why "first in, first out" falls short when products expire, and how to build a practical system of batches, near-expiry warnings, blocked expired stock and controlled write-offs.

MIRSAD Editorial Team

Practical content on inventory and warehouse management

Abstract illustration in MIRSAD colours of shelves with packages arranged by expiry date next to a calendar symbol

Food, pharmaceutical and cosmetics distributors across Saudi Arabia and the GCC handle products with a limited life. Every pack that expires on the shelf is a direct loss of stock value, and it can also mean a customer complaint or a return from a point of sale. Managing quantities alone is therefore not enough. The real question is not "how much do we have?" but "how much do we have, and when does each part of it expire?"

Why "first in, first out" is not enough

Many warehouses follow FIFO: issue whatever arrived first before whatever arrived later. It sounds sensible, but it assumes that stock received first will also expire first, and that is not always true. A delivery arriving today may carry an earlier expiry date than one you received two weeks ago, because the supplier was clearing older stock of its own. Goods returned by a branch or a customer may also carry a near expiry date: they enter the warehouse "new" while actually being the closest to expiring.

FEFO, "first expired, first out", solves this by sequencing issues by the actual expiry date rather than the receiving date. The item closest to expiry leaves first, and fewer units run out their life on the shelf before they are sold.

The batch is the unit of control

FEFO cannot work unless the batch number and its expiry date are recorded at receiving. The total quantity of a single product may be made up of several batches, each with a different date. That is why you should:

  • Record the batch number and expiry date on every receiving line, not just once per product.
  • Refuse a receipt when the expiry date is missing for a product tracked by batch.
  • Warn the receiver when a batch already on record arrives with a different expiry date; this is usually a data-entry or labelling error.
  • Keep the quantity of each batch per warehouse, and per storage location when the warehouse tracks locations.

With data at this level, choosing a batch at issue becomes a decision the system proposes automatically, instead of relying on the storekeeper's memory or on whichever carton is closest to hand.

Receiving inspection starts with the label

Many expiry problems begin at the warehouse door. Make your receiving check compare the batch number and expiry date printed on the pack with the supplier's documents, and confirm the date is written in a format that cannot be misread by mixing up day and month. A good practice is to agree with each supplier on a minimum remaining shelf life you will accept on delivery, depending on the product and how fast it turns over for you, and to return or hold deliveries that fall short before they enter your stock. A batch that arrives close to expiry puts pressure on your sales team from day one.

Near-expiry warnings: when to act

The goal is not to learn that a product has expired, but to learn early enough to act. Set a warning period that suits your business: for example, thirty days for most products, a longer period for slow movers and a shorter one for fast movers. When a batch enters the warning period, you usually have several options:

  • Give it priority when issuing to the branches or customers that consume the product fastest.
  • Transfer it to a warehouse or branch that sells the product in larger volumes.
  • Work with the sales team on a promotion before it is too late.
  • Review upcoming order quantities with the supplier if the same product keeps reaching its expiry window.

What matters is that the warning reaches the person who can decide, and that "near expiry", which can still be issued, is clearly separated from "expired", which must not be.

Block expired stock and write it off properly

The biggest risk with expired stock is issuing it by mistake. Your system should therefore refuse to issue or transfer any batch past its expiry date, whatever the demand. If the valid quantity cannot cover an order, it is better for the shortage to be shown clearly than for the order to be completed with expired goods.

The expired quantity itself is handled with a write-off adjustment and a written reason, such as expiry or damaged packaging. The loss then stays on the movement history with its date and the person responsible, and you can return to it when analysing the causes of waste instead of seeing stock disappear from the books without explanation.

How the warehouse team applies FEFO every day

A system alone is not enough if the shelf layout works against it. These simple habits make a visible difference:

  1. When receiving, place the newer batch behind or below the older one, never in front of it.
  2. Print location and batch labels clearly, and use one consistent format for expiry dates.
  3. Issue the suggested batch; if a picker has to take a different one, record it.
  4. Keep a separate, clearly marked area for expired or damaged goods until they are written off.
  5. Review the near-expiry list every week with the sales and purchasing teams.

Quick checklist

  • Are the batch number and expiry date recorded on every receipt?
  • Is there a near-expiry warning period that fits each kind of product?
  • Does the system block issuing and transferring expired batches?
  • Are write-offs recorded as adjustments with a clear reason?
  • Does the shelf layout make it easy to issue the earliest expiry first?

MIRSAD tracks products by batch and expiry date, proposes the earliest-expiring batch automatically when issuing and transferring, blocks expired batches, and shows near-expiry warnings using a period each organization sets. You can see the rest of the platform on the platform page.