The confusion matrix
The same model and the same 99.18% accuracy, broken out by class — and beside it the same asset modelled honestly, which is where the number the brief warns about actually appears.
Already the headline has slipped: 64.3% of failure windows caught, from a model advertised at 99.18%. 97.89% of that accuracy is the model correctly saying "normal" — the easy part, on a machine that is running normally almost all of the time.
This is the same asset with the leakage removed and the split ordered in time — the version that would be deployed. It still reports 93.05% accuracy. It catches nothing.
Why this happens, arithmetically
Failure windows are 2.66% of the data. A model that predicts "normal" for every window scores 97.34% without learning anything at all. Every model in this demonstration is competing against that floor, and accuracy measures the distance from zero rather than the distance from the floor.
Computed by scripts/build_models.py in 86.4s at 2026-08-09T19:08:15+00:00 · scikit-learn 1.6.1 · seed 20260809 · source: MetroPT-3 (Air Production Unit of a Metro do Porto train), CC BY 4.0, DOI 10.24432/C5VW3R. Nothing on this page is hardcoded.