How It Works

← Back to G train

Data sources

Two sources, stitched together.

Socrata (historical)

MTA Open Data has every service alert since April 2020. 8,400+ for the G alone. Problem is the MTA publishes monthly, so it typically runs 4-8 weeks behind.

GTFS-RT (live)

A server polls the MTA's real-time feed every two minutes and persists alerts to disk. Your browser also pushes any alerts it sees directly to the server. Once Socrata catches up, it takes over.

The merge

Everything on this site pulls from all three sources combined: Socrata for history, persisted alerts for the recent gap, and the live feed for right now. Days past the last known record show as "no data" instead of being assumed good.

Reading the numbers

Uptime

Percentage of days in each category. A day is "good" only with zero alerts. When alerts overlap, worst one wins.

Service score

Were trains actually running? Delays still count as running. Only suspensions and planned work count against the score. The G gets a lot of planned work, which is why its score looks worse than the A or L.

Streak

Consecutive days without a suspension or delay. Planned work counts as running. A suspension or delay resets it.

Alert counts

One day can have multiple alerts (morning delay, evening planned work), so alert counts are higher than day counts.