Multi-Echelon Retail Inventory
DC ↔ store network · Pooling
A retail network of \(N\) stores fed by one distribution centre can pool safety stock at the upstream node, exploiting the statistical cancellation of independent local demand shocks. Total inventory falls roughly as \(1 / \sqrt{N}\) (Eppen 1979) while service is preserved. Foundational papers: Clark & Scarf (1960) base-stock decomposition; Eppen (1979) square-root law; Federgruen & Zipkin (1984); Fisher & Raman (2010) on retail accurate response.
Why it matters
Square-root pooling · documented retail savings
Where the decision sits
Brick-and-mortar chains · omnichannel networks · replenishable assortments
Multi-echelon allocation is the dominant lever whenever a retailer holds inventory at two or more levels — a DC and \(N\) downstream stores, or a national hub and regional warehouses. Holding all safety stock at stores is wasteful (each store buffers its own variability); holding it all at the DC is service-blind (no on-hand at the customer touchpoint). The interesting policy lives between: stores carry just enough to cover replenishment lead time from the DC, while the DC holds the pooled buffer that catches network-wide demand shocks. Cross-link upstream to single-store replenishment and the newsvendor.
Problem & formulation
Two-echelon base stock with Clark-Scarf decomposition
Sets and indices
| Symbol | Meaning | Domain |
|---|---|---|
| \(i \in \{1, \ldots, N\}\) | Downstream store | discrete |
| \(0\) | Upstream distribution centre (DC) | singleton |
Parameters
| Symbol | Meaning | Unit |
|---|---|---|
| \(D_i \sim \mathcal{N}(\mu_i, \sigma_i^2)\) | Per-period demand at store \(i\), possibly correlated | units / period |
| \(\rho\) | Pairwise demand correlation between stores (uniform) | \(\in [-1, 1]\) |
| \(L_{\text{store}}\) | Lead time DC \(\to\) store | periods |
| \(L_{\text{DC}}\) | Lead time supplier \(\to\) DC | periods |
| \(\alpha_i\) | Permitted stock-out probability at store \(i\) | \(\in (0, 1)\) |
| \(z = \Phi^{-1}(1 - \alpha)\) | Service-level safety factor | — |
Decision variables
| Symbol | Meaning | Domain |
|---|---|---|
| \(S_0\) | Echelon base-stock at the DC | \(\geq 0\) |
| \(S_i\) | Local base-stock at store \(i\) | \(\geq 0\) |
Pooled demand at the DC
Aggregated across \(N\) stores, total per-period demand is normal with mean \(\sum \mu_i\) and variance accounting for correlation:
Eppen's square-root law
For iid stores \(D_i \sim \mathcal{N}(\mu, \sigma^2)\) with no correlation, the safety-stock comparison is closed-form:
Doubling the network (\(N \to 2N\)) cuts pooled safety stock by a further \(1/\sqrt{2} \approx 29\%\). Eppen (1979).
Correlated case
With uniform pairwise correlation \(\rho\), the pooled standard deviation inflates:
Perfect correlation (\(\rho = 1\)): pooling gives no benefit. Independence (\(\rho = 0\)): full \(\sqrt{N}\) reduction. Negative correlation: pooling does even better.
Clark-Scarf echelon decomposition
Define the echelon stock at node \(i\) as local on-hand plus all downstream on-hand and in-transit. Clark & Scarf (1960) showed the \(N\)-echelon problem decomposes into \(N\) single-echelon newsvendors solved sequentially:
Each level uses an effective overage / underage cost rolled up from the downstream solution. Reduces an exponential-state DP to \(N\) one-dimensional optimisations.
Service-level constraint
Interactive solver
Compare stores-only, DC-pooled, and hybrid policies under correlation
Under the hood
Three closed-form policies are evaluated under the iid-stores assumption with uniform pairwise correlation \(\rho\). Stores only: each store carries \(z\,\sigma\,\sqrt{L_{\text{store}} + L_{\text{DC}}}\), summing to \(N\,z\,\sigma\,\sqrt{L_{\text{store}} + L_{\text{DC}}}\). DC pool: all safety stock at the DC, scaled by pooled standard deviation \(\sigma\,\sqrt{N}\,\sqrt{1+(N-1)\rho}\) and total lead time \(\sqrt{L_{\text{store}} + L_{\text{DC}}}\). Hybrid: stores cover their downstream lead time \(L_{\text{store}}\) individually, DC pools the residual lead time \(L_{\text{DC}}\) across the \(N\) stores. The chart bars compare current-\(N\) totals; the dotted line shows DC-pool savings as \(N\) sweeps \(2 \to 12\).
Reading the solution
What a network planner actually does with the policy
Three patterns to watch for
- Hybrid usually wins. Stores need some on-hand to serve customers within store-lead-time; pure DC-only is unrealistic when \(L_{\text{store}} > 0\). The hybrid policy — stores buffer their own \(L_{\text{store}}\), DC pools the residual lead time \(L_{\text{DC}}\) — captures most of the pooling benefit while remaining feasible.
- Correlation kills pooling. Push \(\rho\) toward 1 (a regional weather event hits all stores together) and the \(\sqrt{N}\) law degenerates. Pooling pays off precisely when local demand shocks are statistically independent.
- Service-level convexity. The safety factor \(z = \Phi^{-1}(1-\alpha)\) is steep near \(\alpha = 0\): going from 95% to 99% service nearly doubles the buffer. This is the cost of high service, regardless of pooling.
Sensitivity questions the model answers instantly
- Open 4 more stores in the same region? — raise \(N\) and watch DC-pool savings widen by \(\sqrt{(N+4)/N}\) below stores-only.
- Faster DC-to-store transport (cut \(L_{\text{store}}\) from 2 days to 1)? — hybrid total falls; DC pools more of the lead time.
- What if a regional event correlates demand at \(\rho = 0.4\)? — pooling benefit shrinks visibly — sometimes by half.
Model extensions
From two-echelon baseline to industrial multi-echelon variants
Dynamic allocation
Eppen & Schrage (1981) fair-share allocation: when DC stock is short, divide proportionally to expected store demand rather than first-come-first-served.
Correlated demand pooling
Move beyond uniform \(\rho\): regional clusters, seasonality-driven correlation, promotion-event spikes. Pooling benefit becomes a function of the full covariance matrix.
Multi-SKU coordination
Joint replenishment across SKUs sharing transport / handling. Saves on order setup; complicates the per-SKU base-stock optimisation.
Perishable / fashion variants
Short-life products (groceries, weekly fashion drops): salvage replaces holding cost. See fashion buying.
Fashion buying →Single-store (s,S) link
Drop the upstream node and the problem reduces to classic single-echelon (s,S) replenishment at each store.
Store replenishment →Omnichannel pooling
One DC serving both physical stores and online fulfilment. Pooling extends across channels; ship-from-store is a fluid recourse.
Supply-disruption robust
DC supply itself is uncertain (port closures, supplier outages). Robust / chance-constrained reformulation hardens the upstream node.
AI-driven dynamic allocation
Reinforcement learning policies that re-allocate DC inventory across stores in response to live POS signals, beating static base-stock under non-stationary demand.
Key references
Foundational multi-echelon and pooling literature
Back to the retail domain
Multi-echelon inventory sits in the Place × Strategic / Tactical cell of the retail decision matrix — the structural lever that decides where in the network to hold safety stock.
Open Retail Landing