Graph: national county↔district↔legislator authority layer

The first edges in the repo. Every US county now links to the districts it
sits in, weighted by area overlap, and every legislator links to the district
they represent — county → district → representative, traversable.

Data (PostGIS, no Atlas dependency — computed directly from geometry):
- data/county_district_edges.jsonl — 16,328 weighted edges. area_weight =
  ST_Area(ST_Intersection(county, district))/ST_Area(county) over ST_MakeValid
  Census TIGER 2024 geometries, overlaps <0.5% dropped. Uses area-intersection,
  NOT centroid-in-polygon, so urban districts that carve through counties
  (e.g. GA CD-5 / Atlanta across Clayton+DeKalb+Fulton) are captured, not
  silently dropped. Per-county weights sum to ~1.0 per district type.

build.py:
- ~6,896 new district nodes: 435 CD (ACS demographics where available; sparse
  for the 8 states missing from acs_cd) + 4,927 state-house + 1,897 state-senate
  (geometry-only). GEOID/number-keyed, stable.
- county index.md gains a `districts:` block (frontmatter) + a ## Districts
  section (body links, so link-integrity checks them).
- legislators + US House members gain `represents:` pointing at their district
  node; edge stored once on the person, inverse left to the view.
- schemas/jurisdiction: classification enum + chamber/districts fields.

Honest gaps (logged, not hidden): ID + NH have no state-house geometry, so
their house districts get nodes (represents resolves) but no county edges;
CD nodes for acs_cd-missing states are demographically sparse.

