Municipals: nest 1,823 city officeholders under their real counties

Pull Atlas's place→county crosswalk (Census TIGER 2024 places × county
geometries, 32,041 places) into the build as a committed raw input, and
use it to resolve municipal officeholders whose county was unknown.

- data/place_county_crosswalk.jsonl — new raw input (place_geoid → county_geoid)
- build.py — place-name+state → county_geoid → ACS county slug as a fallback
  in county_slug(); city_slug() generalized to non-FL bare place labels
- data/sources/sources.yaml — provenance entry for the crosswalk

_unresolved municipals: 1919 → 58. The remainder are genuine: CT planning
regions (post-county), county-level rows mislabeled municipal upstream,
consolidated city-counties (null label), Wikidata-QID placeholder names,
and ambiguous same-name places — left unresolved rather than guessed.

Join key is county_geoid (5-digit FIPS); the directory slug is taken from
the ACS county node so municipals nest under the exact existing county dir.
Deterministic (byte-identical rebuild); validate.py passes 19,721 records.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Fabio
2026-07-04 20:23:57 -04:00
parent ad7607856d
commit 199d8b37d3
2893 changed files with 33094 additions and 995 deletions
@@ -32,7 +32,7 @@ timestamp: "2026-07-03"
# Plymouth County, IA
County jurisdiction.
County jurisdiction — 5 officeholders mapped.
## Demographics (ACS 2023)
@@ -0,0 +1,39 @@
---
type: Person
title: "Alex Pick"
description: "Mayor, Akron, IA"
role: "Mayor, Akron, IA"
level: "municipal"
branch: "executive"
state: "IA"
tenure:
start: "2026-06-20"
current: true
ids:
person: "877d6bdd-6e94-46ab-b651-2e0e3907d1eb"
office: "5f694e8e-741c-42d9-af18-d9991e77dd17"
tenure: "cbca5ff2-95c0-45cd-8020-107df3aa027d"
jurisdiction: "458a72a5-c3fa-4a49-96cd-e8b858c40802"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, ia]
timestamp: "2026-07-04"
---
# Alex Pick
Current Mayor, Akron, IA.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).
@@ -0,0 +1,39 @@
---
type: Person
title: "Kelly Kreber"
description: "Mayor, Hinton, IA"
role: "Mayor, Hinton, IA"
level: "municipal"
branch: "executive"
state: "IA"
tenure:
start: "2026-06-20"
current: true
ids:
person: "d0814fcd-98f5-4015-8c34-d0195a73b85c"
office: "5071a32e-e287-4859-9233-779861479bdf"
tenure: "6696636f-8d7d-4bd0-a909-5fcd762f8a51"
jurisdiction: "d12f4a5c-44ab-495a-a72e-94d74909f8f3"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, ia]
timestamp: "2026-07-04"
---
# Kelly Kreber
Current Mayor, Hinton, IA.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).
@@ -0,0 +1,39 @@
---
type: Person
title: "Rick Bohle"
description: "Mayor, Kingsley, IA"
role: "Mayor, Kingsley, IA"
level: "municipal"
branch: "executive"
state: "IA"
tenure:
start: "2026-06-20"
current: true
ids:
person: "4fbb6da9-79e7-443e-8046-46b85eab1a64"
office: "df3a14f5-9711-40af-96e9-6fcf9948ed27"
tenure: "ba613086-3e97-45ef-a51e-49f012be85f0"
jurisdiction: "56b009bd-6724-4b96-9587-bb31c63b21ec"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, ia]
timestamp: "2026-07-04"
---
# Rick Bohle
Current Mayor, Kingsley, IA.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).
@@ -0,0 +1,39 @@
---
type: Person
title: "Rob Bixenman"
description: "Mayor, Le Mars, IA"
role: "Mayor, Le Mars, IA"
level: "municipal"
branch: "executive"
state: "IA"
tenure:
start: "2026-06-20"
current: true
ids:
person: "8f2475ff-729f-422c-84c1-7cb92dead64a"
office: "42869e5b-7426-4bff-82cc-c9e1f03e9322"
tenure: "8c88d470-56a7-4431-b3a2-7b8a3037e39d"
jurisdiction: "f537d25f-e4f1-4541-b6fb-3ca4fee999b4"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, ia]
timestamp: "2026-07-04"
---
# Rob Bixenman
Current Mayor, Le Mars, IA.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).
@@ -0,0 +1,39 @@
---
type: Person
title: "Bruce Norgaard"
description: "Mayor, Merrill, IA"
role: "Mayor, Merrill, IA"
level: "municipal"
branch: "executive"
state: "IA"
tenure:
start: "2026-06-20"
current: true
ids:
person: "bd64296d-d7ff-42ed-a755-a51de756bd3f"
office: "3c5e7f9a-8516-4638-a537-3240bdf735b4"
tenure: "859f641c-ead7-4c59-95f0-44580a0ac10e"
jurisdiction: "98118e5a-3994-4791-b2b0-8d30e67b852f"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, ia]
timestamp: "2026-07-04"
---
# Bruce Norgaard
Current Mayor, Merrill, IA.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).