Sunday, February 7, 2010

Why Real-Time Tracking is Always Broken After Service Changes

If you've been using OneBusAway this weekend, you've probably been noticing a lot of "scheduled arrivals". That is, buses that don't have any real-time tracking data available, meaning the best we can do is to show you when the bus is scheduled to arrive. What gives?

You've probably also heard about King County Metro's service changes, which went active on Saturday, February 6th. When big service changes like these go into effect, a lot of the underlying schedule data changes, which means systems like King County's own Tracker and Trip Planner, as well as OneBusAway, need updating. I pushed all my changes on Saturday morning, so most of you shouldn't have noticed any out-of-date data.

Unfortunately, my source for real-time arrival information, the data feed, still hasn't been updated. How can you tell? Compare real-time arrival information for the 44 between MyBus and King County's own tracker:

As of 12:30 pm on Sunday, Feb 7th, lots of "No infos" from MyBus and plenty of real-time info from King County. The fact that MyBus still thinks there is a route 194 is another clue.

In the meantime, OneBusAway is left in the lurch waiting for MyBus to be updated. Of course, King County Metro has already updated their internal tracker feed, but thus far, I haven't been able to convince the powers that be at Metro to give me access.

Either way, my apologies for the disruption in service. Hopefully, when you catch the bus to that Super Bowl party this afternoon, you'll have nothing but on-time arrivals.


Mark Tedin said...

Google Maps transit directions on the iPhone app and on the web in general aren't working either. I haven't been able to use it to plan trips all day. One Bus Away seems to be the only thing telling me when a bus will be at my bus stops. Have to risk it when making connections downtown though, and make a best guess instead.

Mike Koss said...

Google Transit directions have been down for over 24 hours:

joelb said...

No, Brian, it isn't 'always broken after service changes'. Metro does major schedule revisions three times a year. Each of these revisions requires an update of the database that drives the real-time data feed that you are tapping into for your website. Yes, this is a time when problems with the schedule database are apt to arise. But you don't seem to notice the times when things have not been 'broken' and everything has continued to run ok.

Of course, neither do you seem to be willing to give any credit to the people supplying you with this real-time data stream, except to point blame when it's not working for you. You seem to want to give the impression that you have created this entire bus information service without acknowledging either the previous work that you are building on, or the front-end processes that you are still dependent upon for live data. In fact, your website is totally dependent upon a non-funded service that has been running for many years, freely available to anyone who wishes to use it. This is because Dr. Dan Dailey, despite lack of funding, has kept this service running.

I have not been being paid by the UW for nearly three years. But still, three times a year, when Metro does a schedule 'shakeup', I continue to voluntarily come in to the UW to help Dan keep the MyBus/Busview/bus data feed service operating. For this most recent schedule change, we rebuilt the database from Metro files during the preceding week before the schedule change. For the actual switch-over to the new database on Saturday morning, I volunteered to do this, since Dan was going to be away for the weekend. Our programs do some consistency checks on the data on start-up, and unfortunately, when I went to restart the necessary processes on Saturday morning they encountered some consistency problems and would not run. Since I also had been planning on going out of town for the rest of the weekend, there was little I could do to fix this at the time, and so I restarted the programs with the old schedule data. I knew this was less than ideal, but Metro doesn't change all routes, so this meant that at least some of it would work over the weekend.

You seem to have made the assumption that those 'MyBus' folks were just asleep at the switch. This was not the case.

Late Sunday night, upon returning home, I spent some time looking at the problem, but could not fix it easily.

On Monday, Dan and I tried to install some newer files from Metro, but we ran into the same problem. We continued to work on it on Monday, and toward the end of the day we did some manual modifications of database entries that allowed the programs to run. This occurred at about 4:30 PM on Monday.

I would re-iterate that I'm not paid for any of this. Dan isn't paid for any of this. Metro isn't paying anyone to do any of this. We do what we can to keep this service running because we support the idea of making this information available to people riding the buses, as we have always tried to do.

The data stream is now running again, supplying you with the data you require for your website. It would be nice if you acknowledged the work of other people whose work you are using, but I'm certainly not counting on that.


Brian Ferris said...


You are totally right that OneBusAway is dependent on the MyBus AVL stream and that I'm standing on the shoulders of giants in a number of ways. I depend on the work you do, just like I depend on the work of a number of KCM staffers who share the static schedule data that powers OneBusAway. I don't want to take away from that, and I agree that my post comes flippant in that regard.

My bigger issue is that MyBus and OneBusAway are increasingly services that King County transit riders depend on every day to use the bus. They shouldn't require unpaid volunteers like you and me to work extra nights and weekends to keep critical infrastructure up and running.

More to the point, my issue is that Metro has an internal AVL feed that is (in my understanding) very similar to the one you maintain for MyBus, with the exception that they have staff paid to keep it up to date with the latest schedule data. If that data was exposed to developers like me, there would be less downtime for users of systems like OneBusAway.

I apologize for suggesting that you guys don't work just as hard or care just as much about providing essential tools that help transit riders here in King County. It's just that I hear about it from my users when things are broken and I'm just trying to explain why. I will try to a better job of helping everyone understand the challenges that you face in keeping this all running.