Critical Spares Engine
A quantitative + qualitative work engine for Program Managers and Supply-Chain leads responsible for data-center M&E spare-parts readiness. Built for hyperscale operators, facilities teams, and sourcing professionals who need rigorous, transparent math — not spreadsheet guesswork. 20 modules: 9 quantitative analytical engines + 10 operating-engine generators + 1 methodology reference.
Workflow Overview — how the 27 modules connect (analytical → operating engine → supply chain → reference)
Inputs
- λ failure rate
- Severity (1–10)
- Detectability (1–10)
- Installed base
- Redundancy
- Qualified alternates
Computation
- RPN = sev × det × (λ×10)
- Eff. severity w/ redundancy
- Fleet failures/yr = λ × n
- Marginal-utility tier
Outputs
- Criticality tier
- RPN score
- Fleet exp. failures/yr
- Stocking decision
ⓘ How criticality is computed
Simplified FMECA Criticality Number: Cm = (S_eff/10) × (D/10) × λ × N × (oh/8760) where S_eff is severity reduced by redundancy buffer, D is detectability, λ is annual failure rate, N is installed base, and oh/8760 normalises to fraction of year (annual basis → oh=8760 → factor=1).
Risk Priority Number (RPN): RPN = S_eff × D × (λ×10) — analogous to FMEA RPN = Severity × Occurrence × Detection.
Tier thresholds: VITAL Cm ≥ 0.5; ESSENTIAL 0.1–0.5; DESIRABLE <0.1. Decision: VITAL → STOCK + DUAL-SOURCE; ESSENTIAL → STOCK; DESIRABLE → DON'T STOCK (review).
Ref: MIL-STD-1629A FMECA; Quality-One FMECA guide.
Inputs
- Required qty
- On-hand inventory
- Open PO qty + conf.
- Lead time & σ
- Commit / need date
- Planning horizon
Computation
- Confirmed supply = OH + PO × conf
- Readiness % = confirmed ÷ required
- Date slack = need − commit
- LT / horizon ratio
Outputs
- Readiness % + RAG
- Date slack (days)
- Risk flag list
- Recommended actions
ⓘ How readiness is computed
Readiness% = min(100, confirmedSupply / required × 100)
confirmedSupply = onHand + (PO qty if commit date ≤ need date AND commit is confirmed). If no confirmed commit, PO qty counts as 50% confidence. Status: RED if <80% or commit after need; YELLOW if 80–99%; GREEN if ≥100% with slack ≥7 days.
Inputs
- Unit cost ($)
- Under-stock cost/event
- Annual demand μ
- Demand σ
- Carrying rate (%)
- Poisson toggle
Computation
- CR = Cu ÷ (Cu + Co)
- Q* = Φ¹(CR) if Normal
- Q* = Poisson inverse CDF
- Annual cost per Q
Outputs
- Optimal Q*
- Critical ratio CR
- Total annual cost
- Cost breakdown chart
Connects To
ⓘ Newsvendor + Fill-Rate methodology — units & formulas
Unit conversion: All inputs use annual units (μ in units/yr, σD in units/yr, lead time L in weeks). Internally: L_yr = L_wk / 52; σ_L_yr = σ_L_wk / 52.
Demand during lead time: μ_LT = μ_annual × (L/52) | σ_LT = √((L/52)×σ_D² + μ_annual²×(σ_L/52)²) — combines demand variability and lead-time variability.
Critical ratio: CR = Cu / (Cu + Co) where Cu = under-stock cost per stockout event; Co = carrying cost over part life = carryRate × unitCost × partLife. For critical DC spares Cu ≫ Co, pushing CR close to 1 and Q* higher.
Newsvendor Q*: Q* = max(0, ⌈μ_LT + Φ⁻¹(CR) × σ_LT⌉) where Φ⁻¹ is the inverse normal CDF (Beasley-Springer-Moro rational approximation, verified: Φ⁻¹(0.975)=1.96, Φ⁻¹(0.99)=2.326).
Safety stock (fill-rate target): SS = max(0, ⌈Φ⁻¹(FR) × σ_LT⌉). Reorder Point: ROP = ⌈μ_LT + SS⌉.
Poisson mode (slow movers, demand <5 units/yr): λ_LT = λ_annual × (L/52); P(stockout at level S) = 1 − Σ_{k=0}^{S−1} e^{−λ_LT} λ_LT^k/k!. Falls back to normal approx for λ_LT > 200. Ref: Sherbrooke 1985 METRIC — newsvendor model (critical-fractile).
Inputs
- Site demand rate λ
- # sites served
- Vendor → regional LT
- Regional → site LT
- Target service level
- Unit cost + carry rate
Computation
- Regional λ = n × λ
- Poisson inv CDF per echelon
- Site stock vs pool stock
- Pooling savings
Outputs
- Site vs pool Q
- Units & $ saved
- Fleet P(no stockout)
- Echelon recommendation
ⓘ 2-Echelon METRIC marginal-analysis methodology
Model: 2-echelon METRIC (Sherbrooke 1968) — Regional Warehouse (echelon 1, replenished from vendor) → Site Stock (echelon 2, replenished from regional). Optimises the split of stock between echelons given a service-level target and optional budget cap.
VARI-METRIC effective LT: LT_eff = LT_regional + B₁(s₁) / (n × λ) where B₁(s₁) = expected backorders at regional (Little’s Law). Backorder expansion: B(s,λ) = λ(1 − P(X≤s−1)) − s(1 − P(X≤s)) (Poisson closed form; normal approx for λ > 200). Ref: Graves 1985 VARI-METRIC.
Marginal analysis pick rule: At each iteration, add one unit to the echelon with the higher marginal fill-rate gain per dollar of holding cost. Stop when target fill rate is achieved or budget is exhausted. Ref: Sherbrooke 1968 METRIC — Fox & Landi 1971 marginal analysis.
Site fill rate: P(Poisson(λ × LT_eff) ≤ s₂) — probability a demand event is satisfied from site stock without waiting for regional replenishment.
Inputs
- # DC sites
- # critical part types
- OEM lead time (wks)
- Hub-to-site LT (wks)
- Annual demand / site
- Unit cost + carry rate
Computation
- LT reduction = OEM − hub-to-site
- Safety stock Δ per site
- Fleet inventory savings
- Hub ROI = savings ÷ cost
Outputs
- Hub ROI %
- Effective LT reduction
- Fleet readiness Δ
- Breakeven sites
Connects To
ⓘ Simplified 2-echelon MEIO / VARI-METRIC approach
This is a transparent heuristic approximation (not a full VARI-METRIC solver). Hub units are sized to cover demand during hub-to-site lead time at the target fill rate. Site-level stock covers demand during the OEM lead time minus hub coverage. Remaining budget fills the central depot.
Fleet readiness is estimated as min(100, totalStock / (demandDuringMaxLT × safetyFactor)). Hub delta = readiness with hub minus readiness without hub.
Ref: METRIC/VARI-METRIC review (UMD); MEIO framework (Umbrex).
Inputs
- Financial health (1–10)
- Single/dual/multi source
- Geographic conc. (1–10)
- Lead time variability
- OTD %, quality score
- Capacity reserve %
Computation
- Weighted composite score
- Per-dimension scoring
- Disruption exposure $
- Radar chart data
Outputs
- Composite risk score
- RAG tier
- Radar chart
- Mitigation actions
Connects To
ⓘ Composite risk score weights
Weights: Financial Health 15%, Single-Source 20%, Geographic Concentration 12%, Lead-Time Volatility 15%, OTIF 18%, Capacity Headroom 10%, Geopolitical 10%. Contract status adjusts ±5 pts. Score 0–100. Bands: <30 LOW; 30–59 MEDIUM; 60–79 HIGH; ≥80 CRITICAL.
Kraljic quadrant: supply-risk dimension = composite score / 10; spend-impact from direct input. Ref: Kraljic, P. (1983) "Purchasing must become supply management", HBR.
Inputs
- EOL notice date
- Remaining support years
- Annual demand (units/yr)
- On-hand + open PO
- Unit cost + carry rate
- Alternate options
Computation
- LTB_Q = demand × yrs × 1.15
- Carrying cost (avg × rate)
- Alt-qual NPV
- EOL exposure score
Outputs
- LTB recommended Q
- LTB total cost
- NPV comparison
- EOL exposure band
Connects To
ⓘ LTB / DMSMS methodology — formulas & NPV interpretation
LTB quantity: LTB_Q = max(0, ⌈annualDemand × supportYears × 1.15 − onHand − openPO⌉). Safety factor = 1.15 (15% buffer for demand uncertainty + scrap risk).
NPV Option A (LTB Stock): t=0: −LTB_Q × unitCost (buy upfront). t=1…n: −carryingCost_t (average remaining inventory × carryRate × unitCost). End of life: ±scrap value (unused units × unitCost × (1 − scrapRisk) − unused × unitCost × scrapRisk).
NPV Option B (Requalify): t=0: −altQualCost. t=1…n: −demandYr × unitCost × 1.20 (spot premium during qual period) or × 0.90 (qualified alternate at discount) after qualification completes.
Decision rule: Both NPVs are costs (negative). Higher NPV = less negative = lower total cost = better option. If NPV_B > NPV_A → Requalify is cheaper. Ref: DCF: NPV = Σ CF_t / (1+r)^t.
EOL Exposure Score: (installedUnits × criticality × supportYrsRemaining) / max(1, qualifiedAlternates). Bands: <50 LOW; 50–149 MEDIUM; 150–299 HIGH; ≥300 CRITICAL.
Inputs
- Supply risk (1–10)
- Spend / profit impact
- Part criticality
- Contract value ($)
- Supplier market share
Computation
- Quadrant = f(risk, impact)
- Strategy archetype lookup
- Negotiation posture
- Relationship model
Outputs
- Kraljic quadrant
- Sourcing strategy brief
- Negotiation posture
- KPIs to track
Connects To
Inputs
- Base LT + σ (weeks)
- Annual demand + σ
- Current stock on-hand
- Simulation runs (n)
- Target service level
Computation
- 10,000 LT + demand draws
- Demand-during-LT per iter
- Stockout if demand > stock
- P10 / P50 / P90 readiness
Outputs
- P(stockout) %
- Readiness P10/P50/P90
- Tornado chart
- Rec. stock for target SL
Inputs
- X-axis variable
- Y-axis variable
- Target metric
- Resolution (N)
- X/Y range multipliers
Sweep
- N×N grid of (x,y) pairs
- Each cell: recompute metric using current module values + overridden (x,y)
- Identify max/min cell
Heatmap
- Viridis colour ramp
- Cell labels (monospace)
- Axis labels from variable names
Connects To
Viridis colour ramp: dark purple = low metric value, yellow-green = high. Each cell shows the computed metric value.
Methodology — Sensitivity Sweep Algorithm
For each of the N×N grid cells the sweep algorithm: (1) reads current values from the corresponding module inputs (Criticality M1, Stock M3), (2) overrides the X-variable with x_base × lerp(x_min_mult, x_max_mult, i/(N-1)) and similarly for Y, (3) recomputes the chosen metric using the same formulas as the live modules, and (4) normalises the result for colour mapping.
Viridis ramp: perceptually uniform, colour-blind safe. Implemented as a 5-stop linear interpolation through the canonical Viridis control points: #440154 (0%), #31688e (25%), #35b779 (50%), #90d743 (75%), #fde725 (100%).
Most sensitive axis: computed as the variable whose marginal range (max metric along that axis minus min metric along that axis, averaged across the perpendicular axis) is larger. This is a first-order sensitivity index analogous to a one-at-a-time (OAT) sensitivity analysis.
Metric formulas: use the same logic as M1 Criticality (RPN), M3 Optimal Stock (fill rate, total cost, optimal qty), and M4 MEIO (expected backorders, P(stockout)). No new math is introduced.
Inputs
- Installed base (MW)
- Fleet growth %/yr
- Failure rate drift
- Cost inflation %/yr
- Maintenance ratio
- Horizon (3/5/7/10 yr)
- Commodity mix profile
Year-by-Year Projection
- install_base × (1+growth)^Y
- failure_rate × (1+drift)^Y
- unit_cost × (1+inflation)^Y
- 8 commodity classes
Stacked Area Chart
- 8 series (Chart.js)
- Y = $/yr
- X = year index
- Data table below
Connects To
Methodology — 5-Year Spend Projection
For each year Y (0 to horizon): install_base_Y = base × (1+growth/100)^Y; failure_rate_mult_Y = (1+drift/100)^Y; cost_mult_Y = (1+inflation/100)^Y.
For each commodity class c: replacement_Y_c = failureRate_c × install_base_Y × share_c × unitCost_c × cost_mult_Y × failure_rate_mult_Y.
maintenance_Y = replacement_Y × maintenance_ratio/100. Total annual spend: total_Y = replacement_Y + maintenance_Y.
8 commodity classes (failure rates per MW/yr, unit costs at Year 0): Chillers (0.15/MW, $45K), Transformers & Switchgear (0.08/MW, $28K), UPS Systems (0.20/MW, $22K), PDU & Floor Distribution (0.25/MW, $8K), Network (0.40/MW, $4.5K), Mechanical (0.45/MW, $3.5K), Sensors & Controls (0.55/MW, $1.2K), Consumables (2.5/MW, $500).
ⓘ How priority logic works
Status: RED if any critical shortage or >3 late POs; YELLOW if 1–3 late POs or unconfirmed suppliers; GREEN otherwise. Priority: critical shortages → P1; late POs >3 or supply severity ≥4 → P2 for supply workstream; finance/exec ask → P3. Each Follow-Up row is generated from your inputs with a recommended message and consequence. The EOD draft is a status email skeleton populated from your inputs.
ⓘ RAG logic and cadence derivation
Each metric is rated GREEN (meets target), YELLOW (within 10% of target), or RED (fails). Overall RAG = worst of the 4 "critical" dimensions (OTIF, Commit Accuracy, Responsiveness, CA Closure). Review cadence: Critical supplier with any RED → Weekly Operational Review; Preferred supplier or any YELLOW → Monthly Business Review; Tactical/Replaceable with all GREEN → Quarterly Executive Business Review.
ⓘ Leverage & BATNA logic
Leverage strength is auto-derived: volume commitment is Strong if annual spend >$500K; dual-source threat is Strong if alternates >0, Weak if 0; multi-year is Moderate; forecast visibility Moderate; standardisation Moderate. BATNA: 0 alternates + critical/preferred → "Limited BATNA — pivot to non-price terms"; ≥2 alternates + tactical/replaceable → "Credible BATNA — credibly threaten competitive bid". Counterproposal is templated per scenario type and raw-material justification.
ⓘ How requirements are built
All 14 standard MSA/SOW areas (Scope, Pricing, Lead Time, Forecast, Capacity, Delivery/Incoterms, Warranty, Quality, Documentation, EOL Notice, Last-Time-Buy, Change Notice, SLA, Inventory, Termination) are always shown. Rows where you toggled a requirement are highlighted. The "Proposed Contract Language Concept" column shows the plain-English clause intent — a brief to hand to legal, not a legal clause.
ⓘ How the proposal is built
The Problem Statement reframes your text with frequency and annualised impact (frequency multiplied per year). Future-State Process is a step-list (intake → triage → assignment → execution → control → review) tailored to ticked root causes. RACI maps the selected stakeholders to each step. Controls & KPIs are generated from ticked root causes — e.g., "no SLA" → SLA control + SLA-adherence KPI. The 30/60/90 plan is generated from a standard PM-ops template with milestones adapted to the problem.
ⓘ How agendas are generated
The prep brief agenda is auto-generated from the meeting type using the canonical review cadence templates from the master sourcing engine: Supplier Operational Review → PO review, expedite, shortage, commit validation, quality, recovery; Monthly Business Review → KPI trend, cost, lead time, capacity, improvement, contract, upcoming demand; Quarterly Executive Review → strategic alignment, supply roadmap, commercial partnership, long-term capacity, risk & resiliency. The notes template is a live editable structured form — click "Add row" to expand any table.
ⓘ How the plan is generated
Stakeholder map attributes (What They Care About, Communication Style) are drawn from the master PM sourcing engine Module 9 stakeholder registry. Channel and cadence are auto-derived from urgency: Critical/Urgent → phone call + written follow-up same day; Elevated → email + meeting within 48h; Routine → email/async. Message drafts are register-adjusted: executive = concise + decision-oriented; supplier = specific ask + written commitment + deadline; finance = numbers + scenario; legal = risk framing + clause intent.
ⓘ How EOL quantities are computed
LTB quantity: LTB_Q = ceil(installedUnits × failureRate × supportYears × 1.20 − onHand − openPO). Safety multiplier 1.20 covers demand uncertainty and scrap risk. Fleet exposure score: EOL_Score = (installedUnits × criticality × supportYears) / max(1, qualAlts).
Options viability: "Qualify Alternate" shown as viable if alternates > 0 or alt-qual lead time < support years. "LTB Stock" always viable as fallback. "Redesign" viable only if redesign input = Yes. "Refurb / Harvest Pool" viable if criticality ≤ 6 or installed base is large. "Do Nothing" viable only if criticality < 4.
For full NPV comparison of LTB vs Requalify, open the Last-Time-Buy tab (Tab 6) with the same inputs.
ⓘ How interpretations are generated
The solver scans the ask for supply-chain signal words (readiness, inventory, supplier, cost, lead time, EOL, forecast, risk, process, visibility, alternate, expedite, shortage) and maps each to a candidate interpretation from the master PM sourcing engine Module 14 framework. The sharpened problem statement uses the SMART structure: what to improve, from what baseline, to what target, across what scope, by when. The 30/60/90-day plan follows the Discover → Stabilise → Systematise pattern standard for hyperscale PM roles.
ⓘ How the story is built
The builder combines your inputs with competency-specific narrative scaffolding for the selected PM dimension (e.g. Supplier Negotiation → frame the constraint, name your leverage, show the process you built). The register targets hyperscale program management interviews: structured → leads with the headline result, names cross-functional stakeholders, shows the system built (not just the firefight), ends with scale/lesson. Coaching notes are generated per competency based on common interviewer scoring rubrics.
Browse the seed catalog of data-center M&E spare parts — legacy raised-floor through AI-factory liquid-cooled. Loading catalog… (Full DB scales to 100k+ rows — see
data/spares-parts.sqlite.)
| Part ID | Description | OEM | System / Sub | DC Gen | Crit | MTBF (yr) | LT typ (wk) | Cost (typ $) | Lifecycle | EOL risk | #Alts | Use |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading catalog data… | ||||||||||||
| OEM Name | HQ | Market Position | Fin. Health | Typ. Lead (wk) | Typ. OTIF (%) | Single-Source Risk | Contract Models |
|---|---|---|---|---|---|---|---|
| Loading OEM data… | |||||||
SPARES_CATALOG. All charts are dark-mode aware and mobile-safe. Full SQLite scales to 100k+ rows via tools/query-spares-db.py.
| Part ID | Description | System | Subsystem | DC Gen | Crit | EOL Risk | Lifecycle | LT typ (wk) | Cost (typ $) |
|---|---|---|---|---|---|---|---|---|---|
| Loading catalog… | |||||||||
ⓘ How this dashboard is computed
Blind risk proxy: parts where crit ≥ 7 AND eol ≥ 6 AND alts === 0 — high criticality, high EOL risk, no qualified alternate. This is a browser-side approximation of the FMECA definition (high-severity failure mode NOT condition-monitorable).
OEM concentration: for each subsystem, count parts per OEM. Subsystems where top OEM holds >60% flagged as concentration risk.
Lead-time distribution: avg and max ltMax per subsystem, sorted descending.
Lifecycle × DC generation: part counts grouped by lifecycle_status and dc_generation.
Full database queries: tools/query-spares-db.py on data/spares-parts.sqlite.
| Lane | Congestion | Geo | Volatility | Tariff | Composite |
|---|---|---|---|---|---|
| Loading… | |||||
ⓘ Lane risk computation
Composite lane risk = average(congestion, geopolitical, volatility, tariff) — each on a 1–10 scale from SPARES_CATALOG.tradeLanes. Higher = riskier for DC M&E procurement on that route. Sources: Xeneta 2026 · Maersk Winter 2026 · ShipUniverse · SPARES_CATALOG research.
| Part / Description | Subsystem | DC Gen | Crit | LT (wk) | Unit Cost ($) | Units | On-Hand | Rec. SS | Annual Carry $ | Stockout Risk $ | Readiness % | Lifecycle | SC Risk | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Add parts above or load a sample preset to get started. | ||||||||||||||
ⓘ Per-part math — safety stock, readiness, carrying $, stockout risk
Demand rate: λ = units × (1/MTBF_yr). Safety stock: SS = z × σ_LT where σ_LT = √(L/52 × λ) (Poisson approximation: variance = mean for Poisson demand during lead time, σ_LT = √(λ × L/52)).
Recommended stock: recStock = ⌈SS⌉ + ⌈μ_LT⌉ where μ_LT = λ × L/52.
Annual carrying $: carryRate × unitCost × recStock.
Stockout risk: P(stockout) × downtimeCostPerHr × MTTR_hr × units_at_risk. P(stockout) ≈ max(0, (recStock − onHand) / (recStock + 1)) if on-hand < recommended stock, else 0.02 (residual).
Readiness %: min(100, onHand / max(1, recStock) × 100).
EOL exposure: Σ (units × crit × 5) / max(1, alts) (5 = nominal support years proxy; alts from catalog).
Fleet weighted readiness: weighted average of per-part readiness %, weighted by criticality score.
| Framework | What it does | Module | Citation |
|---|---|---|---|
| FMECA (MIL-STD-1629A) | Failure Modes, Effects & Criticality Analysis — computes Criticality Number Cm = β · α · λp · t; assigns Category I/II effect severity → stock decision | 1 · Criticality | Quality-One FMECA guide |
| RCM Criticality Ranking | Reliability-Centered Maintenance — ranks assets by consequence × likelihood × detectability → VITAL / ESSENTIAL / DESIRABLE tiers | 1 · Criticality | rgbwaves.com |
| VED Analysis | Vital / Essential / Desirable — rapid 3-bucket criticality sort for early triage before full FMECA data is available | 1 · Criticality | Supply-chain standard; no single canonical reference |
| ABC-XYZ Matrix | ABC = value/usage Pareto (A=top 70% cost); XYZ = demand variability (X stable, Z erratic) → 9-cell stocking policy matrix | 3 · Optimal Stock | Standard inventory management practice |
| Newsvendor / Critical-Fractile | Finds optimal stock Q* where CR = Cu/(Cu+Co) = P(D ≤ Q*). For DC spares Cu ≫ Co → stock generously. | 3 · Optimal Stock | Sherbrooke 1985 (INFORMS) |
| Fill-Rate Safety Stock | SS = z(FR) × σLT where σLT = √(L·σD² + μD²·σL²) — combines demand and lead-time variability | 3 · Optimal Stock | Silver, Pyke & Thomas: Inventory and Production Management |
| Poisson / Compound-Poisson | Demand model for slow-moving critical spares (λ = installed base × AFR). P(stockout at S) from Poisson CDF — more accurate than Normal for <5 units/yr demand | 3 · Optimal Stock | Sherbrooke 1985 |
| METRIC (Sherbrooke 1968) | Multi-Echelon Technique for Recoverable Item Control — minimises expected backorders across sites + depot for a given budget | 4 · Hub Positioning | UMD DRUM review |
| VARI-METRIC (Slay 1984) | Adds variance correction to METRIC → within 1% of optimal vs ~11% for base METRIC; supports multi-echelon repairable item planning at scale | 4 · Hub Positioning | Scialert ITJ 2014 |
| MEIO | Multi-Echelon Inventory Optimisation — generalises METRIC/VARI-METRIC to full network: multiple products, echelons, fill-rate and budget constraints simultaneously | 4 · Hub Positioning | Umbrex MEIO |
| Supplier Risk Index | Composite 0–100 score: Financial 15%, Single-Source 20%, Geo Concentration 12%, LT Volatility 15%, OTIF 18%, Capacity 10%, Geopolitical 10%. Bands: LOW/MEDIUM/HIGH/CRITICAL | 5 · Supplier Risk | Adapted from procurement risk literature; weights configurable |
| Kraljic Matrix | Supply risk × profit/spend impact → Strategic / Bottleneck / Leverage / Non-Critical quadrants → per-quadrant sourcing strategy | 5, 7 · Supplier Risk, Kraljic | Kraljic, P. (1983) "Purchasing must become supply management", HBR |
| DMSMS | Diminishing Manufacturing Sources & Material Shortages — monitors lifecycle: Active → NRND → Last-Time-Buy → Obsolete; triggers proactive EOL action | 6 · Last-Time-Buy | Wikipedia DMSMS |
| Last-Time-Buy (LTB) | LTB_Q = max(0, ⌈annualDemand × supportYrs × 1.15 − onHand − openPO⌉). NPV comparison: Option A (buy-stock) vs Option B (requalify alternate) via DCF | 6 · Last-Time-Buy | Lifetime buy estimations (UMD) |
| Monte-Carlo Simulation | 1,000+ scenarios with variable lead time, demand, supplier reliability → P(stockout), P10/P50/P90 readiness, expected downtime cost, tornado chart of variance drivers | 8 · Monte-Carlo | Box-Muller normal variate; standard Monte-Carlo methodology |
tradeLanes + transportModes reference data.
| Mode | Days | Est. Freight $ | CO₂ Rel. | Feasibility | Badge |
|---|---|---|---|---|---|
| Select inputs to compute. | |||||
ⓘ How freight cost is estimated
Base ocean-FCL rate: $1.20/kg. Other modes scale by catalog costIndex: ocean-LCL ×1.6, air-standard ×12, air-express ×25, road ×3, rail ×2, courier ×18.
Door-to-door days = mode transit + customsD (scaled by destination country customs-efficiency) + lastMileD. Reroute adds +12 d to ocean options.
CO₂ relative bar: proportional to co2Index (ocean-FCL = 1.0 baseline; air-express = 22×).
Estimates are illustrative. Actual rates vary by carrier, season, volume, and congestion. Source: SPARES_CATALOG transport & lane data · Incoterms 2020 (ICC).
| Cost/Risk Element | Seller Bears? | Buyer Bears? | Risk Transfer Point |
|---|
- Configure inputs to see mitigations.
ⓘ Score weighting methodology
Weights: Single-source 22% · Country geo-risk 15% · Lane congestion 12% · Lane geo/political 12% · LT pressure vs need-window 15% · Tariff exposure 12% · Supplier OTIF 12%. Hub coverage reduces the effective lane congestion + LT-pressure contribution by 60% (partial) or 85% (full hub/VMI).
Bands: LOW <25 · MEDIUM 25–50 · HIGH 50–75 · CRITICAL >75.
Sources: SPARES_CATALOG.countryRisk (World Bank LPI) · tradeLanes congestion/geo/volatility/tariff · 2026 tariff research synthesis.
ⓘ Simulation methodology
Monte-Carlo (1,000 iterations): each iteration samples (1) lead-time draw from N(lt_base, lt_sigma) using Box-Muller (same as Module 8); (2) Bernoulli tariff shock; (3) Bernoulli commit slip; (4) Bernoulli reroute (+12 d ocean = +1.7 wk); (5) Bernoulli demand spike (compresses effective need window).
Recovery logic: if effective LT > need window, compute air-freight expedite cost ($1.20/kg × 12 × weight × tariff_multiplier). If no expedite possible (emergency urgency), count as downtime event (downtime_cost × (LT_overrun weeks × 168 hr/wk)).
Hub toggle: 70% probability in each iteration that hub stock is available (LT → 1 wk). Dual-source: commit_slip_prob /= 2, slip_mag × 0.6. Safety stock: effective_need_window += safety_stock_wks.
Tornado chart: each disruption driver is individually held at mean while varying ±1σ; variance contribution measured as range of P50 outcome. Sources: Box-Muller transform · Incoterms 2020 · SPARES_CATALOG lane data.
ⓘ Recovery option cost methodology
Air-freight (full): weight × $1.20/kg × 12 (air-standard costIndex). Door-to-door = lane airD + customsD + lastMileD days.
Air-freight (sub-assembly): assumes 30% of weight = critical sub-assembly; air cost × 0.3; ocean for the rest.
Alternate plant: requires alts > 0. Re-source premium 15% of unit cost + air-freight. Lead time = air days + 2-week qualification check.
Pull from hub: near-zero lead time (hub→site road ≈ 3 days). Cost = 5% × unit cost × months in hub (proxy for consignment holding fee).
Qualify substitute: only if alts === 0. Cost $50K (small board/kit) to $150K (major equipment) depending on weight. Lead time 12–24 weeks.
Baseline (accept downtime): downtime_$ = crit/10 × downtime_cost × gap_hours (gap weeks × 168 hr/wk).
Sources: Incoterms 2020 · SPARES_CATALOG lane/mode data · 2026 freight rate research.