Primary nights are fun because everybody spends six months telling us what’s going to happen, and then voters show up and ruin half the narratives.

Last night’s Republican gubernatorial primary was no exception.

Here are the winners and losers.

WINNER: Zach Lahn

Obviously.

The guy went from political newcomer to Republican nominee for governor.

But the bigger story isn’t Zach Lahn. It’s what his victory says about where Republican voters are.

For years, political professionals have tried to cram every race into the same tired framework: establishment vs. grassroots, D.C. vs. Iowa, insiders vs. outsiders.

That’s not quite what’s happening anymore.

Voters are increasingly looking at government itself and deciding they’re not impressed.

Lahn wasn’t just running against Randy Feenstra. He was running against the idea that the next governor should be another career politician.

And voters bought what he was selling.

Like it or not, the MAGA/MAHA coalition has figured something out. The outsider message continues to resonate in both urban and rural Iowa.

That trend isn’t going away anytime soon.

WINNER: Iowa Republicans

For months we heard predictions that this primary would divide the party, create lasting bitterness, and leave Republicans limping into the general election.

Instead, Republicans got exactly what primaries are supposed to provide.

A vigorous debate.

Competitive campaigns.

Meaningful discussions about issues.

And most importantly, a chance to flex the grassroots muscle and campaign plan. Unlike Democratic campaigns, GOP campaigns had to work the grassroots, talk to voters, hit the road, and convert them. That’s not easy, and it’s not something we should take for granted. It will hurt Rob that he didn’t have a primary. 

Now Republicans get to do what they’ve done repeatedly over the last decade: unite quickly and move on to beating Democrats.

WINNER: Ashley Hinson

Ashley Hinson handled her primary exactly the way you’re supposed to.

No drama.

No panic.

No suspense.

Just a decisive victory and a reminder that she remains one of the strongest Republican candidates on the ballot and in the country.

While other campaigns spent months fighting for survival, Hinson spent the night doing what she always does: winning.

WINNER: Mariannette Miller-Meeks

The media desperately wants every Mariannette Miller-Meeks race to be a cliffhanger.

Reality had other plans.

After drawing a primary challenger, Miller-Meeks won by a larger margin than she did the last time she faced him.

Not exactly the sign of a congresswoman losing her grip on the district.

WINNER: Chuck Schumer

Hear us out.

It cost him $10 million, but Chuck Schumer got his guy with Josh Turek. Now,  unlike the Republicans, the establishment came in big and put their thumb on the scale. Maybe this causes some hurt feelings that linger in the Dem base, especially when those lib voters don’t get to vote for someone they like in a governors race. Maybe they’ll stay home in Nov. Either way, Schumer wins cause he flexes his muscle and gets what he wants, and we respect the shit out of that.

LOSER: Rob Sand

The biggest loser of the night.

For years, Rob Sand has carefully cultivated the image of an outsider taking on the political establishment.

That worked when he was running against longtime officeholders.

Now he’s running against a guy whose entire political biography can basically be summed up as: “I’ve never worked in government.”

That’s a problem.

Sand’s only real job has been in government.

Lahn can argue that politicians created Iowa’s problems.

Sand can’t exactly disagree without indicting himself.

And unlike running against someone who served in Congress, Lahn doesn’t come with years of votes in Washington for Democrats to attack.

The contrast is simpler.

One guy built businesses and signed paychecks.

The other guy has spent his career in government.

Sand’s oddly emotional video response last night suggested he understands the challenge and is already coming unhinged. 

Candidates running from a position of strength usually don’t look that rattled.

LOSER: Laura Belin’s GOP Analysis

Stop pretending this wacko who pretends to be a journalist knows jack about Republican politics. Or frankly, any politics.

LOSER: Bob Vander Plaats

Another election.

Another endorsement.

Another loss.

At some point, the self-appointed kingmakers need to explain where all this kingmaking is happening.

Anyone who thinks Vander Plaats is influential among Iowa conservatives is kidding themselves. The grift is up. 

LOSER: Brian Lohse

Bye, Felicia.

LOSER: The Endorsement Industrial Complex

Trump endorsed Randy Feenstra.

Bob Vander Plaats endorsed Steen.

Steve King endorsed Zach Lahn.

Did that actually move the needle or hurt the election? No. Endorsements are actually worthless.

FINAL THOUGHT

The biggest winner Tuesday night may have been the Republican ticket itself.

Republicans leave this primary with a coalition that looks a lot like modern Iowa. MAGA voters. Social conservatives. Rural voters. Suburban moms. Small business owners. Working-class voters. You don’t have to squint very hard to see how those pieces fit together.

Democrats have a different challenge.

Rob Sand has spent years trying to convince voters he’s not really like the rest of his party. Has he ever said that he’s a Democrat? 

Now he’s going to spend the next year campaigning alongside a ticket filled with Democrats who aren’t particularly interested in helping him sell that story and aren’t afraid of being Democrats; in fact, they think it’s the key to winning. 

Republicans can run together.

Sand has to run around his own party.

And that’s before Republicans spend a single dollar reminding voters that while Zach Lahn was building businesses and signing paychecks, Rob Sand has spent virtually his entire career in government.

Despite the spin and the media narrative, Tuesday night made Rob Sand’s path much narrower.