

At the county level, Donald Trump’s victory doesn’t look like a rebellion against the cities and suburbs.
I n assessing how Donald Trump won back the presidency, it is useful to examine where he won it. While the numbers are not yet final nationwide due to the perennially slow-counting California, we’re now close enough to a complete count in the key battleground states to warrant a closer look at the numbers (with statewide and county data courtesy of David Leip’s Election Atlas).
This election was, from the outset, contested in seven swing states: one (North Carolina) that Trump won in both 2016 and 2020, one (Nevada) that he lost both times, three (Pennsylvania, Michigan, and Wisconsin) that Trump flipped in 2016 and lost in 2020, and two (Arizona and Georgia) longtime Republican strongholds that Trump lost in 2020. In the polls, Trump led somewhat convincingly in North Carolina, Georgia, Arizona, and Nevada and narrowly in Pennsylvania, Michigan, and Wisconsin until Joe Biden dropped out, after which things looked tighter the rest of the way but ended up about where the polls had projected them back in July.
Nationally, total turnout was down from 2020, even in spite of the natural growth of the population of voting-age adults, which increased by about two percent. As of now, the total is down from 158.6 million votes in 2020 to 154 million this year — still significantly elevated turnout, however, compared with 2016. The national decline is about 4.6 million votes, roughly a 2.9 percent drop. With every state now up to at least 97 percent of ballots counted, it should probably end up in the neighborhood of 4 million.
The State Battlegrounds
Let’s begin by comparing the swing states to the national totals:
The first set of rows cover turnout. While turnout was slightly down nationally from 2020, it was up in each of the seven swing states. The smallest growth was in Arizona, a state that saw a large surge in turnout in 2020. According to ElectProject, turnout of eligible voters in Arizona surged from 52.6 percent in 2012 to 54.9 percent in 2016 to 68 percent in 2020. There’s not a lot of juice left to squeeze after that kind of run-up. This year, it was an estimated 63.6 percent, so turnout was actually down in light of the state’s rising population. At the opposite end of the scale are Georgia and Nevada, two states with booming populations, which both saw their electorates grow by more than 5 percent.
We can better untangle turnout from population growth when we have final numbers. For now, it’s sufficient to note that, Arizona notwithstanding, the electorate grew faster in the contested Sun Belt states but a bit slower in the Rust Belt states, where population growth is much slower.
Given those parameters, Trump grew his vote very significantly from 2016 to 2020, but not enough to keep pace with the growth of the anti-Trump vote. He went from 62.9 million votes to 74.2 million votes — and lost ground doing so. But 2024 was a different animal. Between 2016 and 2024, Trump gained half a million voters apiece in Arizona, Michigan, Pennsylvania, Georgia, and North Carolina, and expanded the Trump vote by more than 40 percent in Nevada and Arizona.
Just since 2020, Trump has added at least 2.5 million more voters, an increase of 3.4 percent. The growth of the Trump vote in the swing states since 2020 ranged from a low of 4.8 percent in Pennsylvania to a high of 12.1 percent in Nevada. That’s not just new voters — it’s converts from Biden, soured by Democratic governance. In today’s polarized electorate, that’s a big shift.
Margins matter, which is why I focus so much on changes in them. So, for example, Trump went from a 91,234-vote positive margin in Arizona in 2016 (the margin by which he won the state) to a negative 10,457-vote margin in 2020, to a positive 187,382-vote margin. He only needed to improve by 10,458 votes, net, to secure a win; he got 19 times that.
In every state but Georgia, which still faces a menacing blue trend, Trump improved his total margin compared with 2016. Overall, Trump turned a 7 million vote deficit nationally in 2020 into a 2.5 million vote surplus. A million of that 9.6 million vote shift came in the seven swing states, even though those states make up just a fifth of the national electorate.
The “Ch%” figure I use in this first chart, and continue in the later charts, deserves a word of explanation before proceeding to the state-by-state analysis. I got this by dividing the size of the change in margin to the total vote in 2024. That gives us a sense of what proportion of the 2024 vote corresponds to the shift in margins. When we get to the county-by-county results, that turns out to be a highly revealing metric. Relative to the size of the 2024 electorate, the biggest swing-state shifts were in Arizona and Nevada, with marginal shifts equal to over 5 percent of the 2024 electorate; the narrowest was in Wisconsin, with 0.9 percent. By contrast, the largest raw shifts in margins were in Michigan (234,101 votes) and Pennsylvania (203,929 votes).
Pennsylvania
The Keystone State is the logical place to begin, because it was the state everyone expected to decide the election, and because it presented the clearest philosophical debate regarding theories of the electorate and theories of the candidates.
The contested question of the electorate was this: Where are there more votes? My argument in July was thus:
If your theory is that the Trump path to victory depends entirely upon winning 2016 Trump voters in Western Pennsylvania, then yes, J.D. Vance makes sense as an ambassador to that specific demographic. But that’s not a remotely accurate diagnosis of how Trump lost Pennsylvania in 2020. Turnout wasn’t the issue. Trump got more votes in 2020 than in 2016 in every single county in Pennsylvania. He improved on his 2020 vote by at least 10 percent in 62 of Pennsylvania’s 67 counties, and the other five were all counties he lost in 2016.
The problem wasn’t attracting votes. It was attracting a lot more enemies. In a state decided by 44,284 votes in 2016 and 82,166 votes in 2020, Joe Biden gained 144,000 votes (net) compared with Hillary Clinton in just five counties. Four of those (Montgomery, Chester, Delaware, and Bucks) are the suburban counties that ring Philadelphia. Bucks County is the only one of those that Trump almost won in 2016. The fifth, Allegheny, is Pittsburgh — which Trump lost by 16 points in 2016. Biden also gained significant ground relative to Hillary in Centre County (a college town, home of Penn State), and Dauphin County (which contains the state capital of Harrisburg), both of which Hillary won.
My theory of the electorate was thus that the Republican ticket needed to gain votes in the populous east of Pennsylvania, rather than try to get blood from a stone by hunting for more low-turnout Trump voters in Rust Belt communities in the western half of the state. Even if there were votes there, they’d be fewer and further between and harder to turn out by campaign effort than hunting where the votes are, just as Willie Sutton famously said that he robbed banks because that was where the money was.
Historically, Republicans did better in the Philadelphia area with more fiscally conservative candidates such as Pat Toomey, or with now-extinct moderates like Arlen Specter. Given the electorate, my resulting theory of the candidates was that doubling down on the same MAGA campaigns that failed in this part of the state in 2020 and 2022, by running Trump and adding Vance, would be a losing bet.
With the votes in, both sides were half right. I was right — and I wasn’t the only one — that there just weren’t enough additional votes in red, rural, central, and western Pennsylvania to make the difference, and that a winning campaign needed to compete in the more densely populated suburban and urban precincts of the east. But it turned out that Trump and Vance were able to do that. Of course, suburban counties have working-class voters, too. But fundamentally, this campaign didn’t win by ignoring the suburbs. Bucks County was where Trump made his appearance at McDonald’s:
More than half of Biden’s 82,166-vote margin of victory in Pennsylvania was wiped out this time around just in deep-blue Philadelphia, where Trump gained 47,593 votes relative to his margin of defeat last time. He still lost Philly by more than 58 points and over 423,000 votes, mind you. And he benefited from relatively lower voter turnout, as votes cast in Philadelphia County dropped by 2.9 percent while statewide votes were up by 1.5 percent. But the margins matter, and that’s why you fight for every vote in every locale instead of just writing off these places as hopeless pits of voter fraud.
Add to that the suburban-Philadelphia ring of Bucks, Montgomery, Delaware, and Chester Counties — all of them blue except for Bucks, which Trump flipped after almost winning it in 2016 — and Trump shifted 97,624 votes, more than enough to win Pennsylvania without a single added vote outside of the Philadelphia area. Lehigh and Lackawanna Counties, both blue and both in the east of the state, yielded another net gain of 15,538 votes. Trump added another 8,734 votes in Berks County, just north of Montgomery and Chester. He flipped Monroe and Northampton Counties, both of which border on New Jersey, netting another 10,813 votes. Those five counties gave Trump an additional margin of 34,905 votes. Combined with Philadelphia and its collar of suburbs, that’s 132,529 votes.
Trump’s improved margin in the whole rest of the state was 71,400 votes — not enough to do the job. Much-heralded Erie County, a bellwether in the northwestern corner of the state on the Great Lakes, flipped to Trump, but he gained only 2,985 votes by doing so.
If you look at Erie and the counties that gave Trump more additional votes than Erie, you’ll see that every single one of them had a population density either greater than the statewide average of 290.6 people per square mile (those are colored in orange on the chart above) or greater than national average of 93.8 (those are colored in purple). Trump flipped Pennsylvania entirely without reference to counties more rural than the national average:
If we reorient our view from the counties with the most votes to the counties that shifted the furthest in Trump’s direction relative to their size, Philadelphia is still second on the list, but there are a lot more red counties here. The biggest shift was in Monroe, the heart of the Poconos, an area with a big tourist economy dependent upon people in New York and New Jersey having money to spend. Erie, by contrast, doesn’t even show up on the list, having shifted less than the state as a whole. And many of the red counties were more stationary, having few more votes to add. On the other hand, Trump gained 1,949 votes in Allegheny relative to 2020, just on the basis of closing the gap of his defeat there by 0.2 points combined with slightly lower turnout in the county that contains Pittsburgh.
Michigan
Michigan looked like the biggest fluke for Trump 2016 — the best case for a state maybe only he could have flipped, but one in which he had lost by 154,181 votes in 2020 and that has seen Republicans routed statewide ever since. Could he recapture the 2016 magic by leaning harder into the politics of Rust Belt resentment, pessimism, and hostility to American foreign trade?
In German foreign policy — dating back to Otto von Bismarck, but perhaps better known in West Germany during the Cold War — the term Ostpolitik refers to an orientation toward Russia and Eastern Europe that de-emphasizes Germany’s ties and interests with the west. I have tended to see the politics of J. D. Vance in particular as a kind of Rustpolitik, attuned very narrowly to declining communities in the Midwest, and scornful of the interests of growing and mostly Republican-governed places in the Sun Belt. There remains a longer-term debate over whether Rustpolitik can be a winning bet on a shrinking market, but if it had any validity, it would have to prove itself in the 2024 election, where Rust Belt communities in Pennsylvania, Michigan, and Wisconsin would hold the keys to the electoral map. This time, at least, it worked:
County-by-county results can’t tell us the whole tale. In Pennsylvania, some of the eastern counties such as Lehigh, Monroe, and Northampton look — if you drive through them or visit them — very much like the paradigmatic vision of old industrial America out of step with the economy of office parks and tech exports. In Michigan, the cities and suburbs were once the heart of the auto industry.
Still, we see in Michigan a pattern that looks a lot like that in Pennsylvania. Trump gained the most votes relative to 2020 in Wayne County, home of Detroit — yet another county he vilified as a den of election thieves after the 2020 election. The 84,814 votes he added there was the second-most of any swing-state county in the country. As in Philadelphia, that was aided partly by lower turnout in the county while turnout rose statewide. The result was that he reduced his margin of defeat in Wayne from 38.1 points to 28.9 points.
The next three largest increases were in the two suburban counties north of Wayne (Macomb and Oakland) and in blue Genesee County north of Oakland. Add together those four counties, and Trump was up 152,389 votes relative to 2020, and just 1,792 votes shy of flipping the state just by holding steady everywhere else. In just seven counties — all of them more densely populated than the statewide average of 178 people per square mile — Trump gained 166,092 votes, enough to win Michigan. In the whole rest of the state, he gained 68,009 votes, not nearly enough to do so:
On a percentage basis, Wayne was still the biggest swing in the state. But as in Pennsylvania, Trump did bring out bigger, redder turnout in a number of smaller, deep-red rural counties. They just don’t add up to nearly enough even when put together.
The one county in the state that swam hardest against the tide toward Trump was Leelanau County, an upscale, traditional bellwether county on a winery-intensive peninsula in Lake Michigan that voted for Trump in 2016 but went by double digits for Gretchen Whitmer in 2022.
Wisconsin
If there’s a contrary story to what Trump accomplished in big, largely nonwhite cities in Pennsylvania and Michigan, it’s Wisconsin. The state is much whiter than the other two, with smaller cities, a tradition of high voter turnout, and a more dug-in partisan divide. In 2016, Trump won Wisconsin entirely because Hillary Clinton’s boardroom liberalism was so out of step with the progressive-reformist tradition of the state’s left side; Trump got fewer votes than Mitt Romney and hometown boy Paul Ryan, but won on the strength of collapsed Democratic turnout and defections to third-party candidates. In 2020, he got massacred in the Milwaukee and Madison suburbs, just as he did in the suburbs of Philadelphia and Detroit:
As in Pennsylvania and Michigan, the largest gains for Trump in Wisconsin came in more populous and densely populated counties, rather than in the rural red areas of the state. He cut his margin of defeat amidst soft turnout in Milwaukee. He picked up some 5,500 net votes in light-blue Rock and La Crosse Counties in the southern tier of the state (in Rock’s case, on the Illinois border). But there’s no single big-city shift here. You need to add up the eight biggest county shifts in the state (all of them above the statewide average population density) to get past the 20,682-vote hole that Trump faced in 2020, and the rest of the state yielded a marginally larger shift, 28,778 votes to 22,818:
Yet again, we see that the red counties in Wisconsin got redder, faster than the rest of the state — just in much smaller numbers. Milwaukee is actually among the counties that moved least, but its sheer size still matters. The same is true of traditional rival suburban bellwethers red Waukesha and blue Dane (the latter the home of the state Soviet, er, capital of Madison). Trump did marginally better in Dane and worse in Waukesha than in 2020 on a percentage basis, which combined with much higher turnout in Dane than Waukesha meant that he lost a net 8,666 marginal votes between Wisconsin’s second- and third-most populous counties, more than offsetting gains in Milwaukee. The improvements made by the Trump campaign with black, Hispanic, and urban voters were of little help in Wisconsin, where his victory looks more like a traditional Republican coalition in the state but also one that remains threatened by its continuing weakness in the suburbs.
In Part Two, I will look at the Sun Belt states.