Where This Data Comes From

VoteHub doesn't maintain its own database of polling places, ballots, or registration rules. Every lookup calls a live government or open-data source at the moment you search, or reads from a static dataset that's refreshed periodically. This page lists exactly which source backs each piece of information, and — for the sources tied to a specific election — roughly when real data typically becomes available.

Read this first: why your ballot may look empty

This confused us for a long time, so it's worth stating plainly. Almost all official US election data flows through one free pipeline: county and state election officials publish to the Voting Information Project (VIP), which feeds Google's Civic Information API, which feeds this app and most other voting tools you've used. Participation is voluntary and per-election. Four consequences surprised us:

  1. An empty ballot usually isn't late — it's not coming. VIP publishes a calendar of exactly which data types each election will include. For most elections, ballot information (the actual contests and candidates) is simply not part of the feed. Of the 45 jurisdictions with a November 3, 2026 general election on VIP's calendar, only 14 plan to publish ballot information at all. The other 31 will provide voting locations only. The live table at the bottom of this page distinguishes “pending” from “not provided” for exactly this reason.
  2. Voting locations arrive before ballots. Where both are planned, locations reliably publish first, often 1–3 weeks out. VIP's own guidance is that data appears “around 2–4 weeks before an election.” Ballot information, when it comes at all, tends to land last.
  3. Six states publish nothing through VIP this cycle. Maine, Mississippi, Missouri, New Hampshire, South Dakota, and Tennessee do not appear anywhere on VIP's calendar — including for the November general. Most voting tools stop there and can only offer registration information for these states. We don't — see “Filling the gaps” below.
  4. Between elections, there is nothing to show. Google drops an election from the API once it's over — querying a past election returns literally “Election is over”. So a state whose primary just finished looks identical to a state that never participated, until its next election is loaded in.

None of this is a defect in this app, and none of it is fixable by querying harder — it's the shape of the free, official data supply that nearly every voting tool is built on. Wherever the official feed is silent, this app tells you so rather than guessing, and points you to your state's own election site.

Always available (not tied to an election date)

These sources answer “where is this address” and “what are the rules,” which don't change on an election calendar. They're available every time you use the app.

DataSourceNotes
Address/zip → coordinates + congressional & state-legislative districtsU.S. Census Bureau GeocoderFree, no API key. Doesn't match a bare 5-digit zip on its own — falls back to Nominatim for that case.
Bare zip → city/state/coordinates, and GPS → addressOpenStreetMap NominatimFree. A handful of zip codes (e.g. PO-box-only zips) aren't in OSM's postal-code data and won't resolve.
Voter registration rules, deadlines, and linksvote.gov open-source dataIngested once per release for all 50 states + DC, not queried live. Refreshed periodically, not on every request.
Map tilesOpenStreetMapFree raster tiles.

Tied to a specific election — availability varies

Polling places and ballots come from Google's Civic Information API, which in turn sources most of its data from election officials via the Voting Information Project. Officials publish this data on their own schedule, so it fills in gradually as an election approaches — it is not available year-round.

DataSourceWhen it's typically liveShown until then
List of known upcoming electionsGoogle Civic Information API — electionQueryAs soon as Google/VIP loads the election into their system — varies by state.A static fallback entry for the next general election.
Polling places, early-voting sites, ballot drop boxesGoogle Civic Information API — voterInfoQueryGenerally the first thing to populate — in testing ahead of Arizona's July 21, 2026 primary, real locations were already live at least 13 days out. Requires a full street address; city/zip-only lookups won't match.Nothing. We only ever plot real locations — the map shows just your own position until official ones are published.
Ballot contests & candidatesGoogle Civic Information API — voterInfoQueryPublishes later than locations — in the same test, contest data still wasn't published 13 days before the election. Historically fills in during the final weeks before election day, and can be inconsistent between requests while officials are actively updating it.A real ballot sourced directly from the state, where we have one (see below) — otherwise a labeled sample ballot.
Ballot measure full text & pro/con statementsGoogle Civic Information API — voterInfoQuery referendum fieldsSame timing as contests, above.A labeled sample measure.

Filling the gaps: data sourced directly from the states

Six states don't participate in VIP at all — Google Civic has nothing for them, ever, for any address, including the November general. A further 31 publish voting locations through VIP but never ballot data — Google can tell those voters where to vote, but not what they're voting on. Rather than leave either group permanently on sample data, we check whether the state itself publishes an official candidate list in a usable format, and pull it directly when it does.

Sourced directly right now: 29 jurisdictions, 3,667 contests, 6,389 candidates. That's Alabama, Arkansas, Delaware, District of Columbia, Idaho, Illinois, Indiana, Iowa, Kentucky, Louisiana, Maine, Maryland, Minnesota, Mississippi, Montana, Nebraska, New Jersey, New Mexico, New York, North Carolina, North Dakota, Ohio, Oregon, South Carolina, South Dakota, Tennessee, Texas, Utah, and West Virginia. Every one is read from that jurisdiction's own official candidate list — whatever form the election office publishes it in, whether that's a spreadsheet, a CSV or JSON export, a search grid, or a certified PDF — and matched to your address using the same districts the Census geocoder resolves for every lookup.

Coverage is limited to races we can attribute to an address with confidence: statewide offices, U.S. House, and state legislative seats, plus a handful of local seats where the boundary happens to be one the geocoder returns — Washington, D.C.'s ward council seats, for instance. Texas additionally includes countywide local offices (County Judge, County Clerk, County Treasurer, District Clerk, County Attorney, Sheriff, Tax Assessor-Collector, and County Surveyor) matched by county FIPS code. Precinct-level offices, judicial districts, school boards and municipal races are deliberately left out, because their boundaries aren't ones we can resolve from an address and showing you the wrong race is worse than showing none. Each state's omissions are recorded alongside its data.

Before any jurisdiction goes live, its district labels are checked character-for-character against real geocoder responses, and the parsed names are cross-checked against officeholders known independently — a formatting mismatch as small as “District 01” versus “District 1” would silently match nothing. Voting locations follow the same real-data-only rule as everywhere else: a state we source directly may still show no map pins if it doesn't publish locations. The live table below shows exactly what's published right now, from either source.

Google Civic is still checked first, for every address, every time — this is additive, not a replacement. Directly-sourced state data only gets used when Google Civic has zero ballot contests for that address. If that ever changes for a state we also ingest directly, Google's data wins automatically.

How the app decides what to show you

Every search tries Google Civic first. Based on what comes back — and, where Google has nothing, whether we have a direct state source — the page runs in one of four modes, and always tells you which one you're in:

Nothing sample-generated is ever presented as real, and a banner on the page always names which mode you're in. See the Terms of Service for the full disclaimer on AI-generated content and data accuracy.

Live right now: what's actually published

The tables above describe the general pattern. This one is not a description — it's checked live, right now, combining a real query against Google's Civic Information API with whatever we source directly from the states.

All 50 states + DC, checked live just now — Google Civic plus whatever we source directly from the states.

Checking live data availability for all 51…