Inspired by frustrated tweets and the fact that MTA New York City Transit now provides data that drives countdown clocks to every station to the public, goodservice.io was created to automatically detect irregular train headways and delays.
(not in the feed) 9:28:25 am A24N 59 St–Columbus Cir 9:38:37 am A15N 125 St 9:41:37 am A12N 145 St 9:45:37 am A09N 168 St 9:48:37 am A07N 175 St 9:49:37 am A06N 181 St 9:51:37 am A05N 190 St 9:55:07 am A03N Dyckman St 9:58:07 am A02N Inwood–207 St Trip ID: 072200_A..N Direction: 0 Route ID: A Train ID: 1A 1155 FAR/207 Timestamp: 9:37:49 am
can be very long • A train’s run time is 98 minutes each way • Parts of each route can be in different schedule periods • Incidents affecting one part/direction of the route may not affect others
rely on scheduled data • When was the last time you’ve seen the M train run up to 71 Av until midnight? • Provide a view of grouped routes for each line • Need to differentiate between local/express per line • GTFS-RT doesn’t explicitly tell us if a train is running local/express
• Make minimal assumptions about where a route will go • Service pattern for a route may change within the hour • Allow multiple concurrent segments • Ability to detect service changes for free
St–Herald Sq 14 St–Union Sq 23 St 28 St • Trip includes 28 St: local • Trip includes 14 St–Union Sq, but not 28 St: express • Trip only includes stop at 34 St—Herald Sq: !
terminal has increased by >= 5 minutes while in between the same two stations • Service Change: Any train is stopping at different stations than what are scheduled • Not Good: Difference in maximum scheduled and actual headway >= 3 minutes • No Service: Route scheduled to run but no trains detected • Not Scheduled: Route not scheduled to run • Good Service: None of the above, hooray!