Hospital Pharmacy Inventory in India: Ward Expiry Control
Why hospital pharmacy stock expires unseen in ward cupboards, OT and crash carts, and a four-step method for one expiry list across all sub-stores.
ShelfLifePro Editorial Team
Inventory management insights for retail and pharmacy
Where hospital stock goes after it leaves the main store
Picture a typical 150-bed hospital. The main pharmacy store has a stock register, a batch-wise purchase record and a pharmacist who knows which shelf is getting close to expiry. Then the indents start. Ward 3 wants IV fluids, the OT wants anaesthesia drugs and sutures, the ICU wants its emergency trays topped up, and casualty wants everything at once.
Once that stock is signed out, the main store's books show it as "issued". As far as the system is concerned, it's gone. But physically it's sitting in a ward cupboard, an OT rack, a crash cart drawer or a nurse's locked almirah. It can sit there for months.
Then one day a staff nurse opens the crash cart during a code and finds an adrenaline ampoule that expired last quarter. Or the quarterly audit turns up a carton of antibiotics behind the ward's newer stock. Nobody did anything wrong on purpose. The stock just left the only place anyone was watching expiry.
Why sub-store expiry stays invisible
The mechanism is simple. Expiry is tracked where stock is received, and in a hospital that's the main store. Sub-stores receive stock by indent, and indents are written in quantities: "Inj. Ceftriaxone 1g × 50". The batch number and expiry date usually don't travel with the indent slip, so the ward has no record of what it's holding or when it dies.
Three things make it worse:
- Wards hoard against shortages. A ward that ran short once will over-indent forever. That extra stock sits at the back and ages.
- Emergency stock barely moves. Crash carts, OT emergency trays and anaphylaxis kits exist so they're ready, not so they get used. Low movement means the batches in them get old.
- Nobody owns the sub-store. Nursing staff rotate shifts and wards. The pharmacist owns the main store. The ward cupboard sits in between, and nobody's job description says "check expiry here".
If you've read our guide on batch tracking in Indian pharmacies, this is the same problem with an extra layer: batches stop being tracked the moment they cross the store door. (If your hospital also runs an outpatient counter drawing on the same stock, see our post on the hospital outpatient pharmacy's mixed inventory pool. This post is about the inpatient side.)
Indent by batch, not just by quantity
The fix starts at the issue counter. Every indent issue should record the batch and expiry of what actually left, not only the item and quantity.
In practice that means the issue slip, or the line in the issue register, has these columns:
- Item and strength
- Quantity issued
- Batch number
- Expiry date
- Issued to (ward/OT/ICU/casualty)
- Issued by and received by
Pick by FEFO at the main store, so the shortest-dated batch goes out first. That only makes sense if the receiving location will use it soon. Don't send a short-dated batch to the emergency tray, where it'll sit untouched. Send it to the busy general ward that'll actually use it. The emergency trays should get the longest-dated batch you have. That's the opposite of plain FEFO, and it's on purpose. Our FEFO guide covers the basic logic if your team needs a refresher.
Once batch and expiry travel with the stock, every sub-store gets its own small stock record. It's not a full ledger, just a list of what's there and when it expires.
A monthly near-expiry sweep of every sub-store
Batch-wise indents tell you what went to the ward. They don't tell you what's still there. So you need a physical sweep.
Once a month, a pharmacist or trained pharmacy assistant walks every sub-store with a checklist: each ward cupboard, the OT store, ICU, casualty, the labour room and every crash cart. For each item, they note:
- Batch and expiry of what's physically present
- Quantity on hand
- Anything expiring in the next three months, flagged
- Anything already expired, pulled out immediately and quarantined
Crash carts need extra care. Pharmacy and nursing should check them together, and each cart should carry a tag that shows the earliest expiry inside it. That way the next person to open the cart knows straight away whether it needs attention.
Keep the sweep schedule fixed. If it's "first Monday of the month", the wards know to expect it. A sweep that only happens when someone remembers will stop happening.
Get the free Schedule H1 register template
The exact 8-column register format inspectors check, as a print-ready Excel file — with the filling and correction rules on a second sheet. See what's inside.
Instant download. No spam, unsubscribe in one click.
Returning stock to the main store before it expires
Flagging near-expiry stock in a ward cupboard does nothing if it stays there. The flagged items need to come back to the main store while there's still time to use them somewhere else.
Set a return window. Say your hospital picks 90 days: anything in a sub-store expiring within 90 days and not likely to be used there comes back on a return slip. The return slip records the same batch and expiry columns as the issue slip. The main store then does one of three things:
- Redistributes it to a higher-use location, like the general ward or the OPD pharmacy counter
- Returns it to the distributor, if the supplier terms allow near-expiry returns
- Quarantines it for disposal with proper documentation, if neither works
Worked example: suppose the ICU is holding 40 vials of an injectable at ₹300 each, expiring in 10 weeks, and it uses about five a month. Left there, roughly 30 vials expire, which is about ₹9,000 written off. Pulled back at the sweep and sent to a ward that uses 20 a month, all 40 get used. That's just one item in one location.
Your near-expiry medicines register is where these returns get logged. The register format and policy in that post work just as well for a hospital main store.
One expiry list across all locations
This is the step that ties everything together. The main store's expiry report must include stock sitting in sub-stores, not just stock on the store's own shelves.
Picture the pharmacist's monthly expiry list split into columns by location: main store, Ward 1, Ward 2, OT, ICU, casualty, crash carts 1–4. Each near-expiry batch appears once, under wherever it physically sits. When the pharmacy committee meets, they're looking at one list for the whole hospital instead of one list plus a dozen unknowns.
That single list also does a lot of quiet work:
- It shows which wards keep over-indenting, so you can cut their par levels.
- It shows which emergency trays carry slow items that could be stocked in smaller quantities.
- It gives you a defensible trail of issue, check, return and disposal for any accreditation review, NABH included, or any drug inspector visit.
Running it on paper and spreadsheets
All of this can be done without software, and a disciplined team can run it well on paper. You need batch-wise issue slips, a sweep checklist for each sub-store, a return register and one consolidated expiry sheet. Our expiry-tracking spreadsheet template works as that consolidated sheet if you add a location column.
Be honest about where paper struggles, though. The consolidated list is only as current as the last sweep. Between sweeps, wards keep consuming and indenting, so the list drifts. Copying batch numbers by hand from slips into a master sheet is slow, and transcription errors creep in, especially with long alphanumeric batch codes. And when the one pharmacist who maintains the sheet goes on leave, it tends to stop.
Paper works if the hospital is small and the owner is strict. As the number of sub-stores grows, keeping the consolidated list current becomes a full-time job.
How much expired stock is on your shelves right now?
Upload your stock register or purchase CSV. ShelfSense reads the batch expiry dates and shows what is expiring soon, what has already expired, and what to return first. 60 seconds, no signup.
Run the free pharmacy auditWhere software fits
What software adds here is mainly carrying the batch and expiry from receipt to issue to sub-store automatically, so the cross-location expiry list builds itself instead of being retyped. The sweep is still a physical walk; nothing replaces opening the crash cart. But the walk becomes a check against an expected list rather than a fresh count from scratch.
ShelfLifePro serves pharmacies, and hospital pharmacies running main-store-and-ward setups are part of that. If you'd like to see whether it fits your indent-and-sweep routine, you can look at the pharmacy setup here. Every plan starts with a 14-day free trial, no credit card required.
ShelfLifePro Editorial Team
The ShelfLifePro editorial team covers inventory management, expiry tracking, and waste reduction for pharmacies, supermarkets, and retail businesses worldwide.
See what batch-level tracking actually looks like
ShelfLifePro tracks expiry by batch, automates FEFO rotation, and sends markdown alerts before stock expires. 14-day free trial, no credit card required.
Get the monthly expiry brief
One short email a month, only when there is something worth reading. FEFO tactics, markdown math, and stories from Indian retailers. No spam.
No spam. Unsubscribe in one click. Email only, no WhatsApp spam.
Get expiry tips on WhatsApp
Leave your number and we say hello on WhatsApp, then share expiry-tracking tips for Indian retail now and then — FEFO, markdowns, monsoon stock. No broadcast lists; reply STOP any time.