Technical approach
Explainable detection, not a black box.
1. Cleaning and validation
Imports reject unknown stations, unsupported parameters, wrong units, physically implausible values, invalid or future timestamps and duplicate readings — with the line number and reason.
2. Robust baseline
For each station and parameter, a trailing 48-reading window gives a median and median absolute deviation (MAD). The robust z-score is the distance from that median in scaled MAD units — insensitive to the very outliers we are looking for.
3. Isolation Forest
100 random trees (seeded, 256-point subsamples) score each reading on value, rate of change and deviation from the rolling median. Readings that isolate quickly score high.
4. Agreement rule
A reading is flagged only when |robust z| ≥ 3.5 and the isolation score ≥ 0.6. Series with fewer than 30 readings are not scored. Thresholds are adjustable per run and stored with the model version.
5. Forecasting
Forecasting is not enabled. It will only be offered once enough validated history exists to evaluate it honestly.