Planning Date: March 2025  |  Horizon: 12 months
Loading...
12-Month Demand Plan
Statistical forecast vs manual plan by product family
Forecast Accuracy (1 − MAPE)
Rolling backtest: train → 2024-02, holdout 2024-03 – 2025-02 · Higher = better · green ≥75% · amber 55–75% · red <55%
Revenue Forecast vs Budget 2025
Manual forecast revenue vs budget target — adjust the plan above to close the gap
Manual Forecast Override
Adjust statistical forecast — changes aggregate up/down automatically
✦ Ask the planning assistant
Loading forecast...
Planning Engine
Last run: baseline (read-only)
Loading...
Resource Utilization — Unconstrained
% of capacity if ALL demand (incl. backlog) were produced · >100% = true bottleneck · pull-forward pre-build applied from Mar-25
Resource Utilization — Constrained (Actual Schedule)
Actual scheduled load after capacity constraints & pull-forward · backlog pushed out, not shown here
Pull-Forward Strategy — Production Mix by Resource
Stacked utilization by product · faded segments = pre-built (pulled forward) · capacity line at 100%
Supply Exceptions — Unresolved Backlog
Products/months where constrained supply cannot meet demand
Explore BOM structure and plan data
BOM Navigator
Explore bill of materials with planned quantities and inventory
Select a product to view BOM.
Capacity Solution Options
Saturday shift (+50%) · 3rd night shift (+25%) · Combined · Holiday work (+100% Feiertagszuschlag) — bank holidays now deducted from baseline capacity
Cost Impact Analysis
Total additional cost per solution option over 12-month horizon
Bottleneck Chain Cascade
Theory of Constraints — solving one bottleneck reveals the next. Simulate resolution sequence and cascade effects.
How to read this chart: Each node is an overloaded resource — size reflects overload volume, color shows severity (red ≥120% · amber ≥100%). Arrows connect resources that share products in their routing: resolving the upstream bottleneck frees throughput that immediately loads the next resource downstream. ■ Green = resolved by selected shift option  ·  ■ Orange ! = newly revealed overload after upstream resolution  ·  ■ Grey = already within capacity.
To simulate: click any node to cycle through shift options (Sat → Night → Combined), or use the dropdowns on the right. Totals and the cascade update live. ⚡ Auto-Resolve greedily picks the cheapest option that resolves each overload, ordered by revenue-per-cost ratio.
Loading bottleneck data…
Loading…
Generating executive summary...
S&OP Flow Analysis
Interactive Sankey diagram — hover nodes and links for details
Loading flow data...
Revenue Flow: products → sales channels → fulfilled / backlog (€ revenue, 12-month horizon)  |  Production Flow: factories → production lines → finished goods (€ production value)
Global Supply Network
Supplier → Plant flows  ·  arc thickness = annual supply volume  ·  dot size = total capacity
Reliable ≥97% Moderate 94–96% Risky <94% Plant Line thickness = freight cost  ·  Solid = maritime (Suez)  ·  Dashed = land/truck  ·  ⚓ = chokepoint
Freight Cost Overview
Inbound logistics cost by supplier and transport mode
Supplier Improvement Levers
Prioritised actions for underperforming suppliers — updated from risk register
Supplier Scorecard
10 suppliers · reliability · lead time · delivery performance
Loading suppliers...
Supply Risk Register
Components flagged for single source, lead time, or reliability risk
Material Substitutions
Approved and conditional substitutes available
Inbound Delivery Pipeline
Open purchase orders and recent deliveries
Supplier Capacity Utilization
Committed vs contracted capacity by supplier & month (12-month horizon)
Filter:
Loading knowledge base…
Reference Episodes
Historical events that grounded or triggered knowledge capture
💬 Analytics Assistant
Ask any question about your supply chain data — demand, inventory, capacity, suppliers, quality, orders…
💬
Ask anything about your supply chain
e.g. "Which products have the highest backlog this quarter?" or "Show me top 5 suppliers by reliability"