Deterministic (byte-identical rebuild); validate.py passes 26,617 records,
link-integrity clean (every district/represents link resolves).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Fabio
2026-07-04 22:28:08 -04:00
parent 6c9990a115
commit 1beeaab2db
18213 changed files with 280514 additions and 3515 deletions
@@ -22,9 +22,252 @@ demographics:
race_native: 47333
hispanic: 1387163
bachelors_plus: 2210554
districts:
- to: "us/states/il/districts/02"
rel: in-district
area_weight: 0.1018
- to: "us/states/il/districts/06"
rel: in-district
area_weight: 0.0861
- to: "us/states/il/districts/05"
rel: in-district
area_weight: 0.0728
- to: "us/states/il/districts/08"
rel: in-district
area_weight: 0.063
- to: "us/states/il/districts/01"
rel: in-district
area_weight: 0.0542
- to: "us/states/il/districts/04"
rel: in-district
area_weight: 0.0514
- to: "us/states/il/districts/09"
rel: in-district
area_weight: 0.0505
- to: "us/states/il/districts/07"
rel: in-district
area_weight: 0.042
- to: "us/states/il/districts/03"
rel: in-district
area_weight: 0.0338
- to: "us/states/il/districts/10"
rel: in-district
area_weight: 0.022
- to: "us/states/il/districts/11"
rel: in-district
area_weight: 0.0071
- to: "us/states/il/districts/senate/15"
rel: in-district
area_weight: 0.0421
- to: "us/states/il/districts/senate/18"
rel: in-district
area_weight: 0.04
- to: "us/states/il/districts/senate/26"
rel: in-district
area_weight: 0.0385
- to: "us/states/il/districts/senate/17"
rel: in-district
area_weight: 0.0359
- to: "us/states/il/districts/senate/14"
rel: in-district
area_weight: 0.0339
- to: "us/states/il/districts/senate/28"
rel: in-district
area_weight: 0.0327
- to: "us/states/il/districts/senate/19"
rel: in-district
area_weight: 0.0295
- to: "us/states/il/districts/senate/27"
rel: in-district
area_weight: 0.026
- to: "us/states/il/districts/senate/29"
rel: in-district
area_weight: 0.0246
- to: "us/states/il/districts/senate/9"
rel: in-district
area_weight: 0.0241
- to: "us/states/il/districts/senate/41"
rel: in-district
area_weight: 0.0225
- to: "us/states/il/districts/senate/4"
rel: in-district
area_weight: 0.022
- to: "us/states/il/districts/senate/22"
rel: in-district
area_weight: 0.0217
- to: "us/states/il/districts/senate/11"
rel: in-district
area_weight: 0.0207
- to: "us/states/il/districts/senate/39"
rel: in-district
area_weight: 0.0207
- to: "us/states/il/districts/senate/8"
rel: in-district
area_weight: 0.0173
- to: "us/states/il/districts/senate/16"
rel: in-district
area_weight: 0.0166
- to: "us/states/il/districts/senate/10"
rel: in-district
area_weight: 0.0163
- to: "us/states/il/districts/senate/1"
rel: in-district
area_weight: 0.0152
- to: "us/states/il/districts/senate/40"
rel: in-district
area_weight: 0.0112
- to: "us/states/il/districts/senate/5"
rel: in-district
area_weight: 0.0109
- to: "us/states/il/districts/senate/13"
rel: in-district
area_weight: 0.0102
- to: "us/states/il/districts/senate/3"
rel: in-district
area_weight: 0.0097
- to: "us/states/il/districts/senate/12"
rel: in-district
area_weight: 0.009
- to: "us/states/il/districts/senate/2"
rel: in-district
area_weight: 0.0068
- to: "us/states/il/districts/senate/20"
rel: in-district
area_weight: 0.0066
- to: "us/states/il/districts/senate/25"
rel: in-district
area_weight: 0.0057
- to: "us/states/il/districts/house/38"
rel: in-district
area_weight: 0.0235
- to: "us/states/il/districts/house/30"
rel: in-district
area_weight: 0.0234
- to: "us/states/il/districts/house/56"
rel: in-district
area_weight: 0.0229
- to: "us/states/il/districts/house/82"
rel: in-district
area_weight: 0.0225
- to: "us/states/il/districts/house/34"
rel: in-district
area_weight: 0.0224
- to: "us/states/il/districts/house/57"
rel: in-district
area_weight: 0.0223
- to: "us/states/il/districts/house/52"
rel: in-district
area_weight: 0.0221
- to: "us/states/il/districts/house/36"
rel: in-district
area_weight: 0.0205
- to: "us/states/il/districts/house/35"
rel: in-district
area_weight: 0.0195
- to: "us/states/il/districts/house/29"
rel: in-district
area_weight: 0.0187
- to: "us/states/il/districts/house/27"
rel: in-district
area_weight: 0.0183
- to: "us/states/il/districts/house/51"
rel: in-district
area_weight: 0.0163
- to: "us/states/il/districts/house/28"
rel: in-district
area_weight: 0.0156
- to: "us/states/il/districts/house/17"
rel: in-district
area_weight: 0.015
- to: "us/states/il/districts/house/44"
rel: in-district
area_weight: 0.0145
- to: "us/states/il/districts/house/77"
rel: in-district
area_weight: 0.0139
- to: "us/states/il/districts/house/33"
rel: in-district
area_weight: 0.0135
- to: "us/states/il/districts/house/54"
rel: in-district
area_weight: 0.0134
- to: "us/states/il/districts/house/7"
rel: in-district
area_weight: 0.0127
- to: "us/states/il/districts/house/53"
rel: in-district
area_weight: 0.0126
- to: "us/states/il/districts/house/21"
rel: in-district
area_weight: 0.0113
- to: "us/states/il/districts/house/20"
rel: in-district
area_weight: 0.0109
- to: "us/states/il/districts/house/15"
rel: in-district
area_weight: 0.0106
- to: "us/states/il/districts/house/55"
rel: in-district
area_weight: 0.0098
- to: "us/states/il/districts/house/80"
rel: in-district
area_weight: 0.0098
- to: "us/states/il/districts/house/31"
rel: in-district
area_weight: 0.0097
- to: "us/states/il/districts/house/22"
rel: in-district
area_weight: 0.0094
- to: "us/states/il/districts/house/8"
rel: in-district
area_weight: 0.0093
- to: "us/states/il/districts/house/18"
rel: in-district
area_weight: 0.0091
- to: "us/states/il/districts/house/2"
rel: in-district
area_weight: 0.0083
- to: "us/states/il/districts/house/43"
rel: in-district
area_weight: 0.0072
- to: "us/states/il/districts/house/1"
rel: in-district
area_weight: 0.0069
- to: "us/states/il/districts/house/32"
rel: in-district
area_weight: 0.0069
- to: "us/states/il/districts/house/78"
rel: in-district
area_weight: 0.0068
- to: "us/states/il/districts/house/16"
rel: in-district
area_weight: 0.0067
- to: "us/states/il/districts/house/37"
rel: in-district
area_weight: 0.006
- to: "us/states/il/districts/house/25"
rel: in-district
area_weight: 0.0057
- to: "us/states/il/districts/house/49"
rel: in-district
area_weight: 0.0057
- to: "us/states/il/districts/house/10"
rel: in-district
area_weight: 0.0056
- to: "us/states/il/districts/house/6"
rel: in-district
area_weight: 0.0055
- to: "us/states/il/districts/house/19"
rel: in-district
area_weight: 0.0054
- to: "us/states/il/districts/house/9"
rel: in-district
area_weight: 0.0053
sources:
- field: demographics
source: Census ACS 2023
source: "Census ACS 2023"
- field: districts
source: "PostGIS area-intersection over Census TIGER 2024 boundaries"
confidence: official
tags: [jurisdiction, county, il]
timestamp: "2026-07-03"
@@ -56,6 +299,90 @@ County jurisdiction — 1 officeholders mapped.
| Hispanic/Latino | 1387163 |
| Bachelor's or higher | 2210554 |
## Districts
- [IL-02](/us/states/il/districts/02.md) — 10% (congressional)
- [IL-06](/us/states/il/districts/06.md) — 9% (congressional)
- [IL-05](/us/states/il/districts/05.md) — 7% (congressional)
- [IL-08](/us/states/il/districts/08.md) — 6% (congressional)
- [IL-01](/us/states/il/districts/01.md) — 5% (congressional)
- [IL-04](/us/states/il/districts/04.md) — 5% (congressional)
- [IL-09](/us/states/il/districts/09.md) — 5% (congressional)
- [IL-07](/us/states/il/districts/07.md) — 4% (congressional)
- [IL-03](/us/states/il/districts/03.md) — 3% (congressional)
- [IL-10](/us/states/il/districts/10.md) — 2% (congressional)
- [IL-11](/us/states/il/districts/11.md) — 1% (congressional)
- [IL Senate District 15](/us/states/il/districts/senate/15.md) — 4% (state senate)
- [IL Senate District 18](/us/states/il/districts/senate/18.md) — 4% (state senate)
- [IL Senate District 26](/us/states/il/districts/senate/26.md) — 4% (state senate)
- [IL Senate District 17](/us/states/il/districts/senate/17.md) — 4% (state senate)
- [IL Senate District 14](/us/states/il/districts/senate/14.md) — 3% (state senate)
- [IL Senate District 28](/us/states/il/districts/senate/28.md) — 3% (state senate)
- [IL Senate District 19](/us/states/il/districts/senate/19.md) — 3% (state senate)
- [IL Senate District 27](/us/states/il/districts/senate/27.md) — 3% (state senate)
- [IL Senate District 29](/us/states/il/districts/senate/29.md) — 2% (state senate)
- [IL Senate District 9](/us/states/il/districts/senate/9.md) — 2% (state senate)
- [IL Senate District 41](/us/states/il/districts/senate/41.md) — 2% (state senate)
- [IL Senate District 4](/us/states/il/districts/senate/4.md) — 2% (state senate)
- [IL Senate District 22](/us/states/il/districts/senate/22.md) — 2% (state senate)
- [IL Senate District 11](/us/states/il/districts/senate/11.md) — 2% (state senate)
- [IL Senate District 39](/us/states/il/districts/senate/39.md) — 2% (state senate)
- [IL Senate District 8](/us/states/il/districts/senate/8.md) — 2% (state senate)
- [IL Senate District 16](/us/states/il/districts/senate/16.md) — 2% (state senate)
- [IL Senate District 10](/us/states/il/districts/senate/10.md) — 2% (state senate)
- [IL Senate District 1](/us/states/il/districts/senate/1.md) — 2% (state senate)
- [IL Senate District 40](/us/states/il/districts/senate/40.md) — 1% (state senate)
- [IL Senate District 5](/us/states/il/districts/senate/5.md) — 1% (state senate)
- [IL Senate District 13](/us/states/il/districts/senate/13.md) — 1% (state senate)
- [IL Senate District 3](/us/states/il/districts/senate/3.md) — 1% (state senate)
- [IL Senate District 12](/us/states/il/districts/senate/12.md) — 1% (state senate)
- [IL Senate District 2](/us/states/il/districts/senate/2.md) — 1% (state senate)
- [IL Senate District 20](/us/states/il/districts/senate/20.md) — 1% (state senate)
- [IL Senate District 25](/us/states/il/districts/senate/25.md) — 1% (state senate)
- [IL House District 38](/us/states/il/districts/house/38.md) — 2% (state house)
- [IL House District 30](/us/states/il/districts/house/30.md) — 2% (state house)
- [IL House District 56](/us/states/il/districts/house/56.md) — 2% (state house)
- [IL House District 82](/us/states/il/districts/house/82.md) — 2% (state house)
- [IL House District 34](/us/states/il/districts/house/34.md) — 2% (state house)
- [IL House District 57](/us/states/il/districts/house/57.md) — 2% (state house)
- [IL House District 52](/us/states/il/districts/house/52.md) — 2% (state house)
- [IL House District 36](/us/states/il/districts/house/36.md) — 2% (state house)
- [IL House District 35](/us/states/il/districts/house/35.md) — 2% (state house)
- [IL House District 29](/us/states/il/districts/house/29.md) — 2% (state house)
- [IL House District 27](/us/states/il/districts/house/27.md) — 2% (state house)
- [IL House District 51](/us/states/il/districts/house/51.md) — 2% (state house)
- [IL House District 28](/us/states/il/districts/house/28.md) — 2% (state house)
- [IL House District 17](/us/states/il/districts/house/17.md) — 2% (state house)
- [IL House District 44](/us/states/il/districts/house/44.md) — 1% (state house)
- [IL House District 77](/us/states/il/districts/house/77.md) — 1% (state house)
- [IL House District 33](/us/states/il/districts/house/33.md) — 1% (state house)
- [IL House District 54](/us/states/il/districts/house/54.md) — 1% (state house)
- [IL House District 7](/us/states/il/districts/house/7.md) — 1% (state house)
- [IL House District 53](/us/states/il/districts/house/53.md) — 1% (state house)
- [IL House District 21](/us/states/il/districts/house/21.md) — 1% (state house)
- [IL House District 20](/us/states/il/districts/house/20.md) — 1% (state house)
- [IL House District 15](/us/states/il/districts/house/15.md) — 1% (state house)
- [IL House District 55](/us/states/il/districts/house/55.md) — 1% (state house)
- [IL House District 80](/us/states/il/districts/house/80.md) — 1% (state house)
- [IL House District 31](/us/states/il/districts/house/31.md) — 1% (state house)
- [IL House District 22](/us/states/il/districts/house/22.md) — 1% (state house)
- [IL House District 8](/us/states/il/districts/house/8.md) — 1% (state house)
- [IL House District 18](/us/states/il/districts/house/18.md) — 1% (state house)
- [IL House District 2](/us/states/il/districts/house/2.md) — 1% (state house)
- [IL House District 43](/us/states/il/districts/house/43.md) — 1% (state house)
- [IL House District 1](/us/states/il/districts/house/1.md) — 1% (state house)
- [IL House District 32](/us/states/il/districts/house/32.md) — 1% (state house)
- [IL House District 78](/us/states/il/districts/house/78.md) — 1% (state house)
- [IL House District 16](/us/states/il/districts/house/16.md) — 1% (state house)
- [IL House District 37](/us/states/il/districts/house/37.md) — 1% (state house)
- [IL House District 25](/us/states/il/districts/house/25.md) — 1% (state house)
- [IL House District 49](/us/states/il/districts/house/49.md) — 1% (state house)
- [IL House District 10](/us/states/il/districts/house/10.md) — 1% (state house)
- [IL House District 6](/us/states/il/districts/house/6.md) — 1% (state house)
- [IL House District 19](/us/states/il/districts/house/19.md) — 1% (state house)
- [IL House District 9](/us/states/il/districts/house/9.md) — 1% (state house)
## Source
- demographics: Census ACS 2023
- districts: PostGIS area-intersection over Census TIGER 2024 boundaries