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"
# Marion County, IA
County jurisdiction.
County jurisdiction — 3 officeholders mapped.
## Demographics (ACS 2023)
@@ -0,0 +1,39 @@
---
type: Person
title: "Brian Hatch"
description: "Mayor, Knoxville, IA"
role: "Mayor, Knoxville, IA"
level: "municipal"
branch: "executive"
state: "IA"
tenure:
start: "2026-06-20"
current: true
ids:
person: "c9a5ae75-c84a-4963-b801-5999d9b52723"
office: "5ba26cd4-93c2-40a5-aae4-b9d45800c263"
tenure: "31859f2d-3234-42e5-b561-50b6fa7a86df"
jurisdiction: "54fac911-9837-40d7-96e2-3915422c45b8"
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"
---
# Brian Hatch
Current Mayor, Knoxville, 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: "Don DeWaard"
description: "Mayor, Pella, IA"
role: "Mayor, Pella, IA"
level: "municipal"
branch: "executive"
state: "IA"
tenure:
start: "2020-01-01"
current: true
ids:
person: "0a198060-b460-4dff-84fe-522fa5763746"
office: "54e7187e-8c13-4941-8139-2787f3aae6f2"
tenure: "f2369e1b-19ea-4f2a-b7ab-077050d3a6b0"
jurisdiction: "cdfef3b3-fbcc-48b9-9b35-9e220ed41448"
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"
---
# Don DeWaard
Current Mayor, Pella, 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: "Kody Jurgens"
description: "Mayor, Pleasantville, IA"
role: "Mayor, Pleasantville, IA"
level: "municipal"
branch: "executive"
state: "IA"
tenure:
start: "2026-06-20"
current: true
ids:
person: "8bbdf592-4e1b-41a3-a527-c9dc9558546e"
office: "487db66a-ffcc-4697-bd6c-faa76b27201e"
tenure: "36074f5c-c8b1-4315-a126-27e2e5d10141"
jurisdiction: "f3a7ec13-1efa-49ce-a350-b527b63048d5"
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"
---
# Kody Jurgens
Current Mayor, Pleasantville, IA.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).