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: