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"
# Jefferson County, AL
County jurisdiction.
County jurisdiction — 5 officeholders mapped.
## Demographics (ACS 2023)
@@ -0,0 +1,39 @@
---
type: Person
title: "Kenneth E. Gulley"
description: "Mayor, Bessemer, AL"
role: "Mayor, Bessemer, AL"
level: "municipal"
branch: "executive"
state: "AL"
tenure:
start: "2014-08-01"
current: true
ids:
person: "dfda5f08-7fad-4edf-9f44-29b5a7a4a0d0"
office: "6023bda8-484a-4dcf-8cf9-3b0d9d125b67"
tenure: "3c7c381a-fac0-4721-98b0-6b4f5d8c451e"
jurisdiction: "d0711578-64f7-4274-91ec-3a7452746680"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, al]
timestamp: "2026-07-04"
---
# Kenneth E. Gulley
Current Mayor, Bessemer, AL.
## 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: "Randall Woodfin"
description: "Mayor, Birmingham, AL"
role: "Mayor, Birmingham, AL"
level: "municipal"
branch: "executive"
state: "AL"
tenure:
start: "2017-01-01"
current: true
ids:
person: "0455926b-7f77-474d-9cf5-e141ee2e0030"
office: "0373bec9-60e4-4729-a50a-ce3cb383db0e"
tenure: "ea40b2e5-8062-4899-aa1a-cd6778f04876"
jurisdiction: "f25acb6a-8e64-4677-b9cc-702c7e196019"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, al]
timestamp: "2026-07-04"
---
# Randall Woodfin
Current Mayor, Birmingham, AL.
## 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: "Frank Brocato"
description: "Mayor, Hoover, AL"
role: "Mayor, Hoover, AL"
level: "municipal"
branch: "executive"
state: "AL"
tenure:
start: "2026-06-20"
current: true
ids:
person: "80ba9006-83e4-4c1c-a1aa-0e684311c270"
office: "a2219b2e-b113-4887-aa10-b83225402f1c"
tenure: "8a5aa773-a9d9-4129-9c75-85b10a867fa2"
jurisdiction: "0f09a80e-16eb-4c9c-b5a9-677d2fd308e4"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, al]
timestamp: "2026-07-04"
---
# Frank Brocato
Current Mayor, Hoover, AL.
## 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: "Buddy Choat"
description: "Mayor, Trussville, AL"
role: "Mayor, Trussville, AL"
level: "municipal"
branch: "executive"
state: "AL"
tenure:
start: "2026-06-20"
current: true
ids:
person: "e7997497-f5e7-40c7-8507-8483aee383cc"
office: "9e1123df-5f3c-4b63-bc8f-ea506cd25072"
tenure: "7f7436f5-5256-4181-8f56-986662c018f0"
jurisdiction: "32acec1e-6596-452e-928a-3e5351306700"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, al]
timestamp: "2026-07-04"
---
# Buddy Choat
Current Mayor, Trussville, AL.
## 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: "Ashley Curry"
description: "Mayor, Vestavia Hills, AL"
role: "Mayor, Vestavia Hills, AL"
level: "municipal"
branch: "executive"
state: "AL"
tenure:
start: "2026-06-20"
current: true
ids:
person: "044136d2-a267-4805-8ea2-da213976f287"
office: "16a393e0-9a61-446e-b9fa-3d8b091f2ded"
tenure: "69752008-401a-4b32-a946-4471f901bd24"
jurisdiction: "3a1c44ae-9859-4102-b587-ba5e45a07e0b"
sources:
- field: office
source: "Wikidata"
- field: tenure
source: "Wikidata"
- field: jurisdiction
source: "Census TIGER 2024"
confidence: official
tags: [officeholder, municipal, executive, al]
timestamp: "2026-07-04"
---
# Ashley Curry
Current Mayor, Vestavia Hills, AL.
## Sources
- office: Wikidata
- tenure: Wikidata
- jurisdiction: Census TIGER 2024
Generated from the Atlas officeholders v3 export (2026-07-04).