Data Status · 2026-05-30

Corpus Data Status

Unified status across five data domains: cities, counties, states, building codes, and supporting datasets. Each record carries one of shipped / pending / stale / corrupted / missing. Generated from manifests in zoning/manifests/ plus per-record files under profiles/, counties/, state-overlays/, state-preemptions/, federal-overlays/, and _generator/building-codes/.
Roadmap Cities Counties States Codes APIs Assets Other
Cities
331 in corpus
190 v2-shipped · 57%
States
51 / 51
overlay JSON shipped · 684 preempt rules
Codes
31 / 51
states with full IBC+IRC+IECC+IFC+NEC adoption
APIs
36 / 172
shipped · 23 bundle-keyed · 139/172 platform-classified
Atlas layers
4 active
research-status, freshness, preempt-depth, code-adoption
Schema debt
0 errors
across 0 profiles · ratcheting down
National rollup · refreshed by generate_dashboards.py --applyLast updated 2026-05-30

Cities

190 / 331
avg quality 98%
Shipped 190Stale 134Corrupted 7

Counties

131 / 218
avg quality 74%
Shipped 131Pending 87

States

51 / 51
avg quality 100%
Shipped 51

Codes

219 / 255
avg quality 92%
Shipped 219Pending 36

APIs

36 / 172
avg quality 70%
Shipped 36Pending 131Documented 4Corrupted 1

Assets

60 / 60
avg quality 100%
Shipped 60

Other

307 / 313
avg quality 98%
Shipped 307Pending 5Missing 1
Roadmap — 38 active · 1 blocked · 24 done · 64 total
Weeks-long parallel efforts. Each card pulls its progress number live from this dashboard's record counts via its metric clause. Add an effort by dropping a new JSON file into roadmap/efforts/ — see roadmap/SCHEMA.md for the schema.

Drain Tennessee pending city profilesactive

Owner harness53 · Target 2026-06-12
8 TN cities are pending in the repair queue — close them following the TX/CA single-state pattern.
Progress
1/10 · 10%
  • 2026-05-22 — Triage TN pending entries — sort template-bleed corrupted from V2 soft-fails from V1 legacy
  • 2026-05-29 — Rewrite any template-bleed cities
  • 2026-06-05 — Drain TN V2 soft-fails through publication-validator
  • 2026-06-10 — Upgrade remaining V1 legacy TN profiles to V2 schema
  • 2026-06-12 — All TN city profiles at status=shipped
Blocked: Collierville's primary source codelibrary.amlegal.com returns HTTP 403 with cf-mitigated:challenge to scripted access. §151.027 bulk regulations table not extractable; Wayback Machine archived only the TOC (sid 41935), not the dimensional section. Mirror elaws.us returns 503; town site 403. — Candidate fixes: ['Add Playwright stealth fetcher for amlegal (mirrors codepublishing-UA pattern)', 'Manual PDF acquisition from Town Hall planning office', 'Wait for Wayback to backfill §151.027 (none in CDX 2025 snapshot)']
Signal: cities where {'state': 'TN'} status=shipped

Wire the next wave of public-data APIsactive

Owner harness53 · Target 2026-06-15
Take the 18 pending APIs from PUBLIC-APIS.md and land the top-ranked 5-8 into scripts/fetch_city_overlay.py so every city gets richer context.
Progress
36/172 · 21%
  • 2026-05-08 — USGS Earthquake + NOAA Storms (rank 2) — disaster event history
  • 2026-05-15 — HUD FMR (rank 3) — rent-by-bedroom ladder
  • 2026-05-22 — Census PEP (rank 10) — annual pop estimates
  • 2026-06-05 — EPA Envirofacts (rank 7) + EPA AirNow (rank 13)
  • 2026-06-15 — Batch-fetch the corpus — run fetch_city_overlay.py across all 325 cities
Blocked: HUD APIs require free-tier token approval — register early.; EPA AirNow + NOAA CDO both need free API keys stored in .env.
Signal: apis where all status=shipped

Hosted MCP server — TestFit employees create new atlas views in Claude (browser) with zero repo accessactive

Owner harness53 · Target 2026-06-15
Turn the existing local-stdio atlas-editor MCP into a Worker-hosted Remote MCP Server. Any signed-in @testfit.io employee adds https://onlyplans.io/mcp as a connector in Claude.ai, then chats with Claude to create/modify atlas styles. Storage moves from repo files to Supabase so changes persist without git access. The existing BridgeRoom relay stays for live-tab driving when the user has the atlas open.
Progress
6/7 · 86%
  • 2026-05-27 — M1 — `/mcp` endpoint scaffolding: MCP Streamable-HTTP protocol with echo tool
  • 2026-05-27 — M2 — OAuth 2.0 flow that piggybacks on Google SSO
  • 2026-05-27 — M3 — Supabase tables for user-owned + team-shared styles
  • 2026-05-27 — M4 — Port atlas-editor tools to headless variants
  • 2026-05-27 — M4b — Declarative redesign for AI-as-primary-user
  • 2026-06-13 — M5 — Atlas UI: render user/team styles from Supabase alongside bundled styles
  • 2026-06-15 — M6 — End-to-end test with a non-Clifton testfit.io account
Signal: milestones

Atlas — national running & hiking trails layeractive

Owner harness53 · Target 2026-06-15
Ship a national Trails layer to the atlas: OpenStreetMap paths (Geofabrik US extract, osmium-filtered, ODbL) merged with the USGS National Transportation Dataset trails (public domain), as a committed GeoJSON bootstrap + R2-deployed PMTiles detail. Maximizes coverage — OSM brings urban/running paths, NTD brings authoritative public-lands hiking.
Progress
5/8 · 62%
  • 2026-05-29 — fetch_usgs_trails.py — USGS NTD national trails (public domain) via ogr2ogr
  • 2026-05-29 — fetch_osm_trails.py — OSM US paths via osmium filter of the Geofabrik extract (ODbL)
  • 2026-05-29 — merge_trails.py — union + exact-dedupe → trails.full.geojson + named-trail bootstrap
  • 2026-05-29 — atlas + grid viewer wiring — atlas-trails.js module, Trails tab, grid Recreation section, kind-keyed colors
  • 2026-05-29 — zoning/apis records (usgs-trails, osm-trails) + roadmap effort
  • 2026-05-29 — national data pull (~21 GB) + merge run
  • 2026-06-01 — build trails PMTiles under the 300 MiB R2 single-PUT ceiling
  • 2026-06-01 — upload PMTiles to R2 + flip API records to shipped
Signal: milestones

Atlas — Transit tab: aircraft, vessels, freight-proxy bundleactive

Owner harness53 · Target 2026-06-15
New Atlas tab plotting live-feeling mobile assets — ADS-B aircraft (adsb.lol), terrestrial-AIS vessels (AISStream), and a freight-proxy bundle (CBP commercial border waits, TPIMS truck parking, ATRI Top 100 bottlenecks). 18-wheeler positions are not publicly broadcast, so the freight section ships the closest free signals instead of fabricating vehicle dots.
Progress
7/8 · 88%
  • 2026-05-20 — fetch_adsbol_states.py — fan-out REST snapshot of CONUS aircraft state vectors (adsb.lol), altitude-banded + category-classified
  • 2026-05-18 — fetch_cbp_wait_times.py — live CBP commercial border waits joined to BTS POE coords (80 of 82 crossings matched)
  • 2026-05-18 — fetch_aisstream_snapshot.py — 60s WebSocket slurp from AISStream, deduped by MMSI
  • 2026-05-18 — _shared/atlas-transit.js layer pack wired into atlas.html alongside ATLAS_LOGISTICS
  • — Provision AISSTREAM_API_KEY and run fetch_aisstream_snapshot.py against the live stream
  • 2026-05-21 — fetch_tpims_parking.py — research and wire 2+ state-DOT TPIMS feeds (start with MAASTO Iowa/Indiana)
  • 2026-05-21 — fetch_atri_bottlenecks.py — transcribe and geocode the current annual Top 100 list
  • 2026-05-21 — Follow-up: live (WebSocket) updates for aircraft + vessels, replacing the build-time snapshots
Signal: milestones

TX transit (GTFS) — bus stops, routes, live vehiclesactive

Owner harness53 · Target 2026-06-15
Stand up a unified bus + light-rail layer for the four major Texas transit operators (Cap Metro, DART, VIA, METRO Houston) using GTFS Schedule + Realtime. Static stops/routes ship as committed GeoJSON; live VehiclePositions poll per-agency. Feeds the Atlas Logistics tab and /grid/ viewer for TOD / transit-access analysis around TX parcels.
Progress
6/8 · 75%
  • 2026-05-18 — Stops + routes ship committed GeoJSON (4 agencies)
  • 2026-05-18 — Cap Metro live VehiclePositions wired (HTTPS + CORS)
  • 2026-05-18 — Atlas Logistics tab UI: 3 toggles + per-agency color legend
  • 2026-05-18 — /grid/ viewer UI: 3 toggles + per-agency color legend
  • 2026-05-25 — Locate DART RT VehiclePositions endpoint (post-rebrand)
  • 2026-05-21 — Cloudflare Worker HTTPS proxy for VIA RT (HTTP-only upstream)
  • 2026-05-21 — Houston METRO RT key + signed-URL flow
  • 2026-06-15 — Promote to PMTiles if stop count grows past national scope
Signal: milestones

Atlas — real building footprints on the map (not just points + parcels)active

