A few weeks ago I plugged in my beloved Motorola Droid 4 and surveyed the pictures and files. One of the videos I'd filmed was Electronic Taxi Dispatch. This was to show how the taxi company's computerized dispatch system works for drivers.
"Version 1.0" of the Company's electronic dispatch system was probably deployed around 2004. An old-timer said they had to switch to computerized dispatch because the company had gotten too big for radio dispatch. The system has been tweaked continuously ever since, but the interface is probably basically the same as it was back then.
|Taxi Company's Zone Map|
Scheduling a Cab, Fare Attributes
When a person calls for a cab, their address is put into the computer by a dispatcher, along with any necessary attributes: (V)AN, Prius, Carseat, Booster Seat (G), etc. If their phone number had previously been used to schedule a cab, an automated system would ask the customer if they were at the specific address they'd called from before. If the phone number was associated with multiple pickup addresses, the automated system would ask the customer to press the street number of the address they were at then confirm the address.
The computer figures out which zone the address is located in, then offers the fare to the first available cab in that zone. The cab computer buzzes, gives the zone, an approximate distance, and 2 choices: "FARE WAITING (ZONE 90 1.7M) ACCEPT / REJECT". If the cab's driver rejected the fare offer, or did not 'ACCEPT' or 'REJECT' within 60 seconds (at the beginning of my tenure, ~30 seconds at the end), it would be offered to the next available taxi in that zone. If there were no taxis available in the fare's zone, the computer would offer the fare to taxis in the surrounding zones.
If no taxi in the surrounding zones was available, or if none of those drivers accepted, the fare would be posted on "the board" (pictures below). Any driver could ask for a fare on the board.
Fares would also get assigned when a driver announced they were available in the fare's vicinity. I'd always try to look at the board before saying I was available, because I might not have wanted the first fare I would be offered. For example, the best fare I ever got was offered on the board to anyone. I'd started my evening in a neighboring zone filled with people waiting to go home from their mental health appointments. If I'd have just announced my availability, I would have been offered someone from my zone. By surveying the scene before announcing my availability I was able to ask for the fare of the passenger I'd been looking for this whole time.
When I first started, the fare was offered to the taxi in the surrounding zone that had been waiting the longest. At one point, the system was changed so that the fare was offered to the closest taxi in the surrounding zones. To free up enough computing cycles to make this switch, the cab's computers were programmed so that drivers could only 'UPDATE' their position once per minute. Updating sent the cab's current position to the dispatch computer, which responded with the cab's zone and POSition in that zone. I understood why they had to do this, but was annoyed when I knew I'd crossed into the next zone but was unable to update my position on account of the timer. My annoyance went away when I figured out a workaround.
Explaining The Video
In the video, I'm in Z93 POS1. I'm offered a fare in Z90 which is 1.7 miles away. I didn't want to go to Zone 90 because I wanted one of the fares at the address I was already parked at. That fare in Z90 might've been a $6 voucher fare going 1-4 miles, a $20+ voucher, or a cash fare for $2.95 to $160+ (Globe [last section of this diary]). I also had no idea what I'd get out of Z93 - it might've been the kid I wanted ($21), the kid I didn't want ($9), or someone I'd never had before ($6-$100+). You never know who you're going to get.
After I REJECT the fare, the dispatch computer books me back into POS2, as a sort of 'disincentive' for rejecting the offered fare. When I first started, the driver in POS1 got to keep their position in the queue until they accepted a fare. At some point the company decided the dispatching system would work better if there was a consequence for rejecting fares, so they changed the system to move drivers who rejected a fare to the end of the queue. This made it slightly more difficult to get the "good vouchers" that you knew were coming out at exact times. There were workarounds, but I'm sure this change helped a little.
In the video I say that next I'm going to try to get the family I had earlier in the day - the return trip for a $34 fare who needed both a car seat and a booster seat. I actually ended up with someone else. My notes say that it was the guy who rebuilt rack & pinion steering units for passenger cars - I remember that guy. I had the family again, months later. Their case manager had sent two taxis, but that time the parents had left their kids at home.
Taxi Computers: The Mobile Data Terminal (MDT)
The cab's computer system is referred to as the MDT. It has a monochrome screen and a row of soft-keys below the screen (A/1, B/2, C/3, D/4). The 'Menu' button cycles through the different options for the soft-keys; SEND sent the command and a number to the dispatch computer. Up/0 and Down/5 scrolls through the various screens: open fares, available taxis, and messages. Left and Right changes the screen's brightness. QUERY ### would tell you how many fares and taxis were in Zone ###, as well as 3 surrounding zones. INFO 3 gave information about your last fare.
In the first picture below I'm available (booked) in Zone 121. "148-1X" means that there is a passenger who needs a driver with a fingerprint card clearance (X) in Zone 148. This was probably a kid at a facility near 23rd Ave and Peoria. "323-1W" means that someone in Mesa needs a wheelchair van (W). "179-4F" means that there are 4 fares (F) in Zone 179 who can be picked up by anyone. If I was close, I would have CBOOK'd (Chase-Book) the fare in Zone 202 (JW Marriott Desert Ridge resort, etc), but it would have taken me 45+ minutes to get there, so someone else got them:
In these next two pictures, there are two screens of fares. I am unable to ask for any of these fares because my meter is on (ON CALL).
|Fare Screen Page 1: 221-1G means that someone needed a booster seat (G) in zone 221. This might've been someone at the Fry's grocery store at 32nd St & Bell Rd.|
|Fare Screen Page 2: 294-1J was a dial-a-ride fare (J) in South Scottsdale.|
A lot of effort went into laying out good lines for the zones. Another company's zone map had straight lines, with no regard for the actual geography of the cities.
The lines were really specific. I had a good feel for the areas I frequented, and would know when I'd cross the line for the next zone. For example, just after turning onto Cactus from Cave Creek Rd, I knew I'd crossed from zone 150 to zone 241, and could 'update' to get into my new zone's queue. There was an interesting blend of poverty and wealth in Zone 150, whereas zone 241 was more reliably middle-class.
The electronic dispatch system worked pretty well, but it was designed before people carried mobile computers. Sometimes my passengers would tell me they'd called to ask where their taxi was, and I'd shown up right when the dispatcher told them to expect me.
The company already had a smartphone app that integrated with its Electronic Dispatch v1.0 system, but there was no easy way to add instantaneous feedback about the cab's location to the passenger's personal Mobile Data Terminal ("smartphone")...
There was talk of upgrading the cab's computers to tablets, to go along with the company's custom-developed smartphone app, but I don't know how far along that process is right now.
To Be Continued...