Inventory Optimization
Segmentation-driven policy design + multi-objective safety-stock simulation + holdout backtest validation. The right way: classify first (ABC×XYZ), tune per-segment, validate on real history.
How to use this page
Step 1 — Segmentation. Classify every SKU into a 9-box (ABC by revenue × XYZ by demand CV). Each cell ships with a recommended fill-rate target (β).
Step 2 — Policy optimizer. Per-(SKU × DC) analytic (s, Q) + Monte Carlo with empirical demand bootstrap (real forecast residuals, no Normal assumption) and empiricallead-time bootstrap (real PO actuals).
Step 3 — Safety-stock frontier. Sweep 10 SS formulas against stochastic demand × stochastic lead time; pick the cheapest feasible Pareto point.
Step 4 — Backtest. Replay the last N weeks of real actuals against both stored and recommended policies — the ground-truth validation that catches the calibration errors the analytic flow misses.
ABC × XYZ — recommended policy per cell
ABC by cumulative revenue contribution (80 / 15 / 5). XYZ by demand CV (≤ 0.5 / ≤ 1.0 / > 1.0). Cell shows: # SKUs · revenue share · recommended fill-rate target (β). CZ candidates should be reviewed for delisting before optimizing.
| X — steady (CV ≤ 0.5) | Y — variable (CV 0.5–1.0) | Z — lumpy (CV > 1.0) | |
|---|---|---|---|
| A — top 80% rev | AXβ 99% 7 SKUs 73.0% revenue Tight (s, Q), high service, forecast-driven, weekly review | AYβ —% 0 SKUs — Tight (s, Q), wider SS buffer for promo / Tet variance | AZβ —% 0 SKUs — Periodic review, big SS buffer, watch obsolescence |
| B — next 15% | BXβ 97% 2 SKUs 19.0% revenue Standard (s, Q), monthly review | BYβ —% 0 SKUs — Standard (s, Q) with promo overlay | BZβ —% 0 SKUs — Periodic, conservative SS |
| C — long tail | CXβ 92% 1 SKU 8.0% revenue Bulk orders, low review frequency, JIT-style | CYβ —% 0 SKUs — Min/max levels, low service target | CZβ —% 0 SKUs — Candidate for delisting before optimizing |
10 SKUs classified · ABC by revenue, XYZ by weekly-demand CV. β = fill-rate target the policy optimizer should aim for in each cell.
SKU classification
Top 200 by revenue. Each SKU’s segment maps to a fill-rate target.
| SKU | Segment | Weekly demand | CV | Revenue share | Cum. rev | β target |
|---|---|---|---|---|---|---|
MCH-KOK-004 Kokomi 90 Chicken Noodle | AX | 2,057.9 | 0.06 | 11.46% | 11.5% | 99% |
MCH-NAM-002 Nam Ngu Fish Sauce 750ml | AX | 1,955.2 | 0.05 | 10.88% | 22.3% | 99% |
MCH-OMA-003 Omachi Spicy Beef Noodle | AX | 1,898.1 | 0.05 | 10.57% | 32.9% | 99% |
MCH-CHIN-009 Chinsu Chili Sauce 250g | AX | 1,844.6 | 0.05 | 10.27% | 43.2% | 99% |
MCH-NAM-010 Nam Ngu Premium Fish Sauce 500ml | AX | 1,812.6 | 0.07 | 10.09% | 53.3% | 99% |
MCH-WAK-006 Wake-Up 247 Energy Drink | AX | 1,785.9 | 0.04 | 9.94% | 63.2% | 99% |
MCH-COMB-008 ComBo Pho Bo 70g | AX | 1,762.3 | 0.06 | 9.81% | 73.0% | 99% |
MCH-VIN-005 Vinacafe 3-in-1 Original | BX | 1,713.1 | 0.05 | 9.54% | 82.6% | 97% |
MCH-CHIN-001 Chinsu Premium Soy Sauce 500ml | BX | 1,694.1 | 0.06 | 9.43% | 92.0% | 97% |
MCH-VIVA-007 Vivant Mineral Water 500ml | CX | 1,439.9 | 0.05 | 8.02% | 100.0% | 92% |