Skip to content
NYCSubMap

About NYCSubMap

Where the data comes from, how the planner works, and what it cannot tell you.

We are not the MTA

NYCSubMap is an independent site. It is not affiliated with, endorsed by, or licensed by the Metropolitan Transportation Authority. We use their public data feeds, which they make freely available to developers, and nothing else of theirs — not their map, not their logo, not their route symbols. The map on this site is our own drawing, generated from station coordinates.

Where the numbers come from

Everything you see is derived from the MTA's published GTFS feed — the same timetable data the agency releases for anyone to build on. From it we take 444 stations, 29 services, and the scheduled running time between every pair of adjacent stations on every line.

For each of those pairs we keep the median scheduled time rather than the average. A handful of overnight trips that crawl past track work would drag an average well past what you would actually experience; the median tells you about the ordinary trip.

Waiting time is estimated as half the typical gap between trains on that line at that hour, counted from the weekday schedule. Transfer time between platforms is the MTA's own figure from the feed, plus a fixed allowance for the nuisance of changing at all — which is why the planner will not send you through three changes to save ninety seconds.

What this is not

Service alerts

We poll the MTA's public service-alert feed and relay what it says. It can lag what is happening on the platform by a few minutes, and it will not tell you when a problem will be fixed — neither will we, because we do not know.

If you save a route, we match incoming alerts against the specific lines and stations that route uses, not just the endpoints. An alert about three stations in Canarsie does not email somebody who only rides the L between 1 Av and 8 Av. We would rather miss an edge case than train you to ignore us.

How this is paid for

Advertising. There are ad slots on this site, every one of them labelled. There is deliberately no ad between the steps of a journey: if you are reading “change at Jay St-MetroTech” while standing on a platform, an advertisement does not belong between step two and step three.

Found something wrong?

Travel times that are badly off, a transfer we have missed, a station in the wrong place — tell us. The underlying data is the MTA's, but how we read it is ours, and that is the part we can fix.