Every pharmacy has a box in the back room. Sometimes it's labelled "returns", sometimes "expired", sometimes nothing at all. It fills slowly, gets dealt with when someone has time, and by then half its contents are past any window where a supplier would give credit.
That box is money. For a small pharmacy, expired stock write-offs commonly run between 1% and 3% of inventory value each year — and a large share of that is recoverable with a better process. This guide shows you how to build one.
Why Expired Stock Happens
Expiry losses rarely come from one big mistake. They come from small, repeated ones:
- Over-ordering after a one-off spike in demand
- New deliveries shelved in front of older stock (FIFO in practice, not FEFO)
- Slow movers bought in pack sizes larger than annual demand
- Patient changes, such as a regular customer moving away or switching medicines
- No visibility — nobody knows something is short-dated until it has already expired
The fix is a process that catches stock while it still has value.
Step 1: Know Your Supplier's Return Policy
Return policies vary widely by country and supplier, but most have conditions like:
| Condition | Typical Requirement |
|---|---|
| Timing | Within a set window before or after expiry, or within days of delivery for over-orders |
| Condition | Unopened, undamaged original packaging |
| Product type | Some categories (fridge lines, controlled drugs, special orders) excluded or handled separately |
| Credit value | Full, partial, or a sliding scale based on time to expiry |
| Documentation | Returns authorisation, original invoice reference |
Action: write down the returns terms for each supplier you use, in one document. Most pharmacies have never done this, and it's the single most useful page for whoever handles returns.
In the US, many pharmacies also use reverse distributors, which process expired returns across manufacturers for a fee or a share of the credit. In the UK, Europe, and Australia, returns usually go back through the wholesaler on commercial terms, and expired medicines that can't be returned go to a licensed waste contractor.
Step 2: Track Expiry at the Batch Level
You can't return what you can't find. That requires recording batch number and expiry date for every receipt — not just the product name.
Once batch-level data exists, a pharmacy inventory system can tell you exactly what expires when. Medishelf tracks every batch with its supplier, cost price, and expiry, and surfaces what's coming up on the dashboard. See how it works on our inventory page.
Step 3: Use a 90 / 60 / 30-Day Review Cycle
A simple monthly rhythm works for most small pharmacies:
90 days to expiry — Review
Will this batch sell through at its current rate before it expires? Compare quantity on hand with average monthly sales. If not:
- Move it to the front of the shelf
- Check whether another batch of the same product is being sold ahead of it (it shouldn't be)
60 days to expiry — Decide
For anything still at risk:
- Return it if it's within your supplier's terms
- Promote OTC and retail lines with a modest discount
- Transfer to another pharmacy if you have a trading relationship
30 days to expiry — Act
- Pull anything that can't be sold in time
- Process the return or record the write-off
- Quarantine the stock so it can't be sold by mistake
Step 4: Stop Expired Stock Reaching the Counter
Even with a good review process, mistakes happen at the till. The safest approach is software that won't allow an expired batch to be sold at all.
Medishelf's POS terminal ranks batches by nearest expiry, sells the earliest-expiring batch first, and automatically hides expired batches from sale while flagging them for return.
Step 5: Record Every Write-Off With a Reason
When something does expire, record:
- Product, batch, and quantity
- Cost value
- Reason (over-ordered, slow mover, damaged, patient change, missed return)
After three months you'll see patterns. Usually a small number of products cause most of the losses, and fixing their reorder quantities fixes the problem. Our reorder point guide covers setting those quantities properly.
The Financial Case
Consider a pharmacy holding $120,000 of stock at cost:
| Scenario | Annual Expiry Loss | Value |
|---|---|---|
| No process, 2.5% write-off | 2.5% | $3,000 |
| Monthly review, returns within terms | 1.0% | $1,200 |
| Batch tracking + FEFO + alerts | 0.5% | $600 |
That's up to $2,400 a year back in the business — more than enough to cover a full year of affordable pharmacy inventory software.
Returns Process Checklist
- Supplier return policies documented in one place
- Batch and expiry recorded for every receipt
- Monthly 90/60/30-day expiry review on the calendar
- POS blocks expired batches automatically
- Every write-off recorded with a reason
- Quarterly review of the top 10 write-off products
Catch Short-Dated Stock Before It Expires
Medishelf surfaces expiring batches on your dashboard and stops them reaching the counter, so returns happen on time instead of too late.
- Read FEFO vs FIFO in pharmacy inventory
- See pricing
- Start your 7-day free trial
Simple Pharmacy Inventory Software & POS
Medishelf helps small and independent pharmacies manage batch expiry dates, FEFO counter sales, supplier purchases, and stock reports without hospital-scale complexity.