Kkaegan.fyi.ai
← Back to the line guide
Case study · G line

Mind the Gap

67,000 residents live in Metro Vancouver's transit blind spots. Kaegan built the map that finds them, and shipped it solo in a few days.

3,590 areas scored67K residents underservedTop 25 gaps ranked600 m walking radius

The setup

Kaegan studied Human Geography at UBC intending to become a city planner, and transit never stopped being the thing he thinks about on walks. So when he wanted to test how far a PM can get building alone with AI tools, the subject picked itself: where does Metro Vancouver's transit actually fail the people who live there?

What PMs used to tell, through lengthy PRDs, hacky wireframes, and lots and lots of meetings, they can now often show, using prototypes, examples, and sometimes by actually shipping.
From the mindthegap.fyi FAQ

Mind the Gap is one small example of that. A real product, built solo, in a few days.

How the score works

Two public datasets: TransLink's GTFS feed for stop locations and trip frequencies, and Statistics Canada's 2021 Census for population. For each area, it counts the total daily transit trips within a 600-meter walking distance of its centre and divides by the resident population to get trips per capita. That per-capita figure is percentile-ranked against all areas above a density floor, and the gap score is the squared inverse of that percentile. Fewer trips per resident, higher gap.

The result is a choropleth of every neighbourhood, a ranked explorer of the 25 most critical gaps, and a report card for wherever you click: letter grade, population density, and the nearest stops with walking distances. The scored dataset is downloadable as GeoJSON under CC BY 4.0.

Who did what

I did all the product thinking: came up with the concept, chose the data sources, defined how the gap score should work, made the design decisions, and wrote most of the copy. Claude Code handled the implementation, with me creating and reviewing each PR. A bit like being a PM on a one person team.
From the mindthegap.fyi FAQ

That split is the experiment this project exists to run. The specs, the scoring method, and every product call were his; the implementation was reviewed PR by PR, the way he'd work with any engineer.

Honest limits

It's directional, not definitive. The GTFS feed captures scheduled service, not real-time reliability, and the census data is from 2021 so new developments won't show up. Some edges are rough: a zone near a SkyTrain station might still score high if bus feeder routes are sparse. And because the score is a percentile rank, it's relative by construction. It flags the worst-served areas in this region, not an absolute standard of adequate service. This is a starting point for conversation, not a planning tool.

The stack

A React 19 single-page app built with Vite, Tailwind CSS, and Leaflet for the interactive map. Geospatial calculations use Turf.js, and the boundary data is compressed with TopoJSON so the whole region loads fast. A small Node pipeline joins the GTFS feed to the census and pre-computes every score; there is no backend and no database, just static data and a map.

GO FIND THE GAPS

The map, the methodology, and the code are all public. Click your own neighbourhood and see its grade.

Visit mindthegap.fyi ↗Source on GitHub ↗
Questions? The station agent knows this story cold.
Ask the agent →Email the human →