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"
# Greenville County, SC
County jurisdiction.
County jurisdiction — 3 officeholders mapped.
## Demographics (ACS 2023)
@@ -0,0 +1,39 @@
---
type: Person
title: "Knox H. White"
description: "Mayor, Greenville, SC"
role: "Mayor, Greenville, SC"
level: "municipal"
branch: "executive"
state: "SC"
tenure:
start: "1995-12-11"
current: true
ids:
person: "191a0ae2-418f-4069-a351-cc20d3d9480a"
office: "7f10af7d-f4aa-45ff-a691-f95ad8b45b8c"
tenure: "7e85970d-be29-45aa-b100-b31f6906f4b5"
jurisdiction: "e5a2a477-5280-4ae4-b74c-8a0cac05e4bd"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, sc]
timestamp: "2026-07-04"
---
# Knox H. White
Current Mayor, Greenville, SC.
## 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: "Richard W. Danner"
description: "Mayor, Greer, SC"
role: "Mayor, Greer, SC"
level: "municipal"
branch: "executive"
state: "SC"
tenure:
start: "2026-06-20"
current: true
ids:
person: "0e55e53e-bdc3-40cb-907b-6d6d95650b8e"
office: "22ba24f9-68da-4fc3-b981-105d2847a93f"
tenure: "4d23c572-4b90-4d7c-a5d6-2236c06e4ac3"
jurisdiction: "531e27d2-1ab1-4e38-8be4-7b6eb7fda6a3"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, sc]
timestamp: "2026-07-04"
---
# Richard W. Danner
Current Mayor, Greer, SC.
## 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: "Terry Merritt"
description: "Mayor, Mauldin, SC"
role: "Mayor, Mauldin, SC"
level: "municipal"
branch: "executive"
state: "SC"
tenure:
start: "2020-01-01"
current: true
ids:
person: "308be8e9-3d6e-4a63-8c56-7a7c3690cfba"
office: "e9bd8f3d-abf8-4ff9-a508-c39b379309be"
tenure: "ed779784-d42a-445e-8b4b-997f24013df1"
jurisdiction: "c7ad2c19-1cdb-41ea-bf62-03ddc8d4055b"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, sc]
timestamp: "2026-07-04"
---
# Terry Merritt
Current Mayor, Mauldin, SC.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).