S&OP Process Architecture

Click any stage to open its workspace · Animated connectors show data flowing through the pipeline

DATA INPUTS
📥
Source Data
📦 Demand history · 3yr weekly
🏬 Inventory & safety stock
🌳 Bill of Materials · 3 levels
⚙️ Capacity calendar & exceptions
🔧 After-sales spare parts history
🚚 Supplier risk data
demand data
STEP 1
📊
Demand Planning
HW-M · HW-A · SES · OLS-T
3-month holdout sMAPE selection
Phase-in detection & trim
Seasonal index overlay
Manual overrides & NL commands
consensus plan
STEP 2
🏭
Supply Planning
MRP netting: FG → SA → Component
Phase A: 5-iteration convergence
Phase B: Material-aware pull-forward
Spare parts demand integration
Backlog carry-over by month
resource load
STEP 3
Capacity Management
Resource load vs capacity (min/mo)
Bottleneck chain cascade
Saturday · Night · Combined shifts
Revenue-at-risk & net ROI
S&OP report
REVIEW
📋
Exec S&OP
Service level KPIs
Capacity risk alerts
Supplier risk flags
Integrated decision view
🌳
BOM Navigator
3-level bill of materials · Component availability · Shortage impact analysis · Build-peg date calculator
🔀
Flow Analysis
D3 Sankey diagram · Demand → production → inventory · Product-level material flow breakdown
🚚
Supplier Risk
Country-level Leaflet risk map · Disruption probability · Lead time buffers · Dual-source coverage
💬
Analytics Assistant
Natural language queries · SQL-backed answers · Ask anything about demand, capacity, or suppliers
Built With · Zero external libraries, zero ML frameworks
Python 3 + Flask SQLite Vanilla HTML / CSS / JS Chart.js D3 + D3-Sankey Leaflet.js HW-M · HW-A · SES · OLS-T MRP 3-level BOM Phase A/B pull-forward 200+ automated tests
🔗

Chain of Bottlenecks

Theory of Constraints — resolving one bottleneck reveals the next. Click any resource node to simulate shift options and trace the cascade ROI.

⛓️
① The Chain
Resources are linked by the products they share. When one resource is overloaded, every product routed through it is blocked — regardless of how much spare capacity exists downstream.
🌊
② The Cascade
Resolving the primary constraint releases throughput. That throughput immediately loads the next shared resource — surfacing a new bottleneck that was previously hidden behind the first.
🔓
③ The Solution
Add shift capacity to the binding constraint. Calculate net ROI: revenue recovered vs. shift cost. Then move to the next constraint in sequence — work the chain from left to right.
Bottleneck Chain — Aggregated 12-Month Horizon
Loading constraint data…
Overload
Shift gain
Normal load
100% cap
Loading bottleneck data…
Shift Simulation
Model Saturday, night, or combined shifts — see capacity gained vs. cost vs. revenue recovered
👆
Click a resource node
Select any constrained resource
to model shift options and ROI

🎓 Digital Twin Dojo

Learn supply chain planning the hard way — through real data, real problems, and a Socratic coach who never gives the answer directly. Each challenge is built on ElectroTech's live digital twin.

Loading scenarios…
🔍
The Forecast Detective
FG010 · Demand Planning
Progress 0 / 4 discoveries
🧑‍🏫
Coach
Senior Demand Planner, ElectroTech
📈 FG010 Demand History 36 months
🔮 Statistical Forecast SES
🎯 Forecast Accuracy (MAPE) by product · channel
✍️ Planner Overrides — FG010
Month Stat FC Manual FC Actual Adj% Note

📦 Lead Time Distribution

Effective lead times used by the planning engine — by supplier reliability segment, across the planning horizon

Avg effective LT
all segments, latest run
Max effective LT
very unreliable suppliers
Min effective LT
very reliable suppliers
Unreliable orders
% of planned orders
LT Distribution (7-day buckets)
Number of planned orders by effective lead-time range
Lead Time by Supplier Segment
Min / Avg / Max effective LT per reliability tier
Monthly LT Trend — by Segment
How effective lead times shift across the planning horizon (seasonal effects visible)

