Spatial Analysis
Intersection Density Methodology
Intersection density measures how finely connected a place's street network is: the number of real street intersections per square mile, weighted toward the three- and four-way junctions that make a network walkable. A dense lattice of short blocks and frequent crossings — a traditional downtown or streetcar neighborhood — scores high; a subdivision of long curving streets and cul-de-sacs, or a rural area of sparse county roads, scores low.
It is one of the design (D3) measures in CommunityScale's Housing + Transportation analysis and a component of the Housing Ready score, where a connected street grid is part of what makes daily needs reachable on foot. We report it for every census block group in the United States and calibrate it to match EPA's Smart Location Database (SLD), the standard national reference for built-environment measures.
What it measures
The metric is SLD-weighted street intersections per square mile of land (EPA SLD variable D3B). Not every place where two line segments meet is a real intersection, so each junction is weighted by how many distinct directions of travel meet there:
- A three-way junction (a T-intersection) counts as 0.667.
- A four-or-more-way junction (a standard crossroads) counts as 1.0.
- Dead-ends and points where a single road is merely drawn as several segments do not count.
Limited-access facilities and ramps (interstates, on-ramps, service drives) are excluded, because they don't create walkable street connections. The result is a continuous value: rural block groups typically read a few intersections per square mile, suburban areas tens, and dense urban grids well over a hundred.
How it's computed
Intersection density is computed nationally from TIGER/Line 2024 "All Roads" geometry, processed in DuckDB's spatial engine one state at a time and assigned to block groups. Detecting real intersections in TIGER data is the hard part, because the source data has two well-known quirks that a naive count gets wrong in opposite directions.
1. Counting only genuine junctions (the bearing-leg test). TIGER chops a single physical street into many short consecutive segments at address-range breaks. A naive rule that counts "three or more segments meeting at a point" therefore treats these collinear segment-joins — points along one straight street — as if they were intersections, which badly over-counts rural areas. Instead, at every shared point we measure the compass bearing of each road leaving it and bin those bearings into twelve 30° sectors. A point is only a real intersection if its roads leave in three or more distinct directions. This cleanly rejects the false "intersections" strung along a single road (which have only two opposing directions) while keeping true T- and four-way junctions.
2. Recovering un-noded crossings. Conversely, TIGER does not always split two streets where they physically cross, so some real intersections share no common point. Where two roads' interiors cross without a shared vertex, the crossing is recovered and counted as a four-way junction.
3. Assigning intersections to the right block group. Each intersection is then attributed to the block group it falls in. In gridded cities this step is subtle: census block-group boundaries frequently run straight down the centerlines of streets, so a corner intersection sits exactly on the line between block groups rather than inside any one of them. A strict "inside the polygon" test discards these — which silently erased most of the intersections in places like Manhattan. We instead count an intersection for every block group whose boundary it touches and split its weight evenly among them (a corner shared by four block groups contributes one-quarter to each). This conserves the true total and gives each block group fair credit for the connectivity at its edges.
Validation against EPA SLD
We validate the metric block-group-by-block-group against EPA SLD v3, which is computed independently from a professionally noded street network. Agreement is strong across 239,114 matched block groups and, critically, holds at both ends of the density spectrum:
| Measure | CommunityScale | EPA SLD | Agreement |
|---|---|---|---|
| National median (per sq mi) | 55.3 | 57.2 | ratio 0.97 |
| Rank correlation (Spearman) | — | — | 0.88 |
| Block groups reading > 3× SLD | 3.8% | — | low over-count |
| Dense urban (SLD ≥ 100) reading zero | 0% | — | no urban drop-out |
The two computation choices above each closed a specific gap. The bearing-leg test removed a 15–40× over-count in rural block groups (a rural Ohio block group that had read 117 intersections per square mile against an SLD value of under 4 now reads 2.4). The boundary-aware assignment removed a severe under-count in dense cities — Manhattan, where 78% of block groups had been reading zero, now matches SLD at a median of roughly 170. Together they bring the national median ratio to 0.97 and the rank correlation to 0.88.
Notes and limitations
- Source vintage. Geometry is TIGER/Line 2024; EPA SLD reflects an earlier base year, so small differences in individual block groups partly reflect real network change.
- Rank over absolute level. As with all of CommunityScale's built-environment measures, the rank correlation is the load-bearing statistic — the metric is most reliable for comparing places, and we calibrate the absolute level to SLD rather than treating either source as ground truth.
- Densest un-noded cores. A small share of the very densest grids, where TIGER omits the most crossings, can still read modestly below SLD; this affects rank negligibly.
Intersection density is the first of CommunityScale's spatial-analysis methodologies. Related measures — road-network density, walkability, and buildable-land suitability — share the same TIGER/SLD-calibrated foundation and are documented alongside it.