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"
# York County, ME
County jurisdiction.
County jurisdiction — 3 officeholders mapped.
## Demographics (ACS 2023)
@@ -0,0 +1,39 @@
---
type: Person
title: "Martin Grohman"
description: "Mayor, Biddeford, ME"
role: "Mayor, Biddeford, ME"
level: "municipal"
branch: "executive"
state: "ME"
tenure:
start: "2026-06-20"
current: true
ids:
person: "e151c2d5-7814-49e0-8e6b-4a58c8213e0c"
office: "5b584850-f95b-4ca0-91eb-3dcb03243531"
tenure: "4f617983-917f-42f8-b387-65aa59618243"
jurisdiction: "4dfabb88-5b4e-4dd2-9a1a-78661e6eee80"
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"
---
# Martin Grohman
Current Mayor, Biddeford, 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: "Jodi MacPhail"
description: "Mayor, Saco, ME"
role: "Mayor, Saco, ME"
level: "municipal"
branch: "executive"
state: "ME"
tenure:
start: "2023-01-01"
current: true
ids:
person: "022a2e1f-3a06-4214-83b1-b4a28c338595"
office: "e2442cbb-ef39-48dd-9d0f-427a48a62cda"
tenure: "5d6bc45c-cfd3-4b4e-a85f-24e1244bd6f4"
jurisdiction: "96902d7a-7ce7-45a2-9c09-4a1aad09d135"
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"
---
# Jodi MacPhail
Current Mayor, Saco, 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: "Becky A. Brink"
description: "Mayor, Sanford, ME"
role: "Mayor, Sanford, ME"
level: "municipal"
branch: "executive"
state: "ME"
tenure:
start: "2026-06-20"
current: true
ids:
person: "ca042c8e-5009-4423-b156-1d2a8a4c2013"
office: "5716a0d3-0953-4f7a-953b-18235b7ff421"
tenure: "128652f4-cb4e-4ff9-84ff-c127a7231d09"
jurisdiction: "18fba2dc-fce9-4014-93ea-9cf07a31a727"
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"
---
# Becky A. Brink
Current Mayor, Sanford, ME.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).