Civly Synthetic Polling scorecard: 9 of 10 winners called correctly across the 2026 New York and Maryland Democratic House primaries. Correct calls: NY-01 Gallant, NY-07 Valdez, NY-10 Lander, NY-12 Lasher, NY-17 Conley, NY-21 Constantino, MD-05 Boafo, MD-06 Delaney, MD-07 Mfume. The miss: NY-13, where we called Espaillat and Avila Chevalier won.
Every call we made in New York and Maryland, graded against the certified result.
9 / 10Winners called
23Past races back-tested
0Phone calls made

Before a single vote was cast in New York's and Maryland's June 23 congressional primaries, we published a forecast for every contested race — who we thought would win, how close we expected it to be, and how confident we were. We didn't dial a phone. We didn't knock a door. We rebuilt each district's electorate with AI and let it vote.

Then we graded ourselves against the certified results. We called 9 of the 10 winners correctly — including a coin-flip at the top of one race, a crowded Manhattan scrum stacked with celebrity candidates, and an incumbent who lost his seat. Here's how it works, how we know it works, and the one we got wrong.

How it works — three signals that check each other

A synthetic poll doesn't ask people questions. It reconstructs the people. We take a real sample of a district's registered Democrats and have AI role-play each one — grounded in their age, location, and voter-file profile — to estimate who they'd actually support. Then we cross-check that simulation against two things it can't see on its own:

The principle underneath all of it: no single signal is trusted on its own. The simulation can under-rate a household name; fundraising can over-rate a wealthy candidate who isn't actually winning; a poll can miss a late grassroots surge. Used together, each one catches the others' blind spots.

We tested it before we trusted it

We didn't build the tool and take its word for it. Before forecasting any 2026 race, we ran it against 23 past New York and Maryland primaries — real, already-decided contests the model had never been shown, scored as if it were sitting an exam on questions it never studied.

On the New York set, it called the winner in 14 of 17 races (about 82%), with vote shares landing within roughly 6 points in a typical race. It caught famous upsets the polls of the day flat-out missed — Ocasio-Cortez over Crowley in 2018, Bowman over Engel in 2020 — precisely because it reasons from what voters believe, not just which name they've heard before. That track record is why we trust the method enough to publish it out loud. It's also why we're honest about where it strains.

The one we missed

Our miss was NY-13, spanning Upper Manhattan and the Bronx. We gave a narrow edge to the incumbent, Adriano Espaillat. The winner was his energized, DSA-backed challenger, Darializa Avila Chevalier.

It was a genuine toss-up, and we flagged it as one — our lowest-confidence New York call, a lean, not a lock. Our simulation had the race a near dead heat. What tipped our published call to the incumbent was money: Espaillat's fundraising lead and the heavy outside spending behind him — the textbook case of fundraising over-rating a candidate who isn't actually winning. The one signal that might have caught Avila Chevalier's surge in time — a clean, independent poll — didn't exist. The only public survey came from a progressive-aligned firm and showed a dead heat, so we set it aside as not clearly neutral; it landed closer to the result than our call did. The same engine that flagged the Ocasio-Cortez and Bowman upsets had this one as a coin-flip — and we let the incumbent's money break the tie the wrong way.

We're putting it front and center on the scorecard anyway, because that's the standard. We grade every call against reality, wins and misses both. A forecast you only hear about when it was right isn't a forecast — it's marketing.

NY-01 Gallant
NY-07 Valdez
NY-10 Lander
NY-12 Lasher
NY-13 Espaillat→ Avila Chevalier
NY-17 Conley
NY-21 Constantino (R)
MD-05 Boafo
MD-06 Delaney
MD-07 Mfume

NY-21 was the lone Republican primary — out of the domain our method was tuned on, and we called it anyway.

Why this matters

Good primary polls barely exist. Most of these races had no public poll at all; the ones that did were often partisan campaign internals. Traditional polling is slow, expensive, and skips everything but the marquee contests — so down-ballot candidates run blind, and the party finds out what voters wanted only after the votes are counted.

A synthetic poll runs in days, costs a fraction of a phone bank, and can be pointed at any race on the ballot — including the ones no one else bothers to poll. It isn't a reason to skip a great field poll where you can afford one. It's a way to get a credible read everywhere else — and, off the very same simulated electorate, to test your message and find the voters most likely to move.

What this is, and what it isn't: a forecast, not a crystal ball. We report a margin of error on every race and say plainly where we're confident and where we're guessing. The ± we publish is the method's own track record on races it had never seen — narrower where it's proven, wider where it's weak. We publish every call against reality, and we always will.