Owner harness53 · Target 2026-06-19
The map's geometry route (/api/buildings-geom) only returns the underlying parcel lot polygon, and parcel coverage is sparse (a few TX counties). Real per-unit footprint polygons already live in rental.unit_polygons + self_storage.unit_polygons (~6k sightmap + ~4k 3d_viewer buildings). The per-slug shared.building_geometry() RPC that exposes them is deployed (#691) but it's detail-only — there is no bbox variant or map layer. Surface real footprints as a viewport layer.
Progress
2/6 · 33%
  • 2026-05-29 — M1 — bbox RPC shared.buildings_footprints_in_bbox written (unions unit_polygons per building intersecting the viewport, GiST-indexed && filter)
  • 2026-05-29 — M2 — Worker route /api/buildings-footprints proxying the RPC (additive, 404-safe)
  • 2026-06-05 — M3 — Deploy shared.buildings_footprints_in_bbox to prod Supabase (geatnxyfemfxgbjjshnd). NB: shared.building_geometry(p_slug) is already deployed (#691); this is the new bbox variant only.
  • 2026-06-05 — M3b — Verify the footprint DATA exists in prod: rental.unit_polygons + self_storage.unit_polygons are populated (they're filesystem-derived via load_polygons.py, so should survive a backfill — unlike the curated firm-graph data)
  • 2026-06-12 — M4 — Frontend: buildings-footprints source + fill/line layer in app/atlas/modules/atlas-buildings.js (z>=14, lazy bbox fetch + fallback, mirroring the parcel layer)
  • 2026-06-19 — M5 — Deploy worker + visual verification on a metro with known sightmap coverage; confirm footprints render and degrade cleanly where absent
Blocked: Production Supabase migration (geatnxyfemfxgbjjshnd) requires explicit user approval — auto-blocked by the Claude Code prod classifier.; New map layer needs visual verification against a running atlas; can't be confirmed from a headless worktree.
Signal: milestones

Atlas editor — appearance clipboard + undo/redoactive

Owner harness53 · Target 2026-06-20
Eyedropper / copy-paste appearance between layers (capture paint+layout, paste onto another layer or feature class) and an undo/redo command stack over every set_paint/set_layout op. Foundational editor plumbing that speeds iteration on every other cartography effort.
Progress
2/3 · 67%
  • 2026-06-06 — Command layer — route all paint/layout mutations through an undoable op so eyedropper + history share one path
  • 2026-06-13 — Eyedropper / copy-paste appearance (capture paint+layout of a layer, paste onto another layer or feature class)
  • 2026-06-20 — Undo/redo stack + keybinds; MCP hooks copy_appearance, paste_appearance, undo, redo in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

Atlas editor — line craft (caps/joins, offset, casing)active

Owner harness53 · Target 2026-06-20
Expose the natively-supported stroke-geometry controls the editor lacks: line-cap (butt/round/square), line-join (miter/bevel/round) + line-miter-limit, line-offset (parallel/setback draw), and line-gap-width (true road casing = fill + outer edge).
Progress
2/3 · 67%
  • 2026-06-10 — line-cap / line-join / line-miter-limit layout controls
  • 2026-06-16 — line-offset (parallel draw) + line-gap-width (casing) paint controls
  • 2026-06-20 — MCP set_line_geometry in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

MCP — a complete index of what the map can do + every data layer it can loadactive

Owner harness53 · Target 2026-06-26
The atlas MCP can style layers that are already wired, but it has no index of the Supabase-backed data the map can load (building points/footprints, deal-team, malls, parcels) and no single catalog of the full map capability surface. The LLM must be able to discover ALL of it — every loadable data layer, every worker /api/* data route, every PMTiles archive — through the MCP, not by reading source.
Progress
0/4 · 0%
  • 2026-06-05 — M1 — Author a canonical data-layer catalog: every loadable layer with kind (pmtiles | worker-api | base), backing source, bbox/coverage, zoom range, and how to load it
  • 2026-06-14 — M2 — Expose it as an MCP resource + a list_data_layers tool on the atlas servers (stdio + hosted), so the LLM can answer 'what can I show here?' for a viewport
  • 2026-06-20 — M3 — Index the Supabase data surface itself: a buildings_store MCP catalog (asset types, counts, which buildings have unit polygons / parcels / mall spaces) so the LLM knows the depth of available geometry
  • 2026-06-26 — M4 — Fold the full capability surface into MCP_INDEX.md / server instructions so a freshly-connected LLM is told what the map can do without a tool call
Signal: milestones

Movable capital assets — type catalog across 5 domainsactive

Owner harness53 · Target 2026-07-01
Per-type JSON catalog under assets/types/ describing the core machines that move through the built environment: construction equipment, rail rolling stock, trucks/trailers, aircraft, vessels. One file per model, ground-sourced from manufacturer PDFs. Catalog complements the existing per-instance position feeds in _shared/atlas-transit.js (ADS-B aircraft, AIS vessels). Schema is unified across all 5 domains; nullable blocks for power / reach / kinematic_dof handle the non-applicable cases honestly.
Progress
13/13 · 100%
  • 2026-05-20 — assets/SCHEMA.md — v2 schema covering construction / rail / road / aircraft / vessel; nullable power/reach/kinematic_dof
  • 2026-05-20 — Scaffolding: assets/ directory tree + 5 worked examples (LR 1300, ES44AC, Auto-Max II, Cascadia 126, 53' dry van)
  • 2026-05-20 — Initial MANIFEST.json hand-bootstrapped, then replaced with glob-regenerated version (Python one-liner)
  • 2026-05-20 — Broaden coverage to 19 entries across all 5 domains (added 737-800, A320neo, 777F, Irina-class ULCV, VLCC, harbor tug, CAT 336, Putzmeister 70Z, Liebherr 380 EC-B, D8T, GTH-1056, SD70ACe, DOT-117 tank, 53' Husky-Stack)
  • 2026-05-20 — Construction equipment — 9 remaining filled (Tadano ATF 400G-6 mobile crane, Cat 966M wheel loader, JCB 3CX backhoe, Bobcat S650 skid steer, Cat 745 ADT, Mack Granite mixer, Genie Z-80/60 boom lift, Cat AP1055F paver, Alimak SCANDO 650 hoist)
  • 2026-05-20 — Rail rolling stock — 8 remaining filled (Siemens ACS-64 electric, Wabtec FLXdrive battery, EMD GP38-2 switcher, 86' Plate F boxcar, 5,400 cu-ft covered hopper, 52' mill gondola, 73' centerbeam flatcar, Amfleet I passenger coach)
  • 2026-05-20 — Road vehicles — 10 remaining filled (Cascadia 116 day cab, eCascadia electric, Peterbilt 579, Mack Granite chassis, Freightliner M2 106, 48' flatbed, RGN lowboy, 53' reefer, food-grade tanker, 53' intermodal chassis)
  • 2026-05-20 — Aircraft — 7 remaining filled (777-300ER, A350-900, 747-8F, A330-200F, ATR 72-600, E175, C-130J)
  • 2026-05-20 — Vessels — 7 remaining filled (Neo-Panamax container, Aframax tanker, Q-Flex LNG, Capesize bulker, PCC RoRo, Crowley 650-class ATB, ACBL Mariner-class inland-river towboat)
  • 2026-05-21 — Backfill airport/harbor design fields — performance.airport_design (FAA ADG/TDG, ICAO code letter, min pavement turning radius, MGW, OMGWS, ACN) on all 10 aircraft + performance.harbor_design (LOA/beam/draft/air-draft, PIANC turning basin at 1.2/1.8/3.0×LOA, block coefficient, Panama/Suez compatibility) on all 10 vessels
  • 2026-05-28 — Promote MANIFEST regen to assets/_generator/build_manifest.py and wire into build.mjs
  • 2026-05-22 — Add 'assets' domain to zoning/_generator/generate_dashboards.py so the data-status dashboard tracks catalog coverage automatically
  • 2026-05-28 — Instance enrichment: optional type_id foreign key on atlas-transit GeoJSON features (resolve common icao24/MMSI patterns to type_id)
Signal: milestones

Atlas editor — hatching & fill patternsactive

Owner harness53 · Target 2026-07-04
Generate hatch / crosshatch / stipple / dot sprites on a canvas and map.addImage() them, then per-layer + data-driven fill-pattern (match/step by zone code) and a fill-outline-color independent of fill. The #1 zoning-specific gap — paper zoning maps are hatch + color.
Progress
2/3 · 67%
  • 2026-06-13 — Sprite generator — parameterized hatch/crosshatch/stipple/dot tiles drawn to canvas, registered via map.addImage (retina-aware)
  • 2026-06-27 — Per-layer + data-driven fill-pattern (match/step by attribute) + fill-outline-color independent of fill
  • 2026-07-04 — Pattern picker UI + auto legend swatch; MCP set_fill_pattern, list_fill_patterns in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

School districts — NCES EDGE polygon mart + atlas layeractive

Owner harness53 · Target 2026-07-15
Stand up marts/school-districts/ from NCES EDGE 2024-25 boundaries. Joins district-level enrollment / demographics from CCD + per-school NCES K12. Atlas school-district puck — independent geography, not nested in counties.
Progress
5/5 · 100%
  • 2026-06-04 — Documented — flesh out nces-edge.json retrieval block + add nces-ccd.json for finance/enrollment annual file
  • 2026-06-14 — Cached — pull us_school_districts.geojson + CCD agency + finance annual flat files
  • 2026-06-28 — Served — marts/school-districts/{manifest,master_latest,field_dictionary}.json
  • 2026-07-08 — Visualized — atlas school-district polygon puck at zoom 9-13
  • 2026-07-15 — Stable — tests/test_school_districts_mart.py + GEOID overlap check
Signal: milestones

Structural design hazards puck (ASCE 7-22)active

Owner harness53 · Target 2026-07-15
A STRUCTURAL crosshair puck — 'what do we need to design for' — surfacing seismic SDC, wind, hurricane (wind-borne debris) and tornado (Ch. 32) design parameters from baked ASCE 7-22 overlays.
Progress
4/12 · 33%
  • 2026-05-30 — Client engine + puck + MCP hooks + tests
  • 2026-06-06 — Wind RC I–IV + tornado fetch (ArcGIS) → GeoJSON
  • 2026-06-20 — Seismic national grid (USGS) + interpolate to fill
  • 2026-06-27 — Hurricane geographic mask + WBDR coastal buffer
  • 2026-07-15 — Bake → R2 → zoning-pmtiles allowlist + live MCP verify
Signal: apis where {'category': 'risk'} status=shipped target=3

ZCTA mart — ZIP-resolution demographic + housing layeractive

Owner harness53 · Target 2026-07-15
Materialize a marts/zctas/ namespace: ACS5 ZCTA tables + HUD USPS vacancy + (where it natively reports at ZCTA) IRS migration. Atlas ZCTA puck for the common 'pull comps by ZIP' workflow without needing tract resolution.
Progress
5/5 · 100%
  • 2026-05-28 — Documented — extend census-acs5 record's geographic_levels list to confirm ZCTA endpoint; add ZCTA section to census-tiger-cache retrieval block
  • 2026-05-28 — Cached — pull tl_2025_us_zcta520.zip + ACS5 ZCTA universe via the existing acs.py source (parameterize geography arg)
  • 2026-05-28 — Served — marts/zctas/{manifest,master_latest,field_dictionary}.json with ~40 columns (population, MHI, tenure, age, housing-vacancy via HUD USPS join)
  • 2026-05-28 — Visualized — atlas ZCTA puck at zoom 3-12 (mid-zoom slot, complements city + tract); search-by-ZIP fly-to wired; 3 fixture screenshots committed; pmtiles 113 MiB R2 upload pending
  • 2026-07-15 — Stable — tests/test_zctas_mart.py + dashboard row + ZCTA polygons exported to pmtiles to avoid the 2.1 GB raw geojson ceiling
Signal: milestones

Find, download, index city zoning GIS into R2-hosted PMTilesactive

Owner harness53 · Target 2026-07-15
Discover per-city zoning ArcGIS / Socrata endpoints, tippecanoe each into a pmtiles archive, upload to R2, and stamp a `gis` block on the city profile so the atlas + dashboard pick it up.
Progress
4/7 · 57%
  • 2026-05-18 — Externalize CITY_SOURCES from build_city_zoning.py to sources.json sidecar; add gis-block writer to update_manifest()
  • 2026-05-18 — Build discover_zoning_sources.py (catalog grep → ArcGIS REST probe with service+layer ranking → Socrata catalog probe) with inline returnCountOnly verification
  • 2026-05-18 — Build batch_build.py runner over verified-high-confidence cities in gis-discovery.json; per-city failures logged but non-fatal
  • 2026-05-18 — Add GIS-map column to the data-status dashboard, reading city.json `gis.pmtiles_url`
  • 2026-05-22 — First batch — ship 8 newly-discovered cities to R2 (san-jose-ca, greensboro-nc, columbus-oh, chicago-il, charlotte-nc, raleigh-nc, little-rock-ar, tempe-az, scottsdale-az)
  • 2026-06-15 — Wave 2 — needs-research cohort: WebSearch the 30 cities flagged needs-research in gis-discovery.json, merge into sources.json the ones that resolve to verifiable layers
  • 2026-07-15 — Wave 3 — extend discovery from tracker (50 cities) to easy_indexed_jurisdictions (500 cities); expect 50–100 additional pmtiles
Signal: milestones

Atlas editor — line symbology + line-gradientactive

Owner harness53 · Target 2026-07-18
The other half of 'linetype': symbol-along-line (symbol-placement:line + icon-image at spacing) for railroad ticks, retaining-wall barbs, easement ticks, and one-way/flow arrows; plus line-gradient color ramps along corridors.
Progress
2/3 · 67%
  • 2026-07-04 — Line-symbology layer — symbol-placement:line + icon-image (ticks/barbs/easement/arrows) at configurable symbol-spacing
  • 2026-07-11 — line-gradient ramp control, gated on source lineMetrics:true with a clear fallback when unsupported
  • 2026-07-18 — MCP set_line_symbology, set_line_gradient in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Soft dep: reuses the canvas-sprite pipeline from atlas-fill-hatching (can stub locally if that effort hasn't merged).; GL JS: line-gradient needs source lineMetrics:true + single-feature lines; incompatible with data-driven line-width.; Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

Atlas editor — choropleth classification engineactive

Owner harness53 · Target 2026-07-25
On top of the existing data-bind/choropleth, add real class-break methods over a numeric attribute — quantile, equal-interval, natural breaks (Jenks), std-dev, manual — with a histogram, emitting a step/interpolate paint expression + auto legend entry.
Progress
2/3 · 67%
  • 2026-07-11 — Break-method library — quantile / equal-interval / Jenks / std-dev / manual over a numeric field, with a histogram preview
  • 2026-07-18 — Full-dataset value source wired (profile/GeoJSON) so breaks aren't computed from in-view tiles only; emits step/interpolate paint + auto legend
  • 2026-07-25 — MCP classify_layer in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

Rooftop solar × 3D building footprints (NREL on Overture)active

Owner harness53 · Target 2026-07-31
Attach NREL rooftop-PV economics to 3D building footprints (Overture, with height): footprint AREA sizes the PV system, a coarse pvwatts specific-yield grid (location-only, linear in size) + ZCTA utility-rate join give annual kWh and $/yr on-site-solar offset per building. Renders as a MapLibre 3D fill-extrusion colored by solar value. Cracks the 'NREL at scale' problem with ~no per-building API calls.
Progress
5/6 · 83%
  • 2026-05-28 — Ingest — Overture buildings (release 2026-05-20.0) via DuckDB by bbox; footprint area + height + centroid. scripts/stage_building_solar.py
  • 2026-05-28 — Area/rate math — roof_sqft -> roof_kw (~80 sqft/kW); nearest rate-bearing ZCTA join to zcta_rates_2024 (commercial $/kWh); height -> floors/extrusion
  • 2026-05-28 — 3D extrusion stub — MapLibre fill-extrusion colored by solar_usd_offset; downtown Dallas demo (158 footprints, ~42 MW). scripts/building_solar_viewer.html
  • 2026-05-29 — pvwatts specific-yield grid — pvwatts calls -> kWh/kW/yr lookup, replaces the latitude placeholder
  • 2026-05-29 — Atlas 3D layer wired — "Rooftop Solar" tab (5 metro cores) as a fill-extrusion colored by $/yr PV value
  • 2026-07-31 — Scale-out — widen bboxes to full metros + fan out to all covered metros
Signal: milestones

Census Block Groups — own mart + atlas layeractive

Owner harness53 · Target 2026-07-31
Add a marts/block-groups/ namespace and atlas BG-resolution puck. ACS5, HUD CHAS, and EPA EJScreen all publish natively at block-group level — we currently throw that resolution away by ingesting at tract.
Progress
2/5 · 40%
  • 2026-06-07 — Documented — extend zoning/apis/census-tiger-cache.json with BG-specific retrieval block; confirm ACS5/CHAS/EJScreen each enumerate BG endpoints
  • 2026-06-14 — Cached — pull TIGER tl_2025_us_bg.zip + mapbox_ready geojson with GEOID20
  • 2026-07-07 — Served — scripts/geo_sources.py BG resolver + marts/block-groups/{manifest,master_latest,field_dictionary}.json
  • 2026-07-21 — Visualized — atlas BG puck at zoom ≥ 12
  • 2026-07-31 — Stable — tests/test_block_groups_mart.py + dashboard row
Signal: milestones

Upgrade pending counties to deep/solidactive

Owner harness53 · Target 2026-07-31
87 of 162 counties carry at least one city at partial/stub. Push the research to deep/solid so the county ships.
Progress
131/218 · 60%
  • 2026-05-24 — TX counties: 15 pending → shipped
  • 2026-06-07 — FL counties: 11 pending → shipped
  • 2026-06-21 — CA counties: 9 pending → shipped
  • 2026-07-31 — OH + GA + remainder: 52 counties → shipped
Signal: counties where all status=shipped

Overture multifamily backlog drain (queue-driven)active

Owner harness53 · Target 2026-07-31
Drain the Overture 2026-05-20.0 multifamily backlog into the per-building corpus via the overture-drain skill. Each invocation runs one wave end-to-end; state lives in scrapers/housing/data/drain-queue/overture-multifamily.json.
Progress
2/8 · 25%
  • 2026-05-27 — PR #474 — initial waves (1A-D, +168 net survivors after repair)
  • 2026-05-27 — PR #478 — waves 2/3/C (+3,756 onboards, 50 new firm records)
  • 2026-05-30 — Wave D2/D3/D4 — re-dispatch killed C-Drain agents (~1,000-1,500 expected)
  • 2026-05-30 — Waves E/F/H — RentCafe-bypass + sidecar recovery + Duda SPA (~300-700 expected)
  • 2026-06-05 — Wave G — Playwright pass for Cloudflare-walled firms
  • 2026-06-15 — Wave I — Overture round 2 (hosts 51-100, ~800-2,000 expected)
  • 2026-07-15 — LIHTC AMI-aware probe for the 8 pending_human_review firms
  • 2026-07-31 — Rent-data scraping per CMS (separate effort once breadth maxed)
Blocked: PROD SUPABASE WRITE ACCESS REQUIRED (assessed 2026-05-29). All remaining waves (D2/D3/D4, E/F/H, G, I, LIHTC probe) onboard buildings into the production Supabase project geatnxyfemfxgbjjshnd via scrapers/housing/tools/onboard_buildings.py + core/exports/supabase/backfill.py. That project is access-gated (the classifier soft-blocks even reads), so an autonomous loop cannot run these without explicit human approval for prod writes. Grant access (or run the fleet locally with prod creds) to proceed.; Each wave is a multi-hour ≤8-concurrency scraper fleet (scrapers/housing/tasks/drain_*.py) that also requires the hallucination audit (~30% fabrication risk in v1_legacy/onboard output per repo memory) before any Supabase push — not a single-turn in-loop task.; Wave I (Overture round 2, hosts 51-100) + 'Rent-data scraping per CMS' (#519) are explicitly downstream of the breadth waves + are separate efforts; sequence them after D2-H land.
Signal: milestones

Date the city-overlay corpus — extend the time-scrub below the state levelactive

Owner harness53 · Target 2026-07-31
The #416 regulatory time-scrub covers state + federal preemption overlays only (~684 records, 100% dated). The ~8,149 city-level overlays (92% of the overlay corpus) carry no dates and use a compact dateless schema, so they can't join the timeline. This effort gives city overlays effective dates and real geometry so the atlas time-scrub can drop from statewide illustrative dots to parcel-level overlays over time.
Progress
5/6 · 83%
  • 2026-05-29 — Scope the effort: quantify the gap, pick a dating approach, write the schema-evolution + rollout plan
  • 2026-05-29 — Choose the date source of truth: ordinance adoption dates vs. a research pass vs. Municode/eCode360/EncodePlus metadata
  • 2026-05-29 — Evolve the city-overlay schema to carry effective_date (extend the compact {c,n,m} shape or add a dated sidecar), back-compat with atlas readers
  • 2026-05-29 — Backfill a pilot metro's city overlays with verified dates + geometry; validate end-to-end through the migrator
  • 2026-05-29 — Generalize the atlas layer to per-city scope (events from city dates); real overlay geometry where available
  • 2026-07-31 — Roll out dating across the corpus; flip the time-scrub from state-only to parcel-level
Blocked: City-overlay compact {c,n,m} schema has no date slot — the schema-evolution milestone must land before any city dates can be stored.
Signal: milestones

TIGER jurisdictional overlays — UA, CD/SLD, AIANNHactive

Owner harness53 · Target 2026-07-31
Ship three TIGER overlays we haven't bound yet: Urbanized Areas (urban/rural screening), Congressional + State Legislative Districts (preemption/political mapping), and AIANNH tribal lands (sovereign jurisdiction). Each: TIGER file → simplify → atlas layer.
Progress
4/5 · 80%
  • 2026-06-10 — Documented — add zoning/apis/tiger-urbanized-areas.json, tiger-congressional-districts.json, tiger-aiannh.json
  • 2026-06-20 — Cached — pull tl_2025_us_uac20.zip, tl_2025_{fips}_cd119.zip × 56, tl_2025_{fips}_sldu/sldl × 51, tl_2025_us_aiannh.zip
  • 2026-07-05 — Served — simplify each layer (tippecanoe 0.001°) and emit dist/<layer>.pmtiles
  • 2026-07-20 — Visualized — three atlas overlays under a 'Jurisdictional' picker section
  • 2026-07-31 — Stable — overlay-presence check per layer via screening puck
Signal: milestones

Atlas editor — typography round-outactive

Owner harness53 · Target 2026-08-01
Make labels a first-class tool: font family/weight (glyph stacks), letter-spacing, curved label-along-line, collision/priority (text-variable-anchor, allow-overlap), expression-built labels (e.g. 'R-5 · 45''), and leader-line callouts in the annotation layer.
Progress
2/3 · 67%
  • 2026-07-18 — Font family/weight (glyph stacks) + letter-spacing + curved label-along-line (symbol-placement:line)
  • 2026-07-25 — Collision/priority (text-variable-anchor, allow-overlap, text-optional) + expression-built label fields
  • 2026-08-01 — Leader-line callouts in the annotation layer; extend MCP set_layout + set_annotations in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

Drain the API catalog: lift every fetchable source to shippedactive

Owner harness53 · Target 2026-08-15
Of ~163 inventoried APIs, the original 17→140+ target proved unreachable: a Wave-4 reconcile (2026-05-29) found the majority of pending records have NO fetchable bulk source — they're agency/association landing pages, login-gated portals, market-data feeds needing registration keys, sub-city BID/HOA/TIF with no GIS, or are redundant with an already-shipped layer. The drain shipped every record that DOES have a verified live endpoint. Realistic ceiling is ~80 shipped, not 140; the gap is source-availability, not engineering.
Progress
36/172 · 21%
  • 2026-06-15 — Wave 1 — Corpus batch-fetch: run scripts/fetch_all_overlays.py --workers 4 across all 325 city profiles to lift the 81 pending-wired APIs to shipped
  • 2026-05-28 — Wave 2a — Fix 6 ghost fetcher references in zoning/apis/ (fetch_cdc_wonder, fetch_epa_airnow, fetch_epa_envirofacts, fetch_fbi_crime, fetch_fta_ntd, fetch_nhtsa_fars)
  • 2026-05-28 — Wave 2b — Fix 2 generator/edge-case corrupted records (buildings-geojson uses '#' separator, vismark-map is documented-only)
  • 2026-07-20 — Wave 3a — Author special_district fetchers (ISD-national + the already-shipped TX trio)
  • 2026-07-20 — Wave 3b — Author 8 federal-lands & boundary fetchers (BLM, USFS, NPS, DoD installations + TX military, CBP inland ports, Census TIGER cache, federal research labs)
  • 2026-07-31 — Wave 3c — Author 7 ISO/RTO + interstate operator fetchers (CAISO, NYISO, ISO-NE, MISO, PJM, SPP, TVA + Port Authority NY/NJ, Delaware River Basin)
  • 2026-08-15 — Wave 3d — Author remaining fetchers (regional MPOs/COGs, sub_city BID/HOA/TIF, state coastal/environmental agencies, OSM Overpass, county SBA loans, county migration, tribal nations, etc.)
  • 2026-08-15 — Wave 4 — Reconcile + regen: recompute shipped after the wave fetchers land
Blocked: Most remaining pending APIs have NO machine-fetchable bulk source (agency/association landing pages, login-gated portals, sub-city BID/HOA/TIF with no GIS). These need source discovery or reclassification — a fetcher cannot be authored against a source that does not exist.; ISO/RTO market feeds (CAISO/PJM/MISO/etc.) need per-operator registration keys (not in .env) + a worker-route/api_lazy_fetcher handler; their footprints are already shipped via nerc-iso-rto.; Two large layers (fema-nfhl national flood hazard, blm-lands ~450k features) exceed inline-fetch practicality and belong in the R2/pmtiles staging pipeline.
Signal: apis where all status=shipped

Atlas editor — overlay blend / readabilityactive

Owner harness53 · Target 2026-08-15
Per-overlay blend so an overlay district reads against the base zoning instead of muddying it. Mapbox GL JS has NO native per-layer blend mode — spike a dual-canvas approach (overlay source on a stacked transparent map div with CSS mix-blend-mode: multiply/overlay) with an opacity-model fallback.
Progress
2/3 · 67%
  • 2026-07-25 — Spike — compare dual-canvas mix-blend-mode vs custom WebGL layer vs opacity-model; pick the approach, document the tradeoff
  • 2026-08-08 — Implement chosen blend path for overlay sources (multiply/overlay/screen) with per-overlay control
  • 2026-08-15 — MCP set_blend_mode in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Mapbox GL JS has no native per-layer blend mode — the dual-canvas/CSS-blend spike must land before the UI is scoped.; Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

Atlas — fold screening-tools.com datasets into the puckactive

Owner harness53 · Target 2026-08-15
Close the gap between the atlas and the screening-tools.com curated set. Add tract-level CEJST + CDC EJI + the full EPA EJScreen panel, county-level FEMA Future Risk + DOE Local Investments, and expand the HIFLD layer set with hospitals / water systems / fire stations / schools / broadband.
Progress
7/8 · 88%
  • 2026-05-16 — API records inventoried (9 new datasets)
  • 2026-05-16 — Atlas picker + puck rows for EJScreen panel + FEMA Future + CEJST + EJI
  • 2026-05-16 — Live screening overlay (CEJST 2.0 + EJI 2024 + FEMA Future) merged into countyMeta
  • 2026-05-31 — EJScreen fetcher expanded to ~13 indicators (blocked on test_ejscreen.py fixture)
  • 2026-06-30 — DOE Local Investments wired (blocked on flat-file mirror)
  • 2026-07-15 — Tract pipeline emits dist/tract-data.js + tract_screening tileset
  • 2026-07-31 — Atlas Tract puck at zoom > 11 with CEJST + EJI + EJScreen percentiles
  • 2026-08-15 — HIFLD Next expansion — hospitals / water / fire / schools / FCC BDC as map layers
Blocked: DOE Local Investments has no flat-file mirror — upstream is a Tableau Public viz only.
Signal: milestones

Atlas — long-tail specialty data sources (NHD, USACE, parcels, parks, campus, energy)active

Owner harness53 · Target 2026-08-15
The atlas-data-loaded Playwright test caught a long tail of single-source empties across 13 presets: NHD hydrography (Austin creeks, TX-Mexico rivers, Hill Country watersheds), USACE maritime (Houston Ship Channel, Inland barge), DCAD parcels (Dallas), city-parks (Austin), Vanderbilt campus footprint, HIFLD energy substations (ERCOT, Iowa wind), logistics rail crossings (Border crossings), Manor TX interstates. UPDATE 2026-05-28: a verification pass found the map WIRING (paint specs, sources, preset entries) is already complete for every milestone — the remaining work is DATA acquisition/upload, not atlas code. Border crossings (m6) is fully done and renders. Several are externally blocked: USACE intermediates gitignored (m3/m4), DCAD SPA-blocked (m7), HIFLD sparse (m5).
Progress
9/10 · 90%
  • 2026-06-10 — Urban green (Austin) — fetch/upload city-parks + nhd-creeks/rivers tile data (layers wired in _shared/presets/health.json; data gap per atlas-data-loaded.spec.mjs DOCUMENTED_DATA_GAPS)
  • 2026-06-20 — Watershed authorities (TX Hill Country) — fetch TX hydrography + watershed PMTiles (zoning-watershed-fill/line wired in _shared/presets/interior.json; data gap)
  • 2026-06-30 — Houston Ship Channel — fetch USACE maritime-channels data via fetch_usace_ncf.py (maritime-channel-centerlines + maritime-channels-fill wired in _shared/presets/commerce.json; intermediates gitignored)
  • 2026-07-05 — Inland barge network — fetch USACE maritime-waterway-links via fetch_usace_nwn.py --us-only (layer wired in _shared/presets/commerce.json; intermediates gitignored)
  • 2026-07-12 — ERCOT island + Iowa wind belt — rebuild HIFLD energy-substations data for TX + IA (energy-substations-circle wired in _shared/presets/energy.json; features sparse at regional viewport)
  • 2026-07-19 — Border crossings — logistics-rail-crossings-circle source coverage at US-MX + US-CA crossings
  • 2026-07-31 — DCAD parcel grain — fetch Dallas County Appraisal District parcel PMTiles (parcels_dallas layer wired in _shared/presets/housing.json; DCAD is SPA-blocked — needs bypass)
  • 2026-08-07 — Vanderbilt campus footprint — upload vu-buildings data (vu-buildings-label layer wired in _shared/presets/education.json; no source data)
  • 2026-08-12 — Manor TX — fix highways-interstates + nhd-creeks tile coverage at small-town zoom (layers wired in _shared/presets/municipal.json; tiles don't intersect Manor at z=13)
  • 2026-08-15 — Re-run the data-loaded Playwright test — shrink DOCUMENTED_DATA_GAPS to the true raster/zoom-noise tail
Blocked: DCAD (m7) is a known SPA-blocked source (per the retrieval-bypasses memory). May need a different bypass (Google snippets? Bulk download?). Could be re-scoped or paused.; USACE intermediates for Houston Ship Channel (m3) and Inland barge (m4) are gitignored — need fetch_usace_ncf.py / fetch_usace_nwn.py runs + R2 upload before the wired layers render.; HIFLD energy-substations (m5) features are sparse at the TX/IA regional viewport — needs a data rebuild, not a wiring fix.; Vanderbilt campus (m8) has no source data wired — one-shot campus-specific upload required.
Signal: milestones

Census Blocks — TIGER polygons + 2020 decennial populationactive

Owner harness53 · Target 2026-08-15
Ingest TIGER tabblock20 polygons + 2020 decennial PL94-171 / DHC block-level demographics. Provides the finest-grain population surface in the US.
Progress
2/5 · 40%
  • 2026-06-10 — Documented — add zoning/apis/census-blocks-decennial.json (TIGER tabblock20 + decennial 2020 PL & DHC endpoints + variable list)
  • 2026-06-30 — Cached — pull tl_2025_<ST>_tabblock20.zip + PL94 + DHC P-tables via census API into a block-keyed parquet
  • 2026-07-20 — Served — emit dist/block-population-tiles/ pmtiles for zoom 12-16
  • 2026-08-05 — Visualized — atlas 'population around this site' uses block-level resolution within drawn radius
  • 2026-08-15 — Stable — snapshot tests for tract→block delta
Signal: milestones

Dated lifecycle for overlays & districtsactive

Owner harness53 · Target 2026-08-15
Attach typed, cited adoption/effective/repeal/supersede dates to every overlay and base district so the corpus is a dated index of when each zoning thing became real — and, when outlawed or replaced, notes it. Today only state preemptions carry dates; the 334 city profiles carry none, and nothing models repeal/supersession.
Progress
4/9 · 44%
  • 2026-05-29 — Schema: typed_date.kind += repealed/superseded; dates[]/lifecycle_status/superseded_by on overlay+district $defs; repeal_date/adopted_date/superseded_by on preemption rules
  • 2026-05-29 — Generator + player: split repealed out of enacted in generate_timeline_data.py; prefer typed dates over the year regex; gather_city_overlay_events(); _pages/timeline.html repealed/superseded lane + 'Ended/superseded by' flyout
  • 2026-05-29 — Coverage signal: data:dates-missing soft tag in reconcile_manifests (no gate, never blocks publish) + lifecycle_entity_total/with_dates in dashboard coverage metrics
  • 2026-06-06 — Pilot 5 cities across the platform spectrum (Municode/eCode360/amlegal/city-hosted/PDF-only) to validate history-note extraction + citation-or-omit gate, then review before fleet
  • 2026-06-13 — State-layer backfill (~50 preemptions.json + state overlays.json): effective/adopted/repeal dates + structured superseded_by, replacing prose-in-notes amendment chains
  • 2026-06-27 — 25% of overlays/districts carry a sourced adoption date
  • 2026-07-11 — 50% coverage
  • 2026-07-25 — 75% coverage
  • 2026-08-15 — 100% coverage target (dates: [] + lifecycle_status: unknown accepted for PDF-only / no-history-note cities)
Signal: milestones

Merge all scraper/API research into one catalogactive

Owner harness53 · Target 2026-08-15
Scraper + API-research work is spread across 7 sibling repos under /Users/clifton/Documents/GitHub/ (Counties, systemscrapingdata, rentalscrapingdata, nola-gis, venue-scraping, gis, plus onlyplans-site). This effort catalogs every dataset in zoning/apis/ under a broadened jurisdictional hierarchy — interstate / regional / tribal / special_district / infrastructure_system / sub_city in addition to federal/state/county/city — without moving the bytes.
Progress
36/200 · 18%
  • 2026-05-15 — Broaden SCHEMA.md level enum (federal/interstate/state/regional/tribal/county/special_district/infrastructure_system/city/sub_city) + add axis/data_location/jurisdiction_scope
  • 2026-05-15 — Extend generate_dashboards.py to render new level buckets
  • 2026-05-15 — Write Group A: systemscrapingdata records (4 wired + 9 T1 pending from SOURCES.md)
  • 2026-05-15 — Write Group B: Counties gaps (ejscreen, hud-chas, hud-usps-vacancy, fema-bcat, fema-nfhl, hrsa-ahrf, cdc-mortality, cdc-svi, cms-medicare, nchs-urban-rural, saipe, usda-rural, irs-migration)
  • 2026-05-15 — Write Group C: grid/ infrastructure records (eia-power-plants, hifld-substations, hifld-gas-pipelines, afdc-ev-charging, data-center-inventory, nerc-iso-rto, eia-planned-plants-tx)
  • 2026-05-15 — Write Group D: sibling-repo meta records (rentalscrapingdata-corpus, nola-gis-dump, venue-scraping-dfw, census-tiger-cache)
  • 2026-05-15 — Write Group E: hierarchy placeholder records — interstate (TVA, Port Authority NY/NJ, DRBC, AMTRAK, CBP, ISO/RTOs), federal land, special-district national rollups, sub-city (Reedy Creek, The Villages, HOA, TIF, BID), tribal nations
  • 2026-05-15 — Create TAXONOMY.md as canonical jurisdictional index doc
  • 2026-05-15 — Phase 2: lift Counties + systemscrapingdata code (excluding data caches) into scrapers/counties + scrapers/systems
  • 2026-05-15 — Phase 2: wire fetcher field on 33 records (21 Counties sources + 4 systemscrapingdata harvesters + 7 grid scripts + 1 follow-on)
  • 2026-05-15 — Phase 2b: lift rentalscrapingdata code into scrapers/housing/, gitignore 120 GB buildings/ in-tree, flip meta record + add 13 per-platform records (sightmap, entrata, rentcafe, jonah, bozzuto, avalonbay, appfolio, g5, camden, homebuilder, self-storage, hotel-fdds, retail-reit), retire sibling repo
  • 2026-07-15 — Phase 2c: extract shared HTTP + ArcGIS + storage primitives into scrapers/_lib/ (currently duplicated across counties + systems + housing)
  • 2026-08-15 — Phase 3: build per-site overlay query for new levels (special_district, infrastructure_system) — 'what districts contain this polygon?'
Signal: apis where all status=shipped target=200

Atlas editor — 3D envelope + setbackactive

Owner harness53 · Target 2026-08-22
fill-extrusion height driven by stories / FAR / height-limit to show the buildable envelope, plus negative-buffer setback polygons (turf) rendered as a separate fill with optional step-back. Where the zoning editor beats Illustrator.
Progress
2/3 · 67%
  • 2026-08-08 — fill-extrusion height/base bound to a numeric attribute (stories/FAR/height-limit) with a per-district expression
  • 2026-08-15 — Setback rendering — negative-buffer parcel polygons (turf) as a separate fill; optional step-back tiers
  • 2026-08-22 — MCP set_extrusion, set_setback in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

Atlas editor — print/layout composer + exportactive

Owner harness53 · Target 2026-08-31
Compose a finished sheet — title block + legend + scale bar + north arrow + inset/locator map — and export it: high-DPI PNG (preserveDrawingBuffer + pixelRatio) and PDF (jsPDF), plus export the live style to a portable Mapbox style JSON. SVG export deferred (needs a redraw path).
Progress
2/3 · 67%
  • 2026-08-15 — Layout composer — title block + legend placement + scale bar + north arrow + inset/locator map on a print frame
  • 2026-08-24 — Export — high-DPI PNG (preserveDrawingBuffer + pixelRatio) + PDF (jsPDF); export live style to portable Mapbox style JSON (SVG deferred)
  • 2026-08-31 — MCP export_map, export_style in BOTH src/mcp-atlas-spec.js + src/mcp.js; verified live via wrangler-dev + atlas-editor MCP
Blocked: Live wrangler-dev + atlas-editor-MCP smoke-test still required (sandbox cannot run the worker bridge / full build).
Signal: milestones

LEHD LODES — block-level worker origin-destinationactive

Owner harness53 · Target 2026-08-31
Stand up LEHD LODES (Longitudinal Employer-Household Dynamics) as a first-class data source: block-level Workplace Area Characteristics (WAC), Residence Area Characteristics (RAC), and Origin-Destination (OD) flows. Closes our biggest sub-tract gap — worker-shed analysis for retail / multifamily / industrial siting.
Progress
2/6 · 33%
  • 2026-06-07 — Documented — add zoning/apis/lehd-lodes.json with retrieval block (WAC + RAC + OD endpoints, state file naming, geocode crosswalk)
  • 2026-05-28 — Cached — fetcher under scrapers/counties/src/counties/sources/lehd_lodes.py pulling LODES v8 (2022) for all states; idempotent
  • 2026-07-15 — Served (counties) — block-level rolled to county: jobs/total, in-commute/out-commute counts as columns in marts/counties/
  • 2026-07-31 — Served (block-group rollup) — emit marts/block-groups/lodes_*.csv
  • 2026-08-20 — Visualized — atlas worker-shed layer with inbound/outbound commute polygons
  • 2026-08-31 — Stable — tests/test_lehd_lodes.py + dashboard tracks LODES coverage
Signal: milestones

Atlas of Scales — scale × domain preset matrixactive

Owner harness53 · Target 2026-09-30
Reorganized the atlas preset system onto a 7-scale (national→site) × domain paradigm and made it the primary navigation, retiring the federal-department grouping. Added scale+domain to the preset schema, backfilled all ~130 existing presets (18 in-module builtins + 111 department-pack views), authored 8 new core-domain packs (political/education/retail/housing/hotels/offices/parking/logistics — 56 views, 24 built on real layers + 32 framed 'aspirational' stubs), and shipped a scale×domain matrix overlay (▦) + a Scale→View(by-domain) picker. The 32 stubs are framed views (camera + story) whose data we have NOT scraped yet; each names the exact dataset it needs. This effort tracks acquiring that long-tail data so the stub cells become real.
Progress
5/9 · 56%
  • 2026-05-28 — Schema + backfill + UI (this change)
  • 2026-06-30 — Retail POI — dollar stores + grocery density + dispensaries + coffee + bodegas
  • 2026-07-15 — FEMA NFHL flood zones
  • 2026-07-15 — HOLC redlining (Mapping Inequality)
  • 2026-07-31 — Corporate single-family ownership + STR listings
  • 2026-08-15 — Office inventory + sublease (sqft)
  • 2026-08-31 — Surface-parking polygons + trailhead/curb lots
  • 2026-09-30 — Precinct election results + HOA + parcel/easement geometry
  • 2026-09-30 — Re-classify converted stubs BUILD; refresh the matrix overlay legend counts
Blocked: Most stub datasets are external acquisitions, not atlas-code work — the matrix UI + view framing already ship and degrade honestly (dimmed/dashed 'data pending' cells).; Retail POI and STR sources are partly SPA/anti-bot blocked — see the retrieval-bypasses memory for the ladder.; Corporate-SFR national rollup depends on parcel_owners expanding beyond its current per-county configs (scrapers/counties/.../parcel_owners).
Signal: milestones

Opportunity Zones — TCJA 2017 + OBBBA 2025 mapped layeractive

Owner harness53 · Target 2026-09-30
Stand up an /oz page and zoning-atlas tab showing both vintages of federal Opportunity Zones: the original 8,765 TCJA-designated tracts (HUD) and the 25,332 OBBBA-eligible tracts (IRS Rev. Proc. 2026-14).
Progress
4/5 · 80%
  • 2026-05-15 — Stand up /oz page (MapLibre, dark CARTO basemap) and matching Energy-style tab on the zoning atlas via _shared/atlas-oz.js
  • 2026-05-15 — Fetcher for TCJA 2017 layer from HUD ArcGIS (services.arcgis.com/VTyQ9soqVukalItT/Opportunity_Zones/13), verified at 8,765 features
  • 2026-05-15 — Fetcher for OBBBA 2025 eligibility from IRS Rev. Proc. 2026-14 Appendix XLSX joined to Census TIGERweb 2020 tracts
  • 2026-10-31 — Refresh OBBBA layer to the designated-subset once governors close nominations (90-day window: 2026-07-01 to 2026-09-28)
  • 2026-05-21 — ACS context enrichment pass — poverty rate, MHI, unemployment per tract — joined into hover popup
Signal: milestones

Drain schema-baseline errors below 6,000active

Owner harness53 · Target 2026-12-31
13,413 schema-validation errors across 320 profiles are baselined. The CI gate now refuses to ratchet them up; this effort drains them, top-offenders first.
Progress
1/3 · 33%
  • 2026-06-30 — Total below 12,000 — clear ~2 of the top-10 offenders (odessa-tx 289, destin-fl 282 are likely structural mismatches worth a deep look)
  • 2026-09-30 — Total below 9,000 — drain the remaining top-10 plus 5–10 of the 26–99 tier
  • 2026-12-31 — Total below 6,000 — break the 35-profile 100+ tier down to under 15 profiles
Signal: milestones

Atlas — 4 PMTiles manifest entries point at archives missing from R2blocked

Owner harness53 · Target 2026-06-19
Bounds backfill (2026-05-29) found 4 entries in zoning-pmtiles.json whose archives 404 on R2 (canonical pub-*.r2.dev store): overlays usace-channels, usace-channel-centerlines, usace-waterway-links, and atlas tract_screening. The manifest references them but the tiles were never uploaded (or were removed), so the maritime + tract-screening layers render empty. Rebuild + upload, or retire the entries.
Progress
1/4 · 25%
  • 2026-05-29 — M1 — Confirm absence: all 4 return 404 on pub-c97a72d1781a46cdabadabfd22285475.r2.dev/pmtiles/<slug>.pmtiles (done during the bounds backfill)
  • 2026-06-12 — M2 — USACE waterways: re-run scrapers/grid fetch_usace_ncf.py + fetch_usace_nwn.py, rebuild tiles via scrapers/grid/build_pmtiles.sh, upload the 3 archives to onlyplans-artifacts/pmtiles/
  • 2026-06-12 — M3 — tract_screening: regenerate via scripts/build_atlas_screening_overlay.py and upload
  • 2026-06-19 — M4 — Backfill bounds + feature_count for the 4 entries via `pmtiles show`, then prune any that are intentionally retired
Blocked: Needs the source GeoJSON rebuilt (scrapers/grid + screening builder) and R2 write credentials (wrangler) — neither available from a headless worktree.
Signal: milestones

Precompute national topography from USGS 3DEPpaused

Owner harness53 · Target 2026-09-30
Bake a national terrain-RGB PMTiles pyramid from USGS 3DEP (30m → 10m → 1m lidar), serve via R2 + Worker proxy, swap the slow live EPQS round-trip for client-side queryTerrainElevation(), and unlock hillshade + 3D + contours + per-parcel slope off one pipeline.
Progress
1/5 · 20%
  • 2026-05-25 — Drop 1 — 30m national base pyramid + telemetry rewire
  • 2026-06-15 — Drop 2 — 10m sharpening at zooms 12–14
  • 2026-07-31 — Drop 3 — 1m lidar at urban zooms (AWS Batch)
  • 2026-08-31 — Drop 4 — national contour PMTiles (100ft/20ft/10ft)
  • 2026-09-30 — Drop 5 — per-parcel slope sidecar Parquet
Blocked: Drop 3 requires either an AWS Batch account for in-region lidar processing, or a Cloudflare Workers AI alternative — flagged as an open question in the plan.
Signal: milestones

Atlas — Logistics tab: US Ports of Entry (land, air, sea)done

Owner harness53 · Target 2026-05-15
CBP doesn't publish a GIS dataset of its ports of entry. The Logistics tab plots all 332 POEs by cross-joining BTS Border Crossing Data, CBP Schedule D, OurAirports, and USACE Principal Ports — every coordinate traces back to an open dataset, no model-knowledge fallbacks.
Progress
7/7 · 100%
  • 2026-05-15 — Locate and verify the authoritative source for each mode (BTS Socrata for land, CBP Schedule D PDF for the canonical port-code list, OurAirports + USACE Principal Ports for coords)
  • 2026-05-15 — fetch_poe_land.py — 117 distinct land POEs from BTS Border Crossing/Entry Data
  • 2026-05-15 — parse_cbp_schedule_d.py — emit cbp_schedule_d.csv (522 port rows, mode-classified) from the Feb 2026 PDF
  • 2026-05-15 — fetch_poe_air.py — 139 air POEs matched against OurAirports (incl. 16 overseas preclearance posts), 100% match rate
  • 2026-05-15 — fetch_poe_sea.py — 76 commercial seaports matched against USACE Principal Ports; inland CBP admin offices emitted to _unmatched_poe_sea.json rather than fabricated
  • 2026-05-15 — _shared/atlas-logistics.js layer pack with three toggleable layers + per-mode popups, wired into atlas.html mirroring the ATLAS_ENERGY lifecycle
  • 2026-05-15 — Attribution page updated to document CBP-no-GIS reality and the four-source assembly
Signal: milestones

Drain Texas pending city profilesdone

Owner harness53 · Target 2026-05-15
Close the 22 pending + 5 corrupted TX city profiles. TX is the #2 state by combined pending records.
Progress
30/48 · 62%
  • 2026-04-30 — Rewrite 5 template-bleed cities (allen-tx, austin-tx, arlington-tx, fort-worth-tx, georgetown-tx)
  • 2026-05-05 — Drain top 10 pending V2 soft-fails through publication-validator
  • 2026-05-12 — Upgrade remaining V1 legacy TX profiles to V2 schema
  • 2026-05-15 — All TX city profiles at status=shipped
Signal: cities where {'state': 'TX'} status=shipped

Atlas — Highways tab: US Interstate Highway System (TIGER/Line)done

Owner harness53 · Target 2026-05-18
Eisenhower Interstate System as a national GeoJSON layer pulled from Census TIGER/Line Primary Roads (MTFCC=S1100, RTTYP=I). Public domain, annual refresh. Surfaced three ways: a dedicated /atlas/ Highways tab, an opt-in row inside the Logistics tab for drayage-corridor context, and a checkbox in the /grid/ standalone viewer.
Progress
7/7 · 100%
  • 2026-05-18 — Locate the authoritative source: TIGERweb Primary Roads ArcGIS REST service, filter MTFCC=S1100 AND RTTYP=I
  • 2026-05-18 — scrapers/grid/fetch_tiger_interstates.py — paginated OBJECTID pull, property strip, geometry-signature dedupe, Douglas-Peucker simplify; emits interstates.full.geojson (gitignored) + interstates.geojson (committed)
  • 2026-05-18 — _shared/atlas-highways.js layer pack — single source, two layers (casing + shield-orange fill), popup, IIFE mirroring ATLAS_LOGISTICS
  • 2026-05-18 — _pages/atlas.html wiring — script tags, LAYER_DEFS entries, legend dispatch, bindLegendRows, setup() invocation; also resurrects atlas-logistics.js wiring that had been missing
  • 2026-05-18 — _shared/atlas-logistics.js cross-surface row — one click toggles both highways layers; reflects current visibility on render
  • 2026-05-18 — /grid/ standalone viewer — index.html row + style.css swatch + viewer.js addHighways() + wireToggles entry + popup
  • 2026-05-18 — zoning/apis/tiger-primary-roads-interstates.json catalog record + grid/attribution.html block + dashboard regen
Signal: milestones

Drain Ohio pending city profilesdone

Owner harness53 · Target 2026-05-22
11 OH cities were pending in the repair queue — the largest non-TX/CA single-state stack. All 14 OH city profiles now classify as shipped (v2 schema, publication.published=true, 5/5 gates passed) per the dashboard generator's compute_city_records.
Progress
14/14 · 100%
  • 2026-05-01 — Triage OH pending entries — sort template-bleed corrupted from V2 soft-fails from V1 legacy
  • 2026-05-08 — Rewrite any template-bleed cities
  • 2026-05-15 — Drain OH V2 soft-fails through publication-validator
  • 2026-05-20 — Upgrade remaining V1 legacy OH profiles to V2 schema
  • 2026-05-22 — All OH city profiles at status=shipped
Signal: cities where {'state': 'OH'} status=shipped

Atlas — Airports tab: FAA airport districts + Part 77 height surfaces (national)done

Owner harness53 · Target 2026-05-25
The atlas already plots airport points nationally. This effort adds two FAA-sourced polygon layers: an airport-district boundary (convex hull of runway polygons) and the five Part 77 imaginary surfaces (primary, approach, transitional, horizontal, conical) computed procedurally from NASR runway geometry. Replaces the Austin-only Part 77 spike that previously rode inside the city zoning archive.
Progress
8/8 · 100%
  • 2026-05-18 — Source verified: FAA ADDS Runways + US_Airport FeatureServers live, schema documented, rate-limit quota understood
  • 2026-05-18 — fetch_faa_runways.py — pull NASR runways + airports, derive endpoints, construct the 5 Part 77 surfaces per runway, emit centerlines + surfaces GeoJSON
  • 2026-05-18 — fetch_faa_airport_areas.py — convex-hull each airport's runway polygons to produce a national airport-district polygon layer
  • 2026-05-18 — API catalog records: zoning/apis/faa-nasr-runways.json + faa-adds-airport-areas.json
  • 2026-05-18 — Atlas wiring: extend the existing Airports tab with airport-area-fill + airspace-part77-fill/-line layers, popups, INFRASTRUCTURE category registration
  • 2026-05-18 — Retire the AUS-only airspace_overlay from zoning/_generator/pmtiles/sources.json and the layer/describe in _pages/atlas.html now that national coverage exists
  • 2026-05-18 — Attribution page updated to document FAA NASR + the Part 77 procedural-construction provenance + R2 PMTiles delivery
  • 2026-05-18 — Production deploy: build PMTiles + upload to R2 (faa_airport_areas 11M, faa_runways 19M, faa_part77_surfaces 166M). Full precision preserved; HTTP-range-served from onlyplans-artifacts bucket
Signal: milestones

Drain Arkansas pending city profilesdone

Owner harness53 · Target 2026-05-29
9 AR cities are pending in the repair queue — close them following the TX/CA single-state pattern.
Progress
9/9 · 100%
  • 2026-05-08 — Triage AR pending entries — sort template-bleed corrupted from V2 soft-fails from V1 legacy
  • 2026-05-15 — Rewrite any template-bleed cities
  • 2026-05-22 — Drain AR V2 soft-fails through publication-validator
  • 2026-05-18 — Top-3 v1->v2 regeneration: bentonville, rogers, clarksville
  • 2026-05-27 — Remaining 6 AR v1 legacy upgrades (fayetteville, little-rock, ozark, paris, russellville, springdale)
  • 2026-05-29 — All AR city profiles at status=shipped
Signal: cities where {'state': 'AR'} status=shipped

Drain North Carolina pending city profilesdone

Owner harness53 · Target 2026-06-05
9 NC cities are pending in the repair queue — close them following the TX/CA single-state pattern.
Progress
8/11 · 73%
  • 2026-05-15 — Triage NC pending entries — sort template-bleed corrupted from V2 soft-fails from V1 legacy
  • 2026-05-22 — Rewrite any template-bleed cities
  • 2026-05-29 — Drain NC V2 soft-fails through publication-validator
  • 2026-06-03 — Upgrade remaining V1 legacy NC profiles to V2 schema
  • 2026-06-05 — All NC city profiles at status=shipped
Signal: cities where {'state': 'NC'} status=shipped

NOLA GIS — strip sentinel null-island / Mexico-bound features from committed exportsdone

Owner harness53 · Target 2026-06-05
The test_city_geojson_geo.py sweep surfaced two sentinel coordinate patterns in committed NOLA exports: rows pinned at (-101.518, 28.099) — a Mexico-bound 'unknown location' placeholder used by maps.nola.gov — and rows at (0, 0) / (5.68e-14, 5.68e-14) null-island in Open311. These render as dots in the Atlantic / Mexico when NOLA-scoped views load the affected files. Strip-at-ingest in the NOLA GIS pull, then regen the 4 committed files.
Progress
4/4 · 100%
  • 2026-05-25 — Document both sentinel patterns in the NOLA GIS README at zoning/us/louisiana/cities/new-orleans-la/gis/ — what they mean upstream, why they exist
  • 2026-05-30 — Add a strip_sentinel_features() pass to the NOLA GIS ingest script (rejects coords at (-101.518, 28.099) ± 0.01° and at (0, 0) within ε=1e-6 — keeps the null-island geometry, drops only sentinel rows)
  • 2026-06-02 — Re-pull the 4 affected files; commit the cleaned versions. Confirm record counts dropped by the expected sentinel-row count per file
  • 2026-06-05 — Re-run test_city_geojson_geo.py — all NOLA files pass the geo-verify gate without relying on the multi-feature fallback
Signal: milestones

Atlas — buildings-*-circle empty: lazy /api/buildings fetch races test queriesdone

Owner harness53 · Target 2026-06-10
Audit (2026-05-20): buildings is NOT a static GeoJSON source. _shared/atlas-buildings.js initializes an empty FeatureCollection at boot, then fetches `/api/buildings?bbox=...` lazily on map-idle, gated by zoom >= MIN_ZOOM, a fetch debounce, and a bbox-change check. The data is there — it's just not loaded by the time switchStyle returns. Both the data-loaded test and impatient human users see empty layers. Need either a deterministic 'load now' API the test (and the URL router) can await, or eager-fetch when a preset emphasises a buildings layer.
Progress
6/6 · 100%
  • 2026-05-20 — Audit — confirm buildings is lazy-loaded via /api/buildings?bbox= in _shared/atlas-buildings.js:99-150, never bulk-loaded; FEATURE_CACHE is empty at switchStyle time
  • 2026-05-20 — Add a deterministic ensureBuildingsLoadedForBbox(bbox) API on the buildings module — bypasses the debounce + idle-trigger, returns a Promise that resolves when the /api/buildings XHR for that bbox completes
  • 2026-05-20 — When switchStyle resolves on a preset that emphasises buildings-*-circle layers, automatically call ensureBuildingsLoadedForBbox for the preset viewport so the data arrives before the user sees the empty canvas (Option A — fire-and-forget)
  • 2026-05-21 — Make switchStyle awaitable on buildings load (Option B) — change the return contract so callers (URL router, Playwright) can await full data-readiness, not just camera-readiness
  • 2026-05-21 — Drop the 7 buildings-* entries from KNOWN_EMPTY_BY_PRESET in tests/playwright/atlas-data-loaded.spec.mjs once Option B (or the URL router) makes the wait deterministic
  • 2026-05-22 — Update the data-loaded baseline + commit the recovered presets
Signal: milestones

Plot teardown → simplified spatio-temporal model on our mapdone

Owner harness53 · Target 2026-06-10
Reverse-engineered Plot/BuildersPlus to learn how they separate persistent geometry from time-bound events. Propose a features + events + annotations schema for onlyplans, with a MapLibre time-scrub slider that drives the same data as the existing overlay timeline.
Progress
11/11 · 100%
  • 2026-05-20 — Decode Plot's data model from live extraction (40 features + 2 deliveries + project calendar)
  • 2026-05-20 — Save raw artifacts + simplified model proposal under research/plotspike-2026-05-20/
  • 2026-05-20 — Round-trip Plot's Sample Jobsite through the proposed schema — features.geojson + events.json + annotations.json, with traceable _legacy fields (proves schema is well-specified before touching onlyplans data)
  • 2026-05-20 — Capture the full delivery corpus (1,266 deliveries across 2024-2027, not just the 2 in React state) + multi-year calendar + per-feature availability index + is_available() helper
  • 2026-05-20 — Build a live applet at /plotspike/ that time-scrubs Plot's Sample Jobsite on our Mapbox stack — Plot-style fills/routes/icons, date slider, per-feature availability dots, click-to-popup with upcoming bookings
  • 2026-05-24 — Audit existing overlay JSON schema — count records that already carry an effective_date / sunset clause
  • 2026-05-27 — Pick one state's overlays (e.g. TX or NC) as the prototype dataset for the new schema
  • 2026-06-01 — Write a one-shot migrator: existing overlays.json → features.geojson + events.json
  • 2026-06-05 — Minimal MapLibre time-scrub demo on the prototype dataset (single layer, expression-filtered)
  • 2026-05-29 — Decision memo: roll out across all states, or keep as a per-state opt-in
  • 2026-05-29 — Execute full rollout: generalize migrator (--all-states), CI regen on main, atlas dedicated time-scrub layer
Signal: milestones

Atlas — zoning auto-swap doesn't fire at 6 preset viewports despite PMTiles being on R2done

Owner harness53 · Target 2026-06-15
Audit (2026-05-20): the 6 city presets returning empty zoning-fill/zoning-line — Columbus OH, Little Rock AR, Phoenix AZ, San Jose CA, Tucson AZ, Nashville TN — ALL have PMTiles archives already on R2 with 4,337–26,178 features each. Their preset viewport centers all fall inside the PMTiles bounds. The bug is NOT missing data; it's the auto-swap zoning source not firing post-switchStyle. Refocus: fix the wiring, not the data.
Progress
6/6 · 100%
  • 2026-05-20 — Audit — confirm all 6 target cities are in zoning/manifests/zoning-pmtiles.json with substantial feature_count + viewport centers inside bounds
  • 2026-05-21 — Trace refreshActiveZoningCity() execution path: does it run after switchStyle.flyTo? Does it find each of the 6 slugs in its lookup table? What event triggers the swap?
  • 2026-05-21 — Identify the failure mode for each of the 6 cities — likely candidates: (a) swap subscribes to map 'idle' which fires before flyTo completes; (b) slug-resolution lookup doesn't enumerate these cities; (c) PMTiles source URL composition fails for these slugs
  • 2026-05-21 — Patch the swap to fire deterministically post-switchStyle. Could be a one-line subscription change, could be making the swap synchronous as part of switchStyle itself
  • 2026-05-22 — Re-run the data-loaded Playwright test — 12 zoning-fill/zoning-line entries drop out of KNOWN_EMPTY_BY_PRESET (6 cities × 2 layers)
  • 2026-05-22 — Update the data-loaded baseline + commit the recovered 6 presets
Signal: milestones

Drain California pending city profilesdone

Owner harness53 · Target 2026-06-15
29 CA cities are pending/corrupted — the largest single-state gap left once the TX effort closes.
Progress
9/62 · 15%
  • 2026-05-01 — Close HCD data retrieval gaps (SB 423 tier, Housing Element compliance)
  • 2026-05-15 — Drain top-10 CA V2 soft-fails through publication-validator
  • 2026-06-01 — Upgrade remaining V1 legacy CA profiles to V2 schema
  • 2026-06-15 — All CA city profiles at status=shipped
Blocked: Municode retrieval block on several CA cities (pomona, salinas). Needs DOM-based or authenticated drain path before shipped is reachable for those.
Signal: cities where {'state': 'CA'} status=shipped

Drain Missouri pending city profilesdone

Owner harness53 · Target 2026-06-19
7 MO cities drained from pending-repair via wave-4-mo-domino V2-regen pipeline 2026-05-19. All 7 ship V2 with 5/5 publication gates passing; lint-clean.
Progress
5/7 · 71%
  • 2026-05-29 — Triage MO pending entries — sort template-bleed corrupted from V2 soft-fails from V1 legacy
  • 2026-06-05 — Rewrite any template-bleed cities
  • 2026-06-12 — Drain MO V2 soft-fails through publication-validator
  • 2026-06-17 — Upgrade remaining V1 legacy MO profiles to V2 schema
  • 2026-06-19 — All MO city profiles at status=shipped
Signal: cities where {'state': 'MO'} status=shipped

Atlas / zoning — reconcile SCHEMA.md with corpus driftdone

Owner harness53 · Target 2026-06-20
The new test_api_records.py sweep surfaced schema drift between zoning/apis/SCHEMA.md and the corpus: levels in use but not documented (metro, national), statuses in use but not documented (done, blocked_on_token, documented). The test currently accepts both with a comment. Reconcile by either widening SCHEMA.md or migrating records to documented values. Also resolve the <slug>_overlay.json (singular dict) vs <slug>_overlays.json (plural list) filename inconsistency.
Progress
5/5 · 100%
  • 2026-05-20 — Decide widen-vs-migrate for the 5 emergent enum values. If widen: update SCHEMA.md + the test's documented set. If migrate: rename in each record + add a 'blocked_reason' field for the token-blocked subset
  • 2026-05-20 — Apply the decision to SCHEMA.md and/or the affected JSON records
  • 2026-05-22 — Decide singular-dict vs plural-list naming for the overlay files. Either rename <slug>_overlay.json files to <slug>_overlay_record.json (clarifying the singular-dict shape) or split the dict into the array form
  • 2026-05-20 — Update test_api_records.py to drop the EMERGENT_LEVELS / EMERGENT_STATUSES sets so the test becomes a strict contract
  • 2026-05-22 — Add an overlay-filename convention test that asserts every <slug>_*.json file matches its expected top-level shape (dict-vs-list)
Signal: milestones

National layer — codes matrix + rollup pagedone

Owner harness53 · Target 2026-06-30
Federal overlays are all shipped, but the 50-state code adoption matrix is thin and there is no national-rollup view. Close those two gaps so the corpus reads as a coherent national dataset.
Progress
5/5 · 100%
  • 2026-05-08 — Audit zoning/_generator/building-codes/ for missing state×code-type cells; inventory in a gap manifest
  • 2026-05-22 — Backfill IBC + IRC adoption notes (M2): all 51 states/DC verified at primary .gov tier; honest 'No statewide' for home-rule states
  • 2026-06-05 — Backfill IECC + IFC + NEC adoption notes (M3): all 51 states/DC verified for all 5 codes via combined M2+M3 batches
  • 2026-06-20 — Ship a national-rollup landing page (totals by domain, freshness, top pending) wired into build.mjs (lands at /zoning/national/)
  • 2026-06-30 — Add national-rollup KPIs to the data-status dashboard header (5 KPIs at top of dashboard, +2.7 KB)
Signal: milestones

Simplify embedded data + normalize cross-page linksdone

Owner harness53 · Target 2026-06-30
v1-v2-completeness.html is 546KB of inlined JSON and the generators hand-roll cross-page links. Extract sidecar JSON, build a single link helper, and add a size budget.
Progress
7/7 · 100%
  • 2026-05-08 — Audit zoning/_generator/*.py for embedded JSON blocks; rank by byte size
  • 2026-05-22 — Extract cities-table sidecar (largest dashboard block) — proof of concept
  • 2026-06-05 — Extract codes-table + counties-table sidecars using the same pattern
  • 2026-06-19 — Extract per-city explorer sidecars (313 cities × 2 sidecars = 626 files; 465 KB HTML reduction at build time — actual payload was 5-8 KB per city, not 14+ KB as M1 audit estimated)
  • 2026-06-05 — Build a shared link_for(kind, slug) helper and replace hand-rolled links across generators (11 of 74 sites converted; MD5-verified byte-identical output)
  • 2026-06-15 — Pull the dashboard's repeated section/card markup into a shared layout helper (all 7 render_* converted; MD5-verified byte-identical output)
  • 2026-06-30 — Add a size-budget check to build.mjs that fails CI if v1-v2-completeness.html exceeds 150KB (currently 121 KB)
Signal: milestones

Write missing state-overlay JSONsdone

Owner harness53 · Target 2026-06-30
34 states have a preemption markdown but no structured overlay JSON. Writing each one flips a state from pending to shipped.
Progress
51/51 · 100%
  • 2026-05-10 — Wave 1: 8 high-population states (PA, NC, VA, GA, MI, IN, TN, MA)
  • 2026-05-31 — Wave 2: 12 mid-population states (MO, WI, MD, MN, CO, AL, SC, LA, KY, OR, OK, CT)
  • 2026-06-30 — Wave 3: 14 remaining states + DC
Blocked: Some preemption markdowns are thin (<500 words) — may need fresh research before the JSON can be written.
Signal: states where all status=shipped

Test suite — close gaps and pay down debtdone

Owner harness53 · Target 2026-06-30
Audit found `counties/tests/` is orphaned (59 files, 71 failing, 0 CI), `npm run test:zoning` points at a missing venv, half the wired suite hard-fails when dist isn't built (the other half skips), and `schema-baseline.json` permanently accepts 13,413 errors. Shipped: F2/F3/F5/F6 in PR #155, counties waves 2a/2b/2c/3 in PR #155, F11 in PR #156, F8 in PR #157. Schema-baseline ratchet (F4) shipped separately in PR #154.
Progress
11/11 · 100%
  • 2026-04-25 — Fix `npm run test:zoning` — replace broken `.venv` path with `python3 -m pytest` and document the dep set in tests/README.md
  • 2026-04-25 — Make dist-dependent tests consistent — pick skip-on-missing vs fail-on-missing and apply uniformly across `tests/test_link_check.py` and `tests/test_wiki_generators.py` (added `require_dist` helper in conftest with CI=1 → fail promotion; also closes finding F9)
  • 2026-04-25 — Add `tests/test_build_gates.py` covering build.mjs dashboard-size budget and atlas/dashboard parity checks (7 tests; budget reads from build.mjs source-of-truth, parity test parametrized per domain so drift is per-domain visible; verified against synthetic drift)
  • 2026-04-25 — Add `tests/test_manifest_reconciler.py` — invariant tests for v2-completeness, pending-repair, freshness-queue, district-proposals, overlay-proposals (31 tests; 2 of them are ratchets that capture existing drift — 8 pending-repair entries with stale failed_gates, 14 overlay type_code collisions across canonicals — and only fail if the count grows)
  • 2026-04-25 — Triage `counties/tests/` — wave 1: classify each of the 59 files as keep / repair / delete; document in counties/tests/TRIAGE.md
  • 2026-04-25 — Triage `counties/tests/` — wave 2a: fix the path-drift root cause that blocks 18 files (added 3 missing symlinks under counties/ops/ to vectors/04, 05, 06 — matches the existing legacy-anchor convention; also unblocks the parallel production-loader bug). Effect: 71 → 7 failing tests in one move.
  • 2026-04-25 — Triage `counties/tests/` — wave 2b: geopandas dep (no pyproject.toml change — it's already a counties main dep; the new counties-tests workflow installs via `pip install -e counties/` which pulls geopandas+pandas+requests+shapely transitively)
  • 2026-04-25 — Triage `counties/tests/` — wave 2c: rewrote test_docs_sync.py to skip-when-missing for the gitignored BEA/PLACES CSVs and fixed the doc paths to point at counties/vectors/01_federal_static_county_build/docs/ (the actual location after the same reorganization)
  • 2026-04-25 — Triage `counties/tests/` — wave 3: new .github/workflows/counties-tests.yml triggers on counties/** changes; runs pytest counties/tests/ -v --durations=20 after pip install -e counties/
  • 2026-04-25 — Stop counties tests mutating tracked corpus files — F11 fix in PR #156 (provenance.py: spec_path/raw_path now stored repo-relative; rewrote 30 already-committed manifests in place; 5 regression tests in counties/tests/test_provenance.py)
  • 2026-04-25 — Add CI timing summary — F8 fix in PR #157 (--durations=20 on pytest, $GITHUB_STEP_SUMMARY block with total wall time, hard-fail at 480s/600s budgets for zoning/counties workflows respectively)
Signal: milestones

Enrich API records with platform/vendor/tech metadatadone

Owner harness53 · Target 2026-07-15
The 30 records in zoning/apis/ know the endpoint and auth but not the underlying tech (Socrata vs ArcGIS REST vs CKAN vs custom). Add platform/vendor/query_lang fields and backfill every record.
Progress
5/5 · 100%
  • 2026-05-08 — Extend zoning/apis/SCHEMA.md with platform, vendor, query_lang, rate_limits, client_libs, docs_url fields
  • 2026-05-22 — Backfill all 12 already-shipped APIs with the new fields (WebFetch-verified)
  • 2026-06-12 — Backfill the 18 pending APIs with platform/vendor (15 done; 3 bulk-drop records correctly omit platform per schema rule)
  • 2026-06-30 — Cross-emit platform fields into per-city overlay records under zoning/overlays/ where source is identifiable
  • 2026-07-15 — Add a dashboard counter for 'API records with platform set' so progress is visible
Signal: milestones

Atlas — URL-declarative load manifest + mount/unmount routerdone

Owner harness53 · Target 2026-07-15
The atlas-data-loaded Playwright test (PR #341) caught the 'Hotels in LA never loaded' class of silent data failure: layer visible, legend populates, queryRenderedFeatures returns 0. Several of those failures aren't 'data missing' — they're 'data not loaded for this viewport' because the auto-swap fires on viewport-center crossings and is racy/silent when it misses. Move the load manifest into the URL so intent is declarative, sharing a view is a copy-pasteable URL, and the test fixture is just that URL.
Progress
8/8 · 100%
  • 2026-05-20 — Design doc: URL schema (?style, ?layers, ?city, ?center/zoom/bearing/pitch), backwards-compat rules, viewport-scoped vs preset-scoped layers — _shared/atlas-url-schema.md
  • 2026-06-03 — mountLayer(id, source) / unmountLayer(id) primitives wrapping addSource/removeSource + a per-page 'currently mounted' set
  • 2026-06-10 — _shared/atlas-url-router.js — popstate listener + programmatic API + diff-and-fire logic. router.idle event for tests + UI
  • 2026-06-17 — Migrate the existing ?style= shortcut to also write ?layers= after decode so refresh round-trips cleanly
  • 2026-06-24 — Migrate auto-swapping zoning source to URL-driven city slug (refreshActiveZoningCity becomes a URL-pushState call)
  • 2026-07-01 — Migrate viewport-scoped data layers (parcels, city-parks, NHD hydrography) to declare themselves on the manifest
  • 2026-07-08 — Atlas-data-loaded Playwright test rewritten to navigate per-preset URL and wait on router.idle (replaces the brittle areTilesLoaded+isSourceLoaded+retry pattern)
  • 2026-07-15 — Ship + atlas-improve dashboard card updated to reflect routable views
Signal: milestones

State layer — deepen preemptions + structured rulesdone

Owner harness53 · Target 2026-07-15
Beyond shipping overlay JSONs, raise every state's preemption markdown to ≥800 words and emit a structured preemption-rules JSON so the data is machine-queryable, not just prose.
Progress
5/5 · 100%
  • 2026-05-10 — Run a word-count audit across zoning/us/<state>/preemptions.md; emit a thin-preemptions manifest
  • 2026-05-20 — Define preemption-rules JSON schema (statute, scope, effective_date, carveouts, last_reviewed) + texas pilot
  • 2026-06-05 — Deepen the 5 thinnest preemption MDs to ≥800 words with primary-source citations (CT 878, MN 913, MT 1120, OR 1200, NJ 1270; 42 primary-source URLs added; caught 3 fabrications in prior MDs)
  • 2026-06-25 — Emit structured preemption-rules JSON for the top 15 states — 16/15 DONE: TX, CA, FL, WA, UT, AZ, CO, MA, NY, GA, IL, VA, NC, OH, MI, PA (89 rules; schema enum expanded from 26 to 46 scope values)
  • 2026-07-15 — Cross-link state pages to code-adoption pages from national-coverage-push (bidirectional via generate_state_wiki + generate_code_state_pages)
Signal: milestones

Atlas — new layers, mobile, deep links, dashboard paritydone

Owner harness53 · Target 2026-07-31
_pages/atlas.html has no owner. Add freshness + code-adoption + preemption-depth layers, fix mobile, add deep-link routing, and couple legend counts to the same manifests the dashboard reads.
Progress
6/6 · 100%
  • 2026-05-15 — Add a freshness-tier layer (volatile/standard/stable, color-coded) sourced from manifests/freshness-queue.json
  • 2026-05-31 — Add a code-adoption layer fed by national-coverage-push's matrix (51/51 states tiered: complete=29, partial=15, sparse=2, none=5)
  • 2026-06-15 — Add a state-preemption-depth layer fed by state-deep-dive's word-count audit
  • 2026-06-30 — Responsive breakpoints below 720px — sidebar collapses to a bottom sheet
  • 2026-07-15 — Deep-link routing — /atlas/?state=tx&county=dallas-county-tx opens the detail panel
  • 2026-07-31 — Couple atlas legend counts to the same manifests the dashboard reads, with a parity check in build.mjs (caught a real bug: charleston-sc/wv + rochester-mn/ny were collapsing on short-slug key)
Signal: milestones

Atlas URL router — phase 2: migrate domain modules to declarative manifestdone

Owner harness53 · Target 2026-08-15
Phase 1 (atlas-url-router) shipped the mount/unmount primitives + router.idle event + ?style=→?layers= round-trip. Phase 2 migrates the existing implicit-load modules (zoning auto-swap, viewport-scoped layers, the playwright test) onto the declarative manifest so the URL becomes the single source of truth for what's mounted. SHIPPED 2026-05-29: all 4 milestones complete — every one of the 111 named presets now has a copy-pasteable ?style=<name> share URL that loads correctly (the boot-race that left those URLs dead was fixed in #455/#692), and the data-loaded test navigates per-preset URLs awaiting router.idle. Routable views: 111.
Progress
4/4 · 100%
  • 2026-05-28 — Migrate auto-swapping zoning source to URL-driven city slug — refreshActiveZoningCity becomes a URL-pushState call; setActiveZoningCity continues to do the underlying source swap but is now reactive to ?city= changes
  • 2026-05-28 — Migrate viewport-scoped data layers (parcels, city-parks, NHD hydrography) to declare themselves on the manifest — these layers' visibility is bbox-dependent today; router diffs ?layers= against viewport to decide mount/unmount
  • 2026-08-01 — Atlas-data-loaded Playwright test rewritten to navigate per-preset URL and wait on router.idle — replaces the brittle areTilesLoaded + isSourceLoaded + retry pattern; one assert per preset, no polling
  • 2026-08-15 — Ship + atlas-improve dashboard card updated to reflect routable views — every preset has a copy-pasteable share URL; dashboard surfaces the count
Signal: milestones

Drain long-tail V1 cities across 33 statesdone

Owner harness53 · Target 2026-08-31
66 V1-legacy cities sit across 33 states with no per-state drain effort claiming them — most states only have 1–4 entries. Run them through the 11-specialist V1→V2 fleet-regen pipeline in cohort batches.
Progress
190/331 · 57%
  • 2026-05-22 — Pilot: charlotte-nc through full 11-specialist pipeline — confirm fleet-regen still works for big-city V1
  • 2026-06-15 — Cohort A — Southeast metros (15): NC×3, GA×3, KY×3, LA×3, MS×2, SC×1 leftover
  • 2026-06-30 — Cohort B — Mid-Atlantic + Mid-South (12): AL×4, VA×3, MD×1, DC×1, DE×1, SC×1, NC×1
  • 2026-07-15 — Cohort C — Midwest (16): IA×3, KS×3, NE×3, WI×2, IL×2, IN×2, SD×1
  • 2026-07-31 — Cohort D — Mountain West + Pacific (13): NV×4, ID×4, AK, CO, HI, NM, WY
  • 2026-08-15 — Cohort E — Northeast + remainder (10): MA×2, ME, NH, PA, RI, VT, OK×2, TX×1
  • 2026-08-31 — All 66 long-tail V1 profiles shipped — corpus at 100% v2
Signal: cities where {'schema': 'v2'} status=shipped target=331
Hotspots — top 15 states by combined pending records
State Cities pending Counties pending Total pending Cities corrupted
NC0/118/1081
IL0/55/55
AL0/44/44
FL0/243/1531
CO0/43/43
IA0/33/33
MI0/33/33
MO0/73/53
NE0/33/33
OR0/33/33
MN0/52/521
NJ0/32/321
AR0/92/72
AZ0/132/22
GA0/62/62
Shaded left to right by drain priority: a state near the top rewards a single batch run more than scattered one-off fixes elsewhere. The corrupted column surfaces template-bleed cities that need rewrite, not re-drain.
Cities · 190 / 331 shipped · avg quality 98%

Where's the research · 325 city profiles

Shipped — gates pass, published, fresh
190
V2 soft-fail — 1–2 gates failing on citation fidelityneeds polish, not re-research
134
Template-bleed — rewrite requireddistricts written but statistically impossible
7
Each row is a distinct research stage. 'Shipped' is the only bucket ready to serve; every other bucket has identifiable upstream work that's already partly done.

V2 schema adoption

state_preemptions_applicable[]
330/331
publication gate stamps
331/331
freshness_tier
310/331
classification (code_type)
305/331
source_platform
260/331
verification block
147/331
record_lineage
143/331
city_attributes{} (Task #11)
52/331
overlays_applicable[] (evaluator)
3/331
Denominator is the 331 V2 profiles (publication block + gates_status present). V1 legacy profiles carry none of these fields.

Publication-gate pass rate

primary url present
331/331
no aggregator cited
331/331
confidence tags full form
331/331
overlays have parameters trigger confidence
331/331
preempt section city specific
331/331
A profile needs all 5 gates passing AND non-stale freshness to count as shipped.
Per-city table · 331 rows · filters + search
Showing 331 of 331
CityStateStatusQualitySchemaPriorityAPIsGIS mapTagsReasonSpecialists
Loading 331 cities…
Counties · 131 / 218 shipped · avg quality 74%

Where's the research · 162 counties

Shipped — every city in the county is deep or solid
131
Mixed — roughly half solid, half partial/stubmeaningful cities remain at stub/partial
48
Stub-heavy — most cities are proposed onlycities enumerated but research thin
39
City-status vocabulary: deep=1.0, solid=0.85, partial=0.5, stub=0.2. A county ships when every city is deep/solid.

Top blockers · states with the most pending counties

NC
8
IL
5
AL
4
CO
3
FL
3
IA
3
MI
3
MO
3
A state leading this list is a high-ROI target: one research pass at the county-cities block flips several pending records at once.
Per-county table · 218 rows · filters + search
Showing 218 of 218
CountyStateFIPSStatusQualityCitiesManifestReason
Loading 218 counties…
States · 51 / 51 shipped · avg quality 100%

Where's the research · 51 states

Shipped — overlay JSON + preemption markdown + recent
51
Every pending state is one artifact away from shipped. Most already have the substantive statute research done in markdown form.

Top blocker · missing state-overlay JSON

0 states have a preemption markdown but no structured overlay JSON. Writing the overlay JSON is the single fix that flips each of these from pending to shipped.
Scope: the JSON encodes state-overlay preemption rules in machine-readable form. Stock schema lives at state-overlays/SCHEMA; California, Texas, and Florida are complete references.
Per-state table · 51 rows
Showing 51 of 51
StateAbbrStatusQualityOverlay JSONPreemption MDAgeReason
AlabamaALShipped10012doverlay + preemption · reviewed 12d ago
AlaskaAKShipped10010doverlay + preemption · reviewed 10d ago
ArizonaAZShipped10041doverlay + preemption · reviewed 41d ago
ArkansasARShipped10012doverlay + preemption · reviewed 12d ago
CaliforniaCAShipped10041doverlay + preemption · reviewed 41d ago
ColoradoCOShipped10041doverlay + preemption · reviewed 41d ago
ConnecticutCTShipped10041doverlay + preemption · reviewed 41d ago
DelawareDEShipped10010doverlay + preemption · reviewed 10d ago
District Of ColumbiaDCShipped10010doverlay + preemption · reviewed 10d ago
FloridaFLShipped10041doverlay + preemption · reviewed 41d ago
GeorgiaGAShipped10011doverlay + preemption · reviewed 11d ago
HawaiiHIShipped10010doverlay + preemption · reviewed 10d ago
IdahoIDShipped10010doverlay + preemption · reviewed 10d ago
IllinoisILShipped10041doverlay + preemption · reviewed 41d ago
IndianaINShipped10011doverlay + preemption · reviewed 11d ago
IowaIAShipped10012doverlay + preemption · reviewed 12d ago
KansasKSShipped10012doverlay + preemption · reviewed 12d ago
KentuckyKYShipped10012doverlay + preemption · reviewed 12d ago
LouisianaLAShipped10012doverlay + preemption · reviewed 12d ago
MaineMEShipped10010doverlay + preemption · reviewed 10d ago
MarylandMDShipped10012doverlay + preemption · reviewed 12d ago
MassachusettsMAShipped10011doverlay + preemption · reviewed 11d ago
MichiganMIShipped10011doverlay + preemption · reviewed 11d ago
MinnesotaMNShipped10012doverlay + preemption · reviewed 12d ago
MississippiMSShipped10012doverlay + preemption · reviewed 12d ago
MissouriMOShipped10012doverlay + preemption · reviewed 12d ago
MontanaMTShipped10041doverlay + preemption · reviewed 41d ago
NebraskaNEShipped10010doverlay + preemption · reviewed 10d ago
NevadaNVShipped10010doverlay + preemption · reviewed 10d ago
New HampshireNHShipped10010doverlay + preemption · reviewed 10d ago
New JerseyNJShipped10041doverlay + preemption · reviewed 41d ago
New MexicoNMShipped10010doverlay + preemption · reviewed 10d ago
New YorkNYShipped10041doverlay + preemption · reviewed 41d ago
North CarolinaNCShipped10011doverlay + preemption · reviewed 11d ago
North DakotaNDShipped10010doverlay + preemption · reviewed 10d ago
OhioOHShipped10041doverlay + preemption · reviewed 41d ago
OklahomaOKShipped10012doverlay + preemption · reviewed 12d ago
OregonORShipped10041doverlay + preemption · reviewed 41d ago
PennsylvaniaPAShipped10011doverlay + preemption · reviewed 11d ago
Rhode IslandRIShipped10010doverlay + preemption · reviewed 10d ago
South CarolinaSCShipped10012doverlay + preemption · reviewed 12d ago
South DakotaSDShipped10010doverlay + preemption · reviewed 10d ago
TennesseeTNShipped10011doverlay + preemption · reviewed 11d ago
TexasTXShipped10041doverlay + preemption · reviewed 41d ago
UtahUTShipped10041doverlay + preemption · reviewed 41d ago
VermontVTShipped10010doverlay + preemption · reviewed 10d ago
VirginiaVAShipped10011doverlay + preemption · reviewed 11d ago
WashingtonWAShipped10041doverlay + preemption · reviewed 41d ago
West VirginiaWVShipped10010doverlay + preemption · reviewed 10d ago
WisconsinWIShipped10012doverlay + preemption · reviewed 12d ago
WyomingWYShipped10010doverlay + preemption · reviewed 10d ago
Building Codes · 219 / 255 shipped · avg quality 92%

Where's the research · 255 state×code slots

Shipped — version parsed + recorded
219
Markdown present, version not parsedstate has research but specific code version needs extraction
36
Code slots = 51 states × 5 code families (IBC, IECC, IFC, IRC, NEC). A 'missing' slot may be legitimate — not every state adopts at the state level.

Coverage

53 per-state markdowns under _generator/building-codes/. 161 cities have code-adoption data parsed from those markdowns. 5 code families tracked: IBC, IECC, IFC, IRC, NEC.
Per-state × code table · 255 rows
Showing 255 of 255
StateAbbrCodeStatusQualityReason
Loading 255 code slots…
APIs · 36 / 172 shipped · avg quality 70% · platform-enriched 35/36

Where's the research · 30 API records

Shipped — fetcher wired + at least 1 city fetched
36
Wired but no artifacts yetrun fetch_city_overlay.py across corpus
133
Inventoried — endpoint, auth, unlocks documentedimplementation is next step
3
12 APIs have fetcher code but only 5 cities have actually been fetched. Running the fetcher across the 325-city corpus flips the per-city API coverage dramatically without writing new code.

Coverage by level

federal APIs
8/47
interstate APIs
1/11
state APIs
0/6
regional APIs
2/5
tribal APIs
1/1
county APIs
9/25
special_district APIs
6/13
infrastructure_system APIs
0/23
city APIs
8/25
sub_city APIs
0/7
Federal + county APIs dominate (Census, BLS, CDC, EPA, FEMA). State APIs are rare; city APIs are mostly permit feeds that need per-jurisdiction discovery.

Widest coverage & categories

USGS NHDPlus HR (National Hydrography Dataset, High Resolution) has the widest per-city coverage at 331 cities.
Categories: infrastructure (62), housing-marketing (16), environment (12), land-use (12), risk (12), demographics (8).
Per-API table · 172 rows · filters + search
Showing 172 of 172
APILevelCategoryStatusQualityCitiesAuthRankReason
Loading 172 APIs…
Assets · 60 / 60 shipped · movable capital catalog

v1 inventory progress · 60 files across 5 kinds

Construction machine
15/15
Rail rolling stock
13/13
Road vehicle
12/12
Aircraft
10/10
Vessel
10/10
Targets from assets/SCHEMA.md v1 inventory table. Each kind covers a distinct mobile-capital domain; nullable schema blocks (power, reach, kinematic_dof) accommodate non-applicable cases. MANIFEST.json present.
Per-type records · 60 cataloged
Showing 60 of 60
KindManufacturer · Modeltype_idStatusQualityReason
AircraftAirbus A330-200Faircraft.fixed-wing.freighter.airbus.a330-200fShipped1002 source(s) cited
AircraftBoeing 747-8Faircraft.fixed-wing.freighter.boeing.747-8fShipped1002 source(s) cited
AircraftBoeing 777Faircraft.fixed-wing.freighter.boeing.777fShipped1002 source(s) cited
AircraftLockheed Martin C-130J Super Herculesaircraft.fixed-wing.military-transport.lockheed-martin.c-130j-super-herculesShipped1002 source(s) cited
AircraftAirbus A320neoaircraft.fixed-wing.narrowbody.airbus.a320neoShipped1001 source(s) cited
AircraftBoeing 737-800aircraft.fixed-wing.narrowbody.boeing.737-800Shipped1002 source(s) cited
AircraftEmbraer E175aircraft.fixed-wing.regional-jet.embraer.e175Shipped1002 source(s) cited
AircraftATR ATR 72-600aircraft.fixed-wing.turboprop.atr.atr-72-600Shipped1002 source(s) cited
AircraftAirbus A350-900aircraft.fixed-wing.widebody.airbus.a350-900Shipped1002 source(s) cited
AircraftBoeing 777-300ERaircraft.fixed-wing.widebody.boeing.777-300erShipped1002 source(s) cited
Construction machineGenie Z-80/60construction-machine.aerial-work-platform.boom-lift.genie.z-80-60Shipped1002 source(s) cited
Construction machineCaterpillar 745construction-machine.articulated-dump-truck.cat.745Shipped1002 source(s) cited
Construction machineCaterpillar AP1055F Mobil-Tracconstruction-machine.asphalt-paver.cat.ap1055fShipped1002 source(s) cited
Construction machineJCB 3CXconstruction-machine.backhoe-loader.jcb.3cxShipped1002 source(s) cited
Construction machineCaterpillar D8Tconstruction-machine.bulldozer.cat.d8tShipped1002 source(s) cited
Construction machineMack Trucks (chassis) + McNeilus (mixer body) Mack Granite GU813 / 64BR + McNeilus mixerconstruction-machine.concrete-mixer-truck.mack-mcneilus.granite-mixerShipped1002 source(s) cited
Construction machinePutzmeister 70Z-Meterconstruction-machine.concrete-pump.putzmeister.70z-meterShipped1002 source(s) cited
Construction machineAlimak SCANDO 650construction-machine.construction-hoist.alimak.scando-650Shipped1002 source(s) cited
Construction machineLiebherr LR 1300construction-machine.crane.crawler.liebherr.lr-1300Shipped1001 source(s) cited
Construction machineTadano ATF 400G-6construction-machine.crane.mobile-at.tadano.atf-400g-6Shipped1002 source(s) cited
Construction machineLiebherr 380 EC-B 16 Litronicconstruction-machine.crane.tower-luffing.liebherr.380-ec-b-16Shipped1002 source(s) cited
Construction machineCaterpillar 336construction-machine.excavator.cat.336Shipped1003 source(s) cited
Construction machineBobcat S650construction-machine.skid-steer.bobcat.s650Shipped1002 source(s) cited
Construction machineGenie GTH-1056construction-machine.telehandler.genie.gth-1056Shipped1002 source(s) cited
Construction machineCaterpillar 966Mconstruction-machine.wheel-loader.cat.966mShipped1002 source(s) cited
Rail rolling stockGreenbrier Auto-Max IIrail-rolling-stock.car.autorack.greenbrier.auto-max-iiShipped1002 source(s) cited
Rail rolling stockspec-class (Thrall, Greenville, Pullman built 1964-1973) 86-foot Plate F high-cube boxcarrail-rolling-stock.car.boxcar.generic.86ft-plate-f-high-cubeShipped1002 source(s) cited
Rail rolling stockspec-class (Greenbrier, National Steel Car, Trinity) 73' Centerbeam flatcar (286k GRL)rail-rolling-stock.car.centerbeam-flatcar.generic.73ftShipped1002 source(s) cited
Rail rolling stockspec-class (Greenbrier, TrinityRail, National Steel Car) Covered hopper, grain service, 5,200-5,800 cu ft / 286k GRLrail-rolling-stock.car.covered-hopper.generic.grain-5400-cu-ftShipped1002 source(s) cited
Rail rolling stockGreenbrier 52' Mill Gondola (2,791-3,267 cu ft variants)rail-rolling-stock.car.gondola.greenbrier.52ft-mill-gondolaShipped1002 source(s) cited
Rail rolling stockGreenbrier 53' Husky-Stackrail-rolling-stock.car.intermodal-well.greenbrier.53-husky-stackShipped1002 source(s) cited
Rail rolling stockBudd Company (built 1975-1977 for Amtrak) Amfleet I coachrail-rolling-stock.car.passenger-coach.amfleet.amfleet-iShipped1002 source(s) cited
Rail rolling stockspec-class (multiple manufacturers: Greenbrier, Trinity, ARI) DOT-117 / TC-117 (post-Lac-Mégantic crude/ethanol spec)rail-rolling-stock.car.tank.dot-117-specShipped1003 source(s) cited
Rail rolling stockEMD (now Progress Rail / Wabtec) GP38-2rail-rolling-stock.locomotive.diesel-electric.emd.gp38-2Shipped1002 source(s) cited
Rail rolling stockWabtec ES44ACrail-rolling-stock.locomotive.diesel-electric.wabtec.es44acShipped1002 source(s) cited
Rail rolling stockWabtec (EMD Progress Rail) SD70ACerail-rolling-stock.locomotive.diesel-electric.wabtec.sd70aceShipped1002 source(s) cited
Rail rolling stockWabtec FLXdrive (heavy-haul battery-electric)rail-rolling-stock.locomotive.electric-battery.wabtec.flxdriveShipped1002 source(s) cited
Rail rolling stockSiemens Mobility ACS-64 (Amtrak Cities Sprinter)rail-rolling-stock.locomotive.electric-catenary.siemens.acs-64Shipped1002 source(s) cited
Road vehiclegeneric 53' Dry Van (Great Dane / Wabash / Utility / Hyundai Translead class)road-vehicle.trailer.dry-van.generic.53ftShipped1002 source(s) cited
Road vehiclegeneric (Great Dane / Wabash / Utility / Fontaine / Reitnouer) 48' x 102" Flatbed Trailerroad-vehicle.trailer.flatbed.generic.48ftShipped1002 source(s) cited
Road vehiclegeneric (TRAC Intermodal / PRO-HAUL / Stoughton / Cheetah Chassis / PIC) 53' Tandem-axle intermodal chassis (fixed gooseneck)road-vehicle.trailer.intermodal-chassis.generic.53ft-tandemShipped1002 source(s) cited
Road vehiclegeneric (Trail King / Talbert / Landoll / Rogers) RGN Lowboy, 3-axle (~60k lb capacity)road-vehicle.trailer.lowboy.generic.rgn-3-axleShipped1002 source(s) cited
Road vehiclegeneric (Utility 3000R / Great Dane Everest / Wabash ArcticLite) 53' Refrigerated trailer (reefer)road-vehicle.trailer.refrigerated.generic.53ft-reeferShipped1002 source(s) cited
Road vehiclegeneric (Wabash / Tremcar / Polar / Walker) Food-grade tank trailer, 9,000-9,500 gal stainlessroad-vehicle.trailer.tanker.food-grade.stainless-9k-galShipped1002 source(s) cited
Road vehicleFreightliner M2 106 (Business Class)road-vehicle.truck.medium-duty.class-7.freightliner.m2-106Shipped1002 source(s) cited
Road vehicleFreightliner Cascadia 116 Day Cabroad-vehicle.truck.tractor.class-8.freightliner.cascadia-116-daycabShipped1002 source(s) cited
Road vehicleFreightliner Cascadia 126 (Mid-Roof XT)road-vehicle.truck.tractor.class-8.freightliner.cascadia-126-sleeperShipped1002 source(s) cited
Road vehiclePeterbilt (PACCAR) 579road-vehicle.truck.tractor.class-8.peterbilt.579Shipped1002 source(s) cited
Road vehicleFreightliner (Daimler Truck North America) eCascadiaroad-vehicle.truck.tractor.class-8-electric.freightliner.ecascadiaShipped1002 source(s) cited
Road vehicleMack Trucks Granite chassis (bare, for body builders)road-vehicle.truck.vocational.class-8.mack.granite-chassisShipped1002 source(s) cited
VesselCrowley (operator) / VT Halter Marine (builder) 650-Class ATB (327,000 bbl petroleum barge + Intercon-coupled tug)vessel.atb-tug-barge.crowley.650-classShipped1002 source(s) cited
Vesselgeneric Capesize bulk carrier (150-200k DWT class)vessel.bulker.capesize.genericShipped1002 source(s) cited
Vesselgeneric Neo-Panamax container ship (13-14k TEU class)vessel.container-ship.generic.neo-panamaxShipped1002 source(s) cited
VesselYangzijiang Shipbuilding (hull); MSC operator class Irina-class (24K TEU)vessel.container-ship.msc.irina-classShipped1002 source(s) cited
Vesselvarious (DSME, Hyundai HI, Samsung HI for Qatargas) Q-Flex LNG carrier (210-217k m³ class)vessel.lng-carrier.qatargas.q-flexShipped1002 source(s) cited
Vesselgeneric (Mitsubishi HI, Hyundai Mipo, Jiangnan) Pure Car Carrier (PCC, 6-9.5k CEU class)vessel.roro.pcc.genericShipped1003 source(s) cited
Vesselgeneric Aframax tanker (80-120k DWT class)vessel.tanker-crude.aframax.genericShipped1002 source(s) cited
Vesselgeneric Very Large Crude Carrier (200-320k DWT class)vessel.tanker-crude.vlcc.genericShipped1003 source(s) cited
VesselC&C Marine (builder) / ACBL (operator) M/V ACBL Mariner-class (11,000 hp line-haul towboat)vessel.towboat.inland-river.acbl-mariner-classShipped1002 source(s) cited
Vesselgeneric ASD harbor tug (Damen ASD 2813 / Wartsila WTUG 60 class)vessel.tugboat.asd-harbor.genericShipped1002 source(s) cited
Other Data · supporting datasets

Supplemental coverage (per-profile)

keys/cities per profile
272/331
research markdowns per profile
323/331
narratives per profile
265/331
overlay/district lifecycle dates
5/330
district proposals accepted
1/22
overlay proposals accepted
0/14
Denominators are the 331 city profiles for the top three rows; proposal manifests provide their own totals.

Federal trigger coverage

NFIP trigger attr populated
0/331
Part 77 trigger attr populated
0/331
AICUZ trigger attr populated
0/331
ESA trigger attr populated
0/331
0 cities are missing at least one canonical federal trigger attribute across 0 missing cells. Alias-only rows flag legacy keys that should be migrated.
Federal trigger attribute gaps · 0 cities
CityStateMissingMissing fieldsAlias-only
No gaps0All canonical trigger attrs populated
Federal overlays, city overlays, international · 313 records
Showing 313 of 313
DomainNameSlugStatusQualityReason
Federal overlayAICUZAICUZShipped100file present
Federal overlayESA CRITICAL HABITATESA_CRITICAL_HABITATShipped100file present
Federal overlayMAAMFMAAMFShipped100file present
Federal overlayNFIPNFIPShipped100file present
Federal overlayPART77PART77Shipped100file present
InternationalGermanygermanyShipped100record + research
InternationalJapanjapanShipped100record + research
InternationalNetherlandsnetherlandsShipped100record + research
City overlayakron ohakron-ohShipped100overlay record JSON present
City overlayalbuquerque nmalbuquerque-nmShipped100overlay record JSON present
City overlayalexandria vaalexandria-vaShipped100overlay record JSON present
City overlayamarillo txamarillo-txShipped100overlay record JSON present
City overlayanaheim caanaheim-caShipped100overlay record JSON present
City overlayanchorage akanchorage-akShipped100overlay record JSON present
City overlayarlington txarlington-txShipped100overlay record JSON present
City overlayarlington vaarlington-vaShipped100overlay record JSON present
City overlayathens ohathens-ohShipped100overlay record JSON present
City overlayatlanta gaatlanta-gaShipped100overlay record JSON present
City overlayaugusta gaaugusta-gaShipped100overlay record JSON present
City overlayaurora coaurora-coShipped100overlay record JSON present
City overlayaustin txaustin-txShipped100overlay record JSON present
City overlaybakersfield cabakersfield-caShipped100overlay record JSON present
City overlaybaltimore mdbaltimore-mdShipped100overlay record JSON present
City overlaybartlett tnbartlett-tnShipped100overlay record JSON present
City overlaybaton rouge labaton-rouge-laShipped100overlay record JSON present
City overlaybellevue wabellevue-waShipped100overlay record JSON present
City overlaybellflower cabellflower-caShipped100overlay record JSON present
City overlaybellingham wabellingham-waShipped100overlay record JSON present
City overlaybentonville arbentonville-arShipped100overlay record JSON present
City overlaybillings mtbillings-mtShipped100overlay record JSON present
City overlaybirmingham albirmingham-alShipped100overlay record JSON present
City overlayboise idboise-idShipped100overlay record JSON present
City overlayboston maboston-maShipped100overlay record JSON present
City overlaybowling green kybowling-green-kyShipped100overlay record JSON present
City overlaybridgeport ctbridgeport-ctShipped100overlay record JSON present
City overlaybrigham city utbrigham-city-utShipped100overlay record JSON present
City overlaybrownsville txbrownsville-txShipped100overlay record JSON present
City overlaybuckeye azbuckeye-azShipped100overlay record JSON present
City overlaybuffalo nybuffalo-nyShipped100overlay record JSON present
City overlaycanton ohcanton-ohShipped100overlay record JSON present
City overlaycape coral flcape-coral-flShipped100overlay record JSON present
City overlaycarrollton txcarrollton-txShipped100overlay record JSON present
City overlaycarson cacarson-caShipped100overlay record JSON present
City overlaycary nccary-ncShipped100overlay record JSON present
City overlaycedar hill txcedar-hill-txShipped100overlay record JSON present
City overlaycedar park txcedar-park-txShipped100overlay record JSON present
City overlaycedar rapids iacedar-rapids-iaShipped100overlay record JSON present
City overlaychandler azchandler-azShipped100overlay record JSON present
City overlaycharleston sccharleston-scShipped100overlay record JSON present
City overlaycharleston wvcharleston-wvShipped100overlay record JSON present
City overlaycharlotte nccharlotte-ncShipped100overlay record JSON present
City overlaychattanooga tnchattanooga-tnShipped100overlay record JSON present
City overlaychesapeake vachesapeake-vaShipped100overlay record JSON present
City overlaychicago ilchicago-ilShipped100overlay record JSON present
City overlaychillicothe ohchillicothe-ohShipped100overlay record JSON present
City overlaychula vista cachula-vista-caShipped100overlay record JSON present
City overlaycincinnati ohcincinnati-ohShipped100overlay record JSON present
City overlayclarksville arclarksville-arShipped100overlay record JSON present
City overlayclarksville tnclarksville-tnShipped100overlay record JSON present
City overlaycleveland ohcleveland-ohShipped100overlay record JSON present
City overlaycollierville tncollierville-tnShipped100overlay record JSON present
City overlaycolorado springs cocolorado-springs-coShipped100overlay record JSON present
City overlaycolumbia sccolumbia-scShipped100overlay record JSON present
City overlaycolumbus gacolumbus-gaShipped100overlay record JSON present
City overlaycolumbus ohcolumbus-ohShipped100overlay record JSON present
City overlaycompton cacompton-caShipped100overlay record JSON present
City overlayconcord caconcord-caShipped100overlay record JSON present
City overlaycorona cacorona-caShipped100overlay record JSON present
City overlaycorpus christi txcorpus-christi-txShipped100overlay record JSON present
City overlaycrestview flcrestview-flShipped100overlay record JSON present
City overlaydallas txdallas-txShipped100overlay record JSON present
City overlaydefuniak springs fldefuniak-springs-flShipped100overlay record JSON present
City overlaydenver codenver-coShipped100overlay record JSON present
City overlaydes moines iades-moines-iaShipped100overlay record JSON present
City overlaydestin fldestin-flShipped100overlay record JSON present
City overlaydetroit midetroit-miShipped100overlay record JSON present
City overlaydowney cadowney-caShipped100overlay record JSON present
City overlayel paso txel-paso-txShipped100overlay record JSON present
City overlayelk grove caelk-grove-caShipped100overlay record JSON present
City overlayelkhart inelkhart-inShipped100overlay record JSON present
City overlayescondido caescondido-caShipped100overlay record JSON present
City overlayeugene oreugene-orShipped100overlay record JSON present
City overlayevansville inevansville-inShipped100overlay record JSON present
City overlayfairfield cafairfield-caShipped100overlay record JSON present
City overlayfargo ndfargo-ndShipped100overlay record JSON present
City overlayfayetteville arfayetteville-arShipped100overlay record JSON present
City overlayflint miflint-miShipped100overlay record JSON present
City overlayfontana cafontana-caShipped100overlay record JSON present
City overlayfort collins cofort-collins-coShipped100overlay record JSON present
City overlayfort lauderdale flfort-lauderdale-flShipped100overlay record JSON present
City overlayfort myers flfort-myers-flShipped100overlay record JSON present
City overlayfort walton beach flfort-walton-beach-flShipped100overlay record JSON present
City overlayfort wayne infort-wayne-inShipped100overlay record JSON present
City overlayfort worth txfort-worth-txShipped100overlay record JSON present
City overlayfremont cafremont-caShipped100overlay record JSON present
City overlayfresno cafresno-caShipped100overlay record JSON present
City overlayfrisco txfrisco-txShipped100overlay record JSON present
City overlaygainesville flgainesville-flShipped100overlay record JSON present
City overlaygallatin tngallatin-tnShipped100overlay record JSON present
City overlaygardena cagardena-caShipped100overlay record JSON present
City overlaygarland txgarland-txShipped100overlay record JSON present
City overlaygilbert azgilbert-azShipped100overlay record JSON present
City overlayglendale azglendale-azShipped100overlay record JSON present
City overlaygloversville nygloversville-nyShipped100overlay record JSON present
City overlaygoodyear azgoodyear-azShipped100overlay record JSON present
City overlaygrand prairie txgrand-prairie-txShipped100overlay record JSON present
City overlaygrand rapids migrand-rapids-miShipped100overlay record JSON present
City overlaygreensboro ncgreensboro-ncShipped100overlay record JSON present
City overlaygreenville scgreenville-scShipped100overlay record JSON present
City overlayhamilton ohhamilton-ohShipped100overlay record JSON present
City overlayhampton vahampton-vaShipped100overlay record JSON present
City overlayhartford cthartford-ctShipped100overlay record JSON present
City overlayhattiesburg mshattiesburg-msShipped100overlay record JSON present
City overlayhawthorne cahawthorne-caShipped100overlay record JSON present
City overlayhayward cahayward-caShipped100overlay record JSON present
City overlayhelena mthelena-mtShipped100overlay record JSON present
City overlayhenderson nvhenderson-nvShipped100overlay record JSON present
City overlayhendersonville tnhendersonville-tnShipped100overlay record JSON present
City overlayhermann mohermann-moShipped100overlay record JSON present
City overlayhialeah flhialeah-flShipped100overlay record JSON present
City overlayhollywood flhollywood-flShipped100overlay record JSON present
City overlayhuntington beach cahuntington-beach-caShipped100overlay record JSON present
City overlayhuntington park cahuntington-park-caShipped100overlay record JSON present
City overlayhuntsville alhuntsville-alShipped100overlay record JSON present
City overlayindiana paindiana-paShipped100overlay record JSON present
City overlayindianapolis inindianapolis-inShipped100overlay record JSON present
City overlayinglewood cainglewood-caShipped100overlay record JSON present
City overlayirvine cairvine-caShipped100overlay record JSON present
City overlayirving txirving-txShipped100overlay record JSON present
City overlayjackson msjackson-msShipped100overlay record JSON present
City overlayjacksonville fljacksonville-flShipped100overlay record JSON present
City overlayjacksonville ncjacksonville-ncShipped100overlay record JSON present
City overlayjanesville wijanesville-wiShipped100overlay record JSON present
City overlayjersey city njjersey-city-njShipped100overlay record JSON present
City overlayjohnstown nyjohnstown-nyShipped100overlay record JSON present
City overlayjoliet iljoliet-ilShipped100overlay record JSON present
City overlaykansas city mokansas-city-moShipped100overlay record JSON present
City overlaykearney nekearney-neShipped100overlay record JSON present
City overlaykent wakent-waShipped100overlay record JSON present
City overlaykettering ohkettering-ohShipped100overlay record JSON present
City overlaykilleen txkilleen-txShipped100overlay record JSON present
City overlayknoxville tnknoxville-tnShipped100overlay record JSON present
City overlaylakeland fllakeland-flShipped100overlay record JSON present
City overlaylakewood calakewood-caShipped100overlay record JSON present
City overlaylancaster calancaster-caShipped100overlay record JSON present
City overlaylancaster ohlancaster-ohShipped100overlay record JSON present
City overlaylaredo txlaredo-txShipped100overlay record JSON present
City overlaylas vegas nvlas-vegas-nvShipped100overlay record JSON present
City overlayleague city txleague-city-txShipped100overlay record JSON present
City overlaylehigh acres fllehigh-acres-flShipped100overlay record JSON present
City overlaylexington kylexington-kyShipped100overlay record JSON present
City overlaylincoln nelincoln-neShipped100overlay record JSON present
City overlaylittle rock arlittle-rock-arShipped100overlay record JSON present
City overlaylong beach calong-beach-caShipped100overlay record JSON present
City overlaylos angeles calos-angeles-caShipped100overlay record JSON present
City overlaylouisville kylouisville-kyShipped100overlay record JSON present
City overlaylubbock txlubbock-txShipped100overlay record JSON present
City overlaylynwood calynwood-caShipped100overlay record JSON present
City overlaymacon gamacon-gaShipped100overlay record JSON present
City overlaymadison wimadison-wiShipped100overlay record JSON present
City overlaymanchester nhmanchester-nhShipped100overlay record JSON present
City overlaymanor txmanor-txShipped100overlay record JSON present
City overlaymcallen txmcallen-txShipped100overlay record JSON present
City overlaymckinney txmckinney-txShipped100overlay record JSON present
City overlaymemphis tnmemphis-tnShipped100overlay record JSON present
City overlaymeridian idmeridian-idShipped100overlay record JSON present
City overlaymesa azmesa-azShipped100overlay record JSON present
City overlaymesquite txmesquite-txShipped100overlay record JSON present
City overlaymiami flmiami-flShipped100overlay record JSON present
City overlaymiddletown ohmiddletown-ohShipped100overlay record JSON present
City overlaymidland txmidland-txShipped100overlay record JSON present
City overlaymilwaukee wimilwaukee-wiShipped100overlay record JSON present
City overlayminneapolis mnminneapolis-mnShipped100overlay record JSON present
City overlaymiramar flmiramar-flShipped100overlay record JSON present
City overlaymobile almobile-alShipped100overlay record JSON present
City overlaymodesto camodesto-caShipped100overlay record JSON present
City overlaymontgomery almontgomery-alShipped100overlay record JSON present
City overlaymorehead city ncmorehead-city-ncShipped100overlay record JSON present
City overlaymoreno valley camoreno-valley-caShipped100overlay record JSON present
City overlaymountain home idmountain-home-idShipped100overlay record JSON present
City overlaymurfreesboro tnmurfreesboro-tnShipped100overlay record JSON present
City overlaynampa idnampa-idShipped100overlay record JSON present
City overlaynapa canapa-caShipped100overlay record JSON present
City overlaynaperville ilnaperville-ilShipped100overlay record JSON present
City overlaynaples flnaples-flShipped100overlay record JSON present
City overlaynashville tnnashville-tnShipped100overlay record JSON present
City overlaynavarre flnavarre-flShipped100overlay record JSON present
City overlaynew braunfels txnew-braunfels-txShipped100overlay record JSON present
City overlaynew haven ctnew-haven-ctShipped100overlay record JSON present
City overlaynew orleans lanew-orleans-laShipped100overlay record JSON present
City overlaynew ulm mnnew-ulm-mnShipped100overlay record JSON present
City overlaynew york city nynew-york-city-nyShipped100overlay record JSON present
City overlaynewark njnewark-njShipped100overlay record JSON present
City overlayniceville flniceville-flShipped100overlay record JSON present
City overlaynorfolk vanorfolk-vaShipped100overlay record JSON present
City overlaynorth las vegas nvnorth-las-vegas-nvShipped100overlay record JSON present
City overlaynorth mankato mnnorth-mankato-mnShipped100overlay record JSON present
City overlaynorwalk canorwalk-caShipped100overlay record JSON present
City overlaynovato canovato-caShipped100overlay record JSON present
City overlayoakland caoakland-caShipped100overlay record JSON present
City overlayoceanside caoceanside-caShipped100overlay record JSON present
City overlayodessa txodessa-txShipped100overlay record JSON present
City overlayogden utogden-utShipped100overlay record JSON present
City overlayolathe ksolathe-ksShipped100overlay record JSON present
City overlayomaha neomaha-neShipped100overlay record JSON present
City overlayontario caontario-caShipped100overlay record JSON present
City overlayorlando florlando-flShipped100overlay record JSON present
City overlayoverland park ksoverland-park-ksShipped100overlay record JSON present
City overlayoxnard caoxnard-caShipped100overlay record JSON present
City overlayozark arozark-arShipped100overlay record JSON present
City overlaypalmdale capalmdale-caShipped100overlay record JSON present
City overlayparamount caparamount-caShipped100overlay record JSON present
City overlayparis arparis-arShipped100overlay record JSON present
City overlayparis txparis-txShipped100overlay record JSON present
City overlaypasadena txpasadena-txShipped100overlay record JSON present
City overlaypaterson njpaterson-njShipped100overlay record JSON present
City overlaypearland txpearland-txShipped100overlay record JSON present
City overlaypembroke pines flpembroke-pines-flShipped100overlay record JSON present
City overlaypeoria azpeoria-azShipped100overlay record JSON present
City overlaypetaluma capetaluma-caShipped100overlay record JSON present
City overlaypflugerville txpflugerville-txShipped100overlay record JSON present
City overlayphiladelphia paphiladelphia-paShipped100overlay record JSON present
City overlayphoenix azphoenix-azShipped100overlay record JSON present
City overlaypico rivera capico-rivera-caShipped100overlay record JSON present
City overlaypittsburgh papittsburgh-paShipped100overlay record JSON present
City overlayplano txplano-txShipped100overlay record JSON present
City overlayport st lucie flport-st-lucie-flShipped100overlay record JSON present
City overlayportland orportland-orShipped100overlay record JSON present
City overlayprovo utprovo-utShipped100overlay record JSON present
City overlayraleigh ncraleigh-ncShipped100overlay record JSON present
City overlayrancho cucamonga carancho-cucamonga-caShipped100overlay record JSON present
City overlayredondo beach caredondo-beach-caShipped100overlay record JSON present
City overlayreno nvreno-nvShipped100overlay record JSON present
City overlayrichmond varichmond-vaShipped100overlay record JSON present
City overlayriverside cariverside-caShipped100overlay record JSON present
City overlayrochester mnrochester-mnShipped100overlay record JSON present
City overlayrochester nyrochester-nyShipped100overlay record JSON present
City overlayrockford ilrockford-ilShipped100overlay record JSON present
City overlayrogers arrogers-arShipped100overlay record JSON present
City overlayroseville caroseville-caShipped100overlay record JSON present
City overlayround rock txround-rock-txShipped100overlay record JSON present
City overlayrussellville arrussellville-arShipped100overlay record JSON present
City overlaysacramento casacramento-caShipped100overlay record JSON present
City overlaysalem orsalem-orShipped100overlay record JSON present
City overlaysalinas casalinas-caShipped100overlay record JSON present
City overlaysalt lake city utsalt-lake-city-utShipped100overlay record JSON present
City overlaysan antonio txsan-antonio-txShipped100overlay record JSON present
City overlaysan bernardino casan-bernardino-caShipped100overlay record JSON present
City overlaysan diego casan-diego-caShipped100overlay record JSON present
City overlaysan francisco casan-francisco-caShipped100overlay record JSON present
City overlaysan jose casan-jose-caShipped100overlay record JSON present
City overlaysan marcos txsan-marcos-txShipped100overlay record JSON present
City overlaysanta ana casanta-ana-caShipped100overlay record JSON present
City overlaysanta clarita casanta-clarita-caShipped100overlay record JSON present
City overlaysanta rosa casanta-rosa-caShipped100overlay record JSON present
City overlaysavannah gasavannah-gaShipped100overlay record JSON present
City overlayscottsdale azscottsdale-azShipped100overlay record JSON present
City overlayshreveport lashreveport-laShipped100overlay record JSON present
City overlaysioux city iasioux-city-iaShipped100overlay record JSON present
City overlaysioux falls sdsioux-falls-sdShipped100overlay record JSON present
City overlaysouth gate casouth-gate-caShipped100overlay record JSON present
City overlayspokane waspokane-waShipped100overlay record JSON present
City overlayspringdale arspringdale-arShipped100overlay record JSON present
City overlayspringfield ilspringfield-ilShipped100overlay record JSON present
City overlayst george utst-george-utShipped100overlay record JSON present
City overlayst louis most-louis-moShipped100overlay record JSON present
City overlayst paul mnst-paul-mnShipped100overlay record JSON present
City overlayst petersburg flst-petersburg-flShipped100overlay record JSON present
City overlaystockton castockton-caShipped100overlay record JSON present
City overlaysugar land txsugar-land-txShipped100overlay record JSON present
City overlaysullivan mosullivan-moShipped100overlay record JSON present
City overlaysunnyvale casunnyvale-caShipped100overlay record JSON present
City overlaysurprise azsurprise-azShipped100overlay record JSON present
City overlaytacoma watacoma-waShipped100overlay record JSON present
City overlaytallahassee fltallahassee-flShipped100overlay record JSON present
City overlaytampa fltampa-flShipped100overlay record JSON present
City overlaytempe aztempe-azShipped100overlay record JSON present
City overlayterre haute interre-haute-inShipped100overlay record JSON present
City overlaythe woodlands txthe-woodlands-txShipped100overlay record JSON present
City overlaythousand oaks cathousand-oaks-caShipped100overlay record JSON present
City overlaytoledo ohtoledo-ohShipped100overlay record JSON present
City overlaytonopah aztonopah-azShipped100overlay record JSON present
City overlaytooele uttooele-utShipped100overlay record JSON present
City overlaytorrance catorrance-caShipped100overlay record JSON present
City overlaytownsend mttownsend-mtShipped100overlay record JSON present
City overlaytremonton uttremonton-utShipped100overlay record JSON present
City overlaytucson aztucson-azShipped100overlay record JSON present
City overlaytulsa oktulsa-okShipped100overlay record JSON present
City overlaytyler txtyler-txShipped100overlay record JSON present
City overlayvaldosta gavaldosta-gaShipped100overlay record JSON present
City overlayvallejo cavallejo-caShipped100overlay record JSON present
City overlayvancouver wavancouver-waShipped100overlay record JSON present
City overlayvirginia beach vavirginia-beach-vaShipped100overlay record JSON present
City overlayvisalia cavisalia-caShipped100overlay record JSON present
City overlaywaco txwaco-txShipped100overlay record JSON present
City overlaywalla walla wawalla-walla-waShipped100overlay record JSON present
City overlaywashington dcwashington-dcShipped100overlay record JSON present
City overlaywashington mowashington-moShipped100overlay record JSON present
City overlaywest lake hills txwest-lake-hills-txShipped100overlay record JSON present
City overlaywest valley city utwest-valley-city-utShipped100overlay record JSON present
City overlaywhittier cawhittier-caShipped100overlay record JSON present
City overlaywichita kswichita-ksShipped100overlay record JSON present
City overlaywilmington dewilmington-deShipped100overlay record JSON present
City overlaywilmington ncwilmington-ncShipped100overlay record JSON present
City overlayworcester maworcester-maShipped100overlay record JSON present
City overlayyonkers nyyonkers-nyShipped100overlay record JSON present
City overlayzanesville ohzanesville-ohShipped100overlay record JSON present
Coveragekeys/cities per profilekeys-cities-coveragePending82272/331
Coverageresearch markdowns per profileresearch-coveragePending97323/331
Coveragenarratives per profilenarrative-coveragePending80265/331
Coverageprofiles with overlay/district dateslifecycle-dates-coveragePending15/330
Proposaldistrict proposals accepteddistrict-proposalsPending41/22
Proposaloverlay proposals acceptedoverlay-proposalsMissing00/14