Overview
After designing a custom route, automatically compute a planning scorecard: how many people does it serve, how much new coverage does it add vs the existing GO network, and how does its frequency compare?
Why it's unique
Turns the route builder from a drawing tool into actual planning software. Gives instant quantitative feedback on whether a proposed route is useful — the same kind of analysis transit agencies do manually.
Metrics to compute
| Metric |
Description |
| Population served |
People within 800m of each custom stop (from census data) |
| New coverage |
% of route's walkshed not already covered by GO |
| Frequency grade |
A–F based on trips/hour during peak |
| Network connectivity |
How many existing GO stops does this route connect to? |
| Estimated corridor length |
km of new infrastructure required |
Key interactions
- Scorecard panel auto-updates as stops are added/removed in the Route Builder
- Compare two custom routes side by side
- "How does my route compare to the Barrie Line?" — benchmark against real GO lines
- Share route with scorecard embedded in community post
Integration points
- Route Builder (
components/panels/BuilderWizard.tsx) — add live scorecard panel
- Community post (
app/community/[id]/page.tsx) — display scorecard alongside shared route
lib/routeScoring.ts already exists — extend it with population + coverage dimensions
Acceptance criteria
Overview
After designing a custom route, automatically compute a planning scorecard: how many people does it serve, how much new coverage does it add vs the existing GO network, and how does its frequency compare?
Why it's unique
Turns the route builder from a drawing tool into actual planning software. Gives instant quantitative feedback on whether a proposed route is useful — the same kind of analysis transit agencies do manually.
Metrics to compute
Key interactions
Integration points
components/panels/BuilderWizard.tsx) — add live scorecard panelapp/community/[id]/page.tsx) — display scorecard alongside shared routelib/routeScoring.tsalready exists — extend it with population + coverage dimensionsAcceptance criteria