When the first round of ballots were counted on Election Night, St. Paul Mayor Melvin Carter outpaced Kaohly Her by 1,727 votes — or just over 2.5% of all votes cast in the mayor’s race.
Carter’s 41% of the vote fell short of the 50% threshold, and when a second round of ballots were sorted in the instant run-off election, Her’s share of votes climbed by nearly 10 percentage points. She soon went on to become mayor-elect and unseat an incumbent from her own party, a feat not seen in the capital city in 20 years.
Under the rules of ranked-choice voting in St. Paul, a winner is declared when they garner 50% of the vote, unless no one breaks that threshold. In that situation, which is what unfolded on Election Night, a process of elimination crowns the top vote-getter after all other ballots have been redistributed to the leading candidates based on second-choice, third-choice or even fourth-choice picks.
It’s a potentially thorny process that can take days under the city’s traditional hand-counting method, but Ramsey County Elections used “RCVis” open-source ballot software acquired by the city to accomplish the same task within hours of the polls closing on Tuesday. St. Paul is the first city in the state to do so.
In St. Paul, a recount cannot be requested by a losing candidate until after the city canvasses the results on Nov. 12, according to Ramsey County Elections.
Minneapolis and other cities that held ranked-choice or instant run-off elections on Tuesday were expected to break out spreadsheets on Wednesday and use their own method of reallocating ballots. Following the spreadsheet method, Minneapolis Mayor Jacob Frey won re-election Wednesday morning.
Here’s a closer look at the numbers:
Keep in mind there were a total of 67,617 votes cast in the St. Paul mayor’s race, so 1% of the vote would equal 676 votes. A winner would have been declared instantly if anyone had broken the 50% threshold, or 33,809 votes. But no one did, even after ballots were redistributed from the trio of eliminated candidates.
In the first round of ballots, Carter had 40.83% of the vote, or 27,611 ballots, and Her had 38.38%, or 25,884 ballots. The other three candidates — Yan Chen (9.65%), Mike Hilborn (8.6%) and Adam Dullinger (2.39%) — shared 20.64% of the vote, or 13,956 votes between them. Write-in votes accounted for 166 votes, or about one-fourth of a percentage point.
After the first round of ballots are tabulated, Ramsey County Elections uses a process called “batch elimination” to drop all the candidates who have no chance of winning. Given their low numbers, there was no mathematical scenario in which Chen, Hilborn or Dullinger could overtake Her or Carter, so they were all dropped from the race.
In St. Paul, voters could rank up to six candidates in order of preference on their ballot. In the second round of ballot counting, the software examined any second-choice votes, and in some cases probably third choice or even fourth choice votes, on ballots where voters had picked Chen, Hilborn or Dullinger first.
So let’s say, for example, a diehard Carter critic voted for Chen first, Hilborn second, Dullinger third and Koahly fourth. Their ballot would effectively “transfer” from Chen to Hilborn, and then from Hilborn to Dullinger, and finally from Dullinger to Kaohly. That’s called the “cascading method,” if you were curious.
Carter benefited from 2,807 transfers, most of them from Chen and Hilborn supporters, leaving him with 45% of the vote. Her, the more popular second choice, picked up 6,411 transfers, including a much heftier boost from Chen and Hilborn supporters, leaving her with 47.76% of the vote.
In the end, Her won by 2.77 percentage points, or 1,877 votes.
There were 4,904 ballots where the voter did not rank Carter or Her, if they ranked anyone. Those ballots were declared inactive because they had no viable choices left.
More data is available online from Ramsey County Elections at tinyurl.com/RamCoResults2025. The executive director of FairVote Minnesota, which promotes ranked-choice voting, has posted a video explaining the Ramsey County tabulation process at facebook.com/FairVoteMN.
The vote by precincts
An analysis of precinct data available from the Minnesota Secretary of State’s office shows Her won 29 of the city’s 86 precincts on the first ballot, or 34% of the city, and Carter won the rest. Turnout and population density varied heavily from precinct to precinct, and Her picked up hundreds of votes along Summit Avenue, where she resides.
The corridor, which is said to host the largest collection of Victorian mansions in the nation, has been a political flashpoint in the debate over a proposed protected bikeway that Carter has promoted. Her called for the project to be re-evaluated, though she stopped short of calling for its outright cancellation.
Related Articles
Kaohly Her’s priorities: On ICE raids, safer neighborhoods, transparent budgeting
St. Paul mayor: Kaohly Her wins in upset over Melvin Carter
The five-way St. Paul mayor’s race barrels toward a close on Election Day
Election Day is here. Here’s what you need to know.
St. Paul’s mayoral race to be decided by ranked-choice vote — on Election Night
The mayor had a strong showing overall throughout Ward 1, which includes his childhood Rondo neighborhood, where he won 11 of 13 precincts, though Her outpaced him in Ward 1, Precinct 2 — the Dale Street area intersecting Summit Avenue — by 300 votes.
Her also performed especially well in Ward 2, Precinct 6, which borders Dale and Summit to the south, again leading the mayor within that precinct by nearly 300 votes.
The two candidates split Ward 2, which spans downtown St. Paul and parts of surrounding neighborhoods, with Her picking up seven precincts there and Carter winning six.

Leave a Reply