Data and methods
How the route time-loss number is calculated.
This site ranks Muni routes by one rider-facing number: typical extra time per one-way trip. The formula below is the actual public metric used by the app.
1. Route time loss
The route-level number shown on the homepage, rankings page, map, compare page, and route pages is:
Routes are ranked from highest to lowest typical route time loss.
2. Waiting loss
Waiting loss estimates how much extra time a full-trip rider loses before boarding because actual headways are less regular than the schedule.
The formula comes from the headway-based expected-waiting result discussed in Transportation Research Record: Evaluating Potential Effectiveness of Headway Control Strategies for Transit Systems.
3. In-vehicle loss
In-vehicle loss measures how much longer the trip took after boarding, compared with the scheduled one-way runtime.
The route-level public metric uses the median full-trip loss rather than the mean so a few extreme trips do not dominate the route number.
4. Decisions in the published metric
- The public homepage, rankings, map, and compare pages currently use one route-level number per route. In practice, that means the published route loss is grouped by route_id, not by route_id plus direction_id, so inbound and outbound service are pooled into one public value.
- Waiting loss uses exact matched first-stop headway intervals only. If a trip does not have the exact first-stop match needed for that headway calculation, it does not enter the waiting-loss numerator.
- In-vehicle loss uses full matched trips only. A trip must have both the first and last scheduled stop matched before it enters the full-trip runtime sample.
- Negative differences are clamped at zero. If an observed headway or trip runtime is better than the scheduled baseline, the public loss is reported as zero rather than as a negative value.
- The current public window is all_day. The site does not yet expose a rider-selectable date range or time-range switch.
5. Data sources
The current published metric combines two 511 data paths:
- Scheduled baseline: the active operator-specific Muni GTFS feed from 511 (`operator_id=SF`).
- Observed historic arrivals: 511 historic regional `RG` archives with the `-so` stop-observations variant, filtered to SFMTA / Muni (`agency_id=SF`) for the published historical snapshot.
Primary source links: