One decision, three bills
A market asks for +30%. The order is placed, the product is six months out. Commercial reads that in volume, Finance in capital, Supply Chain in service. No single function can pay all three bills. A plan is a commitment, not a calculation.
Model, sources and what this is not
Story spine after Palmatier & Crum, Enterprise Sales & Operations Planning (Oliver Wight). Acts 2, 3 and 4 run on one engine: SS = Z · √(L·σD² + D²·σLT²), single echelon, 95% cycle service level unless a slider says otherwise. No fitted coefficients anywhere. Value stream and operating cards follow a standard L4 operating map. Full metric conventions sit at the foot of the Control Tower.
Defaults are calibrated to a contract-manufactured life-science network: 6-month replenishment lead time, σ 2 weeks on that lead time, 100 units/day, 500 €/unit. Brands, roles, systems, cadences and figures are generic archetypes and do not represent any organisation. Change all of it under Data Input, nothing is uploaded or stored.
What this is not: a multi-echelon model, a forecasting engine, or a substitute for your own segmentation. It is a decision rehearsal.
The symptoms are everywhere, the cause is one
Scrap and shortages, forecast swings, late supply surprises, meetings that review but don’t decide. These are symptoms. The cause is structural: no single owned number, no clear resolution rule, no end-to-end ownership.
Service
Demand Quality
Inventory
Supply Reliability
Conventions behind these numbers
Every threshold on this page is a convention, not a law. State yours before you compare anyone.
- OTIF
- On time and in full against the confirmed date, at order-line level, zero-day tolerance. Order-fill, line-fill and case-fill give different numbers for the same performance, name the one you use. Target and amber thresholds come from Data Input.
- Forecast accuracy
- 1 − WMAPE, at SKU × market × month, lag 6 (measured one replenishment lead time ahead of the month). Accuracy rises with every level of aggregation, so the level is part of the number. Undefined for intermittent demand, use MASE or an availability measure for the long tail.
- Bias
- Σ(forecast − actual) ÷ Σactual over the same window. Positive means over-ask. Accuracy and bias are different failures: accuracy is noise, bias is a decision.
- Forecast value added
- Not shown here. The biggest gap in this list. None of the metrics above says whether the consensus process beats a naive forecast. Measure FVA before you invest more cycle time in it.
- DSI
- Inventory value ÷ COGS per day. Compare against your own target, not a generic one: published life-science peer medians sit well above 100 days, driven by fixed batch sizes, QC and QP release and shelf life. Set the target in Data Input.
- Cycle service level
- The α convention: probability of no stockout within a replenishment cycle. It is not fill rate (β) and not OTIF. At high variability the realised fill rate lands below the α you set, because α counts stockout events and β counts missing units.
- Safety stock
- SS = Z · √(L · σD² + D² · σLT²), single echelon, demand and lead time independent and roughly normal. Feed it σ (standard deviation), never a ± range, that mistake inflates the buffer several times over. A four-stage network buffered stage by stage double-counts; that is what multi-echelon optimisation exists for.
- Planning horizon
- Rolling 24 months for the S&OP cycle. S&OE runs weekly inside the frozen window and feeds structural topics back into the monthly cycle.
- Time fences
- Frozen (demand time fence): change only with senior-management approval and at a price. Firm (planning time fence): change possible, costed. Open: shaped freely. Frozen means governed, not impossible, and a frozen horizon far longer than the physical lead time is a symptom, not a policy.
The forecast is a request for product
Every number below is computed from the same safety-stock physics as Act 3, not one of them is a fitted coefficient. Move the accuracy of the request and watch how little of the buffer it reaches.
Control
Safety Stock Synthesizer
“The secret is the arrows”. Integration runs both ways, demand and supply. A days-of-supply target sees only the demand arrow. Move the faders and watch the supply arrow it cannot see.
Control Rack
Share of Variance
You can’t afford “yes” everywhere
“Just hold more for everything” is a decision with a bill. Choose where to be premium, and plan the ~10% of emergencies instead of blanket-buffering. The last nines are the expensive ones.
Target Service
Frozen Window & the Bias Trap
Inside the CMO lead time a change cannot arrive in time. Expediting is the expensive informal fix, and bias is wishful thinking made systematic.
When can you still change the plan?
Move the demand-change event across the horizon. Inside the frozen window, no new order can help.
The Bias Trap
Systematic bias is not random noise, it is a one-directional leak. Slide the bias and watch service and scrap move together.
Forecast Bias
Value Stream, from SKU demand to patient supply
Watch a single SKU’s number flow through the cycle: built bottom-up, netted against stock, constrained by CMO capacity, and resolved into one of four supply responses. Click any stage for the five lenses.
The number flowing through the cycle
Numbers below are driven by the Data Input profile (demand, stock, capacity). Click a stage to inspect it.
SKU × loc demand
Local roll-up
Global demand
DRP nets stock
CMO capacity
Pick a path
Reconcile & sign
Deploy & fulfil
Path resolver. How every unit of demand is resolved
Set the situation for this SKU. The rule fires exactly one path. Decided per SKU × location, not by the loudest voice.
Situation
Serve directly
Stock on hand covers demand. Fulfil now from the central warehouse.
Pre-produce
Demand is visible beyond the lead time. Place a CMO order ahead to build stock in time.
Buffer
Short-term swing inside the frozen window. Safety stock absorbs it; no new order arrives in time.
Allocate
Supply is below demand. Prioritise and allocate available product by rule across markets.
Material flow, the physical chain
Information flows above; product flows here, and waits the lead time.
Operating Cards, who does what, per step
The manual behind the flow. Walk the cycle step by step; filter by your function to see exactly where you own the call and where you feed in. KPI targets recolour from your Data Input.
Product Review
Steps · inputs → outputs
KPIs · live from Data Input
Decision Board. Recurring supply-chain calls
The cycle exists to produce owned decisions, not reports. Pick a scenario, choose an option, and see the trade-off. Approved only when all three functions commit.
Commitment gate: no scenario is approved without all three
Select an option above to route the decision through the cascade (Supply Review → Integrated Reconciliation → Executive Review).
Brand Risk Heatmap
Not an accuracy chart, a euro-and-service view per brand, with the root cause named. This is the language of the trade-off.
*Long-tail SKUs have intermittent demand: percentage errors (MAPE / WMAPE) are undefined in zero-demand periods and not comparable with the brand rows. Judge that segment on availability and MOQ coverage, or on MASE. The bulk of a life-science portfolio is stable and plannable; special cases (end-of-lifecycle, tenders, launches) are managed as exceptions and never made the benchmark for the whole logic.
Data Input
Enter your own numbers. Hit Apply and every dashboard recolours from them, the dot next to each field shows how it will read (green / amber / red). Values live in this session only.
Cycle & representative SKU
Service
Demand quality
Inventory
Supply reliability
Safety-stock engine & value-stream baseline
Representative SKU used across Acts 3&4 and the value stream.
Nothing is uploaded or stored. Figures apply to the current session only. Dots preview the RAG state each value will show on the dashboards.