A pharmacy differs from ordinary retail in that two units of the same product are not worth the same. A box of paracetamol expiring next year and a box expiring next month are, in practice, two different products — even though they scan to the same barcode.
A POS system that counts stock as merely "24 boxes left" therefore can't answer a pharmacy's most important question: when do those 24 boxes expire?
The hidden cost of expired medicine
Most pharmacies know they have expired stock, but not how much — because it never shows up as a line item anywhere. It just quietly disappears from the shelf.
- Cash sunk into thrown-away stock — you paid for it and never sold it, a full loss, not just lost profit.
- Wasted shelf space — slow-moving stock takes up room that fast movers need.
- Safety risk — accidentally dispensing expired medicine is far more serious than a financial loss.
- Missed supplier returns — many suppliers will take back near-expiry stock if you give them enough notice, but once you're down to a single month it's already too late.
What is a lot, and why record it at goods receipt
A lot is a batch of product made in the same production run with the same expiry date. A shop that genuinely manages expiry dates has to capture this information the moment goods come into stock — not by counting it up afterwards.
At goods receipt you should record at least four things:
| Information | What it's used for |
|---|---|
| Lot number | A reference when a product has to be recalled or audited later |
| Expiry date | The heart of the whole system — used to order dispensing and set alerts |
| Quantity received | Splits stock lot by lot, not one lumped total |
| Unit cost for that lot | Cost varies from one purchase to the next — used to calculate real profit and the value of stock you have to write off |
It adds a little work at receiving, in exchange for a system that can answer every question afterwards without walking over to the
FIFO in a pharmacy isn't just "first in, first out"
FIFO as it's usually understood is First In First Out — whatever comes in first goes out first. But for a pharmacy that rule isn't enough.
Because stock that arrived earlier may actually expire later than a lot received afterwards, depending on which lot the supplier sent. The better rule is to dispense the stock closest to its expiry date first, no matter when it arrived.
How the system should help at the point of sale
When you scan a barcode to sell, the system should suggest the right lot to dispense automatically, picking the nearest-expiry lot that still has stock. Staff just confirm — they don't have to remember which box to reach for.
And it should let you change the lot when needed — for example, a customer buying for long-term use asks for one with a later expiry. The system must handle this while still recording which lot was dispensed.
How many months of advance warning is just right
Warn too late and there's nothing you can do; warn too early and it becomes noise everyone tunes out. A practical approach is to split it into three levels.
| Time remaining | Level | What to do |
|---|---|---|
| 6 months | Plan | Check whether your sales rate will clear it in time; if not, negotiate a supplier return now |
| 3 months | Act | Run promotions, move it to a more visible spot, or transfer it to a branch that sells it better |
| 1 month | Decide | Prepare to write it off — separate it from the sales shelf to prevent accidental dispensing |
The report you want is a list of near-expiry stock with total value, sorted from highest value to lowest — because time is limited, deal with the big money first.
Other things a pharmacy system must be able to do
- Full tax invoices — corporate customers, clinics, and anyone claiming reimbursement need correct tax invoices, and the system must issue them on the same bill as the counter sale.
- Fast, accurate barcode scanning — a pharmacy carries thousands of similar-looking products, and typing a name to search risks picking the wrong one.
- Dispensing records for controlled medicines — for later audit as required by law.
- Support for your own delivery — many pharmacies deliver medicine to patients who can't come in, so the system should handle delivery orders and the shop's own riders.
Checklist before choosing a system
- Can you record the lot and expiry date in a single step when receiving goods?
- Can the same product be stored as multiple lots with different expiry dates?
- When you scan a sale, does the system suggest the near-expiry lot automatically?
- Is there a near-expiry report with total value, sortable by value?
- Can you set the alert levels yourself (not locked to a single value)?
- Can you issue a full tax invoice straight from the counter sale?
- Can you still sell and scan barcodes with the internet unplugged?
Summary
Managing expiry dates isn't a stock chore — it's the most clearly measurable cost-control work a pharmacy has. Every box you clear in time is money you don't have to throw away.
The key is to record it correctly at goods receipt, let the system pick the lot at the point of sale, and set alerts early enough that you still have options. The rest comes down to counter discipline, which a system can only help with halfway.
Want to try GutePOS for your pharmacy?
Record lots and expiry dates at receipt, dispense FIFO, scan barcodes, issue full tax invoices, and deliver with your own riders — free 14-day trial.
See the pharmacy solution