Skip to content

Pharmacy Inventory Management: The Complete Guide for African and South Asian Pharmacies

Pharmacy inventory management is the work of keeping the right medicines on the shelf, in date, at a cost that still leaves you a margin. Get it wrong in one direction and patients walk to the pharmacy next door because you were out of their prescription. Get it wrong in the other direction and your cash sits on shelves until an expiry date turns it into a write-off.

This guide is written for owners and superintendent pharmacists running independent pharmacies, small chains and mixed wholesale and retail operations, with a focus on Nigeria and the wider African and South Asian markets, where most pharmacies are owned by the person behind the counter. It gives you the benchmarks worth measuring against, the formulas to calculate them, and the routines that keep stock moving. Where a number comes from a published source, we link to it. Where a rule differs by country, we say so instead of pretending one size fits everyone.

What pharmacy inventory management covers

At its simplest, pharmacy inventory management means knowing what you hold, where it is, when it expires and what it cost you. In practice it covers six jobs: deciding what to stock, buying it, receiving and checking it, storing it correctly, selling or dispensing it in the right order, and dealing with whatever does not sell. Each job feeds the next. A buying mistake in March shows up as an expiry write-off in November.

Most pharmacy owners already do all six, but informally. The buyer keeps a mental list of fast movers, the pharmacist remembers which shelf holds the short-dated cartons, and a periodic stock check catches what slipped through. That works at one counter with one experienced person. It stops working when you add a second branch, a wholesale customer base, or a new hire who does not know the shelves. Good pharmacy inventory management moves that knowledge out of people's heads and into records the whole team can trust.

Why pharmacy inventory is not ordinary retail stock

A shop selling phone cases can hold slow stock for a year and lose only margin. A pharmacy holding the wrong stock can lose the product entirely, because every medicine has an expiry date, many have storage limits, and some are tightly regulated. Expired medicine is not just a financial loss. It is a patient safety problem and, in most countries, a regulatory one.

Three things set pharmacy apart. First, expiry: stock that is perfectly sound today becomes unsellable on a fixed date. Second, traceability: if a manufacturer recalls a batch, you need to know which batches you received and where they went. Third, demand that you cannot easily steer. A patient with a prescription for a particular brand and strength will not accept a substitute because you overbought something else. Pharmacy inventory management has to balance all three at once, which is why general retail stock advice only gets you part of the way.

The pharmacy inventory benchmarks worth tracking

Published benchmarks vary by source, region and pharmacy type, so treat them as a range to aim for rather than a pass mark. The table below pulls together figures from several industry sources. They come mostly from US and Canadian material, which is the best published data available, so expect pharmacies in Africa and South Asia to run higher on days on hand where import lead times are longer.

MetricHow it is calculatedRetail pharmacyHospital pharmacy
Inventory turnoverCost of goods dispensed divided by average inventory value10 to 14 turns a year8 to 12 turns a year
Days on handAverage inventory value divided by (cost of goods dispensed / 365)25 to 35 days30 to 45 days
Expiry wasteExpired stock value divided by total inventory valueUnder 1% when well run, 2 to 3% industry averageUnder 0.5% target
Front-store turnoverCost of goods sold divided by average front-store inventory2 to 4 turns a yearNot applicable
Carrying costAnnual cost of holding stock as a share of its value20 to 30% a yearNot separately published

Two things stand out. The first is the gap on expiry. One source puts the industry average for expiration waste at 2 to 3 percent of inventory value while describing well run pharmacies as staying under 1 percent. A hospital case study we read had expired drugs at about 8 percent of inventory value before the team fixed its processes, against a 3 percent benchmark. The second is how tight turnover is. At 12 turns a year you hold roughly 30 days of stock, and the line between healthy and overstocked is only a few weeks wide.

Pharmacy inventory management flow from receiving to batch logging, FEFO shelving, expiry alerts and transfer or return
The basic pharmacy inventory management loop: every delivery gets a batch and expiry date, and every short-dated batch gets a decision.

How to calculate turnover, days on hand and expiry rate

Turnover is the cost of goods dispensed over a year divided by your average inventory value. Take the opening and closing stock value for the year, average them, and divide. Days on hand is 365 divided by turnover, which tells you how many days of demand your current stock covers.

