About TransitOracle
Arrival times for Boston's buses, subway, commuter rail and ferries, with an honest record of how accurate they've been.
How it works
MBTA publishes a prediction for every vehicle and stop, every few seconds. We record all of them, alongside where every vehicle actually is, so we know when each one really arrived. That lets us measure where MBTA's predictions miss and learn to correct them.
For buses and subway, a second model learns from years of MBTA's stop-by-stop records how a vehicle moves from where it is, given the time of day and how the vehicles just ahead of it have been moving. Our time combines the two, with a range the vehicle should arrive in 8 times out of 10.
We only show our time where it has beaten MBTA's on predictions it never saw. Everywhere else, you see MBTA's own prediction, labelled as theirs. The track record has the numbers.
Your data
Saved stops stay in this browser. Near me on the stops page finds the closest stops on your device: your location isn't sent anywhere. Near me on the Plan page sends it to our server, rounded to about 100 metres, only to find the stops within a walk of you; it isn't logged or kept (beyond a few seconds in the cache that answers the same question again), or put in the page's address. There are no accounts and no ads. Visits are counted with Cloudflare Web Analytics, which sets no cookies, and with PostHog, which records the pages you open, what you tap and how fast the page was, with a replay of the visit that hides anything you type. In a European time zone PostHog waits until you agree; anywhere, "Privacy choices" at the bottom of the page turns its cookies and replays off. If the page breaks, it reports the error to Sentry and PostHog so we can fix it: the page's address, your browser's name and version, and what went wrong, never your location or your stops. The privacy policy has the details.
For developers and AI assistants
The site's data is open to read: the same JSON the pages use, described in llms.txt and openapi.json. Please keep to a request every few seconds, credit MassDOT and TransitOracle, and say which times are MBTA's and which are ours (the terms).
Where the data comes from
Transit data provided by the Massachusetts Department of Transportation (MassDOT), under its Developers License Agreement. TransitOracle is independent and not affiliated with or endorsed by MassDOT or the MBTA. Map data from OpenStreetMap contributors, tiles by OpenFreeMap.
Who runs it
TransitOracle is made by BFT LLC. Questions: support@bft.llc.