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"
# Lorain County, OH
County jurisdiction.
County jurisdiction — 7 officeholders mapped.
## Demographics (ACS 2023)
@@ -0,0 +1,39 @@
---
type: Person
title: "Mark Spaetzel"
description: "Mayor, Avon Lake, OH"
role: "Mayor, Avon Lake, OH"
level: "municipal"
branch: "executive"
state: "OH"
tenure:
start: "2024-01-01"
current: true
ids:
person: "ae67f785-45d1-4e1d-8be3-619131c86801"
office: "580cd2aa-2900-4d81-9b6e-4660275bfe27"
tenure: "ce820b6d-9cbb-4071-8545-6061b8cc6916"
jurisdiction: "13867117-b8b0-46c5-bd01-dd9dc8b205c0"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, oh]
timestamp: "2026-07-04"
---
# Mark Spaetzel
Current Mayor, Avon Lake, OH.
## 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: "Bryan K. Jensen"
description: "Mayor, Avon, OH"
role: "Mayor, Avon, OH"
level: "municipal"
branch: "executive"
state: "OH"
tenure:
start: "2026-06-20"
current: true
ids:
person: "dfa472e5-1686-4402-a93c-6ffc2e655740"
office: "e4257bcb-6b5b-4715-b643-3e1d95af46b6"
tenure: "9b5e0b83-dd8b-4164-bb22-7a8f3f16c861"
jurisdiction: "93a01e28-08bb-4b3b-b22e-67f20baf5651"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, oh]
timestamp: "2026-07-04"
---
# Bryan K. Jensen
Current Mayor, Avon, OH.
## 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: "Kevin Brubaker"
description: "Mayor, Elyria, OH"
role: "Mayor, Elyria, OH"
level: "municipal"
branch: "executive"
state: "OH"
tenure:
start: "2024-01-01"
current: true
ids:
person: "4175f668-1f9f-40c5-b6e6-142d0023e471"
office: "546617c7-34e3-4e09-9f21-1f783dc2a9fb"
tenure: "99ad2627-6e3d-4ffd-b117-776036fcb95e"
jurisdiction: "3ced4683-8611-4929-ac23-22f0eb6ec630"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, oh]
timestamp: "2026-07-04"
---
# Kevin Brubaker
Current Mayor, Elyria, OH.
## 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: "Jack Bradley"
description: "Mayor, Lorain, OH"
role: "Mayor, Lorain, OH"
level: "municipal"
branch: "executive"
state: "OH"
tenure:
start: "2026-06-20"
current: true
ids:
person: "2771301c-71ba-4149-95af-4178bde4745d"
office: "0b325f4f-4e5d-4e33-b9ba-a34977a4822c"
tenure: "66509586-ab88-4c3a-95bd-5504f1199f74"
jurisdiction: "07f8178a-5b65-46fc-a063-842758678df1"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, oh]
timestamp: "2026-07-04"
---
# Jack Bradley
Current Mayor, Lorain, OH.
## 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: "Kevin Corcoran"
description: "Mayor, North Ridgeville, OH"
role: "Mayor, North Ridgeville, OH"
level: "municipal"
branch: "executive"
state: "OH"
tenure:
start: "2020-01-01"
current: true
ids:
person: "be0a92e1-f9d4-4403-b597-9025af9ba026"
office: "10c37630-53b1-4e6b-98fe-d49051307cf9"
tenure: "1d7f468f-36f1-42b3-8a37-2cbfc068a338"
jurisdiction: "4adb432e-6b78-4d3d-976c-23ec50abc39e"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, oh]
timestamp: "2026-07-04"
---
# Kevin Corcoran
Current Mayor, North Ridgeville, OH.
## 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: "Henry F. Smith"
description: "Mayor, Oberlin, OH"
role: "Mayor, Oberlin, OH"
level: "municipal"
branch: "executive"
state: "OH"
tenure:
start: "2022-01-01"
current: true
ids:
person: "80e4d8d2-4154-462e-a96b-06d0a3a1b9b1"
office: "2f397f6a-c509-4f18-b0a1-c37de77b6522"
tenure: "ff82ef0c-48da-4553-ba5c-5c469c359264"
jurisdiction: "3925c5a7-5904-40bd-9813-c9dee4e8ecd6"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, oh]
timestamp: "2026-07-04"
---
# Henry F. Smith
Current Mayor, Oberlin, OH.
## 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: "Jim Forthofer"
description: "Mayor, Vermilion, OH"
role: "Mayor, Vermilion, OH"
level: "municipal"
branch: "executive"
state: "OH"
tenure:
start: "2026-06-20"
current: true
ids:
person: "5297a065-5589-4a98-9429-51a9948bd70d"
office: "fca8e12c-f2ae-4a86-ad26-4c6759ff1e6d"
tenure: "ee4cd50f-0ebe-4f61-80e6-9c7b2eb44998"
jurisdiction: "081872cc-3cc0-4aae-aaa6-8e042d613431"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, oh]
timestamp: "2026-07-04"
---
# Jim Forthofer
Current Mayor, Vermilion, OH.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).