Anomaly Detection

Real records flagged by the ingestion-layer detector (statistical z-score + IsolationForest ML, per source). Suspicious records are tagged here, not dropped, so downstream systems can distinguish a real operational event from a data-quality issue.

Total Data Points

NSW1, last 7 days

Anomalies Detected

in selected period

High Severity

in selected period

Normal Points

in selected period

Detection Model

Statistical + ML

No detections yet

Anomaly Overview

Loading real demand data…

Statistical

0

Per-batch z-score against each column's own mean/std within the current fetch.

ML (IsolationForest)

0

Per-source IsolationForest over numeric columns. Catches multivariate outliers the statistical check misses.

Hybrid

0

Both statistical AND ML flagged the same row. Highest confidence.

Anomalies detected per day (last 7, real)

Loading…

Showing 0 of 0 real anomalies

Detected Anomalies

Page 1 of 1
DetectedRegionSeverityMethodScoreStatus
No anomalies match the current filters.
Showing 0 of 0 real anomalies

Select a row to see its detail.

How the detector works

1. Statistical layer

Each ingested record is checked for statistical (z-score) outliers against its own column's mean/std within the current batch. Failures land on this page tagged statistical.

2. ML layer

A per-source IsolationForest (scikit-learn) scores each record across its own numeric columns. Records above the anomaly threshold are flagged, tagged ml.

3. Hybrid agreement

When both the statistical check and the ML model flag the same row, it's marked hybrid — the highest-confidence class.

4. Disposition

Flagged records are never dropped — they are tagged with anomaly metadata and continue through the pipeline. Admins acknowledge, mark resolved, or mark as false-positive (e.g. a real, planned operational event).

A third, rule-based layer (out-of-range bounds, missing-value flagging) ran until 2026-08-12, when it was retired — it accounted for the large majority of flagged rows, most of them structurally expected rather than anomalous. Rows it already flagged are still real and still shown here, tagged rule — nothing new lands in that bucket going forward.