Turnout measurement
VoteCheck matches a list of people — a membership roll, a staff roster, a congregation, a voter universe — against the public record of who has participated in an election, and reports it back every morning. You get the turnout information you need in the form you can actually use — sanitized and anonymized if you are an employer tracking your own people, or a GOTV target list if you are running a campaign.
Usually you give VoteCheck a list of people. VoteCheck matches it against the public record of who has participated in a given election and reports back: how many of them have voted, how that is moving day to day, how it compares to the county and the region around you, who they are demographically, and where the nearest polling places are.
You do not have to bring a list. If you are working a district rather than a roster, we can build the universe from the voter file itself — by district, precinct, city or turf — and track its turnout the same way, day by day. That is the same public record every campaign already works from; you are simply not the one assembling it.
It is a turnout measurement and civic engagement tool. It is built so that a school district, a hospital system, a union local, a membership association or a campaign can run a real get‑out‑the‑vote program across everyone on its list and actually know whether it worked. What comes back depends on which of the two doors you came in — that is the next section.
There are two ways in, and they are not interchangeable: you are either a campaign working a voter universe, or an employer measuring your own people. Different upload, different storage, different product.
The employer door has two settings. Every employer account starts anonymized. An employer that needs to know which of its people to follow up with can sign an affidavit and switch — but that is a deliberate second step, not a different product and not a different door.
You are working a voter universe, not a roster. You get the voter file back.
You want your people to vote and you want to know whether it is working. Every employer account starts here, anonymized.
Sign an affidavit and the same account reports named individuals and the full public voter record we hold for each of them.
Not a toggle. It needs a sworn affidavit, named administrators, and a disclosure your people have consented to. It is a decision you take with your counsel once the legal, ethical and business case is settled — and we ask you to take it deliberately.
One thing sits between the two doors: the voter record itself — public county data, improved over time by what customers on both sides contribute to it.
VUIDs, the registration numbers you already hold. Or no
list at all: name a district, precinct or turf and we build the universe from
the voter file.last_name, first_name, birth_year,
zip, and an optional opaque dept_code. Nothing else
is accepted.| Door 01 · Campaign | Door 02 · Employer | ||
|---|---|---|---|
| Anonymized — default | With affidavit | ||
| What you upload | Registration numbers — or nothing, and we build the universe from the voter file | Name, birth year, ZIP — plus anything more you choose to share | |
| Where your roster is stored | Campaign namespace | Organization namespace | |
| Visible through the other door | Never | Never | |
| Matched against | The same voter record — shared | ||
| Voter details you supply | Merged into that record, tagged with your organization as the source | ||
| Your department coding | — | Yours alone — never joins the voter record | |
| Individuals named to you | Yes — the voter file | Never | Yes, with status |
| Address, precinct, districts | Yes — public record | Never leaves | Yes, for people on your roster |
| Party and participation history | Yes | Never leaves | Yes, for people on your roster |
| Contact details | Yes | Never leaves | Where we hold them, opt-outs honored |
| Filter to who has not voted | Yes — it is your voter file | No such capability exists | Yes, and the filter used is logged |
| Smallest reportable unit | — | 25 people | 25 people, for aggregates |
| Requires a sworn affidavit | No | No | Yes |
| Access logged and shown to your people | — | — | Every view and export |
| How it reaches you | Dashboard and CSV export | Dashboard and morning email | Dashboard, morning email, and a full follow-up export |
Why the default is anonymized. You hold the key that turns a row token back into a person, so a report split by whether someone voted is a targeting list with one step removed — which is why that split does not exist at all on the default setting, rather than merely being switched off. Lifting it is precisely what the affidavit is for: it moves that decision, and the responsibility for it, onto a named signer.
“Can you just send me the list of who voted and who hasn't?”
That depends entirely on which door you came in
If you are a candidate, party or PAC: yes, and it is not a special request — it is the product. You uploaded registration numbers, and whether someone participated is public record. You get it back in full.
If you are an employer on the default setting: no. There is no such report to run. The dashboard reports units, never individuals, and no export accepts a filter on whether someone voted — that capability is absent from the product rather than switched off. The only key that turns a VoteCheck token back into a person is the one handed to you at upload, and our copy of it is destroyed after seven days.
If you are an employer who has signed the affidavit: yes. That is what the affidavit is for, and it is why it is a sworn document and not a checkbox — a named person takes responsibility for holding that list. Every view and every export is written to a log your people can read, and the log records which filter was used, not merely that something was downloaded.
It is worth being precise about why, because the answer is not that the information is secret. In Texas, whether a registered voter participated in an election is public record — the registrar reports it to the Secretary of State after every election. How they voted is not, and never leaves the ballot box.
So the difference is not confidentiality — it is leverage. A campaign looking at a voter file is looking at strangers it can only ask for a vote. An organization looking at its own roster, split into those who voted and those who did not, is holding a list of identified individuals over whom it already has power, describing an act of political participation.
Where that organization is an employer, Texas law treats acting on it with unusual severity: subjecting an employee to a loss of wages or another benefit of employment in retaliation for how they voted — or for declining to say — is a third‑degree felony. The same asymmetry, in milder form, holds for a union and its members, a district and its staff, or a congregation and its people.
Nobody buying this service intends that. But a capability that exists can be requested, exported, forwarded, logged, discovered and subpoenaed. The list would sit in your systems for years, and every future dispute with every person on it would have to be litigated against its existence. We remove the exposure by not building the capability — which is also why we can give you a great deal more than a service that kept it would dare to.
Four fields identify a person well enough to match them against the voter file. You may send more, and if it tells us something about that person as a voter we will keep it and improve their record with it. What we have no use for is the shape of your organization — who reports to whom, who sits next to whom, what anyone is paid.
The first four are the match key; ZIP is deliberately excluded from the identity token, so someone who moves house is still recognized as the same person. Anything beyond the key is merged into that voter’s record and tagged with your organization as its source.
Your department coding exists so your report can group people into units. It is opaque to us, it never joins the voter record, and no other customer can see it. Send codes rather than names and we never learn what your departments are called.
Refused by content, not just by column heading. A file whose “notes” column turns out to hold phone numbers is rejected the same way as one that labels them honestly.
Contact details that arrive with a roster are kept on the voter’s record, tagged with your organization as their source, and used to make that record more complete. They are never used by us to reach your people, and the voter file cannot be searched by the organization that contributed to it — so no one can ask it who belongs to you. All outreach is yours, sent through your own channels, to everyone on your list.
This sequence runs once per upload, in order. Steps three and four are the ones that make everything downstream safe.
VC4F91A0C3E8B2. The same person re‑uploaded
next month produces the same token, so nobody is ever counted twice.Removing the individual list does not thin the product out. It is what lets us be generous with everything else.
Example · real figures from a live roster
Example · real figures from a live roster, entity name shown
Example · the same report at 414pt
Because its complement is trivial. Hand someone a list of who voted and they can subtract it from the roster they already own to get the people who did not. A “non‑voter” list and a “voter” list are the same artefact viewed from either end, and either one turns an all‑staff reminder into targeted contact based on an individual's participation. So there is one list, it contains everyone, and it carries no status to filter on.
Aggregates can leak. A department of three, broken out by turnout, names people as surely as a list does. Every figure VoteCheck publishes passes a floor first.
The same discipline governs the wording of your daily report. When your group's turnout sits below the county baseline, the percentage is withheld from the copy we hand you and the message leads with a count or the deadline instead. Publishing a low participation rate to a group tells them that not voting is normal here, and that is a measurable depressant. The figure is still on your dashboard — it is your number. It is simply not the sentence we suggest you send.
The design above was drawn against these provisions. This is a description of engineering decisions and the constraints they answer — it is not legal advice, and it does not substitute for your own counsel's reading.
| Provision | What it establishes | How VoteCheck is built around it |
|---|---|---|
| §18.069 | The registrar reports each voter's participation in an election to the Secretary of State. Participation is public; ballot choices are not. | Our matching uses only participation. No product surface implies, infers or reports how anyone voted. |
| §18.066 §18.067 |
The statewide voter registration list is available on affidavit that it will not be used to advertise or promote commercial products or services. Misuse is a Class A misdemeanour. | Outputs are civic turnout measurement in aggregate. The service sells no product to any voter, and the data drives no advertising. Registered use and affidavit are held at the Politiquera level. |
| §18.009 | Restricts use of information taken from a registration list. | The registration list is never redistributed. What leaves the system is counts and bands, plus tokens that only you can resolve. |
| §276.001 | Retaliation against a voter — including an employer subjecting an employee to loss or reduction of wages or another benefit of employment over how they voted, or over refusing to say. A third‑degree felony. | The single most important provision here. The individual‑level list that would make this offence possible to commit is never created, never exportable, and cannot be reconstructed from our store. |
| §276.004 | Unlawfully prohibiting an employee from voting. | The polling‑place, traffic and weather tooling exists to help scheduling enable voting — ranked from your location, for anyone deciding when to release people to go and vote. |
There is a straightforward way to describe the boundary to your own board: VoteCheck reads public participation data and returns statistics. It does not return records about identified individuals, because it does not retain the identities required to make one.
Five steps. Nothing runs and nothing is billed until you have seen the price and said yes.
Priced per cycle — from load, about two weeks before early voting opens, through the day after Election Day. The two doors are priced on different things, because they are buying different things: a campaign pays for the size of the universe it chooses, a private group pays for the size of the roster it already has.
You name the race — a city council seat, a school district, a state house or congressional district, a whole county — and the registered voters in that jurisdiction set the price. One rate, whatever the size: five cents a voter, per election cycle.
| Registered voters in your race | Per cycle |
|---|---|
| Each registered voter in the jurisdiction | $0.05 |
| Minimum Any race smaller than 30,000
registered voters lands here. | $1,500 / cycle |
The count is the one the county certifies for that entity at each election, so it is a number you can check. Every cycle includes the universe build, the daily roster match through early voting, strike lists cut each morning, and the full voter detail for that universe. There is no separate onboarding fee for a campaign.
A county party works the March primary, the May runoff, the May uniform date and November. Paid by the cycle that is four separate universes and four separate invoices. The annual plan replaces both.
You name a footprint — the largest area you will work in the year, usually a county or a congressional district. For 2.5× that footprint's cycle price you get every race inside it, all year: primaries, runoffs, the May uniform date, November, and any special called in between. Sub‑universes cost nothing extra, so a county party can pull a precinct, a city, a school district or a state house district out of its footprint as often as it likes.
| Footprint | Per cycle | Annual |
|---|---|---|
| A small city — Elsa (6,469) | $1,500 | $3,750 |
| A city — McAllen (94,684) | $4,734 | $11,836 |
| A state house district — HD‑41 (125,197) | $6,260 | $15,650 |
| A congressional district — CD‑15 (366,449) | $18,322 | $45,806 |
| A county — Hidalgo (515,820) | $25,791 | $64,478 |
It pays for itself on the third race. Two races in a year and paying by the cycle is cheaper — we will say so rather than sell you the subscription. Runoffs are already included, not billed at half.
Counts are the registered voters actually in our file for each area today.
Estimated. The figure that counts is the one in the proposal we send once the universe is defined — priced off the file itself, and nothing is billed until you accept it.
The band is set by how many people are on your roster.
| People on roster | Per cycle |
|---|---|
| Up to 250 | $1,500 |
| 251 - 1,000 | $3,500 |
| 1,001 - 2,500 | $6,500 |
| 2,501 - 5,000 | $10,000 |
| 5,000+ | $1.75 / person |
Every cycle includes the roster upload and match, the daily morning report through early voting and Election Day, ready-to-send copy for everyone on your list, turnout broken down by unit, the final wrap-up, and email and phone support while the cycle runs.
Everyone you would upload, not only those who vote.
Estimated. The figure that counts is the one in the proposal we email you once your roster is uploaded — that one is priced off the file itself, and nothing is billed until you accept it.
| Polling-place lookup The early-voting and Election Day sites nearest you, with hours, road conditions through the voting day and the forecast at each one. | $500 / cycle |
| Campus & department breakdowns Turnout reported separately per campus or department, alongside the organization-wide figure. Any unit with fewer than 25 identified people is counted but not broken out. | $750 / cycle |
Runoffs for existing customers are billed at half the cycle price. Per-cycle fees are invoiced at roster load; annual plans up front or by semester. Purchase orders accepted.
Track an election Sign in with Google to get started. New campaigns are reviewed before they go live.