Synthetic Polling · A Civly Product

We predicted 234 counties without making a single phone call.

Traditional polls are slow, expensive, and harder to field every year. So we built a different instrument: simulate every real voter from the voter file with AI, then correct the result against certified election outcomes — for candidate races, starting from each county's own last certified result, the way any serious forecast does. Across three states it called the 2024 presidential margin in all 234 counties to an average of 1.7 points, and six Florida ballot measures to between 2 and 5. Then we took it past prediction: the same engine now tests which messages move your voters — and turns every poll into a ranked list of the specific voters worth contacting.

234
counties predicted, out of sample
~1.7 pts
average error, presidential margin
~3.4 pts
average error, ballot measures
0
interviews fielded

Why polling keeps missing

Modern survey research rests on a chain of assumptions that each passing decade has made harder to satisfy. Three gaps motivate a different kind of instrument.

📞

Fewer people answer

Telephone response rates fell from about 36% in 1997 to roughly 6% by 2018, and keep sliding. When fewer than one in ten people respond, the estimate depends entirely on whether the people who answer resemble the people who don't, and they don't.

36% → 6% response rate, 1997–2018 Source: Pew Research Center
💰

Most of the ballot goes dark

A single quality poll costs thousands of dollars and several days. Presidential and marquee races are polled constantly, while county offices, judgeships, school boards, ballot measures, and primaries number in the thousands and are almost never polled at all.

Granular + broad is priced out of reach Source: Roper Center for Public Opinion Research
🎤

Saying isn't doing

Even a perfect survey measures what people say, which diverges from what they do. In corruption research a roughly 30-point penalty in surveys falls to near zero in real-world behavior. Stated answers carry a built-in validity ceiling.

~30 pts in surveys → ~0 in the field Source: Incerti (2020), American Political Science Review

How it works

The unit of simulation is a single real voter. We build a short profile from public records, ask an AI to answer the question in that voter's voice, add up thousands of them, then apply a standard correction so the numbers line up with real results.

1

Voter file

Start with real registered voters: registration, vote history, and donor records where they exist.

2

Build a persona

A short profile for each voter from public data: age, party, and other registration signals.

3

Simulate

Ask an AI to answer the question in that voter's voice, a few times each to reflect uncertainty.

4

Aggregate

Add the answers up across the whole population into one synthetic poll: a margin, or a yes share.

5

Calibrate

Apply our standard correction — for candidate races, anchored to the county's last certified result — for the final number, with an honest range.

Throughout, the load-bearing ground truth is certified election results on the actual population we deploy on.

Where the correction starts: the county's own last result

Every serious election forecast starts from how a place actually voted last time — public information, on the shelf before any election, for every county in America. Our candidate-race correction does the same: it takes each county's certified margin from the previous presidential election as the starting point, and the AI engine measures the shift from there — who has moved, in which direction, and by how much. Nothing private, nothing that wouldn't be public before election day. And the test stays closed-book: every county below is predicted with that county held out of the fit.

Margin
The lead in a place, for example the Republican share minus the Democratic share.
Calibrated
Our final predicted number for a place. It's the figure we compare against the actual certified result.
Anchored
For candidate races, the correction starts from the county's last certified presidential result — public, pre-election information — and the engine measures the shift from there.
Leave-one-county-out
Every county is predicted by a correction that never saw it, so the test is closed-book.

We predicted this. Here's how close we got.

Each county is shaded by our prediction. Pick a question and a state, then hover or tap any county to compare it against the actual certified result and see the error.

The question, asked of every simulated voter

“In the 2024 election for President, did you vote for the Democratic candidate (Kamala Harris), the Republican candidate (Donald Trump), or another candidate?”

Checked against official certified county results from the N.C. State Board of Elections, the Florida Division of Elections, and the Pennsylvania Department of State.

Predicted margin

Blue = Democratic, red = Republican. One fixed scale across all three states.

Margin (Republican % minus Democratic %)
D +70D +35EvenR +35R +70

Counties: NC 100, FL 67, PA 67 (234 total). 1,000 voters sampled per county. Every county predicted out of sample (leave-one-county-out), anchored to its own previous certified presidential result.

What the numbers mean

Every figure here is measured out of sample, on counties held out of the fit. Lower is better: the average distance from the certified result, in points.

~1.7

Vote choice, 234 counties — anchored

