Methodology / Code & mechanics
Code & mechanics
The formulas behind every number on the site. The per-stop formulas transcribe src/gtfs_processor/scoring.rs; the aggregation formulas transcribe src/lib/scoring.ts. Change code and page together.
See the assumptions register for every constant's value, direction of bias, and config-file location.
Part 03
How We Score a Stop
Each individual stop is scored out of 100 based on two equally important ingredients:
1. Frequency (50% of the score): "How long you wait"
We measure how often services arrive during morning and afternoon peaks, off-peak weekdays, and weekends. A 5-minute wait gets a top score, while a 30-minute wait drops the score significantly. We also reward stops that run 7 days a week and run late into the night.
2. Coverage (50% of the score): "Where you can go"
We look at the connections a stop offers. Does it take you directly to major city hubs? Can you easily interchange to other lines or travel between suburbs without going all the way into the city first? We also reward stops that have other transit options close by.
The Weak-Link Penalty
Public transport is only as good as its weakest link. If a stop has great coverage but the bus only comes once an hour, or if a bus comes every 5 minutes but goes nowhere useful, the score is heavily penalized. Both frequency and coverage must be decent to get a good score.
Part 04
How Address and Suburb Scores are Calculated
Address Scores
When you search a specific address, we look at every transit stop within an 800-metre walk. Your address score is determined by your best nearby service, plus a bonus if you have a diverse mix of options.
Suburb Scores: Real-World Coverage
We divide the suburb's actual boundaries into 250-metre grid squares, score each square individually, and weight the scores by where houses actually exist using population data. This means a suburb only gets a high score if high-quality transport is actually accessible to the majority of its residents.
Part 08
Route Scores
A route score measures what the route itself does — its own frequency, how many homes it passes, how well it connects to other good services, and how direct its path is — not what its stops inherit from a good station or shopping strip nearby.
Part 09
Car vs. Public Transport
For suburbs where computed, we show how long a real PT trip takes compared to driving, averaged across nearby jobs and homes. Only best-case (free-flow) driving times are shown — peak-hour traffic comparisons are coming once data access is in place.
Part 10
The Network Plan
Every suburb page features a budgeted, proposed feeder bus network. We connect residents to existing high-quality transit hubs, aiming for 80% within 400m and 100% within 800m of a good stop, using a greedy maximal-covering heuristic that picks the most cost-effective corridor each round.
Keep reading