Skip to content

Add Missouri SOS current-cycle election ingestion#188

Draft
ThatXliner wants to merge 1 commit into
codex/nc-tx-scrapers-consolidatedfrom
codex/missouri-sos-election
Draft

Add Missouri SOS current-cycle election ingestion#188
ThatXliner wants to merge 1 commit into
codex/nc-tx-scrapers-consolidatedfrom
codex/missouri-sos-election

Conversation

@ThatXliner

Copy link
Copy Markdown
Collaborator

Summary

  • add a current-2026-only Missouri Secretary of State scraper with dynamic primary/general and candidate-system discovery
  • parse the cumulative certified candidate list and withdrawals in ballot order while deliberately excluding addresses/contact fields and all voter-level data
  • parse certified 2026 ballot measures with official/fair language, fiscal statements, full-text/certificate links, and provenance
  • fail soft with a persisted diagnostic until ShowMO Votes publishes active-election results, with deterministic fixture coverage for later result updates
  • reuse PR Add North Carolina and Texas civic data scrapers #181's provider-neutral election snapshot schema, including stable hashes/upserts, source versions, citations, registration, environment contract, API reader, and docs

Verification

  • pnpm --filter @acme/scraper test (31 tests)
  • pnpm --filter @acme/scraper build
  • pnpm --filter @acme/api test (19 tests)
  • pnpm --filter @acme/api lint
  • pnpm --filter @acme/api build
  • pnpm --filter @acme/db typecheck
  • focused Prettier check
  • git diff --check origin/codex/nc-tx-scrapers-consolidated...HEAD
  • live read-only parser smoke check against the four official Missouri SOS pages: 510 certified candidates, 23 withdrawals/removals, seven certified measures, and the expected unavailable-results state; no parsed address patterns

No database schema or migration files are changed.

Closes #186

@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
billion-nextjs Ready Ready Preview, Comment Jul 22, 2026 4:06pm

@ThatXliner

Copy link
Copy Markdown
Collaborator Author

Source inventory and app-presentation follow-up

Official sources added

This PR adds current-2026 election ingestion from the Missouri Secretary of State:

  • dynamically discovered primary/general calendar
  • cumulative certified candidates in ballot order
  • certified withdrawals/removals
  • certified measures with official/fair language
  • fiscal statements and full-text/certificate links
  • ShowMO Votes discovery with an explicit unavailable state until active results appear

Candidate addresses/contact fields and voter-level data are deliberately excluded. Records retain official URLs, hashes, versions, timestamps, and citations. No schema change is added.

App status and proposed presentation

The Missouri reader exists, but Expo does not call it and currently blocks all non-California ballots.

  • Use Google Civic/address resolution for the election and ballot order, then merge Missouri SOS data only on a safe state/date/cycle/contest match.
  • Show candidates and measures in the existing ballot tabs while preserving official order.
  • Label “Official Missouri SOS,” source URL, fetched time, and certification.
  • Keep official/fair language and fiscal statements as separately labeled source text.
  • Clearly mark withdrawals and never expose discarded contact/address fields.
  • Until ShowMO Votes publishes results, show “Official results are not available yet”; afterward label unofficial/certified and reject stale-cycle results.
  • Fall back to Civic data when an official match is uncertain rather than guessing.

CLI registration does not provide continuous collection; deployment still needs a scheduled job.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant