Imagine a distributor of packaged food with a stock system that says "120 boxes of product X". True, and nearly useless on a bad day. Are those 120 boxes all from last week, or are 40 of them close to their expiry date at the back of the shelf? If a supplier calls to say one delivery has a problem, which customers received it?

A count of boxes answers none of that. A system that records lots and expiry dates answers all of it, and that is what the terms FIFO, FEFO and "lot tracking" are about.

FIFO and FEFO in plain words

FIFO means first in, first out: the stock that arrived first is the stock that leaves first. It is the natural rule when products do not expire but do age, or when older stock simply should not sit forgotten behind newer deliveries.

FEFO means first expired, first out: the stock with the earliest expiry date leaves first, whatever order it arrived in. The World Health Organization's current guidance on good storage and distribution practices for medical products says stock should be rotated and that the "first expired/first out" (FEFO) principle should be followed. It defines FEFO as distributing stock with the earliest expiry date before an identical item with a later expiry date.

The difference shows up when a newer delivery has a shorter life than an older one. A FIFO system would ship the older delivery first, even though the newer one will expire sooner. FEFO ships the one closest to expiry. For a business with perishable goods, FEFO is usually the rule that actually protects money.

Who needs this and who does not

You probably need lot and expiry tracking if you sell food, drinks, cosmetics, medicines or supplements, chemicals, adhesives, paints, or anything with a shelf life printed on it. You may also need lot tracking, without expiry, if you want to trace a defect back to one production run, even for hardware or components.

You probably do not need it for items that do not spoil and have no defect risk tied to a production run. Adding lot tracking to those makes every receipt and every sale slower, for no benefit. A good system lets you switch it on per product, not for the whole catalogue.

What a lot is, and what the system must record

A lot, or batch, is a group of items that were produced or received together and are treated as a unit for tracking. The US Food and Drug Administration, in its traceability rule for certain foods, defines a traceability lot code as a descriptor, often alphanumeric, used to uniquely identify a traceability lot. It adds that the rule does not prescribe how a firm must define its lots, and notes that smaller lots may mean less food is affected in a recall.

That last point is a business decision for you, not a technical one: how finely do you split lots? Smaller lots mean more precise recalls and a bit more work at receiving.

WHO's model guidance for time- and temperature-sensitive pharmaceutical products (such as vaccines) is a useful checklist for what a stock system must be able to do. Among other requirements, it says stock control systems should:

  • record all receipts and dispatches;
  • record batch numbers and expiry dates;
  • record short-dated and expired products;
  • record product status (released, quarantined, on hold, rejected);
  • record returns, recalls, withdrawals, damage and disposals;
  • manage the issue of products in earliest-expiry-first-out order; and
  • take regular physical counts and reconcile them against the stock records.

Recalls and traceability, at a plain level

Traceability means being able to answer two questions quickly: where did this lot come from, and where did it go? The FDA states that the lot code, kept in the records at each step, helps it trace the source of a contamination event and determine the appropriate scope of a recall.

For you, this turns into three things the system should answer in minutes rather than days. Which customers received lot X? How much of lot X is still in the warehouse, and where? Can I block it from being sold or picked while I investigate? That guidance also asks that recall records include a reconciliation of quantity sold, quantity returned and quantity remaining, which is exactly the kind of report a lot-aware system can produce and a spreadsheet struggles with.

What goes wrong in practice

The usual failure is not the rule but the data. Someone skips the lot number at receiving because the box was heavy and the form was long. Someone picks from the front of the shelf instead of the system's suggestion. A return is put back into stock with no lot. Each shortcut breaks the chain for that product.

A well-built system makes the right action the easy one. At receiving, it asks for lot and expiry at the moment you scan the product, and refuses to continue if they are missing. At picking, it tells the picker which lot to take, ideally by scanning that lot. For returns, it forces a decision: back to stock, quarantine or disposal. Expired stock appears in a list before it expires, not after, so someone can discount it or send it back.

A practical first step

Pick three products that expire and trace one real delivery of each by hand: when it arrived, what the expiry date was, who bought it. If that takes more than ten minutes, or the answer is "we would have to check the paperwork", you have found the gap. Write down the questions you wish you could answer in seconds. That list is the specification.

Regulations about food, medicines and similar products differ by country, so confirm with a qualified professional what applies to your products. The software should follow your rules, not replace them.

Let's talk through your situation.