Store Replenishment
(s, S) policy · Continuous review
A retail store faces stochastic daily demand and is replenished from a regional DC after a lead time \(L\). A continuous-review (s, S) policy triggers an order whenever on-hand inventory drops to the reorder point \(s\), bringing inventory back up to the order-up-to level \(S\). The policy balances stockout cost against carrying cost and ordering frequency. Foundational papers: Scarf (1960) optimality of (s, S); Veinott & Wagner (1965) computational scheme; Federgruen & Zipkin (1984) efficient algorithm.
Why it matters
Capital tied up in store inventory · documented optimisation lift
Where the decision sits
Store fulfillment loop · demand forecast feeds policy parameters
Store replenishment is the daily heartbeat of retail inventory: the forecast tells us how fast the SKU sells, the safety stock buffers forecast error and lead-time variability, the (s, S) policy converts those numbers into a clean automated trigger, and the order eventually arrives at the back room. Upstream the multi-echelon network coordinates DC inventory with the store; here we focus on the single store-DC link.
Problem & formulation
Continuous-review (s, S) under Normal demand and constant lead time
Parameters
| Symbol | Meaning | Unit |
|---|---|---|
| \(\mu\) | Mean per-period (daily) demand | units / day |
| \(\sigma\) | Standard deviation of per-period demand | units / day |
| \(L\) | Constant replenishment lead time | days |
| \(K\) | Fixed ordering cost per order placed | $ / order |
| \(h\) | Holding (carrying) cost per unit per period | $ / unit-day |
| \(p\) | Stockout penalty per unit short | $ / unit |
| \(c\) | Unit purchase cost | $ / unit |
Demand model
Per-period demand and lead-time demand are Normal:
Independence of daily demands gives lead-time variance \(\sigma^2 L\); standard deviation of lead-time demand is \(\sigma\sqrt{L}\).
Decision variables
| Symbol | Meaning | Domain |
|---|---|---|
| \(s\) | Reorder point: place order when on-hand drops to \(s\) | units |
| \(S\) | Order-up-to level: each order brings inventory back to \(S\) | units, \(S > s\) |
Order quantity at each replenishment is \(Q = S - I_{\text{on-hand}}\), where \(I_{\text{on-hand}}\) is the inventory at the trigger instant (typically \(\approx s\)).
Reorder point (cycle-service-level form)
Set \(s\) so that the probability of a stockout during the lead time is at most \(1 - \alpha\), where \(\alpha = p / (p + h)\) is the cost-balance service level (Hadley & Whitin, 1963):
First term is expected lead-time demand; second term is the safety stock that buffers lead-time variability.
Order-up-to level via EOQ
A practical heuristic is \(S = s + Q_{\text{EOQ}}\) where the economic order quantity balances fixed cost \(K\) against per-period holding cost \(h\):
Approximate cost per unit time
A standard cost decomposition (Hadley & Whitin, 1963; Silver, Pyke & Peterson, 1998):
The expected shortfall \(\mathbb{E}[(D_L - s)^+] = \sigma\sqrt{L}\,L(z)\), where \(L(z) = \phi(z) - z(1 - \Phi(z))\) is the standard Normal loss function and \(z = (s - \mu L)/(\sigma\sqrt{L})\).
Interactive solver
Closed-form (s, S) heuristic + Monte Carlo simulation of the inventory trajectory
Under the hood
We compute \(z_\alpha = \Phi^{-1}(p / (p+h))\) via the Beasley-Springer-Moro rational approximation, then \(s = \mu L + z_\alpha \sigma \sqrt{L}\) and \(Q_{\text{EOQ}} = \sqrt{2K\mu/h}\), yielding \(S = s + Q_{\text{EOQ}}\). To visualise the policy in action we run a 60-day Monte Carlo simulation: each day demand is drawn from \(\mathcal{N}(\mu, \sigma^2)\) (clipped at zero), inventory is depleted, and an order of size \(S - I_{\text{on-hand}}\) fires when \(I_{\text{on-hand}} \leq s\). Outstanding orders arrive \(L\) days later. The 6 KPIs report the policy parameters plus the observed average inventory, expected stockouts per cycle (closed-form via the loss function), and total cost per period from the \(C(s, S)\) decomposition.
Reading the solution
What an inventory planner does with the (s, S) parameters
How the safety-stock cushion behaves
The reorder point \(s\) decomposes into expected lead-time demand \(\mu L\) plus a safety-stock buffer \(z_\alpha \sigma \sqrt{L}\). Two structural properties matter:
- Square-root law in lead time. Doubling \(L\) raises the safety-stock term by only \(\sqrt{2} \approx 1.41\), not 2 — longer leads are punished sub-linearly.
- Service-level sensitivity. Moving from a 95% to a 99% cycle service level shifts \(z_\alpha\) from 1.65 to 2.33; the last few percentage points of service are expensive in carried units.
- Demand variability dominates. If \(\sigma\) doubles, safety stock doubles — but \(s\) itself rises by less because the \(\mu L\) term is unchanged. Forecast accuracy is the cheapest lever.
Sensitivity questions the model answers instantly
- Cut lead time from 4 to 2 days? Safety stock falls by \(1 - 1/\sqrt{2} \approx 29\%\); average inventory drops, ordering frequency unchanged.
- Halve fixed ordering cost \(K\)? EOQ falls by \(\sqrt{2}\), so each cycle is shorter and average cycle stock \((S - s)/2\) drops — orders fire more often but each is smaller.
- Stockout penalty \(p\) doubles? The cost-balance service level \(p/(p+h)\) rises, pushing \(z_\alpha\) and the safety stock up; stockouts per cycle fall.
Model extensions
From single-SKU baseline to retail-OR variants that matter
Stochastic lead time
Replace constant \(L\) with random \(L \sim F_L\). Lead-time demand variance becomes \(\mu^2 \mathrm{Var}(L) + \mathbb{E}[L]\sigma^2\); safety stock grows with both demand and lead-time uncertainty.
Multi-product joint replenishment
Several SKUs share the same delivery truck. Joint replenishment problem: coordinate cycles to share fixed cost \(K\). Roundy's 98%-power-of-two heuristic.
Perishable variant
Add a fixed shelf life; expired units cost more than they salvage. See grocery ordering for the perishable inventory variant.
Capacitated supplier
DC cannot ship more than \(Q_{\max}\) per order. Modified (s, S) caps the order quantity; lost-sales recourse when \(S - s > Q_{\max}\).
Periodic review (T, R, S)
Inventory checked every \(T\) periods rather than continuously; if below reorder point \(R\), order up to \(S\). Review interval adds \(T/2\) to the safety-stock-protection horizon.
Wagner-Whitin (deterministic)
For known time-varying demand, exact DP yields zero-inventory-ordering optimal lot sizes. See the inventory family for Wagner-Whitin and Silver-Meal.
Multi-echelon coordination
DC inventory and store inventory are jointly optimised; Clark-Scarf (1960) base-stock decomposition. Multi-echelon →
Omnichannel pooling
Pool store inventory with online fulfillment and ship-from-store. Pooled \(\sigma\) shrinks by \(\sqrt{n}\) under independence; safety stock falls accordingly.
Key references
Foundational (s, S) inventory theory and texts
Back to the retail domain
Store replenishment sits in the Place × Operational cell of the 4P decision matrix — the policy that turns demand forecasts into back-room receipts at the right moment.
Open Retail Landing