Each county starts from its own last certified presidential result — public, pre-election information — and the engine measures the shift from there. Across all 234 counties, out of sample, the average miss on the 2024 presidential margin is 1.7 points; the statewide margin lands within 0.4 points in North Carolina, 0.7 in Florida, and 0.5 in Pennsylvania. These are 2024 presidential backtest figures, anchored; the full validation study is available on request.

Average county error1.7 pts
Worst county in the study (Miami-Dade, Fla.)10.2 pts
Statewide margin, all three stateswithin 0.4–0.7 pts
Pennsylvania
1.3
North Carolina
1.7
Florida
2.2
~3.4

Policy, six Florida ballot measures

On the six 2024 Florida ballot measures, our predicted yes share lands about 2 to 5 points from the certified result. Tap a measure to read it on Ballotpedia.

Certified results: Florida Division of Elections. Measure text via Ballotpedia.

The honest range holds

The plus or minus we report comes from the method's own track record on held-out data, not a textbook sampling margin. Tested out of sample, the 95% range contained the truth about 96% of the time, narrower where the method is proven and wider where it's weaker.

Where it's strong, where it strains

The method is strongest at relative comparisons (which county leans more, how places rank) and at absolute levels where local ground truth exists. North Carolina is the hard case — the widest spread in the study: deep-blue urban, the rural Black Belt, deep-red rural — and the anchor carries it: the statewide margin lands within half a point. The clearest follow-up is cross-race validation — calling a different office from the same anchor.

Then we took it to Kansas — and made a call on 2026

A new state needs its own correction, fit only on Kansas results. We checked it on three settled 2022 amendments — now selectable on the map above — then used the validated pipeline to forecast a 2026 amendment that hasn't been voted on yet.

Aug 2022 · certified 59% No (failed). We reproduced the famous result.
±4.8average error per county, out of sample
Nov 2022 · certified 62% Yes (passed).
±3.9average error per county, out of sample
Nov 2022 · certified 50% No (failed by a point).
±3.5average error per county, out of sample

Out of the box the engine leaned Republican here, over-stating the Yes / conservative side by 13 to 23 points. The Kansas correction — fit on these real, certified results — pulls it back to within about 4 to 5 points per county.

● Forward forecast · August 2026 · not yet voted

Kansas Supreme Court Selection Amendment

On the August 4, 2026 primary ballot: a vote Yes gives Kansans the right to elect Supreme Court justices in partisan elections and abolishes the nominating commission (“whose membership consists of a majority of lawyers”); a vote No keeps today's system, in which that commission sends the governor a list of nominees and justices later face retention elections.

~57% YesFavored to pass · honest band ±10 points (about 47% to 67%)

How we know the band isn't made up: we ran the same dialed model blind on four older Kansas measures whose certified results we already know but the correction never trained on.

Kansas measure (held out)We predictedCertifiedOff by
Census reapportionment (2019)51.4%59.7%8.3
Watercraft tax classification (2012)60.4%53.5%6.9
Voter qualification / mental illness (2010)45.0%62.4%17.4
Charitable raffles (2014)68.9%74.6%5.7
Average error — the honest band9.6

Three of the four landed within 6 to 8 points. The miss is the oddly framed 2010 voting-rights measure (off by 17) — we left it in rather than hide it, and it's what widens the band. The correction under-predicted Yes on three of four, so a true Yes near 57% is, if anything, the conservative read.

This is an AI simulation of Kansas voters answering the measure as written, corrected against real certified Kansas results — not a field poll. Because the band runs from about 47% to 67%, a narrow failure is possible, but both the central estimate and the model's tendency to under-state Yes point to passage. A brand-new topic like judicial selection can't reach the tighter ±3 to 5 points we get once a measure has its own voting history; only real field polling narrows it further. Sources: certified results from the Kansas Secretary of State; measure details via Ballotpedia.

We also tested scandals and traits

Beyond vote choice and ballot measures, we tested character questions: “would you vote for a candidate who did X?” No certified result can grade these — people famously claim a scandal would change their vote, then don't — so we validate and sell the order (which attack hurts most), never the point swing.

It ranks scandals the way real voters do

Published experiments on real voters rank four scandals from most to least damaging: corruption, sexual harassment, financial impropriety, an affair. The simulator was never shown those studies — and produced the identical order.

Simulator
1 Corruption
2 Sexual harassment
3 Financial impropriety
4 Extramarital affair
Real experiments
1 Corruption
2 Sexual harassment
3 Financial impropriety
4 Extramarital affair

