Medisync logo
PharmacyInventory

Pharmacy Inventory Management in Hospitals: FIFO, Expiry & Stockouts

Hina Saleem10 June 2026 7 min read
Pharmacy Inventory Management in Hospitals: FIFO, Expiry & Stockouts

A hospital pharmacy is deceptively hard to run well. It carries hundreds or thousands of items, each with its own batches, expiry dates and cost — and every one is both a clinical necessity and a piece of working capital sitting on a shelf. Get inventory management right and the pharmacy is a reliable profit centre. Get it wrong and you bleed money through expiry, stockouts and shrinkage you can't even see. This guide covers the fundamentals of hospital pharmacy inventory management — FIFO, expiry control, stockouts and true cost-of-goods — and how software keeps it all honest.

Why hospital pharmacy inventory is uniquely difficult

Retail inventory is hard enough. Hospital pharmacy adds complications:

  • The same medicine arrives in multiple batches at different costs and expiry dates.
  • Items are sold in different units — a box, a strip, a single tablet.
  • Stock moves through multiple points — main store, dispensary, wards.
  • Expiry isn't just a cost; an expired medicine reaching a patient is a safety failure.

Manage this on a register or a basic spreadsheet and errors are inevitable. The result is the three classic losses: expiry, stockouts and shrinkage.

FIFO: the foundation of batch control

FIFO — First In, First Out — means the oldest stock is sold first. In a pharmacy this isn't a nicety; it's how you avoid expiry. If newer batches get dispensed ahead of older ones, the older stock quietly ages out and is written off.

The catch is that FIFO only works if your system actually tracks batches, not just a single quantity per medicine. Each batch has its own purchase date, cost and expiry. When you sell, stock should deduct from the oldest batch first, automatically.

This is exactly how Medisync's pharmacy module handles it: sellable stock is ordered oldest-first, and a sale deducts from the correct batch without the pharmacist having to think about it. Older stock clears before it expires, by design.

Expiry control: catch it before it costs you

Even with FIFO, some stock will approach expiry — demand changes, over-ordering happens. The difference between a well-run pharmacy and a leaky one is when you find out.

A good system flags expiring stock in advance, so you can act: push it through, return it to the supplier where possible, or stop reordering. Discovering expiry only when a pharmacist spots it on the shelf is discovering it too late.

Practical expiry control looks like:

  • Automatic expiry alerts with enough lead time to act.
  • A clear expiry report you can review weekly.
  • Batch-level visibility so you know exactly which stock and how much.

Stockouts: the leak that's easy to miss

Expiry is visible — you can see the written-off stock. Stockouts are invisible: a patient needs a medicine, you don't have it, they buy it elsewhere, and you simply never recorded the sale you lost. Worse, it's a patient-experience failure.

The fix is low-stock alerts tied to real consumption, so reordering happens before you run out — not after a patient is turned away. Combined with purchase and supplier management, you can keep fast-movers in stock without over-ordering slow ones and tying up cash.

True cost-of-goods: stop guessing your margin

Here's a subtle but expensive mistake: valuing every sale at an average cost. If a medicine arrived in three batches at three different prices, an average hides your real margin — and if your unit conversions are wrong (selling a strip but costing it as a box), your reported profit can be wildly off.

Accurate inventory uses the actual cost of the batch dispensed, with correct unit conversions. Only then do your pharmacy financials mean anything. Medisync calculates cost-of-goods from the real batch costs deducted, so margin is a fact, not a guess — and that flows straight into finance.

Shrinkage: make the sale the only way stock moves

Shrinkage is stock that leaves without a recorded sale. Some is error; some isn't. Either way, the cure is structural: make the point of sale the only way stock moves. If every dispense is a transaction that deducts the exact batch, the system's stock and the shelf's stock stay in sync — and any discrepancy becomes visible immediately rather than vanishing into "we must have miscounted."

Kits and bundles: speed without losing control

Hospitals often dispense standard sets — a delivery kit, a procedure tray. Re-entering each item every time is slow and error-prone. A good system lets you define a kit once and dispense it in one action, while still deducting each constituent item from its correct batch. You get speed at the counter without losing inventory accuracy.

A simple inventory health check

Run this monthly:

  • Expiry exposure: value of stock expiring in the next 90 days.
  • Stockout incidents: how often a requested item wasn't available.
  • Shrinkage: physical count vs system count for your top 20 items.
  • Margin accuracy: does reported pharmacy profit match cash reality?

Trends in these four numbers tell you whether your inventory is under control or quietly leaking.

The bottom line

Hospital pharmacy inventory management comes down to four disciplines: sell oldest-first (FIFO), catch expiry early, prevent stockouts, and cost every sale at its real batch cost. Doing this by hand at hospital volume is nearly impossible — which is why batch-level pharmacy software pays for itself fast, in stock that doesn't expire, sales you don't lose, and margins you can finally trust.

Want to see batch-level FIFO inventory in action? Book a free Medisync demo or read more about the pharmacy module.

See it on your own workflows

Ready to run your whole hospital on one platform?

Book a free, no-pressure demo. We'll walk through Medisync with your departments and answer every question.