Expiry management
How Smart Pharmacies Track Expiry Dates Automatically
Manual expiry checks miss things and eat evenings. How batch tracking, a 90-day expiry report and a till that sells the oldest stock first do the job for you.
By the SmartPharm team · · 6 min read
Every pharmacy checks expiry dates. The question is when. If the check happens at the counter, as the dispenser hands over the box, it is too late to do anything but bin the stock. If the check happens once a month, walking the shelves with a torch and a notebook, it happens on the months when someone has time, which is not every month.
Automatic expiry tracking moves the check to the only place it can prevent a loss: the moment stock arrives, and every day after that, without anyone walking the shelves. This is how it works and what it changes.
Step one: record the batch at receiving
Everything depends on one habit. When a delivery arrives, each product is received with its batch number, its expiry date, the quantity and the cost. That is the only manual step in the whole system, and it takes about as long as checking the invoice, which you already do.
From then on the pharmacy’s stock is not “40 boxes of amoxicillin” but “12 boxes of batch A, expiring in March, and 28 of batch B, expiring in November.” That distinction is the whole difference between software that manages expiry and software that merely counts.
If your supplier’s invoice lists batch and expiry, as the larger distributors’ do, receiving is mostly copying. If it does not, read them off the boxes once, at receiving, rather than at every sale.
Step two: the till sells the oldest batch first
Once stock is held by batch, the till can choose which batch to sell from, and the right choice is always the one expiring soonest. This is First Expiry, First Out, or FEFO, and it is the rule that stops the older batch sitting at the back of the shelf until it is worthless.
Done by software, FEFO needs nothing from staff. The dispenser scans the product; the sale is recorded against the earliest-expiring batch; the shelf order does not matter. An expired batch is simply not offered for sale at all, which removes the last-line-of-defence check at the counter and the risk that it fails on a busy afternoon. We go into the method in our FEFO guide.
Step three: a report that looks ahead
The visible part of automatic tracking is the expiry report: a list of every batch due to expire within a chosen window, usually 90 days, with the quantity on hand and its value at cost.
Ninety days is the useful horizon. Inside it you still have options:
- Run a promotion. A product with two months left sells at a discount and still recovers its cost.
- Move it. A batch that is slow in one branch may be fast in another. A transfer costs nothing.
- Return it. Many distributors accept returns of short-dated stock if you raise it early enough. They rarely accept expired stock.
- Stop reordering it. If a product keeps appearing on the list, you are buying more than you sell. Cut the next order.
The value-at-cost column matters as much as the list. It turns “some things are expiring” into “UGX 312,000 is expiring,” which is a number an owner acts on. In SmartPharm the report is available at any time, exports to CSV or PDF, and the same batches show as flagged in the inventory screen so nobody has to open a report to notice them.
Step four: alerts you did not have to ask for
A report only helps if someone opens it. The last piece of automatic tracking is a nudge: a weekly summary, to the owner or manager, of what is approaching expiry and what is running low, so the check happens whether or not anyone remembered.
The point is not more email. It is that the check no longer depends on a person having a quiet week. The system is the one with the routine.
What changes in the pharmacy
Owners who move from manual checks to batch tracking notice three things within the first quarter.
The write-off figure appears. For the first time there is an actual number for expired stock each month, because every removal is an adjustment with a value. Most are surprised by the size of it, and then pleased to watch it fall.
Evenings come back. The nightly or weekly count by hand stops, because stock on hand is known by batch and a physical count becomes a spot check. That is hours a week, at the most tired time of day.
Reordering gets smaller and more frequent. When you can see how fast a product actually sells and what is already on the shelf, you stop buying cartons on the rep’s advice. Short-dated products get ordered in the quantity that sells before they expire.
The one thing it will not do
Automatic tracking cannot fix a batch that was received without its expiry date. If receiving is skipped, or done as “40 boxes, no batch,” the till has nothing to choose between, and the report has nothing to show. The whole system rests on that one habit at the door.
So make receiving easy. Do it at the counter on the same tablet the till runs on, straight from the delivery note. If you buy through a supplier’s price list inside the system, the purchase order already knows what was ordered, and receiving is a matter of confirming quantities and typing the batch and expiry against each line.
Where to begin
If you are still checking dates by hand, you do not need to change everything at once. Start by receiving your next three deliveries with batch and expiry, and look at the 90-day report at the end of the month. That single month usually shows enough short-dated stock to make the case on its own.
SmartPharm was built around this workflow for Ugandan pharmacies, from receiving by batch, through a till that sells the earliest-expiring batch first, to an expiry report valued at cost. If you want to see it with your own stock, set-up takes about an hour, and there is a 14-day money-back guarantee if it is not right for you. Either way, the first step is the same: write down the batch when it comes through the door.