You can't improve what you don't measure, but you also can't measure everything. A small pharmacy owner doesn't need a 40-metric dashboard. They need a handful of numbers that show whether cash tied up in stock is working or sitting idle.
These seven KPIs give you that picture. Each one has a formula, a worked example, and what to do when it moves the wrong way.
1. Inventory Turnover
What it tells you: how many times you sell through your average stock in a year.
Inventory turnover = Cost of goods sold (annual) ÷ Average inventory at cost
Example: COGS of $1,200,000 and average inventory of $110,000 → 10.9 turns a year.
For independent community pharmacies, benchmarks of around 10–12 turns a year are commonly cited, though front-store retail lines usually turn more slowly than prescription stock. Track your own trend rather than chasing a single benchmark.
If it's low: you're holding too much stock. Review par levels and slow movers.
2. Days of Inventory on Hand
What it tells you: how many days your current stock would last at normal sales.
Days on hand = 365 ÷ Inventory turnover
Example: 365 ÷ 10.9 = 33 days.
This is the same information as turnover, expressed in a way that's easier to explain to staff. If your wholesaler delivers daily, holding 60+ days of a fast-moving line rarely makes sense.
3. GMROI (Gross Margin Return on Inventory Investment)
What it tells you: how much gross profit each dollar of stock generates.
GMROI = Annual gross margin ($) ÷ Average inventory at cost
Example: Gross margin of $300,000 on average inventory of $110,000 → GMROI 2.7. Every $1 in stock generates $2.70 of gross profit a year.
GMROI is particularly useful for front-store categories. A vitamin range with a high margin percentage but slow sales may have a lower GMROI than a fast-moving, lower-margin first-aid range.
4. Expiry Write-Off Rate
What it tells you: how much stock you lose to expiry.
Expiry write-off rate = Value of expired stock written off ÷ Average inventory at cost
Example: $2,800 written off ÷ $110,000 = 2.5%.
A well-run small pharmacy with FEFO and expiry alerts should be able to get this below 1%. If it's higher, start with our expired medicine returns guide and FEFO vs FIFO explainer.
5. Dead Stock Percentage
What it tells you: how much of your stock hasn't sold in a long time.
Dead stock % = Value of products with zero sales in 180 days ÷ Total inventory value
Example: $9,000 of zero-movement stock in a $110,000 inventory → 8.2%.
Dead stock is cash you can't use, and it's the stock most likely to expire. Review the list monthly: return what you can, discount retail lines, and stop reordering.
6. Stock-Out Rate
What it tells you: how often a customer asks for something you don't have.
Stock-out rate = Number of requests you couldn't fill ÷ Total requests
This is harder to measure because missed sales don't show up in your POS. A simple method: keep an "owings / couldn't supply" log at the counter for four weeks.
Every stock-out is a customer who might try a competitor, and for prescription patients that may become a permanent switch. If the rate is high on specific lines, raise their reorder points.
7. Shrinkage Rate
What it tells you: stock lost to theft, damage, or recording errors.
Shrinkage rate = (Recorded stock − Counted stock) at cost ÷ Total inventory at cost
Measure it at every stocktake and cycle count. Persistent shrinkage on small, high-value items such as nicotine replacement, fragrances, and some OTC lines usually points to theft. Random variances across many lines usually point to process errors.
Your Monthly KPI Scorecard
| KPI | Formula | Healthy Direction | Review |
|---|---|---|---|
| Inventory turnover | COGS ÷ Avg inventory | ↑ Higher | Quarterly |
| Days on hand | 365 ÷ Turnover | ↓ Lower | Quarterly |
| GMROI | Gross margin ÷ Avg inventory | ↑ Higher | Quarterly, by category |
| Expiry write-off | Expired value ÷ Avg inventory | ↓ Below 1% | Monthly |
| Dead stock | Zero-movement value ÷ Total | ↓ Lower | Monthly |
| Stock-out rate | Unfilled ÷ Total requests | ↓ Lower | Monthly |
| Shrinkage | Variance ÷ Total inventory | ↓ Lower | Each count |
Getting the Data Without Spreadsheets
Every KPI above depends on accurate stock quantities, cost prices, and sales history. Keeping those in a spreadsheet is possible but fragile: one forgotten update and every number downstream is wrong.
Pharmacy inventory software collects the data as a by-product of normal work. Medishelf deducts stock per batch on every sale, records cost price per batch, flags expiring stock, and produces an inventory value report at cost or retail, giving you the building blocks for this scorecard without extra data entry.
Start Measuring What Matters
Simple Pharmacy Inventory Software & POS
Medishelf helps small and independent pharmacies manage batch expiry dates, FEFO counter sales, supplier purchases, and stock reports without hospital-scale complexity.