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"
# Cumberland County, ME
County jurisdiction.
County jurisdiction — 3 officeholders mapped.
## Demographics (ACS 2023)
@@ -0,0 +1,39 @@
---
type: Person
title: "Mark Dion"
description: "Mayor, Portland, ME"
role: "Mayor, Portland, ME"
level: "municipal"
branch: "executive"
state: "ME"
tenure:
start: "2024-01-01"
current: true
ids:
person: "bf82a8b1-4526-4214-8056-87e3e862322c"
office: "d79e89ef-6c00-46fa-8cfd-04ec18785f8f"
tenure: "348c172d-5e88-4c1d-8710-06eedee1df1f"
jurisdiction: "ae3a86b4-a7e6-42ad-b1a0-c9876df4b658"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, me]
timestamp: "2026-07-04"
---
# Mark Dion
Current Mayor, Portland, ME.
## 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: "Misha C. Pride"
description: "Mayor, South Portland, ME"
role: "Mayor, South Portland, ME"
level: "municipal"
branch: "executive"
state: "ME"
tenure:
start: "2026-06-20"
current: true
ids:
person: "c6f83e1d-f2fc-4e93-b7d2-603bf2ae7c28"
office: "2f88c12d-3a6f-4a36-b696-f29915dabeee"
tenure: "6a8629c3-5f27-4cb3-a3fb-f9f07aff30a0"
jurisdiction: "270c6fa4-3fcd-4e25-857c-920b61dfc896"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, me]
timestamp: "2026-07-04"
---
# Misha C. Pride
Current Mayor, South Portland, ME.
## 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: "David Morse"
description: "Mayor, Westbrook, ME"
role: "Mayor, Westbrook, ME"
level: "municipal"
branch: "executive"
state: "ME"
tenure:
start: "2026-06-20"
current: true
ids:
person: "c07ab3ee-ed9f-4cf1-bfe9-4ec931f8c4d2"
office: "3ebe7eae-5818-413a-933e-12a79890dcbb"
tenure: "a1bb8bfe-324b-4bdd-a59a-67eb57dc179e"
jurisdiction: "0a2a6d20-5078-460a-a0b3-3a9f41b57704"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, me]
timestamp: "2026-07-04"
---
# David Morse
Current Mayor, Westbrook, ME.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).