Delay analytics
Delay analytics · ' . esc_html($d['country']) . '
How the delays moved.
The day-by-day record this board has published, read against the live window — one metric, stated plainly, with its coverage window attached.
Live window
Updated 01:52
Snapshot age 2 minutes
42.2%
7-day mean on time
vs 60s rule
39.6%
30-day mean on time
Recorded days
+2.6pp
7-day vs 30-day
Improving
320.0s
Mean delay, live window
Rolling
Day by day
On time % · last 16 recorded days2026-09-2548.1%
2026-09-2740.0%
2026-09-2838.8%
2026-09-2939.2%
2026-09-3034.0%
2026-10-0139.2%
2026-10-0232.7%
2026-10-0336.7%
2026-10-0428.6%
2026-10-0541.7%
2026-10-0630.0%
2026-10-0730.6%
2026-10-0840.0%
2026-10-0942.0%
2026-10-1069.2%
2026-10-1142.1%
Day-by-day record · not an official statistic.
Live window
Where the delays are right now
On Time (≤60s)8
Minor (1–5m)8
Moderate (5–10m)0
Major (>10m)2
Worst routes in the window
Media/Wawa2 stops sampled
0.0%
avg 1,200s · max 2,280s
Lansdale/Doylestown3 stops sampled
0.0%
avg 700s · max 1,680s
Paoli/Thorndale3 stops sampled
33.3%
avg 140s · max 180s
West Trenton2 stops sampled
50.0%
avg 180s · max 300s
Manayunk/Norristown2 stops sampled
50.0%
avg 150s · max 240s
Worst stations in the window
Swarthmore1 stop sampled
0.0%
avg 2,280s · max 2,280s
Doylestown1 stop sampled
0.0%
avg 1,680s · max 1,680s
Meadowbrook1 stop sampled
0.0%
avg 300s · max 300s
Spring Mill1 stop sampled
0.0%
avg 240s · max 240s
Colmar1 stop sampled
0.0%
avg 240s · max 240s
History source
This hub's own daily per-board record (one sample per UTC day, 400-day cap) built from the board's endpoint.
Live source
Data: SEPTA Open Data TrainView
Averages
7-day and 30-day means appear once two or more days are on record; a single day is never shown as a trend.
Not an official operator statistic. Read alongside the board at ' . esc_html(Hub_Board::board_url($d['card'])) . '