What to Reorder, What's Dead Stock, and Who's Due a Refill
Updated 27 July 2026 · 6 min read
Every bill you've cut for the last three months is sitting in your software, and it already knows things you don't. It knows which medicine will run out on Thursday. It knows the ₹40,000 on your bottom shelf hasn't moved since March. It knows which regular used to collect his BP tablets every 30 days and hasn't come in for 52. Nobody has time to go looking for any of it.
That's the real gap in most pharmacy software. The data is there and the reports exist — but a report is something you have to remember to run, choose a date range for, and then read end to end to find the two lines that matter. On a busy counter, that happens roughly never. So here are the six questions worth asking your own data every morning, and what makes each one hard to answer by eye.
1. What's about to run out — at the rate it's really selling?
Most software answers this with a reorder level: you set a number per medicine, and when stock drops below it, the item shows up on a short list. That works, but only for the medicines you remembered to set a level on — and nobody sets one for 2,000 items. Your fastest-moving product is very often the one nobody got around to configuring, which means the threshold-based short book is structurally blind to exactly the stock-out that costs you the most.
The better question ignores thresholds entirely: at the rate this actually sold over the last 90 days, how many days of cover is left? That's a number you can compute for every medicine in the shop, configured or not. Fourteen boxes of something selling two a day is a week of cover; fourteen boxes of something selling one a month is nearly two years of it. Same quantity on the shelf, completely different urgency — and only the sales history can tell them apart.
2. What hasn't moved at all?
Dead stock is the quietest loss in a pharmacy because nothing ever happens. The strip sits there, fully paid for, taking up the working capital you'd rather have spent on something that sells. It doesn't expire loudly, it doesn't get flagged, and it never shows up on a sales report — by definition.
The catch is that "hasn't sold in 90 days" isn't quite the right test on its own. A consignment you received last week hasn't sold in 90 days either, and it isn't dead — it's new. The question has to be asked against stock you've actually had long enough to sell, or you'll spend your morning chasing a delivery that arrived on Tuesday. Get that right and the list is usually short, specific, and worth acting on: push it, discount it, or send it back while the distributor still takes returns.
3. What will expire before you can sell it?
An expiry alert tells you a batch lapses in 60 days. Useful — but incomplete, because it doesn't know whether you'll sell it. Sixty strips expiring in two months is a crisis if you sell five a month and a non-event if you sell forty.
Put the sales rate next to the expiry date and the batch splits cleanly into two numbers: the quantity you'll comfortably sell before it lapses, and the quantity you won't. That second number is the only one worth your attention — it's the actual money at risk, and it's the figure to take to the distributor when you ask about a return. (The full routine for handling this is in our guide to batch numbers and expiry dates.)
4. Which purchase rates crept up?
Rate changes rarely arrive as an announcement. They arrive as a slightly different number on the next invoice, on one line out of sixty, from a supplier you trust. If your MRP doesn't move with it, that difference comes straight out of your margin and stays there, invoice after invoice, until someone notices.
Comparing each medicine's latest purchase rate to the one before it is tedious work by hand and trivial work for software. What matters is seeing it with the quantity attached — a 6% rise on a line you bought 200 of is a real number, not a rounding error, and it tells you whether to re-price, negotiate, or switch. (More on the arithmetic in MRP, PTR and PTS margins.)
5. Which regulars stopped coming?
A patient on a long-term medicine is a predictable customer: same medicine, same rough gap between visits. When that gap stretches well past normal, one of two things happened — they were prescribed something else, or they bought it from the shop down the road. You'd want to know which, and a phone call usually settles it.
The useful version of this isn't a generic "we miss you" blast. It's built from the customer's own cycle: this person collected this specific medicine roughly every 30 days, three times, and it's now been 52. That's a message you can send with a name and a medicine in it, to someone who genuinely is overdue. Send them a few at a time rather than in one burst, though — messaging platforms restrict a number that fires off many messages in a row, even to its own customers.
6. Which scheduled bills have no prescriber on them?
Schedule H, H1 and X medicines need the prescriber recorded, and the gap is almost never deliberate — it's a busy afternoon and a field left blank. The problem is that a blank field is invisible after the fact. You'd have to open old bills one at a time to find it, so it stays missing until an inspection finds it for you.
Listing those bills back to you — which bill, which customer, which scheduled drug — turns an audit risk into an afternoon of small corrections. (Our guide to the Schedule H1 prescription register covers what the register has to contain.)
Why this should be a list, not a chatbot
"AI for pharmacy" usually means a box you type questions into. That's the wrong shape for a counter. You don't want to think of the right question at 10am while three customers wait — you want to open one screen and see the six things worth doing today, biggest first, with the money attached and the actual bills or batches the number came from, so you can tell in a second whether you agree.
And each one should end somewhere. A finding that says "reorder these eleven" is only half useful if you then have to go and find them yourself; it should drop you into the purchase screen with the list intact. The measure of this kind of feature isn't how clever it sounds — it's whether it saves you the walk.
It should also run without the internet
There's a practical reason all six of these questions belong on your own machine: they're arithmetic over data you already have. Days of cover is a division. Dead stock is a date comparison. Rate creep is one invoice line against the previous one. None of it needs to leave the shop, none of it needs a server, and none of it should stop working when the connection does — which is also why it can be free rather than metered per query.
DravyaOS computes all six on the local database, offline, on the free app. Open the screen and it's already worked out; nothing to configure, no reorder levels to maintain first. It's the same principle as the rest of the app — show what needs attention first, so you spend the second you have looking, not hunting.
Free, offline, and built for the counter — updates arrive automatically.
Download DravyaOS for WindowsRelated reading: managing customer credit and udhaar, and the best free pharmacy billing software in India.