Four for four, most to least damaging. Spearman rank correlation +1.00, where 1.00 means the exact same order. Benchmark: Doherty, Dowling & Miller (2014).

Checked against Gallup’s 12 candidate traits

Gallup asked Americans whether they’d vote for a qualified candidate who is over 80, an atheist, a socialist — 12 traits in all — and published the share saying yes for each. Twelve real numbers to hit. Our simulated voters answered the same 12 questions on a 0–10 scale: the trait order came out nearly perfect, and the average miss was 8.3 points.

Average miss vs Gallup’s numbers8.3 pts
Trait order match (1.00 = perfect)0.95

Gallup’s 12 candidate traits, 500 simulated national voters. We ask every question 0–10 rather than yes/no — a flat yes/no forces hesitant voters to a hard no and roughly doubles the miss.

Why we use the ranking, not the raw number

Surveys say a corruption scandal costs a candidate about 41 points; in real elections it moves roughly zero. The simulator lives in the survey world, so its magnitudes run about 2 to 3 times too high. That makes it reliable for ranking which attacks and traits land hardest, and an upper bound — not a forecast — on the raw points.

Then we measured what moves them

A prediction tells you where the race stands. Campaigns get paid to change it. So we re-poll the same simulated electorate once per message and measure every voter’s movement against their own baseline — here on the live 2026 Kansas judicial amendment from the forecast above: 2,000 real registered Johnson County voters, five messages, and a no-message control.

The strongest message tested — “campaign cash in the courtroom,” an argument for No

“Electing judges in partisan races means campaign donors and party bosses in the courtroom. Judges would owe their seats to the special interests that fund their campaigns. Kansas courts should answer to the law, not to campaign cash.”

The quote above is one of five messages we tested, all written to sound like real campaign copy. Two argue for Yes, two argue for No, and the fifth makes no argument at all — it simply lists who has endorsed each side. Each of the 2,000 voters answered the same ballot question after reading each message, and once more with nothing shown — that last run is the “no message” control row in the table below.

How to read this table
One voter, one cell
Each voter answers the ballot question cold — 0–10, how likely are you to vote Yes? — then again after one message. Movement is the new answer against that same voter’s own baseline, in points. A cell is the group’s average.
The signs
Positive = moved toward Yes, negative = toward No. The top-left −12.6: after “campaign cash in the courtroom,” the average voter’s Yes-likelihood fell about 12.6 points — a voter at 57% likely-Yes lands near 44%.
Columns overlap
Every voter counts in “All 2,000,” one lean column, and one party column. Read across a row for who a message moves; read down a column for what moves a group.
The control row is zero
Re-asking with no message “moved” voters +0.2 — pure re-ask noise. Grey cells sit at that floor and mean didn’t move; the strongest cells run 4–19× above it.
Near-zero can be a ceiling
Republicans show +0.2 under both Yes arguments because they already back the measure — no room left to move up. Democrats’ −4.2 under the attacks is the same floor logic. A flat cell on your own base means save the money.
Buy the order, not the decimals
Which message wins and who moves most is the validated signal. The sizes are survey-regime upper bounds — expect real-world movement of roughly 0.3× to 3× the printed number.
Message shownAll 2,000Toss‑ups (292)Lean Yes (974)Lean No (734)Rep. (818)Dem. (621)Unaff. (531)
“Campaign cash in the courtroom” · for No−12.6−25.1−13.3−6.6−10.2−4.2−25.0
“60 years of merit selection” · for No−11.8−23.4−12.3−6.6−9.8−4.2−23.8
Endorsement lineup · names only, no argument−4.3−12.3−1.3−5.1+0.2−4.2−10.9
“Lawyers picking judges” · for Yes+3.4+5.7+0.3+6.5+0.2+5.8+5.5
“Your right to elect judges” · for Yes+2.2+6.5+0.3+3.1+0.2+1.8+6.0
No message · re-ask control+0.2+0.10.0+0.50.0+0.5+0.1

Purple = toward No, green = toward Yes, grey = within re-ask noise. Toss-up and lean groups use each voter’s calibrated baseline; Libertarian and other small registrations (30 voters) are in the totals but not broken out. Full validation and caveats: in the complete study, available on request.

Opposition out-punched support, four to one

The two No arguments moved the electorate 12.6 and 11.8 points; the two Yes arguments managed 3.4 and 2.2. That asymmetry — attacks beat positives on ballot measures — is exactly what published experiments find, and the engine reproduced it blind in replication before we ever saw it live.

