Friday, February 27, 2009

Snow Postmortem

In case you missed it, it snowed yesterday. As you might imagine, this played havoc with Metro and was basically a replay of the December Snowpocalypse in miniature. It is, of course, ironic that OneBusAway set a new single-day traffic record on a day when the underlying tracking data was most suspect. We appreciate the links from Seattlest and even the Seattle Times (our first official mention by a Seattle newspaper) that made it happen.

In the Seattle Times piece, there is a quote from King County Council Member Dow Constantine (and candidate for King County exec?) that rang true:
"Given the increasing sophistication of modern phones and wireless Internet providers, I encourage Metro to take immediate action to use instant messaging, Twitter, neighborhood blogs, and customer self-reporting systems to keep Metro operators and riders connected."
Hmm... if only there was someone working on a set of tools that made it easier for people to find the status of their bus using a variety of phone and web devices. Say hello to OneBusAway. Specifically, we are looking to integrate real-time service alert disruption information into the system so that when you call in on the phone, it lets you know that your bus has been delayed, rerouted, or canceled completely.

In fact, OBA actually already has this feature; we added it for the last snow event. We can set routes as rerouted or canceled in the system and you will get an appropriate warning with both the web tools and the phone system. The problem is knowing which buses are rerouted.

It's pretty clear that Metro's Transit Service Status page is not an accurate reflection of what's going on in the field and it's not hard to see why. With 100s of buses live in the field at any given time and only four radio channels for communicating with dispatch, there is not enough bandwidth to get accurate reroute information and road conditions from buses to dispatch and back, let alone get accurate information from that communication up on a website.

