Risk pooling, and what correlation costs it.
Consolidating regional stock into one location cuts the safety stock you need, because variability partly cancels instead of adding. How much it cuts depends almost entirely on how correlated those regions are. This lab computes both buffers, shows the variance arithmetic behind the difference, and sweeps the correlation to find where the saving goes.
Decentralized against pooled
Safety stock required
Where the difference comes from
Pooling adds the regional demands together, so what matters is the variance of the sum: every region's own variance, plus a covariance term for every ordered pair of distinct regions.
Region by region
| Location | Mean / period | SD / period | SD over lead time | Safety stock | Mean over lead time | Reorder point |
|---|
How the saving moves with correlation
The decentralized buffer does not depend on ρ at all — each region is sized on its own. Only the pooled buffer moves, and it moves all the way from the two ends of the feasible range.
| ρ | Pooled SD / period | Pooled safety stock | Decentralized safety stock | Units saved | Saved |
|---|
How the comparison works
The idea in one line
Variances add; standard deviations do not. Hold stock in four places and you buy four separate buffers, each sized for its own region's worst case. Hold it in one place and you buy a single buffer sized for the combined demand — and the combined demand is steadier than its parts, because a heavy week in one region is often offset by a light week in another. The whole saving lives in that offsetting, which is exactly what correlation measures.
The two buffers
Demand is independent across periods, so demand over a lead time of L periods has L times the variance of one period. Take the square root and the standard deviation over the lead time is σ√L. Under the normal approximation, safety stock is that spread times a multiplier z read off the standard normal for the service target:
The decentralized total is a plain sum of standard deviations, which is why it is always the larger of the two. Everything interesting is inside Var_pool.
The variance of the sum
For the total of n regional demands, the variance is every region's own variance plus a covariance term for every ordered pair of distinct regions. With a single shared correlation ρ between every pair, each of those covariances is ρσiσj:
The second line is the same quantity written so it costs one pass instead of n²: the square of the sum contains every product σiσj exactly once, including the i = j terms, so subtracting the sum of squares leaves precisely the cross terms. The results panel above prints both pieces on your own numbers.
Read the two ends of the range off that expression. At ρ = 0 the cross term vanishes and the pooled standard deviation is √(Σσi²) — the classic square-root law. At ρ = 1 the bracket is fully counted and Var_pool collapses to (Σσi)², so the pooled buffer equals the decentralized total and consolidation saves nothing at all. Perfectly correlated regions are, for inventory purposes, one big region already.
Why ρ cannot go all the way to −1
Two regions can be perfectly negatively correlated. Three cannot all be perfectly negatively correlated with each other — if A moves against B and B moves against C, then A and C move together. An equicorrelation matrix is positive semi-definite, meaning it describes a real joint distribution, only when
Below that floor the arithmetic still produces a number, and the number is a negative variance. This tool refuses those values rather than reporting the square root of a negative. The floor tightens as regions are added: −1 for two, −½ for three, −¼ for five, and it approaches zero as n grows. Exactly at the floor with equal standard deviations, the regions cancel completely and the pooled buffer is zero — a mathematical curiosity worth seeing once, and not a network anyone has ever operated.
A worked example you can check by hand
Three regions with standard deviations of 30, 40 and 50 units per period, means of 200, 300 and 500, a lead time of four periods, and a 95% cycle service level. This is what the tool loads by default. The arithmetic below rounds the 95% quantile to z = 1.645 so the numbers stay checkable on paper; the tool itself carries z = 1.6449, so its unit figures sit a shade lower in the last decimal place. The percentages are identical either way, because z cancels.
Now the pooled buffer at four values of ρ:
Two things are worth pausing on. First, the saving at ρ = 0 is 41%, not 67% — three locations become one, but the buffer falls by the square root, not by a third. Second, the drop from 41% to 18% is caused by a correlation of only 0.5, which is an unremarkable level for regions in the same economy facing the same season and the same promotions. Half the textbook benefit of pooling can disappear into a correlation nobody bothered to estimate.
Note also that the percentage saving does not depend on L or on z at all. Both appear as the same factor on both sides and cancel. They change how many units are at stake; they cannot change the fraction.
Assumptions, stated plainly
- Normal approximation. Demand over the lead time is treated as normally distributed, so a service target maps to a single multiplier z. For low-volume or intermittent items that approximation is poor, and a Poisson or compound model belongs there instead.
- Cycle service level, not fill rate. z is the standard normal quantile of the probability that a replenishment cycle passes without a stockout. It says nothing about how many units are short when one happens. Fill rate — the fraction of demand served from stock — is a different target and needs the loss function, not the quantile. A 95% cycle service level typically corresponds to a considerably higher fill rate, and quoting one as the other is a common and expensive mistake.
- The same service target everywhere. One z applies to every region and to the pooled location. Sizing regions to different targets is a different comparison.
- Demand is independent across periods. This is what lets lead-time variance be L times single-period variance. Autocorrelated demand — trend, seasonality, a bullwhip upstream — breaks it, and the buffer this tool reports would be too small.
- Lead time is deterministic and common. No lead-time variance term appears. In practice a central warehouse often serves distant regions on a longer outbound lead time than a local one did, which eats into the saving computed here; this model holds L fixed to isolate the pooling effect itself.
- One shared correlation. Every pair of regions shares the same ρ. Real correlation matrices are not equicorrelated — neighbouring regions move together more closely than distant ones — so treat this as a well-behaved summary, and read the sensitivity sweep rather than any single figure.
- Inventory only. Transportation cost, facility cost, handling, and the service consequences of longer delivery distances are all excluded. Those are the forces that push real networks back toward decentralization, and none of them is in this arithmetic. The tool sizes one side of the trade-off; it does not settle it.
- Cycle stock and pipeline stock are unaffected by pooling in this model, so only safety stock is compared. Mean demand over the lead time is shown alongside for context and to make the reorder points usable.
Sources
- Eppen, G. D. “Effects of Centralization on Expected Costs in a Multi-Location Newsboy Problem.” Management Science, 1979. The standard reference for the centralization saving under correlated normal demand, and the source of the result that the saving depends on the correlation structure rather than on the number of locations alone. pubsonline.informs.org/doi/10.1287/mnsc.25.5.498