Batch tracking and FEFO
Why dated goods need first-expired-first-out, not first-in-first-out.
Last checked 20 September 2026
Batch tracking means holding stock as separate lots, each with its own quantity, cost and expiry date, rather than one number per product. FEFO — first expired, first out — means always selling the lot that expires soonest, which is what keeps dated stock from ageing out on the shelf.
Why one number per product is not enough
Your system says 200 units. The shelf holds 120 from a lot expiring next month and 80 from a lot expiring in a year. Those are not the same goods, and treating them as one number means:
- You cannot tell what is about to expire until you walk the aisle.
- You cannot answer a recall — "which customers got lot B-2208?" — at all.
- You cannot price correctly, because the two lots cost you different amounts.
- You cannot prove what you shipped, if a customer disputes a batch.
FEFO vs FIFO
| FIFO | FEFO | |
|---|---|---|
| Picks | Oldest received | Earliest expiring |
| Right for | Goods with no expiry | Anything dated |
| Fails when | A newer delivery expires sooner than an older one | Rarely — it is the safer default for dated goods |
They usually agree, and the case where they diverge is exactly the case that costs you money: a supplier sends short-dated stock in a later delivery. FIFO happily sells the older, longer-dated lot first and leaves the short-dated one to expire. FEFO does not.
Check dates at goods-in, not at picking
The cheapest moment to catch short-dated stock is when it arrives and can still be refused. Record the expiry on every line of the purchase bill as you enter it — see record a purchase bill.
What a batch should carry
| Field | Why |
|---|---|
| Batch or lot number | As printed on the pack. The identifier in a recall |
| Expiry date | Drives FEFO and near-expiry reporting |
| Quantity | Stock of this lot specifically |
| Cost | Two lots of the same product can have different costs |
| MRP | Can change between batches, and the invoice must show the right one |
| Supplier and date received | Traceability back up the chain |
Managing near-expiry stock
- 1
Review what expires in the next 90 days, monthly.
Ninety days is usually the last point at which you have options.
- 2
Push it first — to customers who will move it quickly, discounted if that is what it takes.
- 3
Check your supplier’s return or expiry-claim terms while the window is still open.
Most have a deadline measured in months before expiry, not after.
- 4
Segregate anything expired so it cannot be picked by accident.
- 5
Write it off, and record why.
A write-off that gets analysed changes buying. One that just disappears does not.
Beyond pharma
Batches matter wherever goods are dated or traceable: food and beverages, cosmetics, chemicals, paint, agricultural inputs, seeds and lubricants. Anything with a date printed on the pack is a candidate.
Do I need batch tracking if nothing I sell expires?
Probably not for expiry, but it still helps with traceability and with costing when prices move a lot between deliveries.
What if the same batch number arrives twice?
From the same supplier and product, it is usually the same batch and should be topped up rather than duplicated. A genuinely different batch needs a different number — if a supplier reuses numbers, raise it with them.
How do I handle a batch with no printed number?
Record what is on the pack and keep the receipt date. If nothing distinguishes the goods, batch tracking cannot help you and the expiry date is the thing to hold.
How TracEasy handles this
Related reading
What is inventory management?
Knowing what you hold, what it cost, and what to do before it runs out or goes stale.
FIFO or weighted average: valuing your stock
Two ways to decide what the goods you just sold actually cost you.
What a pharma wholesale invoice must carry
Batch, expiry, drug licence numbers — on top of everything GST already asks for.