An election year runs for months: primaries, conventions, debates, a billion dollars of advertising, and a night of maps changing colour on television. All of that spectacle carries an assumption — that the results are genuinely up for grabs. Do election results actually change from one election to the next?
The question has a citizen’s stake, not just an analyst’s. If nearly every place’s result can be written down four years in advance, then campaigns and their attention are aimed at a sliver of the country. Most voters are being watched rather than courted. This brief measures how much of 2024 was already fixed in 2020, at the county level and then across offices on the same ballot.
Two comparisons need two files. The first sets every county’s 2020 presidential vote against its 2024 vote, using the county returns compiled by the researcher Tony McGovern from news organizations’ results pages and downloadable at https://github.com/tonmcg/US_County_Level_Election_Results_08-24 — a file whose own README calls its figures not authoritative, and which this book’s county-returns chapter checks against the fifty-one official state publications. No agency publishes county returns nationally, so a private compilation is the only kind of file there is. The second comparison sets offices against each other in 2024: president against Senate. It uses the Clerk of the House’s Statistics of the Presidential and Congressional Election, the official tally the Clerk compiles from the state canvasses — each state’s formal count of its own returns — and published in March 2025.
The Clerk’s document fits the second test for one specific reason: it prints the presidential, Senate and House results for a state on the same pages, from one canvass, on one date. The measure below is a subtraction, how a state voted for the Senate minus how it voted for president, and a subtraction is exactly where two differently built files leak their differences into the answer. Taking both numbers from one document closes that door. What a certified return can bear at all is this cluster’s chapter on election returns.
One row of the county file is one county, with both elections beside each other:
| County | Republican share 2020 | Republican share 2024 | Move |
|---|---|---|---|
| Maricopa County, Arizona | 48.9% | 51.8% | +2.9 |
| Allegheny County, Pennsylvania | 39.6% | 39.8% | +0.1 |
| Starr County, Texas | 47.5% | 58.0% | +10.6 |
| Column | What it holds | Measurement |
|---|---|---|
| county_fips | the five-digit federal code for the county | categorical |
| r20 | the Republican share of the votes cast for the two major parties in 2020 | continuous |
| r24 | the same quantity in 2024 | continuous |
| swing | the second minus the first, in points | continuous |
| flipped | whether the county backed a different party in the two elections | yes or no |
The share is of the two major parties, not of every vote cast. Third-party votes were not the same size in the two elections, and a share-of-everything comparison would read that difference as movement between the parties, which it is not.
3,104 counties appear in both files and are drawn below. 48 reporting units from 2020 and 56 from 2024 have no partner in the other year, and the reason is geography rather than a broken key. Alaska reports by state legislative district and renumbered them; Connecticut replaced its eight counties with nine planning regions in 2022; the District of Columbia is one row in 2020 and eight in 2024. The ground was recut, so there is nothing to join. The Senate file has one row per contest, with each contest’s Republican share beside the state’s presidential one — 35 contests in 33 states, since Nebraska and California each held two.
Before you read on, write down two numbers. Knowing only how a county voted in 2020, how close do you think you could come to its 2024 result — within twenty points, ten, five? And how many of the 3,104 counties do you think switched parties between the two elections? Commit to both.
Figure 1. Every county, twice. Each dot is one county: left to right is how Republican it voted in 2020, height is how Republican it voted in 2024. A scatter of one election against the next fits the question because persistence has a shape, the diagonal line — any county that escaped its past sits visibly off it. The shaded boxes are the only places a county that switched parties can land, and the ringed dots are the ones that did.
Persistence wins, and it wins hard. The correlation between the two years, meaning a measure of how far the counties stay in the same order where 1 is a perfect line, is 0.9950. Draw the best straight line through this cloud and it misses a typical county by 1.6 points. Knowing only 2020, you could have come that close to almost every county’s 2024 result before a single ballot was cast, and 96.7% of counties finished within five points of where they started.
Only 86 of the 3,104 counties changed sides, and every one moved the same way: all 86 went from Democratic to Republican, and the count in the other direction is 0. That is why one shaded box holds every ring and the other is empty. A country whose places were trading with each other would have filled both.
Two cautions keep the finding honest. A correlation measures order, not sameness: press the button on Figure 1 and every county moves ten points Republican, a national landslide, while the correlation stays 0.9950. The typical county did move, by +1.5 points toward the Republicans, and Maverick County, Texas moved +14.1. Persistence rules out places changing places; it says nothing against the whole field moving at once. And counties are not people: weighting by votes cast, which means counting some counties more than others, drops the correlation only to 0.9918.
So one election predicts the next. Does one office predict another, on the same day, on the same ballot?
Figure 2. The two offices, on one pair of axes. This is Figure 1 with one axis replaced: the state’s Senate vote instead of the next presidential election. Colour is the party of the senator elected, an asterisk marks the two contests for the last weeks of a term, and the magnified panel shows the crowded middle. The dashed line is a Senate candidate finishing exactly level with their party’s presidential ticket.
Almost every point sits on or just under the line. The two offices correlate at 0.952, and the typical Senate candidate came within 2.2 points of their ticket. The gaps that do open are small and one-sided: Larry Hogan ran 8.7 points ahead of Trump in Maryland and still lost, and Deb Fischer ran 7.1 points behind him in Nebraska and still won.
The exceptions are where the sliver decides everything. 4 contests, in AZ, MI, NV, WI, produced a senator whose party did not carry the state for president — a crossover, in this brief’s vocabulary: a place that voted one way for president and the other way for another office on the same ballot. All four went the same way: Trump carried the state, and the voters sent a Democrat to the Senate. In each, the Republican Senate candidate ran an ordinary 0.9 to 4.0 points behind Trump. That ordinary gap changed the outcome only because Trump’s own margin there was smaller than the gap. Take Arizona. Trump took 52.8% of the state’s two-party presidential vote; Kari Lake, the Republican for Senate, finished 4.0 points behind him, and 52.8 − 4.0 = 48.8, under half, so Ruben Gallego took the seat. Those four seats did not decide which party controlled the Senate — Republicans won a majority without them — but they are the difference between a narrow majority and a commanding one.1
Even that count of 4 is a decision wearing the costume of an observation. Two points in Figure 2 are grey, and grey is not a party:
| State | Senator | Ran as | President | Margin |
|---|---|---|---|---|
| Vermont | Bernard Sanders | Independent | Harris | 32.6 pts |
| Maine | Angus S. King, Jr. | Independent | Harris | 20.1 pts |
Maine and Vermont elected independents who were not Democratic nominees, sit with the Democrats in Washington, and represent states Harris carried. Read “a different party” as the ballot line and the count is 6; read it as the two sides in Washington and it is 4. Neither reading is wrong — they are different questions wearing the same sentence, and the decision between them does not travel with the number. When you are handed a count of a category, ask what it would take for a case to sit on the other side of the line.
The House tells the same story at a larger scale. 16 districts out of 435 voted one way for president and the other for the House, which is 3.7% of the chamber. The widest of those splits was PA-01: the Republican share of its two-party presidential vote was 49.9%, and of its House vote 56.4%, a gap of 6.5 points that put the two offices on opposite sides of fifty — so a district Harris carried sent Brian K. Fitzpatrick, a Republican, to the House. It was not always so:
Move across the chart for each election’s share.
Figure 3. Districts splitting their vote between president and House, 1952–2024. Only presidential years are drawn, so every point compares a House election with the presidential election held the same day.
Split districts were once ordinary: 44.4% of contested districts split in 1972, and the line sits above thirty per cent in 6 of the 19 elections drawn. It falls through the 1990s and keeps falling, and the last two elections are the two lowest readings in the series. One caution about the denominator, the bottom number the percentage is computed over: the line counts only districts where both parties ran, so 2024 reads 4.0% there and 3.7% over the whole chamber. Neither is wrong, and quoting one where the other belongs is the commonest way this statistic is misused.
No voter appears anywhere in this brief. Every number is a total for a place. A state that voted for Trump and elected a Democrat could be one where many people split their ballots, or one where different sets of people turned out for the two contests. Guessing what individuals did from group totals is called ecological inference, a problem with a seventy-year literature of its own,2 and nothing here is evidence about any person’s ballot.
A high correlation across places is not stability over time. Figure 1 rules out counties changing places with each other. It does not rule out the whole country moving, and the whole country moved +1.5 points in the typical county. Both sentences describe the same picture.
Two elections are not a trend. The county comparison covers one pair of years. Figure 3 is a long series for the House, but there is no comparable series here for counties or the Senate, so whether 2020 predicted 2024 unusually well is a question this brief cannot answer.
The vertical axis of Figure 2 is not always Republican against Democrat. It is the Republican against whoever finished closest, which in three contests was an independent. A strict Republican-against-Democrat axis would report Maine as three-to-one Republican and Nebraska as unopposed, so this brief does not use one; the cost is three points whose presidential axis has no true counterpart.
Running ahead of the ticket is not a measure of a candidate. The gap from the dashed line has two sides: a strong candidate, a weak opponent, or a state full of willing ticket-splitters all produce it, and this brief cannot tell you which did.
The county file is a compilation, not a public record. No agency publishes it, and the 2020 file is the weaker of the two used here; the county-returns chapter measures how far such compilations sit from what the states published.
None of these is answered above, and every one can be answered from the tables the Sources section hands over.
counties.csv carries swing for every
county. Sort by it. Do the counties that moved most have anything in
common — size, state, how lopsided they already were in
r20?house.csv has ran_ahead for every
contested district and a crossover flag. Count the
crossover districts, then look at which party’s candidates hold them and
how far ahead of the ticket they ran.split_trend.csv gives pct_split for every
presidential year. Find the last year it sat above twenty per cent. What
was the first election after it where the figure had halved?senate.csv compares each Senate result against the
presidential result in the same state, in ran_ahead. Find
the candidates who ran furthest ahead of their party’s ticket. Did any
of them win?states.csv holds each state’s presidential result in
pres_r_two. Compare its closest states with the
margin column of senate.csv: did the closest
presidential states also hold the closest Senate races?One stretch idea points past the spreadsheet: when the 2026 midterm returns are certified, download the Senate results and see whether crossover wins survive without a presidential race on the ballot. Another: pick one flipped county from Figure 1 and pull its precinct returns from the state’s election site, to see whether the county moved evenly or in patches.
Data
Academic literature
The data itself
Every figure above is drawn from these tables. They are plain CSV, they open in a spreadsheet, and they are yours to take further.
counties.csv, house.csv, senate.csv, split_trend.csv, states.csv
Two more files here are not data about the subject at all – they are
how this chapter checked its own work: facts.csv, the individual
numbers the text above quotes, and checks.csv, the
arithmetic verified before anything was drawn.
The Senate’s own tally of party strength by Congress: U.S. Senate, “Party Division,” https://www.senate.gov/history/partydiv.htm.↩︎
The classic warning is William S. Robinson, “Ecological Correlations and the Behavior of Individuals,” American Sociological Review 15, no. 3 (1950): 351–357, https://www.jstor.org/stable/2087176; the standard modern treatment is Gary King, A Solution to the Ecological Inference Problem (Princeton: Princeton University Press, 1997), https://press.princeton.edu/books/paperback/9780691012407/a-solution-to-the-ecological-inference-problem.↩︎