Docs · Analysis tools · Stop analysis

Stop analysis Agency

Four stop-level diagnostics computed straight from the feed: how far apart your stops sit, which neighbouring pairs are candidates for consolidation, how much service each stop actually gets, and whether your board points carry wheelchair-accessibility data. Every table exports to CSV, and the findings highlight on the map as you read them.

The Stop Analysis panel on the Sunny Valley feed: a stop-spacing histogram with median, mean, P10 and P90 figures, counts of too-close / in-target / too-far segments, configurable thresholds, and a per-route breakdown sorted tightest-first.
The Stop Analysis panel. Stop-spacing distribution up top — median, mean, and percentiles, with too-close / in-target / too-far counts — then a per-route breakdown. The other three diagnostics expand below.

What it is

Stop placement is one of the highest-leverage, least-examined decisions an agency makes. Stops that are too close together slow every trip and inflate operating cost; stops that are too far apart strand riders. Most agencies never look at the distribution because pulling it out of a GTFS feed by hand is tedious. Stop Analysis does it in one panel — open it on any feed and read four diagnostics computed client-side from the schedule, with no setup and nothing uploaded anywhere.

It is a planning aid, not a mandate: the thresholds are defaults you can change, and the consolidation candidates are suggestions to review on the map, not stops to delete blindly.

The four diagnostics

Stop-spacing distribution

A histogram of the distance between consecutive stops across the system, with the median, mean, and the 10th / 90th percentiles called out. Segments are colour-coded against APTA / TransitWiki benchmarks — too close (under ~600 ft), in target (~750–1,320 ft), and too far (over ~2,640 ft) — and the panel tallies how many fall in each band. Below the histogram, a per-route table sorts routes tightest-median-first so you can see which lines drive the pattern. Spacing is measured along each route's dominant trip pattern (the longest trip per direction).

Stop-balancing candidates

Consecutive same-route stop pairs closer than your too-close threshold (600 ft by default), flagged for possible consolidation. Each candidate shows an order-of-magnitude daily time saving (dwell seconds × trips per day) so you can prioritize. Terminals and stations are excluded, and the lower-service stop of the pair is offered as the removal candidate.

Service intensity per stop

For each stop: trips per day, span of service, and the peak vs. off-peak median headway on the busiest weekday (or a service day you pick). It answers "how much service does this stop actually see?" — useful for spotting over- and under-served stops, and it's also surfaced on the per-stop Trips tab in the editor.

Accessibility completeness

The share of board points that have wheelchair_boarding populated, plus a per-route breakdown of the gaps. This is the detailed view behind the single accessibility warning in the validator — clear the gaps here and the warning clears too.

How to use it in GTFS·X

  1. Open the feed and click Stop Analysis under Analysis in the left rail. The panel opens on the right and the map switches to the analysis overlay.
  2. Adjust the Too-close and Hard max thresholds (defaults 600 ft and 2,640 ft) if your context differs — coverage-oriented rural service and dense urban grids have different targets.
  3. Expand each diagnostic. Hover or click a flagged candidate to highlight it on the map: removal candidates render amber, a trips-per-day colour ramp shades stops by service intensity, and accessibility gaps drop pins.
  4. Use Download CSV on any section to pull the figures into a spreadsheet for a memo or a stop-rationalization workshop.

Methodology & limits

See also