⚠️ Vibe-coded. I built this with heavy AI assistance and am not 100% sure of the outcomes. Check my work: the raw data sources, a standalone replicator script, and downloadable CSVs of every table behind this map.

Interactive · BART link flows · bartanalysis.com

How many riders are on each piece of BART track, hour by hour

Every trip in BART's hourly origin-destination data is routed along its path through the network, and its riders are added to each track segment it crosses — a trip from SF Airport to Embarcadero thickens every segment up the Peninsula and through the tube. Segment thickness = average riders crossing it in the selected hour (both directions; hover for the split). Click any station to "kill" it — every trip starting or ending there disappears and the rest of the network re-renders; trips merely passing through it survive. Click again to restore. Busiest segment-hour anywhere: West Oakland – Embarcadero, 2019 weekday 8 AM: 27,959 riders.

8 AMhour of day
(exit hour)
trips ending
this hour, systemwide
0%of track no
longer needed
0%fewer trips
than full network

Method: shortest-path (fewest stations) link assignment over the 51-segment network — computed in the analysis notebook, from the same 9,143,257-row 2025 origin-destination census described on the analysis. The hour is the exit hour, so long trips register at their arrival end of the hour. Milpitas and Berryessa opened June 2020 — their segments are correctly empty in 2019. Flows are averages over all 250 weekdays (or 115 weekend+holiday days) of the year, not a specific date.