Pharmacy Inventory: 10 Ways to Cut Expired Medications
Independent pharmacies lose 2-4% of inventory to expiration. Ten practices — from batch tracking to prescriber monitoring — that cut this to under 1%.
The hidden margin killer in every pharmacy
Independent pharmacies in the United States lose an average of 2-4% of their drug inventory to expiration annually. For a pharmacy carrying $200,000 in stock, that's $4,000-8,000 in expired medications each year — products that must be disposed of through DEA-compliant destruction (for controlled substances) or pharmaceutical waste services (for everything else), at additional cost.
Chain pharmacies have dedicated inventory management teams, sophisticated automated dispensing systems, and centralized purchasing that minimizes this number. Independent pharmacies don't. They have the pharmacist, maybe a technician, and whatever inventory system came with their dispensing software.
The result: independent pharmacies carry 15-25% more inventory than necessary (the "just in case" buffer) and write off 2-4x more expired stock than chains. That gap — between what chains lose to expiry and what independents lose — is almost entirely preventable with the right practices.
Here are ten practices that work.
Not sure how much you're losing to expiry?
Run a free inventory waste audit — find your bleeding SKUs in 60 seconds. No sign-up required.
Run free audit1. Track inventory at the batch level, not the product level
Most pharmacy management systems track inventory at the NDC (National Drug Code) level. They know you have 120 tablets of Metformin 500mg. They do not know that 80 tablets are from Batch A (expiring October 2026) and 40 are from Batch B (expiring March 2027).
This distinction matters for everything that follows in this list. Without batch-level tracking, you cannot enforce FEFO, you cannot plan returns precisely, and you cannot calculate your true expiry exposure.
Implementation: Enable batch-level tracking in your pharmacy management system if it supports it (many do, but the feature is often unused). At every receiving event, enter the lot number and expiry date for each NDC. This adds 1-2 minutes per delivery if done manually, or 30 seconds if you use invoice scanning.
2. Enforce FEFO at dispensing
First-expiry, first-out (FEFO) means dispensing from the batch with the nearest expiry date. This is pharmacy-specific FIFO — but focused on expiry dates rather than receiving dates, because they're not always the same.
Why it matters: Without FEFO, technicians naturally grab from the most accessible stock — usually the most recent delivery, which has the longest shelf life. Older stock migrates to the back of the shelf and expires.
Implementation: Configure your dispensing system to prioritize the nearest-expiry batch. When a prescription is filled, the system should deduct from the batch that expires soonest. Ideally, this is automatic. If your system doesn't support automatic FEFO, add a physical workflow: during weekly stock checks, move the nearest-expiry units to the front of each shelf section.
3. Set up tiered expiry alerts
A single "this product expires next month" alert is too little, too late. You need tiered alerts that trigger different actions at different time horizons.
Alert structure:
- 180 days (6 months): Monitoring zone. Flag for review during next purchasing cycle. Relevant for high-value, slow-moving medications.
- 120 days (4 months): Planning zone. Check return eligibility with wholesaler. Consider if the current purchasing pattern will clear the stock.
- 90 days (3 months): Action zone. Initiate returns if eligible. Reduce reorder quantities. For OTC products, consider markdown.
- 60 days (2 months): Urgent zone. Process all eligible returns. Transfer to locations with higher velocity (if multi-site). Contact prescribers to see if any patients could benefit from a larger fill.
- 30 days: Last chance. Products not returned or dispensed should be set aside for disposal processing.
Automated alerts delivered daily by email ensure these windows are not missed. A dashboard that you have to remember to check will be checked inconsistently.
4. Know your wholesaler's return policies cold
Every major wholesaler (McKesson, Cardinal Health, AmerisourceBergen) and most secondary wholesalers have return policies that allow pharmacies to return near-expiry products for credit. The specifics vary:
- Return window: Typically 3-12 months before expiry, depending on the wholesaler and manufacturer
- Credit type: Full credit, partial credit, or replacement product
- Process: Most require a return authorization number and use a designated reverse logistics provider
- Exceptions: Controlled substances, refrigerated products, and certain manufacturer-restricted items may have different rules
The action item: Create a reference document listing every wholesaler you buy from, their return window, and the process for initiating returns. Then configure your expiry tracking system to alert you when products enter the return window — not the expiry window. The return window always closes before the expiry date.
The savings: A pharmacy processing returns systematically recovers $2,000-8,000 annually that would otherwise be written off.
5. Right-size your purchasing
Over-purchasing is the primary driver of pharmacy expiry waste. It happens for predictable reasons:
- Wholesaler incentives: "Buy 12 bottles, get a better unit price." The per-unit savings are real. The expiry of 4 bottles that didn't sell wipes out the savings and then some.
- Fear of stockouts: A patient waiting for their medication while you order it overnight is a service failure. The natural response is to carry extra. But "extra" compounds across 3,000 NDCs into significant overstock.
- Prescribing changes: A local physician retires or changes practice. Their go-to medications drop from 20 prescriptions per month to zero. Your stock of those medications sits.
The fix: Review your reorder quantities quarterly against actual dispensing velocity. For each NDC, calculate:
- Average monthly dispensing (last 6 months)
- Current stock on hand (in days of supply)
- Minimum viable stock (enough to cover lead time + 1 week buffer)
If your current stock of Drug X is 60 days of supply and your wholesaler delivers next-day, you're carrying 53 extra days of inventory that might expire before it's dispensed.
6. Conduct monthly cycle counts (not annual physical inventory)
Annual physical inventories catch problems after 12 months of accumulation. Monthly cycle counts catch them in real time.
The method: Each month, count a different section of your pharmacy. Over 12 months, you've counted everything once. High-risk sections (controlled substances, high-value medications, refrigerated items) get counted quarterly instead of annually.
During each cycle count, record not just quantities but batch numbers and expiry dates. This is when you discover the bottle of Brand X that somehow ended up behind a row of Brand Y, three months past its expiry.
7. Segregate near-expiry stock
Create a designated area — even just a single shelf or bin — for products within 90 days of expiry. Move items to this area as they hit the 90-day threshold.
Why this works:
- Visibility: Near-expiry items are concentrated in one place, making daily management easier
- Dispensing priority: Technicians can check the near-expiry shelf first when filling prescriptions for matching medications
- Return processing: Items eligible for wholesaler returns are already pulled and ready to process
- Accountability: An empty near-expiry shelf means you're managing expiry well. A full one means you're not.
8. Build relationships with return service companies
Third-party return services (Inmar, Stericycle, Return Solutions) specialize in pharmaceutical returns. They handle the logistics of returning near-expiry products to manufacturers, manage the credit memo process, and ensure DEA compliance for controlled substance returns.
The economics: These services typically charge 3-8% of the returned product's wholesale cost. If you return $10,000 in product annually, the service cost is $300-800. The alternative — eating the $10,000 in expired inventory — is significantly more expensive.
Even better: Some return services operate on a percentage-of-recovery model. They earn their fee from the credit they recover for you, so there's no upfront cost.
9. Monitor prescriber patterns for early warning signals
A physician who retires, moves, or changes prescribing habits can leave your pharmacy with dead stock overnight. Monitor your top 20 prescribers:
- Number of prescriptions per month (trending down?)
- Key medications they prescribe (any shifts?)
- Patient volume referred to your pharmacy (declining?)
If a high-volume prescriber's referrals drop 30% in a month, review the inventory of medications primarily associated with that prescriber. Reduce reorder quantities immediately and check return eligibility for existing stock.
Your pharmacy management system may have prescriber analysis reports. If not, a simple monthly check of prescription counts by prescriber surfaces these trends.
10. Use your data to negotiate with wholesalers
After 3-6 months of batch-level tracking, you have data that supports better wholesaler negotiations:
Freshness at delivery: "Your average remaining shelf life at delivery for this NDC is 8 months. Your competitor delivers with 14 months. We need fresher stock or an adjustment to terms."
Return volume: "We returned $12,000 in product last year, with $8,000 attributed to over-ordering driven by your minimum order quantities. Can we discuss lower minimums for slow-moving NDCs?"
Expiry rate by source: "Products sourced from your secondary distribution channel have a 4x higher expiry rate than those from your primary channel. We need assurance that all orders are filled from fresh, primary inventory."
This data-driven approach transforms the pharmacy-wholesaler conversation from anecdote ("we feel like we're getting short-dated products") to evidence ("here are the specific NDCs, batch numbers, and remaining shelf life percentages").
The financial case
To illustrate the potential impact, consider a hypothetical independent pharmacy with $200,000 in average inventory:
Before systematic expiry management (illustrative scenario):
- Annual expiry write-off: $6,000-8,000
- Missed wholesaler returns: $2,000-4,000
- Over-purchasing carrying cost: $3,000-5,000
- Total annual preventable cost: $11,000-17,000
After implementing these 10 practices:
- Expiry write-off reduced to: ~$1,500-2,500
- Wholesaler returns captured: ~$3,000-5,000 recovered
- Purchasing optimised: ~$2,000-3,000 saved
- Potential annual savings: $8,500-14,500
Actual results vary by pharmacy size, product mix, and current waste levels. But the directional maths holds: at a pharmacy operating on 2-3% net margins, even modest savings from better expiry management deliver outsized impact relative to the effort required. That is the leverage of waste prevention.
Getting started
You don't need to implement all 10 practices simultaneously. Start with three:
- Batch-level tracking at receiving (Practice 1) — this enables everything else
- Wholesaler return policy documentation (Practice 4) — immediate revenue recovery
- 90-day near-expiry segregation (Practice 7) — instant visibility into your exposure
These three practices alone typically recover $3,000-6,000 annually. Add the remaining seven over the next 3-6 months.
ShelfLifePro supports all 10 practices — batch-level tracking with FEFO, tiered expiry alerts, return window management, dispensing analysis, and prescriber pattern reporting. Built for independent pharmacies, with 14-day free trial.
Every expired medication on your shelf was once a dispensable medication that could have served a patient and earned a margin. The gap between "expired" and "dispensed" is prevention, and prevention is a practice — not a prayer.
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.