MC Node Stats — Field Reference and Formulas
This page documents the Monte Carlo (MC) node statistics returned by the engine and surfaced in the UI, including the root node’s advanced statistics. It mirrors the canonical engineering reference at docs/engines/mc/node_stats.md and is kept user‑focused and up to date with the implementation.
For developer‑oriented details, see: docs/engines/mc/node_stats.md
Terminology
- Run: One Monte Carlo trajectory simulated over
sim_timehours. - Availability mode (Repair ON): Components can repair; the metric is time‑average availability.
- Reliability mode (Repair OFF): No repairs; the metric is reliability R(T).
- N = completed runs, T = sim_time (hours), total_time = N × T.
Per‑Node Stats (result.nodes[])
- downtime (h): Total effective downtime across runs. Each outage is accumulated; end‑of‑run adds the remaining partial downtime
(T − start). - failures (events): Count of intrinsic self‑failures, ignoring dependency‑induced down states.
- effective_failures (events): Count of effective outage intervals across runs.
- reliable_runs: Runs with zero effective downtime. (Alias: zero_downtime_runs)
- no_intrinsic_fail_runs: Runs with zero intrinsic failures.
- effective_outage_runs: Runs with any effective outage.
Rates / probabilities
- failure_rate (1/h): Intrinsic rate = 1 / intrinsic_mttf if configured, else empirical failures / total_time.
- effective_failure_rate (1/h): effective_failures / (total_time − downtime); equals 1 / mttf_effective when failures > 0.
- reliability: reliable_runs / N. In Repair OFF this is R(T).
- intrinsic_reliability: no_intrinsic_fail_runs / N.
- effective_outage_run_ratio: effective_outage_runs / N.
Effective MTTF / MTTR (derived)
- mttf_effective (h): (total_time − downtime) / effective_failures (None if 0).
- mttr_effective (h): downtime / effective_failures (None if 0).
Intrinsic parameters
- intrinsic_mttf (h), intrinsic_mttr (h), intrinsic_availability_param = mttf / (mttf + mttr) when both present.
Availability (effective)
- Repair ON: 1 − downtime / (N × T)
- Repair OFF: equals reliability (R(T)).
UI note: Failure rates are shown in 1/h and “/year” (× 8760) for convenience.
Root Advanced Stats (result.root_stats)
Availability summary
- Per‑run availabilities: root_avail_runs
- mean, stdev, min, max, p5/p25/p50/p75/p90/p95/p99, cv, skew, kurtosis
- ci95, ci99: mean ± z × stdev / sqrt(N) (z=1.96, 2.58)
Breach and downtime
- Availability Breach Probability: count(av < target) / N
- RTO Breach Probability: fraction of runs with any outage > RTO
- Expected Downtime: (1 − mean_av) × 8760 × 60 min/year
TTF (Time to Failure) - Repair ON: TTF = TBF (time between failures). Events are completed uptime intervals; last partial interval per run is censored. - Repair OFF: TTF = time to first failure; runs with no failure censored at T.
Representations
1) Sample summary (ttf): count, mean, stdev, min, max, p5/p25/p50/p75/p90/p95/p99, cv, skew, kurtosis, histogram (events only; mean excludes censored tails).
2) Survival (ttf_km): Kaplan–Meier with arrays times, survival, quantiles (p50/p90/p95/p99 or None), rmst (∫S(t)dt to T), events, censored.
TTR (Time to Repair) - Events are completed outage durations; outages still down at the horizon are censored.
Representations
1) Sample summary (ttr): count, mean, stdev, min, max, p5/p25/p50/p75/p90/p95/p99, cv, skew, kurtosis, histogram.
2) Survival (ttr_km): Kaplan–Meier with times, survival, quantiles, rmst, s_at_rto = S(RTO) = P(TTR > RTO), events, censored.
Quality (root_stats.quality)
- k_ttf = T / mttf_effective (coverage for TTF); k_ttr = T / mttr_effective (coverage for TTR)
- TTF/TTR: grade from E (events), C% (censored), k. Thresholds:
- Events: High ≥ 200; Medium 50–199; Low < 50
- Censoring: High ≤ 30%; Medium 30–60%; Low > 60%
- Coverage k: High ≥ 3; Medium 1–<3; Low < 1
- Overall: any Low → Low; all High → High; otherwise Medium
- RTO: Event‑level quality reuses TTR quality; per‑run breach quality uses runs only (no k).
- Availability: per‑run quality uses runs only (no k).
Relationships & sanity checks
- effective_failure_rate ≈ 1 / mttf_effective (when failures > 0)
- In Repair ON, availability ≈ mttf_effective / (mttf_effective + mttr_effective) for long horizons
- In Repair OFF, reliability = reliable_runs / N
- P(run breach) > S(RTO) with multiple outages per run; approx 1 − exp(−k × S(RTO)).
Horizon & censoring
- Short T biases TTF/TTR means low (right‑censoring). Prefer KM quantiles/RMST.
- Increase T until k_ttf and k_ttr reach High for stable quantiles.
Precision (UI) - Availability/Reliability: 5 decimals; failure rates 1/h: 5 decimals; “/year”: 2 decimals - TTF/TTR: 2 decimals (hours) - Percentages: dynamic precision (≥10%: 1 dp; 1–10%: 2 dp; 0.1–1%: 3 dp; <0.1%: 4 dp)