Expired stock costs a shop twice: once when you write it off, and again when a customer finds an expired packet on your shelf and stops trusting you. For pharmacies it is also a compliance problem.
Most of it is preventable. Expired stock usually builds up not because nobody cares, but because nobody can see which batch expires when. Here is how to fix that.
Who needs batch and expiry tracking?
If you sell any of these, you do:
- Medicines and healthcare products
- Packaged food, dairy, bakery items, beverages
- Cosmetics and personal care
- Baby products, nutrition and supplements
- Fertilisers, pesticides and other dated agricultural inputs
The same product arrives in different batches, each with its own expiry date (and often its own MRP). Tracking only "how many units of Paracetamol 500" is not enough. You need to know how many of each batch.
FIFO vs FEFO
| FIFO | FEFO | |
|---|---|---|
| Stands for | First In, First Out | First Expiry, First Out |
| Sell first | The oldest stock you received | The stock that expires soonest |
| Works when | Every new batch expires later than the last | Batches arrive with mixed expiry dates |
| Risk | A newer delivery with a shorter expiry sits at the back and expires | Very low, if the software picks the batch |
Usually the first batch in also expires first, so FIFO and FEFO give the same answer. But not always: a distributor can send a fresh delivery that has spent months in their own warehouse. FEFO is the safer rule for anything with an expiry date.
A simple process that works
1. Record batch and expiry at purchase
When stock arrives, enter the batch number, expiry date and MRP for each line of the supplier's invoice. This is the step most shops skip, and everything else depends on it.
2. Arrange shelves by expiry
Put the earliest expiry at the front. Do this when you restock, not once a month.
3. Let billing pick the batch
At the counter, the cashier scans or selects the product. The software should automatically pick the batch that expires first (FEFO) and reduce that batch's stock. Cashiers should not have to choose batches by hand during a rush.
4. Check near-expiry stock every week
Run a near-expiry report: everything expiring in the next 30, 60 or 90 days. Then act:
- Return it to the distributor, if your agreement allows near-expiry returns (many pharma distributors do, within a window)
- Discount it or bundle it, for food and FMCG
- Move it to the front, or to the branch that sells it faster
5. Block expired stock at billing
The software should warn or refuse when someone tries to bill an expired batch. This is the last line of defence.
6. Write off what is left, properly
Record expired stock as a write-off with a reason, rather than quietly deleting it. Your stock value, profit and tax records stay correct.
What your billing software should do
| Feature | Why it matters |
|---|---|
| Batch, expiry and MRP on purchase entry | Everything else depends on it |
| Batch-wise stock for each item | Know exactly what you have and when it expires |
| FEFO selection at billing | The right batch goes out without the cashier thinking about it |
| Expired-batch warning at billing | Stops expired stock reaching customers |
| Near-expiry report (30/60/90 days) | Time to return, discount or move stock |
| Stock that updates across counters | Two counters never sell the same last unit of a batch |
| Write-offs and returns recorded properly | Correct stock value and records |
For the rest of what to look for, see our billing software checklist for small shops.
The payoff
Shops that track batch and expiry consistently usually see:
- Less write-off, because near-expiry stock is returned or sold in time
- Fewer customer complaints about expired products
- Better ordering: you see which items expire before they sell, and order less of them
- Calmer inspections, because records match what is on the shelf
Starbooks tracks every batch. Starbooks POS records batch and expiry at purchase, allocates stock first-expiry-first-out at billing, and keeps live stock in sync across every counter, with or without internet. It is in early access with a 3-month free trial, and our team sets it up with your items. Start your free trial.