Skip to content
All posts
5 min readIMS Team

The near-expiry report every medical shop should run weekly

Check near-expiry medicines weekly by sorting every batch into 30, 60 and 90 day buckets, then push, return or segregate. With a worked example.

To check near-expiry medicines in stock, run one report every week. It lists every batch with its expiry date, the quantity on hand and the days left, and it sorts each batch into a 90, 60 or 30 day bucket. Each bucket has one fixed action: push the stock at the counter, return it to the distributor, or segregate it. The report works because the action is decided before anyone looks at the shelf.

Why run the near-expiry check every week?

Expiry does not show up all at once. A batch loses a little selling time every day, and the useful stage for each action is only a few weeks long. If you check once a month, a batch can be returnable at one check and past returning by the next.

A weekly check on a fixed day, such as Monday morning before the rush, keeps every batch moving through the buckets in order. It also keeps the list short. If you have not looked for a quarter, the list is long enough that nobody wants to start it.

The check only works if your stock is recorded by batch. If a medicine sits in your records as one total with no batch numbers or expiry dates, start there. Our guide to pharmacy batch and expiry tracking with FEFO covers how to capture batches at purchase entry.

What goes into a near-expiry report?

Keep it to columns you will actually act on:

  • Item name and pack (strip, bottle, tube)
  • Batch number
  • Expiry date
  • Days to expiry, counted from the day you run the report
  • Quantity on hand, in selling units
  • Average weekly sale for that item
  • Supplier or party it came from

The last two columns are the ones shops leave out, and they decide the action. A batch with 70 days left is fine if it sells 20 units a week and a problem if it sells one.

What are the 30/60/90 day buckets and what do I do at each?

Sort each batch by the days it has left, then follow the action for that bucket.

BucketDays to expiryActionWho does it
Push61 to 90 daysMove to the front of the shelf, dispense this batch first, and stop reordering until it clearsCounter staff
Return31 to 60 daysWork out how much will not sell in time and send that surplus back to the distributor under their return termsOwner or purchase person
Segregate0 to 30 daysTake it off the selling shelf, label it and keep it in a separate marked areaOwner, checked by a second person

Push (61 to 90 days). This is your selling stage. Make sure this batch is picked first, which is plain first-expiry-first-out discipline. If another batch of the same item is on the shelf, keep it behind. Hold any pending purchase order for that item. If you are unsure why expiry order beats arrival order here, see FIFO, LIFO and FEFO explained.

Return (31 to 60 days). At this stage, do the arithmetic. Compare the weeks left before you would stop selling the batch with its weekly sale, and return only the surplus. Return terms vary by distributor and by company, so check your party's terms rather than assuming. Some accept returns only within a set window before expiry. Once you know each party's window, set your return bucket to match it.

Segregate (0 to 30 days). Most shops avoid dispensing a pack that will expire before the patient finishes the course, so stock in this bucket should come off the selling shelf. Put it in a clearly labelled box or shelf away from saleable stock, and mark the quantity in your records so it is not counted as available. What happens to it after that depends on your distributor arrangement and the rules that apply to you, and this guide does not cover it.

Can you show a worked example in units?

The figures below are illustrative, not from a real shop.

On a Monday, the report shows three batches:

ItemDays to expiryOn handAverage weekly saleBucket
Cough syrup, Batch A7540 bottles6 bottlesPush
Antacid tablets, Batch B50120 strips8 stripsReturn
Eye drops, Batch C225 bottles1 bottleSegregate

Cough syrup, Batch A. Suppose you stop selling a batch with 30 days left. That leaves 45 selling days, about 6 weeks. At 6 bottles a week you can sell around 36 bottles, so roughly 4 would be left over. Put the batch at the front, dispense it first and hold the next order. Check again next week. If the leftover number grows, plan a return.

Antacid tablets, Batch B. With the same 30-day cut-off, 20 selling days are left, close to 3 weeks. At 8 strips a week you can expect to sell about 24 strips. That leaves about 96 strips that will not sell in time. Raise a return for 96 strips with the supplier this week and keep 24 on the shelf.

Eye drops, Batch C. At 22 days, the batch goes straight to segregation. Take all 5 bottles off the shelf, label them and update the record so the system no longer shows them as available.

The calculation for each batch is simple: weeks of selling time left × weekly sale = what will sell, and on hand − what will sell = what to act on.

What are the common mistakes?

Running the report without the sales column. Days to expiry alone puts a fast mover and a slow mover in the same bucket, but they need different actions.

Returning the whole batch. In the return bucket, send back only the surplus. Returning stock that would have sold costs you the sale.

Reordering while a batch is in the push bucket. A new batch arriving in the middle of a push usually ends up on the shelf in front, and the old batch ages behind it.

Segregating on paper only. If the stock is still on the selling shelf, the record does not protect anyone. Moving the stock and updating the record go together.

Counting expiry differently each week. Agree on one method, from today to the printed expiry, and keep to it. Otherwise batches move between buckets for no reason.

When does this approach need adjusting?

Some stock does not fit the standard buckets. For very slow items, such as a speciality product you sell a few units of a month, start the push stage earlier, perhaps at 120 days, because 90 days is not enough to clear them. Fast movers that clear in a week or two rarely appear on the report at all, so they do not need adjusting.

If one distributor's return window is shorter or longer than 31 to 60 days, use their window for their stock. The buckets are a starting point. Your parties' return terms decide the exact edges.

If you buy in bulk for a scheme or a discount, add a step before purchase: check that the quantity will sell inside the item's push stage. A deal that ends up in the return bucket was not a saving.

FAQ

How often should a medical shop check near-expiry stock? Once a week, on a fixed day, works for most shops. A weekly check catches each batch while it can still be sold or returned, before it becomes stock you can only set aside. A monthly check is too slow, because a batch can pass through the whole return stage between two reviews.

Should I count days to expiry from today or from the printed month? Count from today to the last date the batch can be sold, using the expiry printed on the pack. When only a month and year are printed, follow your distributor's convention and use it every time. What matters is that the whole team counts the same way, so each batch lands in the same bucket every week.

What if my distributor does not accept near-expiry returns? Then the counter push matters more, and it has to start earlier. Move those items into the push bucket sooner and buy them in smaller quantities next time. Write down which parties accept returns and on what terms, and let that shape where you buy slow-moving items in future.


Related reading: pharmacy inventory: batch and expiry done right, FIFO, LIFO and FEFO: which one your business needs and the reorder point formula.

Get new posts by email

Occasional, practical, no spam.