It took Minneapolis two days to determine Betsy Hodges had won the mayor's race. Winston Chang wrote a program that figured it out in a little more than two seconds.
"It took me about an hour and a half to get something usable, but I was watching TV at the time," said Chang, who showed off his work to several dozen of his fellow programmers at a meeting Thursday night.
Computer programmers in the Twin Cities watched in disbelief as the city of Minneapolis counted votes this month. Experts said it would be a snap to write software to tabulate ranked-choice ballots. One college professor called it the kind of programming taught in an introduction to computer science class.
But while counting votes is technically easy, legal and financial hurdles stand in the way of a software solution.
Ranked-choice vote counting is the kind of task computers do easily. Under the system, candidates who don't have enough votes to win get eliminated and their votes get re-allocated to the voter's second or third choice. That happens again and again until one candidate gets more than 50 percent, or there are just two candidates left.
Minneapolis did use computers to help with the counting, but there were no algorithms or complex formulas. Each vote was a line in an Excel spreadsheet. Election officials copied and pasted them to simulate the sorting of paper ballots.
Programmer Nick Salkowski says that method has potential for error, while an algorithm is easy to audit.
"You can look through someone's code and say this is doing exactly what I'm telling it to do. And there might be errors in it. There might be mistakes, but you can find those mistakes," he said. "But once I copy and paste something, there's no record of me copying and pasting it that someone else can look over and see that I copied and pasted the right thing, or that I put it in the right cell, or that I didn't type over one of the responses."
Minneapolis had two teams of people doing the copying and pasting side by side, and the city double-checked to make sure they came up with exactly the same results.
City Clerk Casey Carl said he'd love to have a computer program do the work instead, but there's a problem.
"Minnesota requires that any voting system fully comply with certification requirements at both the federal and state levels," Carl said.
There is no ranked-choice software that's received federal or state certification. The federal body that develops standards for election equipment has been caught up in larger political battles in Washington. The U.S. Senate has failed to confirm any of President Obama's nominees to the Election Assistance Commission, leaving all four seats vacant since 2011.
That could change now that the Senate has banned the filibuster for most presidential nominations. But even if the commission is reconstituted, ranked-choice voting probably won't be at the top of its agenda.
Only a handful of cities nationwide use the alternative voting system. So there's also not much of a market to entice voting equipment manufacturers to go through the hassle of developing software, let alone getting it certified.
Ranked-choice voting advocates know the lengthy vote counting process didn't help their cause. But Fair Vote Minnesota Executive Director Jeanne Massey says there is an upside to it.
"I'm going to say the silver lining in all of this is that you're calling me. The silver lining is the press is on the story about 'why in the hell don't we have software?' That's a good thing."
Massey says getting certified software would give a big boost to her goal of getting ranked-choice voting rolled out statewide.