Introducing: Dynamic Route Maps!

goodservice.io is first in providing real-time subway route maps, and an easier way to view where delays, slow zones and service gaps are happening.

Sunny Ng
Good Service

--

Dynamic route maps of Q, L and 2 trains overnight, respectively, generated with real-time schedule data. The available transfers for each station are also dependent on real-time data and reflect on late-night train services.

Anybody who has taken the New York City subway outside of weekday hours knows that its system map never gives you the whole story on how to ride it. Poor clueless tourists learn it the hard way, when they wait for a B train that is not going to show up at 81 St–Museum of Natural History on a weekend.

And that is just when the subway is running according to schedule. When planned service changes occur overnight and on weekends, to allow for track work, or when service disruptions are causing trains to re-route to get back on schedule—literally anything goes.

Good luck trying to read through Planned Service Changes notices before going out on weekends (left; via Reddit), and then good luck on trying to understand them (right; via Imgur).

Sure, you can try to decipher the weekly Service Changes bulletin board posted at every subway station, or go to MTA’s own Weekender website to read about them, but it’s still difficult to figure out how to travel from a wall of text. The website Subway Weekender does a great job with publishing custom-drawn PDF maps of service changes for the upcoming week’s nights and weekend, but they’re not automated and not up-to-the-minute. It doesn’t necessarily help us if we want to know: has the A train started running local yet? With the current L project, has the M train stopped running into Queens and started running to the Upper East Side instead?

Other transit apps do not generate route maps dynamically and are unable to show service changes or different stop patterns throughout the day (left to right: MYmta, Citymapper, Transit).

None of the other transit map apps have done this before. But look no further! goodservice.io now provides real-time individual route maps for every subway train in the New York City subway system.

Late night routing for N train this week shows that uptown trains are stopping in Lower Manhattan, while downtown trains bypasses those stops via Manhattan Bridge and stopping at Canal St only (left). The A train ran in two sections overnight last week: from Inwood–207 St to Jay St–MetroTech and from Utica Av to Far Rockaway–Mott Av (right).

How it works

In a previous blog post, I went in-depth on how goodservice.io uses MTA’s real-time transit data in standardized GTFS-RT format to derive train frequency data and in a later blog post, I discussed how I used the same data to detect train delays. While I was working with the data, I noticed that the data lists all upcoming stops for each active train. What was even more fascinating was that these lists incorporate planned service changes and in many cases, temporary re-routes too. For this feature, I wrote code that would aggregate and stitch all active trips’ upcoming stops together to come up with a general stop pattern for each route. Additional fancy algorithms were used to calculate if/when trains converge or diverge, regardless if it is part of the train’s normal schedule (A to Lefferts Blvd or Far Rockaway) or if it is a situation where trains are being re-routed around service disruptions (R trains running via 63 St or 53 St).

A very typical routing for the A train (left) and a not-so-typical routing of the R train during a disruption yesterday (middle and right).

Service Issues Overlays

One of the common complaints I’ve been getting with previous iterations of goodservice.io is that the information and interface aren’t very accessible to general riders: if you’re not a huge subway nerd, you may not understand what it means when there’s a delay on 6 Avenue Local. Since these dynamic route maps give us a way to visualize how trains are run, it provided the perfect opportunity to incorporate goodservice.io’s existing data with route maps to visually highlight where issues are happening.

Click on a highlighted area to see what issue(s) are affecting that part of the route.

goodservice.io is an open-source project to provide New York City subway riders a more detailed and up-to-date status page using public APIs. Contributions are welcome on GitHub. Feedback can be directed to @_blahblahblah or @goodservice_io on Twitter.

--

--