(sorry this isn’t interactive — I really need to stop making these posts on Medium)

So what does this tell us? A few things. For one, the biggest beneficiaries of this aren’t actually people who travel on the 7 train. Instead, it’s people travelling on the 4/5/6, who currently have to switch between the train and cross-town bus at 33rd St. Once the extension opens, transferring between the two trains at Grand Central will result in a trip that’s up to ten minutes faster. Similarly, Astoria gets a boost by virtue of being able to transfer between the N/R and the 7 at Queensboro Plaza, rather than jumping on that same M34 bus through Herald Square.

It’s also interesting to see which areas don’t benefit — it’s chiefly those that already have a no-transfer journey to Penn Station (from where it would be quicker to walk than transfer to the 7) and the Lower East Side, where the 2nd Avenue select bus and F train still provide a quicker connection than the 7 would.

There is one thing it doesn’t tell us, though: what could have been. Original plans for the 7 train extension had a station at 41st Street and 10th Avenue, but it was later removed for budgetary reasons. The good news is that we can apply the same principle we used here to study the impact that station might have had to the people living around it. Or examine the proposed AirTrain extension to La Guardia. Or the PATH train to Newark Airport. Or… you get the idea. More to come soon.

How I did it

I figured I’d keep the details of how this analysis was done out of the main post to save boring everyone to death, but if you’re interested: read on.

The MTA makes its subway and bus timetable data available in a format called GTFS, which is basically a collection of comma delimited text files. That means two things:

It’s quite easy to edit. All I needed to do was take those CSV files and load them up into a database in order to run some inserts and updates to alter the timetables en masse.

All I needed to do was take those CSV files and load them up into a database in order to run some inserts and updates to alter the timetables en masse. It’s easy to process. OpenTripPlanner is essentially an open-source version of Google Maps, which consumes GTFS data and allows you to plan transit journeys from A to B. But it also has an analyst mode allowing you to run thousands of trip plans at once and get the kind of aggregate data I then used to create the map.

I looked at the time it takes the 7 train to get between Bryant Park and Times Square (according to the timetable, exactly 90 seconds, which, hmm), then applied that speed to the track distance between Times Square and the 34th St — Hudson Yards station. A few table inserts later, every 7 train was continuing on to its new terminus station.

Once I’d plugged that amended timetable into OTP (and a huge thanks to Kevin Webb and Matt Conway at Conveyal for helping me set it up), I had a PostGIS table matching up my hexagons with the travel time differences. Then all I needed to do was load it up into QGIS to see what it actually looked like.