31
Urban Access
Walking access is twice as unequal as income.
Walking access in the average US city is roughly twice as unequally distributed as income itself. The median Gini coefficient for 20-minute pedestrian destination counts across the ten cities measured here is 0.897 — against a US household-income Gini of about 0.41. That gap is the access problem this project surfaces. Existing tools measure walkability or income but rarely both at the same scale. Walk Score gives you a number without a breakdown. Census data gives you demographics without destinations. The pipeline this project builds is the layer that joins them — at neighborhood resolution, across ten cities, reproducibly.
Built the data pipeline from scratch: cleaned and normalized POI data from Foursquare OS Places across 10 cities, generated census tract-level pedestrian isochrones through Valhalla at 5/10/20-minute intervals, joined isochrone coverage to POI counts using DuckDB spatial queries, and aggregated to H3 resolution 9 hexagons for the front-end layer. Mapbox GL JS handles all rendering. The dashboard frames three reader-facing questions — **how are you getting there** (walk, bike, drive), **what are you looking for** (pharmacy, grocery, park, transit, and more), and **how long are you willing to travel** (5, 10, or 20 minutes) — and repaints the city for every combination. Equity analytics are computed city-by-city and surfaced in an in-dashboard analytics panel with Spearman correlation, Gini coefficients, and quartile breakdowns.
- End-to-end GIS pipeline processing 259K+ POIs across 454,000 hexagons in 10 cities, fully reproducible
- Statistically significant income–walk-access correlation in all 10 cities — but the direction reverses: in 7 metros, lower-income tracts have more walk access; in 3 (NYC, LA, San Diego) it runs the other way
- Median Gini coefficient for 20-minute walk access across the dataset: 0.897 — roughly twice the US household-income Gini
- Interactive dashboard deployed with city switching plus the three reader-facing questions (mode, category, time-band), and in-dashboard equity analytics including Spearman r, Gini, and quartile breakdown
- Framework documented for extension to additional cities, transit modes, or updated Census vintages
Infrastructure is the analysis
The hardest part of this project wasn't the map — it was the pipeline that makes the map trustworthy. Projection alignment, DuckDB spatial query optimization, tile generation performance, Valhalla routing configuration: none of these are glamorous, but all of them determine whether the analysis is valid. You can't separate the infrastructure from the insight. Building it correctly is the research.
The story wasn't the gap. It was the direction.
An income–walkability gap shows up in every city in the dataset. The interesting finding was which way it ran. In dense metros (NYC, LA, San Diego), richer tracts walk to more. In sprawl-pattern metros (Phoenix, Fort Worth, Houston, Dallas), the relationship reverses — poorer, denser, older neighborhoods reach more on foot than the wealthier exurbs that surround them. A single-city study would have called this an artifact. Ten cities, same pipeline, makes it structural.