BART Fares and the Triangle Inequality

The Bay Area Rapid Transit system is one of my favorite aspects of livin' round here. Pretty reliable, pretty quick, pretty good coverage of the area, and keeps me from having to drive places (which I am bad at). BART's kinda pricey, though.

Sometimes it's so pricey it's cheaper to take BART twice than to take it once.

Consider the following policy:

“The fare to travel from Station A to Station B should be less than the sum of [the fare from Station A to any Station C] plus [the fare from Station C to B].”

This policy asks that the fare scheme for the BART network obey a triangle inequality. Wherever this policy is ignored, there's a situation where a passenger could save money by avoiding the direct route -- enter the system at Station A, leave the system but immediately re-enter at Station C,
then arrive at Station B, all for cheaper than if the passenger had stayed on the original train. A fare system that can be gamed this way is kinda inconsistent.

If we grab the fare table (generously and usefully transcribed to the internet by the folks at Transit Unlimited), we can write a Python script to look for station-to-station direct routes that are less costly by exiting and re-entering at some intermediate point.

The triangle inequality is broken for the following nine routes:

Instead of taking... take... saving...
MacArthur to Concord ($3.65) MacArthur to Orinda ($1.75),
then
Orinda to Concord ($1.75)
$0.15 (4.1%)
Coliseum/OAK to Fremont ($3.60) Coliseum/OAK to Bay Fair ($1.75),
then
Bay Fair to Fremont ($1.75)
$0.10 (2.8%)
Coliseum/OAK to Dublin/Pleasanton ($3.60) Coliseum/OAK to Bay Fair ($1.75),
then
Bay Fair to Dublin/Pleas. ($1.75)
$0.10 (2.8%)
South Hayward to Dublin/Pleasanton ($3.65) South Hayward to Bay Fair ($1.75),
then
Bay Fair to Dublin/Pleas. ($1.75)
$0.15 (4.1%)
Union City to West Dublin/Pleasanton ($3.90) Union City to Bay Fair ($1.75),
then
Bay Fair to West Dublin/Pleas. ($1.75)
$0.40 (10.2%)
Union City to Dublin/Pleasanton ($4.05) Union City to Bay Fair ($1.75),
then
Bay Fair to Dublin/Pleas. ($1.75)
$0.55 (13.6%)
Fremont to West Dublin/Pleasanton ($4.20) Fremont to Bay Fair ($1.75),
then
Bay Fair to West Dublin/Pleas. ($1.75)
$0.70 (16.7%)
Fremont to Dublin/Pleasanton ($4.35) Fremont to Bay Fair ($1.75),
then
Bay Fair to Dublin/Pleas. ($1.75)
$0.85 (19.5%)
Pittsburgh/Bay Point to Orinda ($3.65) Pitts./Bay Point to Concord ($1.75),
then
Concord to Orinda ($1.75)

OR

Pitts./Bay Point to Pleasant Hill ($1.75),
then
Pleasant Hill to Orinda ($1.75)

OR

Pitts./Bay Point to Walnut Creek ($1.75),
then
Walnut Creek to Orinda ($1.75)
$0.15 (4.1%)

Fun fact: all these loopholes involve strictly East Bay routes.

The total charge for any of these alternative routes is $1.75 + $1.75 = $3.50. ($1.75 is the cheapest fare charge for any station-to-station route.) Note that BART fares are symmetric; the cost of riding from Station A to Station B is equal to the cost of riding from Station B to Station A. These savings apply regardless of which direction you travel.

Of course, in order to actually witness these savings, you'd have to jump off your train, dash up to the turnstiles, swipe out of the BART system, turn around, and swipe back in, only to in all likelihood find that the train you started on is now chugging off to your final destination. So it's probably important to recognize the 15 cents you save by jumping out costs about 15 to 20 minutes of your life waiting for the next train to come pick you up.


Happy trails,

Brian Gawalt
bgawalt@gmail.com
June 1, 2011
https://brian.gawalt.com/
https://www.twitter.com/bgawalt/


  _________________

Addendum:
A lot of rail systems, like New York's subway, Chicago's el, Boston's T, and (*cough*) San Francisco's MUNI, elide this concern and charge the same fare regardless of where someone enters or exits the system. In fact, I can only think of DC's Metro as another large system that could potentially have triangle-inequality fare loopholes. Unfortunately, I can't find a convenient tabular dataset containing all station-to-station fares; you have to make specific requests to see the fares on each station page. If anyone can get me the fare matrix, though, I'd love to rerun the analysis on their larger system to see if these “short cuts” exist on the east coast, too!