This is Case 1 of a five-part series of worked root-cause analyses, each in a different failure family. Together they trace the diagnostics-and-prognostics method as it is actually practiced in vehicle health monitoring — not as a textbook flowchart, but as a discipline of abduction (inference to the best explanation) under the pressure of incomplete data and physical constraints. The five cases are paired with the agentic framework that automates this method, and a worked walkthrough of the framework running on this very battery case.
The battery case is first because it’s the most familiar terrain — everyone working in EVs has had a version of this conversation. A subpopulation of vehicles in the fleet is losing battery state-of-health faster than the model predicts. The statistics seize on a “convincing impostor” — a feature that correlates beautifully with the degradation but is not the cause. The investigation has to get past that correlation, find the real lesion (a firmware balancing bug in a specific cell-pack revision), and then forecast forward — what’s the remaining useful life of vehicles still on that firmware, and what does the trajectory look like after the OTA fix lands.
It is the natural companion to the Optimal Control and Adaptive Control field guides on this site — those documents cover the controllers that run on the battery; this one covers the diagnostic layer that watches them.
What it covers
Twelve sections, about twenty-two minutes of careful reading.
§ 1–2 — The alarm and the anomaly. A subpopulation deteriorates. The signal that wakes the analyst up. The naïve regressions that look like the answer but aren’t.
§ 3–4 — The impostor. The convincing correlation that the entire room initially believed. Why it’s wrong. The partial-correlation test that breaks it.
§ 5–6 — Abduction and the physics gate. Generating hypotheses honestly. The discipline of letting physics referee. The battery-aging model used as the simulator-of-record.
§ 7–8 — The lesion identified. Walking the data from the suspected firmware bug back through to the cell-balancing algorithm. The smoking gun in the telemetry.
§ 9–10 — Prognosis & forecast. What happens to the affected vehicles if the firmware is fixed today, in three months, in a year. The RUL curves with and without intervention.
§ 11–12 — Lessons & method. What this case teaches about the general method of diagnostics. The traps that catch every analyst at least once. The principles that survive being applied to the four other failure families in the series.
Read it
The case study lives at its own URL with a warm-paper editorial layout — rust accent, teal supporting accent, slate for neutral text. All figures computed from a simulated 240-vehicle fleet with a known ground truth so the analysis can grade its own detective work.
Code & data
↓ battery-rca-code-and-data.zip — the Python generator (battery_rca.py), the simulated 240-vehicle fleet (fleet.csv), and a README. Reproducible from a single command.
The full series
This is Case 1 of 5. The full reading order:
- The Anatomy of a Root Cause — (this post) — software / firmware
- Preconditioning-Mode NVH — electromagnetic / structural
- Module Weld Resistance — tooling / manufacturing
- HV Isolation Faults — environmental (condensation)
- Brake Rotor Corrosion — usage / behavior
Followed by the framework that automates this method: A Human-Gated Agentic Framework for RCA & Prognostics, with a worked walkthrough running it on this very case.
← Back to Autonomy