This is the rigorous follow-up to Fleet-Scale Root-Cause Analysis. That post built the logic of diagnosing a population — de-mix the mixture, let the cohort boundary name the cause, decide a campaign. But its rates and splits were illustrative round numbers, and it left several honest questions unanswered. This post answers them, with numbers you can reproduce.

Four questions drive it. Is the split real, or could that clean-looking cohort boundary be noise? Did I fool myself by scanning a dozen attributes until one looked significant? Can I catch the next cluster early, while it is fifty cars instead of five thousand? And did the fix actually work once the campaign shipped? Along the way we sharpen the soft spots — how many clusters there really are, what to do when the boundary is a gradient rather than a crisp rule, how to turn a hand-wavy forecast into a real survival curve, and how to avoid the most embarrassing fleet mistake of all: launching a recall against a fault that never existed.

We keep the running scenario from the previous post — a fleet of 6,000 EVs throwing one charging code, hiding two causes.

What it covers

Twelve sections, about twenty-four minutes, in plain language with the arithmetic shown.

Part A · Is it real?

§ 2 — Is the split real? Confidence intervals on prevalence, a chi-square test for a cohort split, and the Mantel–Haenszel stratified rate — worked out on the numbers.

§ 3 — The multiple-comparisons trap. Why scanning many attributes for the best split manufactures false positives, and how Bonferroni/FDR and honest power close it.

Part B · Better structure

§ 4 — How many clusters, really? Choosing the number of sub-populations with BIC, soft assignment, and a noise tail — instead of splitting by eye.

§ 5 — When the boundary is a gradient. Logistic risk-scoring when risk rises smoothly, and interactions when two factors are only harmful together.

Part C · From snapshot to stream

§ 6 — Catch it early. Control charts and CUSUM on emerging code rates — the live-monitoring complement to the onset curve.

§ 7 — A real forecast. Weibull hazards, censoring, infant-mortality vs. wear-out, and B10 life — making the projection mean something.

Part D · Decide and close the loop

§ 8 — The remediation decision, quantified. Prevented-loss vs. campaign-cost, urgency from the forecast slope, and the mandatory-recall threshold.

§ 9 — Verify the fix. Watching prevalence bend down after the campaign — the fleet-scale kill-switch.

§ 10 — Phantom fleet patterns. When a bad over-the-air update lights one code fleet-wide with no real fault — the lying sensor, scaled to a population.

§ 11 — Practical notes. Field rules for rigorous fleet diagnosis.

§ 12 — References & further reading. Statistics, reliability, and surveillance, with pointers.

Read it

Open the monograph →

The monograph lives at its own URL in the warm-paper layout of the series, with worked confidence-interval and chi-square boxes, a multiple-comparisons figure, a BIC curve, a CUSUM surveillance chart, a Weibull hazard (bathtub) curve, a remediation cost-decision figure, a before/after verification curve, a phantom-vs-real panel, three algorithms, practical notes, and references.

Where it sits

The diagnosis series, in order:

I · The core method

  1. Root-Cause Analysis Under Uncertain, Heterogeneous Evidence
  2. When Is the Evidence Enough?
  3. Harder Cases in Diagnosis

II · At fleet scale

  1. Fleet-Scale Root-Cause Analysis
  2. Fleet RCA, Made Rigorous(this post)

III · Proof, foundations & prevention

  1. Proving Cause with Experiments
  2. Diagnosis on the Vehicle
  3. The Data Plumbing Behind Fleet Diagnosis
  4. From Root Cause to No Cause

Full map: The Diagnosis Series index.


← Back to Autonomy