Here is a worked example with round numbers. A pharmacy dispenses and sells goods that cost it $1,200,000 over a year and holds an average of $100,000 in stock. Turnover is 12 and days on hand is about 30, which sits inside the benchmark range. Now suppose the same pharmacy holds $150,000 in stock instead. Turnover drops to 8 and days on hand rises to about 46. The extra $50,000 is cash tied up on the shelf.

That cash is not free. If carrying cost runs at 20 to 30 percent a year, the range one pharmacy finance guide quotes, the extra $50,000 costs you $10,000 to $15,000 annually in storage, shrinkage, financing and expiry risk. You never see that as one line on your accounts, which is why it goes unnoticed. Measure turnover and days on hand every month and the problem shows up long before the year-end count.

Expiry rate is the value of stock that expired in a period divided by your inventory value. Estimates of how much pharmacy stock typically expires differ widely. A pharmacy finance ebook from Datarithm cites 10 percent of average inventory value expiring each year and works through an example: on $300,000 of average prescription inventory, $30,000 expires, about 80 percent of that is returnable, and only 80 percent of the returnable amount is recouped. That leaves a write-off of $10,800, plus roughly $7,500 in carrying cost on the expired stock. Other sources put typical waste at 1 to 3 percent. The gap between those numbers is a good reason to measure your own, because yours is the only one that matters.

Perpetual versus periodic counting in pharmacy inventory management

A periodic system counts stock at set intervals, often once a year or once a quarter, and works out what was sold by subtraction. A perpetual system updates the record every time stock is received, sold, returned or transferred, so the system always shows an on-hand figure. Industry voices are blunt about which one wins. A pharmacy owner interviewed by PBA Health called perpetual inventory a necessity for managing stock well, and a Pharmacy Times article describes perpetual records as logging every transaction from procurement to dispensing.

Perpetual records only help if they are accurate. That is why even pharmacies with good software still count. Checking a few shelves each week, comparing the count to the system and investigating differences keeps the records honest. One pharmacy in the PBA piece does a spot check roughly every two weeks during quiet periods. Treat the system as the day-to-day record and the cycle count as the check on it.

Set minimum and maximum levels from real sales

A minimum and maximum level for each product is the simplest control that works. The minimum is the quantity at which you reorder. The maximum is the most you want on the shelf after the order arrives. Build both from real sales: average daily sales multiplied by supplier lead time gives a baseline reorder point, and a few days of safety stock covers the variation. The maximum then depends on your order cycle and how much cash you are willing to commit.

Lead time deserves more attention than most pharmacies give it. In a large city a local distributor may deliver in a day or two, while an import-dependent item, or a shop far from the wholesale hub, can wait weeks. A medicine that sells 6 packs a day with a 3-day lead time needs a reorder point of 18, or about 24 if you keep one day of safety stock. Put that same product on a 14-day lead time and the reorder point jumps to 84 before safety stock. Review levels at least quarterly and after any supplier or seasonal change, because stale levels are a common cause of both stockouts and overstock.

Use ABC analysis to decide where attention goes

ABC analysis sorts products by their contribution to sales. A pharmacy finance guide from PBA Health describes the usual split: A items are about 10 percent of products and 70 percent of sales, B items are 20 percent of products and 20 percent of sales, and C items are 70 percent of products and 10 percent of sales. Your own ratios will differ, but the shape is nearly always the same, with a small group of products carrying most of the revenue.

Use it to decide where attention goes. A items get tight minimum and maximum levels, weekly review and a backup supplier. B items get monthly review. C items are where expired stock tends to build up quietly, so stock them in small pack sizes, buy to order where you can, and cut any item that has not sold in a set period. Good pharmacy inventory management spends its effort on the A list and its discipline on the C list.

Rotate by first expired, first out

First in, first out is how most shops rotate stock. Pharmacies should use first expired, first out, usually shortened to FEFO. The difference matters whenever a newer delivery carries a shorter date than the stock already on the shelf, which happens more often than people expect, particularly when items come from different suppliers or production runs. FIFO would sell the older delivery first and leave the short-dated one to expire.

