Michigan's Democratic primary to pick a nominee for Gary Peters's open Senate seat closes tonight, and Polymarket's "who wins the primary" market took a long road to get here. Abdul El-Sayed's contract opened this window at 81.5c on July 21, fell to a 63.5c low on July 25 after Gov. Gretchen Whitmer endorsed rival Haley Stevens, then climbed almost without a pause after the July 27 debate as four separate polls showed El-Sayed ahead by 10 to 19 points. As of 2026-08-04 09:25 UTC - polls close at 8pm ET tonight - El-Sayed prices at 98.1c (bid 98.0c / ask 98.2c) and Stevens at 1.9c (bid 1.8c / ask 2.1c), on $84,038 in 24-hour volume and $456,607 in liquidity. Numbers below are from the Gamma and CLOB APIs, fetched at that time.
01An open seat, a field of twoWhy this primary is worth watching
Sen. Gary Peters announced in January 2025 that he would not seek a third term, opening one of the cycle's most closely fought Senate races: Democrats need the seat to hold their line in the chamber, and Republicans see it as a genuine pickup opportunity behind Trump-endorsed former Rep. Mike Rogers, who is running unopposed in tonight's Republican primary. The Democratic field started crowded but narrowed to two serious contenders once state Sen. Mallory McMorrow dropped out in early July: Rep. Haley Stevens, a moderate backed by Gov. Whitmer, Peters himself, and Senate Minority Leader Schumer, against Abdul El-Sayed, a progressive backed by Bernie Sanders and AOC who ran for governor in 2018 and lost that primary to Whitmer. A separate Polymarket market on the general election prices Democrats at 64.5c to hold the seat against Rogers - a reminder that tonight only settles who carries the party's nomination into that fight, not the seat itself.
02A dip, then a runThe move, in two acts
The first act was a Stevens-favorable week. On July 23 the Stevens campaign sent a press release designed to look like it came from El-Sayed's team, falsely claiming Rogers had "endorsed" El-Sayed - a stunt that drew an FEC complaint but also put Stevens's electability argument in headlines for days. The next day, July 24, Whitmer formally endorsed Stevens at a Teamsters hall event, and Bridge Michigan reported a roughly $45 million outside- spending gap favoring Stevens the same day. El-Sayed's contract slid through all of it, bottoming at 63.5c on July 25, the day early voting opened.
The second act reversed it. The two campaigns clashed over Israel policy and antisemitism allegations in a contentious July 27 debate, and the polling that followed broke decisively for El-Sayed: Emerson College (fielded July 26-27) had him up 54-39, Mitchell Research (July 28-29) had him up 52-38, and Zenith Research (July 26-30) had him up 53-34, with a final Public Sentiment Institute poll settling at 54.8-45.2 heading into Tuesday. No single poll or event fully explains the climb - it reads as several independent pollsters landing in the same range within days of each other, each release reinforcing the last.
WIN PROBABILITY, JUL 21 -> LOW/HIGH -> NOW (AUG 4 09:25 UTC)
El-Sayed 81.5c -> 63.5c low (Jul 25) -> 98.1c
Stevens 20.7c -> 36.95c high (Jul 25) -> 1.9c
03Reading 98c against a ten-point poll lead
Why a lead this size prices as a near-lock
A double-digit polling lead reads as "ahead but not settled" to most people, so 98c can look overconfident next to a 54.8-45.2 final poll. The gap closes once you notice what a two-candidate race does to a consistent lead: with McMorrow out and no third option splitting the vote, a candidate who has led by 10 to 19 points across four independently conducted polls in the campaign's final week has very little room left for the trailing candidate to close on election day alone - the market isn't pricing the poll margin, it's pricing the probability that Stevens overperforms every recent poll simultaneously. The order book agrees: El-Sayed's contract bids 98.0c against a 98.2c ask, a 0.2c spread with real size sitting on both sides rather than one lonely resting order, which is what a book looks like when traders on both sides of the trade have converged rather than one where nobody wants to take the other side.
TOP OF BOOK, AUG 4 09:25 UTC
El-Sayed bid 98.0c / ask 98.2c (0.2c spread)
Stevens bid 1.8c / ask 2.1c (0.3c spread)
That tightness is a read on conviction, not a guarantee. Prediction markets on low-turnout primaries can be thin enough that a handful of large trades move the price further than the underlying evidence justifies, and a final poll landing days before voting can miss late-breaking turnout dynamics that only show up once ballots are actually counted. Nothing here resolves until Michigan's Democratic Party announces a result, or reporting converges hard enough that the ambiguity goes away - the same standard this market's rules use to decide the outcome.
04What's left before this settlesWatching returns land tonight
Polls close at 8pm ET statewide; four western Upper Peninsula counties on Central Time close locally at 9pm, effectively 10pm ET, though that sliver of the vote won't hold up a call in a race this lopsided if the pre-election pricing holds. Michigan's Republican primary for the same seat is uncontested - Rogers is the nominee regardless of tonight's Democratic outcome - so the only live question on the ballot is which Democrat faces him in November. Since one contract has to lose almost all its value and the other has to gain it, tonight is one of the sharper single-event resolutions this market series will see all year, next to a slow grind like Fed meetings or a ceasefire ladder that decays gradually with distance.
05Watching a primary settle from the terminalFollowing the count without refreshing a news feed
A market that's traded from 63.5c to 98.1c in nine days is still capable of a sharp move the moment real returns start posting, and that's easy to miss between manual refreshes. In polymarket-tui, opening the Michigan primary event shows both candidates side by side with their 24-hour price change, so a batch of early returns shows up as a price move in the terminal before it shows up as a called race on TV.
$ uv tool install polymarket-tui
$ polymarket-tui
No account is needed to browse markets, books, and charts. The install page has Homebrew and one-liner options.