What you get instead is confusion. I live NE of the University District and routes like the 30, 65, 68, 74, 75, and 372 provide the bulk of the coverage for my neighborhood. I watched yesterday morning as buses serving these routes each put their own personal spin on how to handle the snowy conditions. Some buses took their appropriate adverse weather reroute while others boldly soldiered on their normal route. The net result is that even when riders know the adverse weather plan for their route (that's a big if), riders had no way of knowing if the next scheduled bus would be sticking to its normal route or taking its reroute.

There are technological solutions to detecting reroutes. GPS is obviously the first choice and Metro has plans to put GPS on all buses. However, given the current budget situation for Metro, I am less than hopeful that they can make it happen in the next year or two. Given the coverage of radio beacons in our current real-time positioning network, it's actually possible to detect most reroutes using the current tech on the buses. However, it would take some hacking.

However, I'd argue that this isn't a technology problem but instead a policy problem. Being able to detect reroutes using technology is actually of little use if there is no consistency in rerouting from one trip to the next for a given route. Riders really don't need to know if the current bus is on reroute, since it's often too late to walk to a different stop if the bus is doing something different than what they expected. Instead, riders really need to know if the bus coming 30 minutes from now is on reroute, since that will help riders plan which stop they need to walk to. Unfortunately, no amount of technology will help us predict what a driver is going to do in the future.

However, technology might help us tell the driver what to do in the future. Metro currently doesn't have the radio capacity to communicate with all the drivers in the field, but many drivers carry cellphones. Much like OBA allows riders to call in to get real-time arrival information about what their bus is doing, we can imagine a similar system that allows drivers to call in and get real-time information about what their bus should be doing. With a little bit of software glue in the background, Metro could more easily manage feedback from drivers, determining which routes should be on reroute, and then pushing that information to drivers in an automated way. It would reduce the amount of human intervention required in the system and be pretty cheap to build. Pretty cool, huh?

It's pretty clear that there are a lot of interesting technical solutions that can make it easier for drivers, transit agencies, and riders to effectively communicate what is going on in chaotic situations like a snowy morning commute. While we can never fix the fact that it's just plain hard to drive in the snow, there are a lot of things we can and should be doing to make everything else easier.

Thursday, February 26, 2009

Snow Event

For the latest updates, check out the OneBusAway twitter feed.

It snowed this morning, which means your morning commute is likely not going to be a bundle of sunshine. The first victim seems to be the Metro Tracker feed, which as of 6:50 am, seems to have gone off the rails. See for an example, where every route is either no-info or 45 minutes late+. I can't tell if the tracker is broken, or all those routes just aren't running due to adverse weather cancellations. The Metro adverse weather page only lists two routes on re-route at the moment (, but if the last Snowpocalypse event is any indication, it's not clear this webpage is updated in a timely manner.

For a gentle introduction on why the bus tracker doesn't work well in the snow, check out

Friday, February 13, 2009

We Tweet

Did you know OneBusAway is on twitter? Check us out at at

They say that Twitter is what you make it, so we've mostly been using it in a customer service fashion. Specifically, we keep tabs on mentions of OneBusAway on Twitter and try to respond when people are having problems. We also occasionally post service notices when things are down or wonky and it's not worthy of a full blog post.

In the future, we'd like to add services notifications about temporary route changes and other issues using Twitter. Either way, we're just as new to Twitter as anyone else, so it'll be interesting to see how it all evolves.

"The actual time of arrival of buses is different from the calendar, even in a law-abiding American."

Thanks to the UW News article and press release from last week, OneBusAway has gotten some major press and new traffic this week. I've done interviews with Q13 and KOMO TV, KIRO and KOMO news radio, and it looks like I will be on KUOW's The Conversation next Wednesday at noon along with Kari. Exciting stuff.

The article was even translated into Russian! The translation back to English by Google is pretty hilarious as well (see this post's headline for an example). Either way, just call me Брайана Ферриса (I think).

All this press has also meant a crush of new users. We easily beat our busiest traffic day from the Snowpocalypse of 2008:

We Get Traffic

We're also approaching 1,000 phone calls answered a day and I think we'll easily break the 30k total phone calls answered since launch next week.

Mostly I'm just happy OneBusAway hasn't crashed under the increased load. There were and still are some issues with the Feb 7th service revision I'm trying resolve, but the transition seemed to go mostly ok. Just like last September's service revision, I happened to be out of town for the transition, which made thing a little tricky (September was my honeymoon in Iceland... last weekend was DC with friends).

Either way, I welcome all the new users to the site. I hope you find it useful.

Friday, February 6, 2009

Feb 6th Schedule Bug

My apologies to anyone who had a "No scheduled arrivals in the next 30 minutes" message show up this morning when there were clearly buses on the way. There was a scheduling bug in the database having to do with this weekend's service updates by Metro that made it look like no buses were in action today.

I fixed it a few minutes ago. Let me know if you have any issues.

Wednesday, February 4, 2009

OneBusAway mentioned in University Week

We had a nice article about OneBusAway written up in University Week, the faculty and staff newspaper of the University of Washington. Check it out.

3rd Avenue Heartache

I've gotten a couple complaints about OneBusAway sometimes missing buses downtown. The bus will arrive at the stop like it's supposed to, but there will be nothing listed on OneBusAway. Pretty frustrating, I agree. It's taken me a while to track down the issue, but I figured I'd try to describe what is going on.

The short of it:

For routes that enter downtown as one route and continue from downtown as another route (an interlined or through route, according to my more transit savvy friend), the transit database from Metro that feeds OneBusAway often defines that change-over happening in a different place than where is happens in practice on the actual bus. Often OneBusAway is actually listing the bus you care about, but it's labeled as some other route that you wouldn't normally recognize.

I'm working on a fix, but it's a pretty complex issue. For now, I'm working to identify all the routes where this is an issue. If you know of a specific route where this is an issue, feel free to let me know in the comments.

The long of it (only real transit nerds may want to read past this point):

Consider route 26 heading from downtown to Greenlake. You can see the route map here:

The 26 serves four major stops along 3rd ave: Yesler Way, Columbia St, Seneca St, and Pike St. You can see the full schedule for the 26 at 3rd and Pike here: (this page take a while to load...)

There are a huge number of trips for the 26 at 3rd and Pike. Now compare that to 3rd and Columbia here:

There are hardly any trips for the 26. What's going on? If we look at the 4:05 pm trip at 3rd and Pike:

We see that the trip starts at 3rd and Pike, but is preceded by Route 42:

So this is what is happening. A large number of outbound 26's from downtown are actually inbound 42's that switch to 26's along 3rd Ave. According to Metro's transit database, that switch happens at 3rd and Pike, after the bus has already passed the other stops along 3rd Ave. The problem is that this is not what actually happens in the real-world. When that 42 pulls onto 3rd Ave, the driver has already switched the bus' sign to read Route 26. In addition, all the stop kiosk signs along 3rd Ave list the 26 as well. For example:

Stop # 538

It actually make sense that the 42 should change into the 26 before it goes down 3rd Ave, since all the commuters are looking for the 26 to take them home. If they had to remember that the 42 is going to switch into the 26 in a few stops, it'd be mostly confusing.

Ok so after all that exposition, here is the real problem. Even though the buses and stop kiosks along 3rd Ave are doing the "right" thing, the database does not match what's going on in reality. Thus, when a rider looks at OneBusAway at 3rd and Columbia to figure out when their 26 is going to arrive, OneBusAway will not mention the 26 but instead will list the 42. The rider is confused and thus bad things.

To make matters worse, it's only a problem for some of the 26s. If the 26 isn't preceded by a 42, it actually does the right thing and is listed as the 26 for the full length of 3rd Ave in the database.

This is not just a problem with the 26. A number of routes do a similar thing of changing route signs right before they get on 3rd, where the database shows them changing at the end of 3rd.

Monday, February 2, 2009

Real-Time Tracking is Down

Real-Time tracking is currently down. Specifically, the internal tracking feed from MyBus is currently not responding. In addition to taking our real-time tracking down, it also appears that MyBus urls are not responding (for example: UW Campus Hub).

I've sent emails to appropriate parties, but it's out of my hands to fix this issue at this point. Here's hoping it's resolved sooner rather than later.

Update: Tracking seems to be back up as of 10:40 am.