Wednesday, February 4, 2009

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.


Adam P said...

That happens to the 31 and 68 on campus. I don't know if OBA addresses that problem or not.

Brian Ferris said...

It's true that 3rd Ave probably isn't the only place where this might be an issue. I'll have to look at the 31/68 on campus, plus maybe the 65/67 as well.

Edward Vielmetti said...

Does the underlying data set show vehicle ID numbers? If it did, then you could sample and track which vehicle continued on at each point in the system and figure out where other possible weird switches took place.

DJStroky said...

Yo Brian, here is a quick braindump of the routes I can remember that do this:

1 -> 36
2 -> 13 or 3 sometimes
3,4 -> 3 or 4
5 -> 54,55
7 -> 49 (Nights and Sundays)
10 -> 12
11 -> 125
14N -> 14S)
15,18 -> 21,22,56,57
17 -> 23
24 -> 131,132
25 -> 27
26 -> 42
28 -> 39
31 -> 68
43 -> 44
48N -> 48S
65 -> 67
the 80s sometimes turn into something else I think (like that matters)
107 -> 148
122IB -> 122OB (I learned this the hard way one morning)
153 -> 183
166 -> 164,168
915 -> 152?
230W -> 230E,253
331 -> 345 -> 348
346 -> 347

Good luck on figuring this one out. If KCM published their GTF you could just use the block_id, but hopefully there is some other linkage in KCM's database.

Now if only the drivers could figure out when to change their headsigns! There have been a bunch of times where I have boarded one of these buses with the wrong signage and confirmed with the driver that they had forgotten to update to readerboard.

Brian Ferris said...

The database does in fact show all the interlined routes. And there are a lot of them (622 by my count). I won't list them all here, but the trick is not just knowing that a route is interlined.

More importantly, I have to find all the places where the location of the route change in the database does not match the actual stop signage out on the streets. Evan hinted at the problem when he talked about routes where the driver has forgotten to switch the headsign. I'm instead dealing with the problem that the change in the stop signage is happening at a different place than the database says it should be.

Kind of subtle...

Ellen said...

The 10/12 switch would throw me off when I used previous trackers that showed maps. Waiting at stop 190 (SAM on 1st) would show no arriving 10s, but clearly there was one lumbering up the street. For the 10/12, the inbound to to downtown swap happens at or after the Pine/Boren stop before it enters downtown, on the outbound to Capitol Hill I believe it makes that change when it turns right onto 1st.

Martin H. Duke said...

Might you be better off just listing it as, for instance, "39/28", at least for downtown stops?

After all, it's physically the same bus, logically running two routes simultaneously.

Natalie said...

Just an FYI route 26 now turns into the 124, not the 42.

Chris said...

Also the 23 -> 28 Express.

I agree with Martin: why not list both in order to at least make sure the bus is listed. Might be slightly confusing but better than not showing the bus at all.