Why medical stores lose money on expired medicines, and a routine that stops it
Expired stock is cash thrown in the bin. Here is why medicines expire on the shelf, a weekly and monthly routine that catches them in time, and why batch records at purchase are what make returns to the distributor possible.
Expired medicine losses rarely come from one big mistake. They build up from small habits: an extra carton here, a scheme there, a box pushed to the back of the shelf. This post explains where those losses come from and gives a weekly and monthly routine that catches expiring stock while you can still do something about it.
Where the losses come from
Buying more than you sell
The order booker visits, the rate for two cartons looks better than for one, and the extra stock goes on the shelf. If that product sells a few packs a month, the second carton may still be sitting there when its date arrives. Before any large order, ask two questions. How many weeks of sales does this cover? And how many months are left on these packs?
Bonus-scheme stock
A 10+1 scheme lowers your cost per pack, but only if every pack sells before it expires. If the extra quantity you took to get the scheme ends up in the bin, the bonus was not free. You paid for the packs you threw away. Check the expiry printed on the scheme stock before you agree, not after the carton is opened.
Slow movers
Every store has them: a rare strength, a syrup one doctor used to prescribe, a brand you tried once. They sell so rarely that nobody looks at them, and nobody notices when they go out of date.
No batch record
If batch numbers and expiry dates are not written down when stock arrives, the only way to find expiring stock is to pick up every pack in the shop. Nobody does that every week. So the expiry is found by a customer, or in the year-end clean-out, when it is far too late to return anything.
Near-expiry stock at the back of the shelf
A new delivery is quicker to shelve in front of what is already there. The fresh boxes sell, the old ones get pushed further back, and they expire behind stock that came later.
A weekly and monthly expiry routine
Split expiring stock into windows, and give each window a job.
| Window | What to do |
|---|---|
| Within 90 days | Early warning. Stop reordering, move it to the front, tell the counter staff. |
| Within 60 days | Your main working list. Prepare returns while distributors still accept them. |
| Within 30 days | Returns get harder from here. Send them on the next salesman visit. |
| Within 7 days | Little time left to return it. Take it off the selling shelf and into quarantine. |
| Expired | Never sold. Return it if the distributor takes expired stock, otherwise write it off. |
Every week
- Pick a fixed day and time, such as Monday morning before the rush.
- Go through everything expiring within 60 days. For each batch, ask whether it will sell at your normal pace before its date. If not, put it in the return pile now.
- Group the return pile by distributor and hand it over on each salesman's next visit. Make sure the credit is written on their paperwork.
- Move anything already expired into quarantine.
- Walk the shelves for items expiring within 30 days and bring them to the front.
Every month
- Look at the 90-day list next to your slow movers. Any product that keeps appearing needs a smaller order, or no order at all.
- Clear the quarantine box. Everything in it should be returned or written off.
- Add up what you wrote off. If one distributor, one company or one category keeps showing up, change how you buy it.
- Look back at scheme purchases from a few months ago. Did the extra quantity actually sell?
Returning to the distributor in time
Every distributor has its own return terms. Some take near-expiry stock only up to a cut-off date, some take only expired stock, and the credit they give can be less than you paid. Ask each distributor for their terms when you open the account, and note them down. A return started at 60 days is easy. At 7 days it is often refused. Keep the batch number on every return, because the distributor will want to see that the batch came from them.
Quarantine
Keep a clearly marked box or shelf, away from the counter, for anything expired, damaged or waiting to go back. Nothing in it is ever sold. This stops a tired cashier at 11 at night from handing a customer a strip from the return pile.
Write-offs
When nobody will take a batch back, write it off and destroy it. Do not leave expired stock in your records as if it still had value. It inflates your stock figure and makes your profit look better than it is. For how expired medicines must be disposed of in your area, check with the drug regulator or your distributor.
It all starts at the purchase bill
The routine above depends on one habit: recording the batch number and expiry date of every line when the delivery arrives. Once that is done, "what expires in the next 60 days" is a list you can print, not a day spent searching shelves.
Take the batch and expiry from the pack itself. If the bill says something different, the pack is what you actually hold. When a pack shows only a month and year, such as 03/2027, use the last day of that month. And enter scheme bonus units on the same line as the paid ones, so the free packs are tracked too.
How MediPOS helps
A notebook, or generic billing software that keeps one stock figure per product, cannot tell you which strips expire next month. MediPOS keeps stock by batch, so the routine above starts from a list instead of a shelf-by-shelf search.
The Expiry dashboard, under Inventory → Expiry, uses the same windows: Expired, Within 7 days, Within 30 days, Within 60 days and Within 90 days. Each card shows how many batches are in it and, for people allowed to see purchase cost, what they are worth at cost. Each row shows the supplier the batch first came from, so you know which distributor to call.
Each row has its own actions:
- Return creates a draft return to that batch's supplier, with the reason set to Expired or Near expiry. Check the claim price, then post. If the distributor credits less than your cost, the difference is booked as a stock loss.
- Move to quarantine takes the whole batch off the selling shelf. Quarantine stock cannot be sold, but it stays on the expiry list until you return or write it off.
- Write off, for expired batches nobody will take back, posts an expired write-off valued at the batch's cost. It cannot be undone.
Batches that came in as opening stock have no supplier on record, so they have no Return button. Create those returns by hand under Returns to supplier.
You can also stop short-dated stock reaching customers. In Settings → POS & receipts, Stop selling batches expiring within (days) is 0 by default, which blocks only expired batches. Set it to 30 and the POS skips any batch expiring within 30 days. It sells from the next batch, or refuses the sale if there is none. At the counter, MediPOS always sells the batch that expires first, as explained in FEFO vs FIFO.
Put together, that is what we mean by pharmacy expiry management: the record starts at the purchase bill and ends with a return, a quarantine or a write-off, with nothing left to memory. FEFO selling and expiry blocking work on every plan. The Expiry dashboard is a separate module, so check the plans to see which include it.
Common questions
How far ahead should I check expiry dates?
Look 90 days ahead for buying decisions and 60 days ahead for returns. If a distributor's cut-off is earlier, work to their date.
Should I accept a lower claim on near-expiry stock, or wait and try to sell it?
If your normal sales will not clear the batch before its date, a partial credit now is better than a full loss later. If you are confident it will sell, move it to the front and keep an eye on it.
What do I do with expired stock the distributor will not take?
Keep it in quarantine, write it off so your stock value is right, and dispose of it as the rules require. Ask the regulator or your distributor what those rules are.
Related reading
Founder & CEO, Innobrains Technologies
Arshad Ali is the founder and CEO of Innobrains Technologies, the company that makes MediPOS: pharmacy POS and management software built for medical stores in Pakistan.
Run your pharmacy on MediPOS
Billing, batch and expiry stock, distributor schemes, udhaar and reports — on your shop PC without internet, or in the cloud. Free for 14 days, no card needed.
Related articles
How to do a stock count in your medical store without closing the shop
You do not need to pull the shutter down for a day to count stock. Plan the count rack by rack, count in tablets, keep billing safely while you count, then post the differences and chase the shortages with a clear trail.
25 Sep 2026 · 8 minFEFO vs FIFO: which batch should your pharmacy sell first?
FIFO sells what arrived first. FEFO sells what expires first. A worked example with two batches of the same syrup shows why the difference matters in a medical store, and what your shelves and records need to get it right.
25 Sep 2026 · 8 minManaging udhaar in a pharmacy without losing money or customers
Udhaar keeps regular customers coming back, but unrecorded credit quietly eats your cash. A practical guide to limits, records, statements, polite collection and old balances.
25 Sep 2026 · 8 min