Civic infrastructure
with provenance.
turnout.app is a public, accountless ballot lookup — every signal cited back to its source of record. Built so any voter, journalist, or organizer can verify the work without trust.
Every fact carries its tier.
Trust isn’t binary. Some sources are state authorities of record; others are research datasets or our own plain-language summaries. We label which is which on every fact.
- 1Official source of recordState and federal authorities. The version that controls the actual ballot, district, or filing.TIGER/Line 2024 · Census ACS · FEC OpenFEC · FVAP eVAG · Census Geocoder
- 2Official-republishedVendors and aggregators that republish state SOS data on contract. Trustworthy, but one step removed.Google Civic · Voting Information Project · Clarity Elections · Florida ENR
- 3CuratedTrusted civic-data publishers and reference projects. Edited, but not the source of record.Congress.gov v3 · OpenStates v3 · NCSL voter-ID · NGA governors · @unitedstates/congress-legislators
- 4Historical / researchAcademic and archival datasets. Useful for trend analysis; not yet ingested in production.OpenElections · MIT Election Lab · EAC EAVS · VEST
- 5turnout.app interpretationPlain-language summaries and light enrichment authored by us. Always labeled. Never a substitute for verbatim ballot text.ballot-measure summaries · district context · explainer copy
Civic data: maximally open.
Voter data: maximally closed.
- · No accounts. No tracking. No PII.
- · Public reference data only (divisions, rules, candidates).
- · Citable, AI-friendly, free MCP for any client.
- · Accounts required. End-to-end encrypted.
- · Server stores ciphertext only; orgs hold keys.
- · Self-host via docker-compose. AGPL-3.0.
The boundary is load-bearing. The public side never reads voter PII; the private side never writes PII to the public side. The two surfaces share OCD-IDs as keys and nothing else.
Boring infrastructure, on purpose.
We don’t know who you are, and we don’t want to. The public Postgres has zero rows of voter PII; the front-end has no analytics. Anything user-identifying on this side of the system is a bug.
- ✓No accounts. There is no login on this side of the product.
- ✓No tracking. No third-party analytics, no advertising pixels.
- ✓No cookies beyond what Cloudflare Pages sets to serve the page.
- ✓No PII. The public database has zero rows of voter data.
- ✓No lock-in. Every result has a stable, citable share URL.
The canvasser side has the opposite posture by design: accounts, end-to-end encryption, self-custody keys. The two sides never share PII — not even by accident.
Found a bug, a stale URL, a wrong rule?
The weekly verifier sweep currently shows 453/505 sources verified green. The remainder — SPA shells, manual entries, the occasional 4xx — is exactly the kind of work that benefits from many eyes. File an issue when you spot something out of date or wrong.
Open an issue on GitHub →