FEFO needs two things: the expiry date and batch number captured at receiving, and a shelf layout that puts the earliest expiry at the front. Staff should check dates when they receive stock, when they refill a shelf and when they dispense. Pharmacy Times describes FEFO as essential in pharmacy because expiry dates relate directly to efficacy and patient safety. If your records hold only one expiry date per product, you cannot do FEFO reliably, because a product with two batches has two dates.

Batch tracking, expiry alerts and returns

Batch tracking records the batch number and expiry date of every delivery, then follows that batch through sales, returns and transfers. Expiry alerts use those dates to warn you at set intervals, commonly 90, 60 and 30 days before expiry, so short-dated stock gets a decision while it still has value. Together they turn expiry from a surprise into a list.

Returns need the same discipline. When a patient returns a product or you return stock to a supplier, the record should show which batch is involved and whether the item goes back on the shelf or into quarantine. Our companion article on how to reduce expired stock in a pharmacy walks through the monthly short-date review, supplier credit windows and transfer options in detail, so we will not repeat all of it here.

Dual retail and wholesale pricing and its effect on stock

Many pharmacies in Africa and South Asia sell to two kinds of customer: walk-in patients at retail price, and clinics, smaller pharmacies or institutions at wholesale price. If your records hold one price per item, someone has to work out the other price by hand, and mistakes cost margin. Holding retail and wholesale price on every SKU keeps stock valuation and margin reporting clean.

Pricing affects inventory more than most people expect. Wholesale customers buy larger quantities, which pulls down your stock on fast movers and raises reorder frequency. They are also a route for moving short-dated stock in volume at a sensible price rather than letting it expire. Knowing the margin on each channel lets you decide in advance how far you can discount near-expiry stock before the sale loses money. Synapse holds dual retail and wholesale pricing on every SKU for this reason. Our guide to pharmacy pricing covers the markup and margin formulas and a worked blended margin example.

Control stock across several branches

The moment you open a second branch, pharmacy inventory management changes. Each branch sees only its own shelves, so one holds stock that is about to expire while another is out of the same product. Without a shared view you buy more than the group needs, and short-dated stock never gets moved to where it would sell.

A centralised inventory with inter-branch transfers fixes that. You see stock by branch and for the group, move surplus from the slow branch to the busy one, and record the transfer so both branches' counts stay right. Permissions matter here as well. A branch manager should see and change their own branch only, while the owner sees everything. Synapse provides centralised multi-branch inventory with transfers, and five user roles with branch-scoped access. Our guide to multi-branch pharmacy inventory goes deeper on transfers, levels per branch and a worked two branch example.

Cycle counts, audits and an audit trail

A full count once a year is an accounting or regulatory requirement in many places and still worth doing. It is not enough on its own, because a year is long enough for mistakes to compound. Cycle counting means counting a defined slice of stock each week, so every product gets counted several times a year, with A items counted most often.

When a count does not match the system, find out why before adjusting. Typical causes are unrecorded returns, receiving errors, transfers entered at one end only, and dispensing errors. A full audit trail, where every adjustment records who made it and when, makes that investigation quick. It also protects staff, because a recorded explanation is better than an unexplained gap. Soft delete rather than permanent deletion means a mistaken removal can be reversed instead of lost. For the full method, including a seven step count and accuracy targets, see our guide to running a pharmacy stock take.

A simple routine for expired stock in an owner-run pharmacy

In an owner-run pharmacy there is rarely a compliance department, so the routine has to be simple enough that whoever is on the counter follows it. Pull short-dated stock at the 30-day mark, record the batch, quantity and cost, and move it to a clearly labelled quarantine shelf that nobody sells from. Expired stock should never sit on the same shelf as sellable stock, even for a day, because that is how it ends up in a patient's bag.

Then decide where each batch goes. Many suppliers accept returns or issue credit if you ask early, so check the credit window before the date arrives. Anything that cannot be returned is written off in your records and handed over for disposal in the way your regulator requires. Keep a written log of what was destroyed, when and by whom, and keep any receipt the regulator or disposal agent issues. Disposal rules differ by country, so ask your regulator or pharmacy council for the current procedure rather than relying on a general guide.

