Presidential campaigns describe themselves as national. Both tickets in 2024 said they were competing for the whole country, and both raised and spent money in every state. So where did the candidates themselves actually go?
A campaign has more money than it can spend well and more advice than it can use. It has exactly one resource nobody can manufacture: the candidate’s own time. There are a fixed number of days before an election, and a person can stand in one place on each of them. A travel schedule is therefore a ranked list of a campaign’s own judgments about where the presidency will be decided, kept by the people with the best polling in the country and revised daily. It is a strategy document that a campaign publishes by carrying it out.
This brief reads the 2024 schedule and asks one question with a checkable answer. How much of the United States appears in it?
The record is the Associated Press’s log of the 2024 campaign trail. It holds every public appearance by the two presidential nominees, their running mates, and the president who withdrew in July,1 from 13 March to 04 November 2024. AP publishes it as the file behind an interactive graphic at https://interactives.ap.org/embeds/ziEfd/54/.
| Quantity | Value |
|---|---|
| Campaign stops logged | 377 |
| People tracked | 5 |
| First stop | 13 March 2024 |
| Last stop | 04 November 2024 |
| States with at least one stop | 26 |
| Distinct cities | 177 |
| Source | AP campaign trail tracker, version 54 |
Why this source and not a government filing? No agency collects candidate itineraries. A campaign’s internal schedule is shown to nobody, and the Federal Election Commission records what a campaign spent without recording where the candidate stood while spending it. A newsroom’s log is not a second-best substitute for a filing here. It is the only witness there is.
That makes it a record of a familiar kind: something written down by people who were doing another job. Reporters covering a beat noted where the candidates were, and somebody decided the accumulation was worth publishing. The section introduction is about that whole family of files, and about what you gain and lose when nobody involved was measuring anything.
Nothing compelled this one. Campaign-finance data exists because federal law requires the filing, and a filer who leaves something out can be penalised. This file exists at AP’s discretion, and it carries no codebook (the document that would say what each column means), no correction log and no signature.
One row is one public appearance, by one person, in one city, on one day: a stop, in the word this brief uses for it. It is not a day of campaigning, not a state visit, and not an advertising buy.
| Date | City | State | Candidate | Event type |
|---|---|---|---|---|
| 2024-03-13 | Milwaukee | Wisconsin | Biden | Campaign |
| 2024-09-13 | Las Vegas | Nevada | Trump | Campaign |
| 2024-11-01 | Dearborn | Michigan | Trump | Campaign |
That definition does more work than it looks. A rally of twenty thousand people and a fifteen-minute stop at a diner are both exactly one row, and nothing in the file separates them. Every count below is a count of occasions.
AP’s file has 26 columns, and 11 are kept here. What goes is telling:
biden-total-visits-city, total-state-visits,
county-text, reg-voters. None of those is a
fact about the event on the row. They are the contents of the box AP
shows a reader who hovers over a dot on its map. This is a graphic’s
payload, and the rows are events only incidentally.
The columns kept are the ones describing the event:
date, city, county,
state, postal, lat,
long, fips, candidate,
event_type and notes. Dates arrive looking
like 3/13/24, which sorts as text into an order no calendar recognises,
so every one of them is converted to a real date, and the conversion is
checked row by row: a single row that failed to convert would have
stopped the table being made, because one silent missing value is easier
to publish than to find.
The third decision is the one that makes this brief. A state that received no attention is not a row in this file. The log records events, and a place with no events leaves nothing to record. Counted straight, the file holds 26 states, while the country has 51 jurisdictions — fifty states and the District of Columbia — that cast electoral votes: the 538 votes, shared out among the states roughly by population, that actually elect the President, of which a majority, 270, wins.2
The 25 places nobody visited enter here through a second table.
pres2024_states.csv carries the 2024 presidential result
for every state and the District: state,
abbrev, ev for electoral votes,
margin, winner, and a grid position for the
map below. The two tables are joined so that every state is kept whether
or not it matched a visit, and the empty side is filled with zero rather
than left blank. Absence does not write itself down.
Before you read on, commit to a number. Order all 51 jurisdictions from the least attention each got per electoral vote to the most, then walk up that order until you hold half of the electoral college. That bottom half starts with the 25 places that got nothing, which are 27.1% of the college by themselves. What share of the 377 stops did the bottom half receive? Write a percentage down now, while the only thing you have to go on is the question.
Use the buttons for one ticket at a time. Hover a dot for the city and the date.
Figure 1. Every logged stop of the 2024 campaign, drawn where it happened. One mark per appearance, 377 in all, coloured by ticket. A dot map fits this question because the question is about where a fixed number of days went, and a map lets you read the empty space as easily as the crowded space. The clustering is not population: the blank areas hold several of the largest cities in the country.
| State | Electoral votes | Margin (pts) | Stops |
|---|---|---|---|
| Pennsylvania | 19 | 1.71 | 80 |
| Michigan | 15 | 1.42 | 63 |
| Wisconsin | 10 | 0.86 | 50 |
| North Carolina | 16 | 3.21 | 45 |
| Arizona | 11 | 5.50 | 27 |
| Georgia | 16 | 2.20 | 26 |
Seven states holding 17.3% of the electoral college absorbed 83.8% of the campaign. These are the battleground states, the ones close enough that either side could win them, and the label is the campaigns’ own: it names the places they chose to fight. Pennsylvania alone took 80 stops in 36 different towns. That is a stop somewhere in one state every 3.0 days, for eight months.
| Quantity | Value |
|---|---|
| States and DC in the results file | 51 |
| With at least one stop | 26 |
| With none | 25 |
| Electoral votes held by the zero-stop states | 146 |
| Their share of the electoral college | 27.1% |
25 of 51 jurisdictions received not one stop from any of the five people on the two tickets. Between them they hold 146 electoral votes, 27.1% of the total. Not a rally, not a fundraiser, not a fifteen-minute stop at a diner.
Hover a tile for its electoral votes and its margin of victory.
Figure 2. The country as a grid of equal tiles, shaded by the stops each place received. One tile per state and the District, set roughly where it belongs, so no state’s area on the page depends on its size on the ground. The 25 palest tiles are the places nobody came to.
A grid shows which states were skipped. It cannot show what they were owed, because every tile is the same size whatever the state’s electoral weight. Put both quantities on one pair of axes and the disproportion becomes a single shape.
Hover a point for the state it adds and the running totals.
Figure 3. How the campaign’s time was spread across the electoral college. This is a Lorenz curve, the picture economists draw to show how unequally income is shared, with campaign stops in place of income and electoral votes in place of people. Each point adds one state, in order of the attention it got per electoral vote. The horizontal axis is the running share of electoral votes and the vertical axis the running share of stops. The dashed diagonal is the country a campaign would visit if it treated every electoral vote alike, and the red segment along the bottom is the 25 states that got nothing.
The least-visited half of the electoral college received 2.5% of all campaign stops. Most readers guess somewhere in the teens, reasoning that the states just above the empty ones must have picked up a respectable remainder. They did not. The whole bottom half of the country, weighted the way the Constitution weights it, is worth about 9 of the 377 stops.
The gap between the curve and the diagonal has a standard summary. A Gini coefficient of 0 would mean every electoral vote drew the same attention, and 1 that a single state took everything. Here it is 0.78, a figure that would be reported as extreme if the thing being divided were income rather than a candidate’s time.
Nothing in the Constitution produces that shape. It comes from one rule, adopted state by state and written nowhere in federal law: the winner of a state takes all of its electoral votes.3 Under that rule a vote is worth chasing only where it might change which candidate reaches 270.
You can watch the rule work in the file. Start with the obvious guess, that candidates go where the voters are. A correlation is one number between -1 and 1 saying how tightly two quantities rise and fall together, and for stops against electoral votes it is 0.21. That is close to nothing. Closeness does better and in the right direction, at -0.41, and it still leaves most of the map unexplained.
Now multiply the two. Give each state its electoral votes if it finished within five points, and zero otherwise. The index has no tuning in it.
| Measure | Correlation with stops |
|---|---|
| Electoral votes alone | 0.21 |
| Margin alone | -0.41 |
| Electoral votes x (within 5 points) | 0.87 |
0.87, from no information that was not already in the two weak measures. Each one is nearly useless alone and powerful once the other is held still. A campaign is not asking where the voters are, and it is not asking where the race is close. It is asking where a day of the candidate’s time might change who wins. That is winner-take-all expressed as a travel schedule.
Read two states through the index. Pennsylvania carries 19 electoral votes and was decided by 1.71 points, inside the five-point line, so its prize is the full 19; it drew 80 stops, 43 from the Democratic ticket and 37 from the Republican. California carries 54, 2.8 times as many, and was decided by 20.14 points, so its prize is zero; it drew 2. Electoral votes alone would send a candidate to California first. Closeness alone would put New Hampshire, decided by 2.78 points with 4 electoral votes, close behind Pennsylvania; it got 3 stops. Only the product puts Pennsylvania first, and so did both campaigns.
Two rows show what the columns still hide. Washington, DC was decided by 83.81 points and logged 8 stops anyway, none of them about its 3 electoral votes. By AP’s own notes they were mostly addresses to national gatherings of interest groups, in the city where the donors and the press corps already are. Removing that single row moves the correlation between stops and closeness from -0.41 to -0.53.
Nebraska is the opposite mistake. It is a safe state, decided by 20.46 points, and it got 2 stops, both of them in Omaha. Nebraska does not award its electoral votes winner-take-all. One goes to the winner of the Omaha-centred district, and in 2024 Harris won it while Trump carried the rest of the state,4 but the results table has a row per state and no row for a district. The prize being chased appears nowhere in the data.
Whether any of this matters to a citizen depends on whether attention does anything, and there is evidence that it does. Enos and Fowler (2018) compared targeted and untargeted states in 2012. They estimated that presidential campaigning raised turnout in the heavily targeted states by about 7 to 8 percentage points, mostly through ordinary ground organising.5 On that account the 25 blank tiles are not a travel budget. They are a description of where political life is thinner.
It cannot tell you how much campaigning happened. An event is an event, with no crowd size, no hours spent and no money attached. An arena and a diner are one row each, which is the largest single limit of the file.
It cannot tell you the log is complete. Nobody is penalised for an omission from a newsroom’s file, and the running mates were watched less closely than the principals. The log also ends on 04 November, the day before the election, so every count here is a floor.
It cannot be cited without a version number. AP kept publishing after the election: version 50 held 324 stops and version 54 holds 377. 15 of the additions were backfilled into days the older file already claimed to cover. A public dataset with no statutory deadline has no moment at which it is finished.
It cannot see anything smaller than a state, and it is one election. Maine and Nebraska award electoral votes by district, and no row here does. Only 13 states finished within ten points in 2024, and nothing in this file shows that 2024 was typical.
It measures no consequence. There is no turnout column and no vote column. What the visits produced is a different question, and it needs a different file.
campaign_visits_2024.csv names a state on
every event. Count the events per state, bring in
pres2024_states.csv, and compare each count against
ev and margin. Which states got more attention
than their weight, and which got less?campaign_visits_2024.csv also has city.
Sort the cities by how many stops each received. Is a battleground state
campaigned in all over, or in three or four places?campaign_visits_2024.csv has candidate and
date. Count the stops per candidate per month. Do the two
tickets travel at the same rate, and does either change gear late?ap_snapshots.csv records two versions of the same log,
with different rows, a different last_event,
and a different rows_in_shared_window. Work out what the
earlier version was missing, and what you would have published from
it.Data
ap_snapshots.csv.PresElectionResults compilation (https://github.com/jaytimm/PresElectionResults), which
rests on the fifty-one certified state canvasses.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.
ap_snapshots.csv,
campaign_visits_2024.csv,
pres2024_states.csv
Academic literature
I want to rebuild a public dataset from its original source, without any starting files. Please do the following and show your work. THE SOURCE. Associated Press, "Tracking the 2024 presidential campaign trail" — the dataset behind the AP's interactive tracker, served plainly with no account or key: https://interactives.ap.org/embeds/ziEfd/54/dataset.csv Each row is one campaign stop by a 2024 presidential or vice presidential candidate: date, city, county, state, coordinates, candidate, and type of event. It is a news organisation's log, not a government filing — a rally of twenty thousand and a diner stop are one row each. HOW TO DOWNLOAD IT. The 54 in that address is a version number, and THE VERSION NUMBER IS PART OF THE CITATION. The AP kept publishing new versions after the election. Version 50 stops on 1 November 2024 — four days short, final weekend missing — while version 54 runs through 4 November and also quietly adds events to days version 50 already claimed to cover. Both were still being served when this book downloaded them, so download both: the same address with /50/ and with /54/. WHAT TO BUILD. 1. A tidy table of the stops in version 54, one row per event, sorted by date. 2. A comparison of the two versions: how many rows each has, the date of its last event, and — for the window BOTH claim to cover, up to 1 November — how many events each reports there. CHECK YOUR WORK. The copies this book used were downloaded in August 2026. If your rebuild matches them, you should find: - 377 stops in version 54, ending 4 November 2024 - 324 stops in version 50, ending 1 November 2024 - in the shared window, version 54 reports 339 events — fifteen were backfilled into days the older version had already covered If either address now answers differently, the tracker moved again; that is the source revising itself, not an error in your rebuild.
Biden withdrew and endorsed Harris on 21 July 2024: https://www.npr.org/2024/07/21/nx-s1-5024253/biden-drops-out-2024-presidential-election.↩︎
National Archives, “What is the Electoral College?”: https://www.archives.gov/electoral-college/about.↩︎
Every state but Maine and Nebraska gives all of its electors to the statewide winner; the Constitution leaves the manner of choosing electors to each state’s legislature. National Archives, “Distribution of Electoral Votes”: https://www.archives.gov/electoral-college/allocation.↩︎
The National Archives’ record of the 2024 Electoral College vote, which lists Nebraska’s split: https://www.archives.gov/electoral-college/2024.↩︎
Ryan D. Enos and Anthony Fowler, “Aggregate Effects of Large-Scale Campaigns on Voter Turnout,” Political Science Research and Methods 6, no. 4 (2018): 733–751, https://doi.org/10.1017/psrm.2016.21. In the abstract’s words, turnout in highly targeted states rose by “7–8 percentage points, on average,” and “the predominant mechanism behind this effect is traditional ground campaigning.”↩︎