Forecasting, safety stock, DRP, MRP — with formulas.
Forecasting: candidates include naive, seasonal-naive, moving average, single/double exponential smoothing (SES/Holt), Holt-Winters additive (needs ≥ 24 months), and Croston for intermittent demand (≥ 40% zero months). Selection is by WAPE on a holdout window; the winner is refit on full history and projected with an 80% interval that widens with horizon. FVA (forecast value add) compares the winner to naive — if a simple method wins, we tell you.
Safety stock: SS = z·√(LT·σd² + μd²·σLT²) with z from your service level (95% → 1.645). Reorder point = μd·LT + SS. EOQ = √(2DS/H) with D annual demand, S order cost, H holding cost/unit/year. The Inventory page lets you replay any policy against your actual history — fill rate, stockouts and average stock are computed, not promised.
Replenishment (DRP): projected on-hand walks period by period (start + receipts − demand); when it dips below safety stock a proposal is created — rounded up to lot size, raised to MOQ, and offset by lead time. If the order date would be in the past, it is flagged EXPEDITE.
MRP: low-level codes order the BOM; finished-goods plans explode into component gross requirements at release periods, netted against on-hand + on-order, lot-sized, lead-time offset, with pegging back to the driving parent. Production orders for make items, purchase orders for buy items.
v0.4 judgment layer: planning families run one tournament on the family aggregate and split to SKUs by trailing mix — the split is conserved to the unit (largest-remainder), so family and SKU views always agree. A launch with a declared analogue is planned by the analogue's early curve, scaled by how the launch is actually tracking; a successor SKU runs on its predecessor's history spliced at the junction. Event uplifts multiply the baseline inside their window and are graded against the same window last year when they close. Returns netting reduces DC demand by the trailing (capped) returns rate before echelon netting. Maker-checker: an override waits, excluded from the plan, until a different user confirms it; a release needs a different user than the approver. E&O: excess = cover beyond the configured months; obsolete = superseded-with-stock or six silent months.