Where is the New York subway running abnormally — right now?

Eight live MTA GTFS-Realtime feeds land every ~30 seconds. An online (streaming) model learns each station’s normal train spacing as the data arrives and flags the gaps that stop fitting — no labels, no offline training run, no API key.

Code: NYC-Subway-Anomaly-Detection · River PARegressor + HalfSpaceTrees + ADWIN drift reset, scored on CPU.

Measured on the frozen labelled replay (216 rows, 16 labelled, 3 incidents, 6 stations — small by design): recall@20 1.00 vs 0.625 for the best of three baselines, 3/3 incidents caught, 6.7 min average lead time — at the highest false-alarm rate of the four (0.030 vs 0.000–0.010). Full table below.

connecting…
stations scored
rows scored
anomalies ≥ 0.60
critical ≥ 0.85
newest data
lines
0.00.60 alert0.851.0 station with no score in this window

Highest scores in window

Loading live scores…

    Pipeline

    Checking…

    Incident replay — the model against three baselines, step by step

    online model (River) rolling z-score EWMA fixed threshold labelled incident window alert threshold 0.60

    Replay evaluation — every number below comes from the frozen artifact

    modelfalse-alarm ratep@20recall@20 incidents foundavg lead (min)avg time-to-detect (min)MRR