⚠️ Known Lead-Time Exceptions

Component Lead Times
Effective LT per component × supplier segment from latest planning run
Component Segment Min LT Avg LT Max LT Range Late Rate Orders

💰 KPI Scorecard

Company EBITDA + a local scorecard per function — scored on a planning run, for scenario comparison

Revenue
shipped (served) value
Gross Margin
EBITDA Contribution
before fixed OpEx
EBITDA
after fixed OpEx
Revenue at Risk
backlog × price (info)
EBITDA Bridge
Revenue − COGS → gross margin → minus penalties, carrying, overtime, expedite, fixed OpEx → EBITDA

Function Scorecards

Assumptions & proxies

    🎭 S&OP Simulation

    Five functional agents run a full S&OP meeting. Set each agent's Locality (0 = optimize the end-to-end chain, 100 = pure local KPI) and Trust (0 = games / distrusts others, 100 = takes signals at face value), pick a shock, and run — the consensus feeds the real planning engine and is scored on EBITDA.

    Preset scenario
    Shock
    Release decision
    All org presets sweeps every org setup against the shock you picked. All shocks sweeps every shock against your current dials. Both numbers-only → comparison table.
    Bullwhip risk:
    E2E alignment:
    Demand always starts from the statistical baseline forecast; the dials and the shock move it from there. Manual edits in the Forecast tab don't feed this simulation, so every scenario is scored against the same neutral base case.
    Scenario comparison
    Every run is logged here — compare the EBITDA / backlog deltas vs the first run
    #ScenarioShockDriftServiceBacklog €UtilEBITDA €Outcome
    No runs yet — set the dials and click Run Process.
    Tip: click any row to expand each function's own local KPI — watch them stay green while company EBITDA falls.
    Plan outcome — the columns
    Drift = the consensus demand the meeting agreed on, measured against the neutral statistical baseline forecast. +12% means the organisation committed to planning for 12% more than the unbiased forecast — the forecast inflation baked in by agent optimism / gaming (plus any demand shock) before the supply plan is even run. 0% = matches the baseline. The headline measure of how much bias entered the number in the demand review.
    Service = order fill rate — the share of demanded units the plan actually delivers on time. 100% = every order served; lower means demand spilled into backlog. The customer-facing read on whether the plan is feasible.
    Backlog € = value of demand the plan can't deliver inside the horizon (unfilled units × price). Climbs when capacity or components can't keep up with the consensus demand — the cost of over-committing.
    Util = peak resource utilization. Above 100% a bottleneck is overloaded (infeasible without overtime / expediting); well below 100% means idle slack.
    EBITDA € = the company bottom line for the scenario: revenue − COGS − backlog / overtime / expedite penalties − fixed OpEx. The one number that says whether all the local decisions added up to a good company result. The bracket is the delta vs row 1.
    Outcome = whether the Facilitator reconciled the plan in the meeting (resolved) or had to send unresolved gaps up to the executive S&OP (escalated, ≥2 open gaps).
    Local KPIs — click a row to expand (each function's own headline metric)
    Sales · Revenue attainment = revenue achieved vs budget. Sales "wins" by hitting its number — even on an inflated forecast.
    Supply Chain · Inventory turns = annual COGS ÷ average inventory (×). Higher = leaner stock; SC is judged on flow efficiency.
    Manufacturing · Utilization = average resource loading. Mfg "wins" by keeping lines full — which can mean building ahead of real demand.
    Procurement · PPV = purchase price variance vs standard cost. −/favorable = bought below standard; +/unfavorable = paid a premium (e.g. expediting). Procurement "wins" on unit price, not total cost.
    Finance · Gross margin = gross margin %. Finance's lens on profitability and inventory / cash discipline.
    The lesson: a function's local KPI can stay healthy while Service and EBITDA fall — that gap is the whole point of the exercise.