BART Transit Time Map: how does it work?

All the data that went into the map comes from BART's GTFS feed, which provides information about routes, stops and schedules.

The map is rendered using D3 — initially, acccording to the latitude and longitude of each stop. But when you click a stop, a simulation is run to calculate the travel time from that stop to every other stop. Using train departure times from the BART, and BART's predicted transfer times within stations, the code counts how many minutes it takes for a simulated passenger departing the selected stop at 8:00 on a weekday would arrive at each stop on the map. [You can see the code for this on Github — the simulation is done in virtual_rider.js].

Once travel times are computed, positioning each stop is done by measuring the geographic angle from the selected stop to each other stop, but adjusting the distance from the selected stop so that it's proportional to travel time.

For more technical details, see the Readme on GitHub.