Every AC Transit route gets a single letter grade for the last four weeks of service. The grade is a 0–100 composite score that weights how reliably each route delivers the experience a waiting rider actually needs, not just whether a bus eventually showed up.
Each point is the same trailing four-week score used above, sampled every seven service days. History starts once a complete 28-day evaluation window is available.
Eligible scheduled stop-arrivals inside the −1 to +7 minute rider window · 40% of grade
Observed stop-arrivals from scheduled time through 3 minutes late · 10% of grade
Spacing sub-score = 100 × (1 − headway CV) · 35% of grade · higher is better
AC Transit-wide · all routes · 35% of grade
This summary pools comparable arrivals systemwide across all routes.
Low-frequency windows with scheduled headways over 40 minutes are excluded.
A route can run the promised number of buses and still make riders wait longer
when those buses arrive in clumps. These metrics compare consecutive arrivals
within the same route, direction, stop, and hour so normal schedule changes do
not look like unreliability. Headway CV means coefficient of
variation (standard deviation ÷ mean); lower values mean more even spacing.
The CV 0.30 reference comes from
Salman Khan’s bus-bunching post,
which cites the Transit Capacity and Quality of Service Manual.
Coefficient of variation; lower means buses are more evenly spaced. Both charts show the same 20 routes: those with a calculable headway CV and the most scheduled trips in the current four-week window. After selection, this chart orders them from lower to higher CV.
CV means coefficient of variation (standard deviation ÷ mean). Rising lines indicate en-route bunching. Hover over or select a route bar at left to highlight the same route here.
| Route | Headway CV | Bunched arrivals | Long gaps | Spacing penalty | Start → end CV | Headways |
|---|
Bunched arrivals have a realized headway below half the scheduled headway;
long gaps exceed 1.5 times the scheduled headway. Only scheduled headways of
40 minutes or less are eligible. Values are percentage points, so 0.1 means
0.1% (about one in 1,000 comparable headways), not 10%. The “1 in N”
tail cards report these exact thresholds; they are not p95 or p99 estimates. Expected wait assumes riders arrive at random
moments; spacing penalty compares observed wait with evenly spaced service at
the same realized frequency. The percentage is (observed average wait − evenly
spaced average wait) ÷ evenly spaced average wait. Realized gaps below 30 seconds or above 90 minutes
are excluded as duplicate and overnight/outlier guards. Method inspired by
Salman Khan’s Chicago bus-bunching project,
adapted to AC Transit GTFS-Realtime stop arrivals and published GTFS schedules.
The composite score blends four metrics over the trailing four-week window:
On Time Service Delivered — 40%. Percent of scheduled intermediate passenger-pickup stops reached in the rider window: no more than 1 min early and 7 min late (−60 s ≤ delay ≤ 420 s).
On time — 10%. Percent of arrivals within 0 ≤ delay ≤ 3 min of schedule.
Speed vs. ideal — 15%. Average per-leg bus speed as a fraction of a 13 mph ideal, capped at 100%. Slower routes score lower; avg_speed / 13 × 100.
Bus spacing and bunching — 35%. The sub-score is 100 × (1 − headway CV). Headway CV means coefficient of variation: standard deviation ÷ mean. A CV of 0 is perfectly even spacing; higher values mean increasingly uneven gaps. Method inspired by Salman Khan’s bus-bunching project.
If bunching data is missing, partial, too low-frequency, or statistically insufficient, its component is omitted with a warning and the remaining available weights are renormalized.
Sorted best-to-worst by composite score. Click a column header to re-sort. Click any row to expand the full metric breakdown, or Route page for the per-route analysis.
The agency grade and table hide routes averaging fewer than 10 scheduled runs per active service day. Lettered Transbay routes are always included.
| Grade | Route | Score | Unique trips | Stops measured | Route page |
|---|