Review the log every month. If the same product keeps appearing, the fault is in your ordering, not your luck. Lower its maximum level, buy a smaller pack or stop stocking it. Over a year, that single habit does more for pharmacy inventory management than any amount of extra counting.

Nigeria and the wider African market

In Nigeria, the NAFDAC guideline states that expired drugs should be reported to NAFDAC. A study of community pharmacies in Anambra State, published in the Journal of Pharmaceutical Policy and Practice, shows how far practice can sit from that guideline. Of 77 responding pharmacies, 23.4 percent fully complied, 22.1 percent complied partially and 54.5 percent did not comply. Nearly a quarter of respondents did not know how NAFDAC disposes of expired drugs. The questionnaire went to the 103 pharmacies on the 2015 Pharmacists Council of Nigeria register in one state, so read it as a signal, not a national figure.

Enforcement is real. In January 2025, NAFDAC sealed a pharmacy in Garki, Abuja after finding expired items worth over 7 million naira, and the managing director and superintendent pharmacist were taken into custody for questioning. NAFDAC has also publicised the destruction of expired medicines, including donated stock valued at 59 million naira. The point for a pharmacy owner is plain: expired product on a shelf is a licence risk as well as a cash loss. Other markets have their own regulator and forms, so check with yours.

Heat, humidity and power cuts

Storage conditions affect how much of a medicine's shelf life you actually get. Many product labels say to store below 25 or 30 degrees Celsius, and refrigerated products are usually kept between 2 and 8 degrees, so heat, sunlight and humidity all matter. In a hot season or a humid coastal city in West Africa or South Asia, a shop floor and back store can run well above that without cooling that runs around the clock. Where power is unreliable, a refrigerator without backup puts cold-chain stock at risk.

The practical steps are simple. Log temperature in the dispensary, back store and fridge at set times. Use a thermometer that records minimum and maximum readings. Keep stock off floors and away from windows. Decide in advance what you do after a power cut. Always follow the storage instruction on the product label, which overrides any general range. Stock damaged by heat should be treated as expired for write-off purposes, and your records should say so.

What to look for in pharmacy inventory software

Software will not fix a bad process, but it makes a good one stick. When you compare systems, check for these:

  • Batch number and expiry date captured at receiving, not just one date per product
  • Expiry alerts at several intervals, not a single warning
  • Stock by branch and for the group, with recorded transfers between branches
  • Returns, refunds and credit notes that put stock back correctly
  • Retail and wholesale price held on every item
  • User roles that limit each person to their own branch and tasks
  • An audit trail for every adjustment, with recovery for mistaken deletions
  • A clear hosting and cost model, including who owns your data

Synapse by Plemora is a self-hosted pharmacy management system built on PHP 7.4 and MySQL. It covers dual retail and wholesale pricing, centralised multi-branch inventory with transfers, batch tracking with expiry alerts, returns, refunds and credit notes with automatic restocking, loyalty points with tiers, SMS, email and WhatsApp patient messaging, five roles with branch-scoped access, and a full audit trail with soft-delete recovery. Pricing starts from $39 a month, or from $899 for a perpetual self-hosted licence. See the full feature list, compare pricing, or sign up free and see it live.

A 30-day plan to tighten your stock

You do not need a big project to improve pharmacy inventory management. Work through it in four weeks:

  1. Week one: count what you hold, calculate turnover, days on hand and expiry rate, and write the numbers down as your baseline.
  2. Week two: make sure every item has batch and expiry recorded, then set minimum and maximum levels for your A items.
  3. Week three: run your first short-date review at 90, 60 and 30 days, and move surplus between branches or to wholesale customers.
  4. Week four: start weekly cycle counts, assign an owner for expired stock, and put a monthly review of your three numbers in the diary.

Repeat the baseline after 90 days. Even a modest drop in days on hand and expiry waste releases cash you can put back into the products your patients actually ask for. To go deeper on individual topics, read these companion guides:

You can also browse all insights.

Frequently asked questions

Try it yourself

See Synapse running on your own shelves

Sign up, create your pharmacy and start adding your stock. It takes a few minutes and you are looking at your own numbers straight away.