In real projects...
Pharmacy inventory in ERP sits at regulatory and patient-safety intersection: batches, expiries, and controlled substances. Connect billing context via billing and claims.
A common issue we see...
Same SKU with multiple batch costs and unclear FEFO picking—write-offs follow.
For example...
- Enforce batch/lot on every receipt and issue.
- Segregate duties for receiving, dispensing, and adjustments.
- Automate expiry alerts with documented destruction workflows.
- Reconcile narcotics with perpetual counts and audits.
- Integrate clinical usage where ERP feeds charge capture.
Common mistakes (and how to avoid them)
- Letting override rights proliferate “for speed.”
- Ignoring temperature chain evidence for cold storage.
- Weak interface validation between EMR and ERP item masters.
- Skipping cycle count programs until audits find gaps.
Note: Representative scenarios for education; follow healthcare regulations and pharmacy law.
Methodology: This article is an educational guide built from public ERP documentation and widely used implementation patterns. Any mini “scenario walkthroughs” are illustrative and not client-specific.
Pharmacy stock accuracy in ERP depends on capturing every movement—receipt, dispensing, return, and expiry—against the correct batch and location. Gaps in movement recording create compounding discrepancies that are expensive to investigate.
- Configure the pharmacy module with batch and expiry date tracking enabled for all stock items before any transactions are recorded.
- Record goods receipt against a purchase order, capturing batch number and expiry date for every line—do not post receipts without this information.
- Track dispensing transactions against the patient record and the dispensed batch, so stock movements are linked to clinical activity.
- Run a weekly near-expiry stock report and action stock rotation or return before expiry dates are reached.
- Complete a monthly physical stock count for high-value and controlled substances, reconciling count results to system stock per batch.
- Post expiry write-offs and return-to-supplier transactions with supporting documentation and appropriate approval.
Artifacts to expect:
- Goods receipt record with batch number and expiry date per item.
- Dispensing transaction log linked to patient and batch.
- Near-expiry stock report (weekly) by product and location.
- Monthly stock count results reconciled to system balances per batch.
- Write-off and return transaction records with approvals.
What usually goes wrong (failure modes)
- Batch numbers are not captured at goods receipt and stock counts cannot be reconciled
Medicines are received into the system without batch or expiry date data, making it impossible to trace dispensed items or manage near-expiry stock.
Mitigation: Make batch number and expiry date mandatory fields on all goods receipts. Do not accept a receipt without this information—it is required for patient safety traceability, not just inventory accuracy. - Expired stock is identified only at annual count, generating large write-offs
Near-expiry reporting is not run regularly, so stock expires on the shelf without being actioned, and the write-off appears as a surprise at year-end.
Mitigation: Run near-expiry reports weekly for products within sixty days of expiry. Assign the pharmacist responsible for each product category to review and action near-expiry items. - Stock discrepancies are posted without investigation as routine adjustments
Monthly count variances are adjusted immediately without investigating the cause, so systematic recording errors continue unchecked.
Mitigation: Require a variance investigation note for any adjustment above a defined threshold. Use variance patterns across periods to identify systematic recording or dispensing errors.
Controls and evidence checklist
- Make batch number and expiry date mandatory on all goods receipts.
- Run weekly near-expiry reports for all items within sixty days of expiry.
- Complete monthly physical counts for high-value and controlled substances.
- Require approval and investigation notes for stock adjustments above a defined variance threshold.
- Maintain a dispensing audit trail linking each dispensing event to a patient record and batch.
- Reconcile controlled substance records to physical counts at least monthly.
Implementation checklist
- Configure batch and expiry date tracking before any stock items are loaded.
- Load the formulary with product details, storage conditions, and reorder parameters.
- Test the goods receipt, dispensing, and stock count workflows with representative sample transactions.
- Train pharmacy staff on batch recording requirements using real product examples.
- Run the first near-expiry report within thirty days of go-live and review with the pharmacist.
- Complete the first monthly stock count reconciliation and document any variance investigation process.
Frequently asked questions
Where do teams usually lose time in pharmacy ERP stock management?
Most time is lost during physical stock counts when count sheets do not match what the ERP shows, because purchases were received into a general store rather than directly into the pharmacy module with batch and expiry data. Confirming that all pharmacy purchases flow through the correct receiving location and cost centre at the point of goods receipt, with mandatory batch capture, eliminates the most common source of stock discrepancy and significantly reduces count preparation time.
How should we manage near-expiry stock?
Review slow-moving and near-expiry stock reports monthly, not only at year-end. Expired stock written off at year-end is a cost that could have been avoided with earlier visibility. Most ERP pharmacy modules support expiry-date tracking per batch—confirm this is configured and that near-expiry alerts route to the pharmacist responsible for the relevant product category. A sixty-day and thirty-day alert threshold typically allows enough time to return stock to supplier or rotate it to another facility.
When should we update reorder points and safety stock levels?
Adjust reorder points when demand patterns change due to seasonal disease patterns, formulary changes, or shifts in patient volumes. ERP reorder parameters set at implementation reflect historic demand—if demand has changed significantly, automatic reorder quantities will either create stockouts or excess inventory, both of which have direct financial and patient care implications. Review reorder parameters at the start of each financial year and after any significant change in the patient or service mix.
Sources
- COSO Internal Control - Integrated Framework (2013 refresh)
- ISACA: Implementing Segregation of Duties (SoD) — practical experience
- NIST SP 800-53 Rev. 5 (Security and Privacy Controls)
Conclusion and next steps
Pharmacy stock accuracy in ERP depends on capturing batch numbers and expiry dates at every transaction point—goods receipt, dispensing, and returns—without exception.
Start by making batch and expiry date mandatory on goods receipts, then run your first near-expiry report. These two steps immediately improve stock accuracy and patient safety traceability without any complex configuration.