Inventory is the largest pile of cash in most independent pharmacies, and a surprising share of it isn't moving. Slow movers sit for months and expensive lots quietly approach their expiry date, turning shelf space into a write-off. This dashboard puts a dollar figure on the cash trapped on your shelves and flags exactly which NDCs to stop reordering or return.
What this report answers
How much cash is on the shelf, how fast is it turning, and how much is at risk? The Inventory Health page leads with on-hand inventory value, cost of goods dispensed, inventory turn rate, dead/slow-moving value, expiring-soon value, and SKU count, then breaks on-hand value down by drug class and compares dead versus active stock so the categories carrying idle cash are obvious.
The metrics that matter
Inventory turn rate — cost of goods dispensed divided by average on-hand value — is the headline; a healthy pharmacy cycles its stock many times a year, and a low turn rate means cash is sleeping. Dead/slow-moving value is the cash you can free by not reordering; expiring-soon value is the write-off clock ticking on lots within 90 days of expiry. SKU count alongside turn rate hints at whether the shelf carries more breadth than the script volume justifies.
Why the data is trapped across the systems
On-hand units and last-dispense dates live in the dispensing system (PioneerRx, BestRx). Acquisition unit cost and lot/expiry detail live on the wholesaler portal (McKesson, Cardinal, AmerisourceBergen) and on purchase records. Valuing inventory and computing turns means multiplying on-hand units by current acquisition cost and aging each lot against its expiry — a join the dispensing software doesn't do, so owners count shelves and guess at value.
How to read it
Start with turn rate by drug class: a class turning far below the store average is overstocked relative to demand. Work the Dead & Expiring Stock table next — filtered to dead or expiring NDCs, with on-hand units, value, days since last dispense, and days to expiry — to build a return-and-stop-reorder list. Read expiring-soon value by months-to-expiry bucket to triage what to return or transfer before it's a total loss. Every dollar of dead stock you don't reorder is working capital back in the business.
The sample uses synthetic NDCs, costs, and on-hand quantities — no real data.
Metrics it tracks
| Metric | What it means |
|---|---|
| On-Hand Inventory Value | On-hand units × acquisition unit cost, summed across all NDCs. |
| Cost of Goods Dispensed | Acquisition cost of the units dispensed over the period. |
| Inventory Turn Rate | Cost of goods dispensed ÷ average on-hand value — how many times stock cycles. |
| Dead / Slow-Moving Value | On-hand value of NDCs with no dispense in the trailing window. |
| Expiring-Soon Value | On-hand value of lots expiring within 90 days. |
| SKU Count | Distinct NDC inventory rows currently on hand. |
Used by: Owner-pharmacists and office managers freeing cash trapped in shelf stock and cutting expired-drug write-offs
Frequently asked questions
What is a good inventory turn rate for an independent pharmacy?
Turn rate is cost of goods dispensed divided by average on-hand value — how many times your inventory cycles in a period. Higher is generally better because it means less cash is sitting on the shelf. The value of the report is spotting the drug classes and NDCs turning far below your store average, not matching a single benchmark.
How does the report find dead and expiring stock?
Dead/slow-moving value is the on-hand value of NDCs with no dispense in a trailing window; expiring-soon value is the on-hand value of lots within 90 days of expiry. Both come from joining on-hand units and last-dispense dates to acquisition cost and lot expiry, then surfacing the at-risk NDCs in a worklist.
Can I build this on my own inventory data?
Yes. Export your on-hand inventory with NDCs, last-dispense dates, and lot expiries, plus wholesaler acquisition cost, and use this as a template — we model it into a Power BI report. The sample uses synthetic data so there's no real information here.
Build this report on your own data
Clone this Independent pharmacies template — describe it and we’ll generate sample data so you can try it free, or upload your own export. You get a fully modeled, branded Power BI project that opens in Power BI Desktop.
Use this as a template →