Undecided voters moved most

Toss-ups swung 25.1 points under the strongest attack — nearly twice the movement of Yes-leaners and four times that of No-leaners — and they moved first or a close second on all five messages. The persuasion opportunity concentrates exactly where the race is decided.

A bare endorsement list moved the unaffiliated

The fifth “message” made no argument at all — it just named each side’s backers. Republicans heard that their party leads the Yes side and didn’t move (+0.2). Unaffiliated voters heard the same list and broke 10.9 points toward No. Who stands behind a measure is a message.

The control says it’s signal, not noise

Re-asking with no message moved voters by about 0.07 on the 0–10 scale — under a point. Every real message produced 4 to 19 times that. When a segment doesn’t move in this table, that’s a finding too: it means don’t spend there.

Every poll doubles as a voter list

The unit of simulation is an individual registered voter — so the same run that produces the topline also scores every voter in it: how close they sit to the fence, how unstable their answers are across repeated asks, whether they’re cross-pressured against their registration, and which message moved them most.

292

Toss-up voters, identified from the voter file

Among Johnson County’s 2,000 scored voters, 292 sat genuinely on the fence. Every one of them moved toward No by double digits (upper bound) under their best message, and 152 were also movable toward Yes; across the full file, 265 voters could be pulled in both directions — the conflicted middle every campaign is guessing at. Each exported row carries a best-message tag: which argument moved that voter most.

Built to act on — and books that balance

Lists export ranked, by county and precinct, ready for calls, mail, and canvass. In this run a mailing address was on file for 100% of voters and a phone for 63% (the Kansas file carries no emails). And the per-voter scores must re-aggregate exactly to the published topline — 52.1% calibrated Yes here — or the run fails loudly. The list is never a different model from the poll.

Five rows from the real export — identity withheld

Started at (0–10)RegistrationStrongest pull toward NoStrongest pull toward YesContact on file
5.0 · toss-upLibertarian, 30s−37 pts · campaign cash+3 · lawyers picking judgesaddress
4.7 · toss-upUnaffiliated, 30s−23 pts · campaign cash+7 · right to elect judgesaddress
7.6 · leans YesRepublican, 70s−10 pts · campaign cash0 · none landedaddress · phone
2.2 · leans NoDemocrat, 50s−7 pts · campaign cash+3 · right to elect judgesaddress
1.6 · leans NoDemocrat, 30s0 · none landed+10 pts · right to elect judgesaddress

Real rows from the Johnson County export with identity withheld — the delivered file carries name, mailing address, phone where on file, precinct, and district on every row, none of which belongs on a public web page. Per-voter movement is an upper bound; the ranking is the product.

Privacy, compliance, and the secret ballot

Names and identities are never sent to the AI. Each stand-in is built from voter-file traits — age, party, registration signals — and identity is rejoined only inside our systems, at export time. Exports leave our hands with their permitted-use terms attached: voter-file use is restricted by state law (in Kansas, political use is permitted and commercial use is prohibited), and the limitations header travels with the file.

And because the ballot is secret, no individual ground truth exists — for anyone. Per-voter scores are validated at the aggregate level and rank-ordered at the individual level: a smarter ordering of the call sheet, not a claim to know any single person’s vote.

What this is, and what it isn't

Synthetic polling is a complement to traditional polling, not a replacement. Where a high-quality field poll exists it remains a valuable anchor. We're deliberate about where the method is reliable and where it isn't.

Validated on three states, one topic area

Vote choice is checked across North Carolina, Florida, and Pennsylvania; policy only in Florida. Going further needs certified results we don't yet hold, which we treat as future work.

Calibration is local, not universal

The direction of the correction is universal, but its size is state and topic specific. Borrowing one state's correction for another can do more harm than no correction at all.

Behavioral questions are upper bounds

For "would you vote for someone who did X" questions the engine reproduces the real ordering of scandals and traits very well, but the stated effect sizes run larger than real behavior, so we treat them as ceilings.

Approve before you spend

In production the service plans for free (scoring the question, expected accuracy, and projected effort), and nothing runs until the plan is explicitly approved.

Bring this to your race

Synthetic polling reaches the places and questions conventional polls can't — every county, every down-ballot race, every issue, in hours rather than weeks. And it no longer stops at the number: test your messages on your electorate, then walk away with the ranked list of voters to go move.