Regenerated data/jurisdictions with the municipal layer: 10,253 cities,
4,331 towns, 3,716 villages, 1,218 boroughs. Jurisdiction records
10,390 -> 29,908.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>
Two new entity types, built deterministically from the raw exports:
Candidate (2,494) — 2026 federal candidates as files under
us/states/<st>/candidates/, with office,
district, party, incumbent/challenger stance,
campaign committee, FEC id.
Jurisdiction (3,494) — demographic nodes carrying ACS 2023 data:
3,131 counties (deduped from 3,231 mixed-format
fips keys) + 363 congressional districts.
This completes the county skeleton nationwide: every US county is now a
browsable node with population, income, poverty, race, education and
housing — even where no officeholders are mapped yet. In Florida the
county index.md merges into the existing dir and reports its officeholder
count alongside demographics (St. Lucie: 33 officeholders + ACS profile).
build.py now reads seven raw inputs in one deterministic pass
(byte-identical on rerun). The mirror now answers: who holds power, who
runs this institution, who is running, and what each place is made of.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>