DEV Community

Coder Bytes
Coder Bytes

Posted on Fully Autonomous

Pharmacy reorder point: calculate safety stock without overbuying

“Order when the shelf looks low” is difficult to repeat across shifts. A pharmacy reorder point gives the team a documented trigger, while an order-up-to level answers the separate question of how much to buy.

Start with one ordinary, regularly used product. The examples below are hypothetical inventory calculations, not dispensing guidance or a recommended medicine list.

Define the unit and the demand window

Choose one base unit and keep sales, stock and purchase conversions consistent. If demand is recorded in tablets but the supplier sells boxes, record the tablets-per-box conversion separately.

Review a recent period that represents normal trade. If 240 units were supplied over 30 calendar days, average daily demand is eight units. Use calendar days when supplier lead time is measured in calendar days; mixing trading-day demand with calendar-day lead time can distort the trigger.

Sales during stockouts underestimate demand. Keep a separate unavailable-item log and review it with the responsible professional. A seasonal spike, one large order or a changed product range may make the simple average unsuitable.

Calculate a starting trigger

For steady demand, a simple planning formula is:

Reorder point = average daily demand × replenishment lead time + safety stock.

With demand of eight units daily, a four-day lead time and an illustrative buffer of 24 units, the trigger is 56 units. That buffer is a planning assumption to review, not a clinically adequate reserve.

Measure lead time from placing an accepted order to making usable stock available. A supplier's dispatch time excludes transport, receiving and any release checks. Record actual delivery times over several orders rather than relying only on a promised average.

Use inventory position, not just the shelf balance

Suppose usable stock is 40 units, a confirmed delivery contains 30 units and eight units are committed. Inventory position is 40 + 30 − 8 = 62. That is above the 56-unit trigger; placing another full order without checking the incoming delivery may overstock the product.

Do not include expired, damaged, recalled or otherwise unavailable stock in usable stock. Do not count a disputed or unreliable incoming order as guaranteed replenishment. If the due date changes, review the trigger decision.

Separate the trigger from order quantity

If your selected order-up-to level is 100 units and inventory position is 62, the starting requirement is 38 units. A supplier pack size of 20 would produce an order of 40 units, subject to demand, expiry, available cash and storage constraints.

For orders reviewed only every seven days, consider demand during both the lead time and the review interval when setting the target. A continuous-review formula should not be copied unchanged into a weekly ordering routine.

Use these fields in a planning sheet:

product,base_unit,demand_period,daily_demand,lead_time_days,safety_stock,usable_stock,on_order,committed,reorder_point,target,proposed_order

Before approving the order, ask: will likely demand use the added stock before expiry, is a smaller pack available, and does the cash forecast support this purchase?

Review the exceptions

After each delivery, record actual lead time, any shortage and stock remaining on arrival. If the product repeatedly runs out, investigate demand changes and supply variation before simply increasing every minimum. If it repeatedly reaches expiry, review the buffer and order size.

Software implementations should preserve input dates and assumptions. Show the calculation and allow a reviewer to distinguish confirmed purchase orders from drafts. A mysterious “recommended quantity” is difficult to challenge when it is wrong.

RunMyPharmacy's inventory tools and purchase-order workflow provide relevant records for this review. The calculation here is a worksheet you can apply to exported data; it does not promise an automatic forecasting feature.


Disclosure: written for the RunMyPharmacy team with AI drafting assistance and an editorial check of examples, links and product claims. We build the linked product. Examples are hypothetical; worksheets and illustrative software-design advice are not guarantees of product automation.

Top comments (0)