Definition: The reorder point (ROP) is the inventory level that triggers a new purchase order, calculated so that stock does not hit zero before the next delivery arrives.
Most stockouts are not caused by surprising demand - they are caused by reordering too late. The reorder point is the number on your inventory dashboard that should trigger an immediate purchase order. Set it correctly and you'll almost never run out. Set it too low and you're constantly placing emergency orders at premium freight rates. Set it too high and you tie up cash in inventory you didn't need yet. This calculator helps you find the right number, whether you have a simple single-supplier setup or a more complex multi-source operation.
Reorder Point Calculator formulas
Standard ROP
Use when: The correct formula for most Shopify brands. Use whenever you have a reasonable estimate of average demand and lead time.ROP = (D_avg × L) + SS
Reorder Point = (Average daily demand × Lead time in days) + Safety Stock
| Symbol | Variable | Description |
|---|---|---|
| D_avg | Average daily demand(units / day) | Mean units sold per day. Pull from Shopify Analytics > Sales by day. |
| L | Lead time(days) | Days from placing a purchase order to stock arriving at your warehouse. |
| SS | Safety stock(units) | Buffer inventory. Use this calculator's companion tool to calculate it, or estimate as 20 – 50% of lead-time demand. |
Limitation: Assumes demand is relatively constant during the lead time. For highly seasonal or promotional products, adjust D_avg to reflect expected demand during the reorder period.
Simple ROP (no safety stock)
Use when: Only appropriate if your demand and lead time are very stable and you accept a ~50% risk of running out during the replenishment period.ROP = D_avg × L
Reorder Point = Average daily demand × Lead time in days
| Symbol | Variable | Description |
|---|---|---|
| D_avg | Average daily demand(units / day) | Mean units sold per day. |
| L | Lead time(days) | Days between order and delivery. |
Limitation: No buffer against variability. Any demand spike or late delivery will cause a stockout.
Statistical ROP (with lead-time demand distribution)
Use when: Best when you have enough data to calculate demand variability over the full lead time period. Used in ERP systems and advanced inventory tools.ROP = μ_L + Z × σ_L
Reorder Point = Expected demand during lead time + (Z-value × Standard deviation of lead-time demand)
| Symbol | Variable | Description |
|---|---|---|
| μ_L | Expected demand during lead time(units) | D_avg × L - total units expected to sell while waiting for delivery. |
| Z | Z-value( - ) | Service level factor. Z = 1.65 for 95% service level. |
| σ_L | Standard deviation of lead-time demand(units) | How much total demand during a lead-time period varies. Calculate as σ_D × √L, where σ_D is the standard deviation of daily demand. |
Limitation: Requires historical demand data - at least 30 – 60 days.
Z-value reference table
Select the Z-value that matches your target service level. Most growing DTC brands use 95% (Z = 1.65).
| Service level | Z-value |
|---|---|
| 80% | 0.84 |
| 85% | 1.04 |
| 90% | 1.28 |
| 95% | 1.65 |
| 97% | 1.88 |
| 98% | 2.05 |
| 99% | 2.33 |
| 99.9% | 3.09 |
Step-by-step examples
Scenario: “A Shopify furniture brand sells an average of 5 chairs per day. Supplier lead time is 30 days. Desired safety stock: 15 units.”
- 1Lead-time demand = D_avg × L = 5 × 30 = 150 units
- 2ROP = Lead-time demand + Safety stock = 150 + 15 = 165 units
Interpretation: Place a new purchase order the moment your stock drops to 165 chairs. At your average sales rate, the new stock will arrive just as your safety buffer is being used.
Scenario: “A DTC supplement brand. Average daily sales: 4 units. Lead time: 35 days. Safety stock (from statistical formula): 20 units.”
- 1Lead-time demand = 4 × 35 = 140 units
- 2ROP = 140 + 20 = 160 units
Interpretation: Set a reorder alert at 160 units in your inventory system. If you sell faster than average, the safety stock covers the gap until your order arrives.
Typical reorder point parameters by business type
| Category | Benchmark | Note |
|---|---|---|
| Fast-moving consumer goods (FMCG) | Lead time 7 – 14 days | Short replenishment cycles. ROP is often recalculated weekly. |
| Overseas / China-sourced products | Lead time 30 – 45 days (sea freight) | Higher lead time means significantly higher ROP. Air freight (8 – 10 days) reduces it sharply. |
| Target fill rate (most DTC brands) | 95 – 97% | Benchmark: 97 – 99% is considered near-perfect. Under 85% is a red flag. |
| Safety stock as % of lead-time demand | 20 – 50% | Practical rule of thumb for brands without standard deviation data. |
| Acceptable stock deviation from ROP | ±5% | If actual end-of-cycle stock consistently differs by more than 5% from safety stock, your ROP needs recalibration. |
Critical pitfalls to avoid
Using stock levels instead of sales velocity for D_avg
Taking 'inventory on hand' from Shopify and dividing by days to estimate daily demand. This is wrong - as inventory falls without sales, it produces artificially low demand figures.
Adding safety stock by multiplying instead of adding
A very common error: ROP = D_avg × L × 1.2 (multiplying a buffer in). This inflates the ROP non-linearly and is not how safety stock works.
Using the same lead time regardless of supplier
If you source from multiple suppliers with different lead times, applying a single average lead time will cause stockouts from your slowest supplier.
Not adjusting for promotions or seasonality
Using average annual demand to set a ROP that's active during Black Friday or peak season. Your 'normal' ROP will be far too low during high-demand periods.
Setting ROP below your MOQ
If your minimum order quantity from a supplier is 500 units but your ROP calculation says 120, you'll often skip ordering until you remember, creating gap periods.
Shopify-specific tips
- Shopify does not store supplier lead times natively. Track them manually on each purchase order and use your average over the last 6 – 12 months.
- Use Shopify Analytics > 'Sales by product' filtered by date range and divided by the number of days to calculate D_avg per SKU.
- Set up low stock notifications in Shopify (Settings > Notifications) at your calculated ROP level. For more automation, use an inventory app that alerts you automatically.
- For multi-location Shopify stores, calculate ROP per location separately - aggregated stock masks regional stockouts.
- Shopify POS users can pull daily sales velocity directly from POS reports, which is the most accurate source of D_avg for retail-first brands.
Frequently asked questions
Related resources