What is Good Service?

Sunny Ng
Good Service
Published in
4 min readSep 16, 2018

As someone who has been living in New York for the last six years, my life has become dependent on the subway system. Recently, as the service of the subway has become more and more inconsistent, many New Yorkers have resorted to leaving early to hopefully get to where they need to get to, on time. A common phrase I’ve started to hear has been, “I’m going to leave early to give myself more time for the trains.”

If a train runs every 8 minutes, then theoretically, if you leave 8 minutes early, you shouldn’t be late.

But how much earlier should one leave? If subway service is running well, then train frequency (i.e. amount of time between each train) should be even and predictable. If a train runs every 8 minutes, then theoretically, if you leave 8 minutes early, you shouldn’t be late. But as many New Yorkers can attest, this may not necessarily be true. Yes, many of us have used MTA’s website to figure out if a delay has occured. Unfortunately, sometimes delays take a while to be reported and other times service gaps may not be considered severe enough to be reported as a delay. It’s making a lot of us question, what exactly is Good Service?

When the MTA finally finished installing countdown clocks on B Division lines (i.e. the lettered lines)this past New Years’ Eve, many apps started incorporating the live arrival data in their trip-planning features. This is great, since the New York City subway’s on-time performance is around 65 percent, so following their static schedule data is pretty useless. But those apps are only useful if you are leaving for your destination right away. When you are not taking the exact trains an app is suggesting, it’s useful to know if there are service gaps. Let’s say you missed the next train, you now know how long is the wait for the next train.

This is where goodservice.io comes in

Instead of relying on the MTA to manually notify us about disruption in service, why not use the public data they provide to proactively check service quality against their static scheduled data?

We can see from here where the R train is running (relatively) well, and where it is definitely not.

The goodservice.io website calculates the predicted time gap between each train on each route, to get the maximum wait on each route in the next hour and compares the same calculation with the static schedules. If the difference between the two is 3 minutes or more, then we don’t believe the service is good on that route. I decided to only show the maximum wait time, instead of minimum or average, because usually people only care about how late they may be.

Looks like F train is running local in Queens, via the Q on Broadway, and then does a fun switcheroo with the D train in Brooklyn to Coney Island this weekend. Oh God, did anyone actually remember that?

Drilling down into this information, we can see where the service gap exists on any route, and in which direction. This is important to know, as some routes are long. The A train, for instance, has a scheduled run time of up to 98 minutes each way! A delay on one end of the route may not affect another part. The side affect of this, is we can actually see late night and weekend service changes using the same information.

If you’re just travelling uptown or downtown on Broadway, you can take the N, Q, R or even the re-routed F.

In addition to viewing service by train, we can also view by the physical line. This view allows us to view the aggregated maximum wait between each train on a physical line regardless of their routes. This is useful when you’re trying to go in a general direction and you have multiple options on which route to take. (Also, as a transit nerd, I love that the MTA still maintains the use of line names on its signage and schedules even if recent transplants don’t know them and still think it’s okay to refer to subway routes by their colors.)

Thanks for reading this blog post, please check out the web app at https://www.goodservice.io! If you have any feedback or found any bugs, feel free to hit me up on Twitter at @_blahblahblah.

Note: Since this site uses live data feeds provided by the MTA that also power the station platform countdown clocks. A limitation is that the information is as accurate as the data that we are given.

Stay tuned for my next post on the technical details and challenges on how I built this app, in the mean time, you can check out the source code on GitHub and maybe, even contribute? 🤞🏻

--

--