Green Party of Michigan | Selected Article:
To report this article,
login and click here.

GP-MI Rank Choice Voting

By: Daniel Martin-Mills | Published: 7/11/2020



This article describes a version of Instant Runoff, Rank Choice Voting that is available for testing on the GP-MI web application. Future articles will briefly describe the history and context of Preferential Voting, the criteria for its many versions, and the rationale for numerous choices made while coding this version.


It would be easiest login to the website and follow along. Feel free to click through the steps listed below and scrutinize the results. Data will not be lost or corrupted. Everything will be reset automatically when you are finished. We have data backups if needed.


We will use the Presidential Preference Poll data that has been available for several weeks. Members had entered their preferences through an online ballot that was designed to comply with rules described by the GP-MI Elections Coordinator. The GP-MI Elections officers entered data from the six mailed in paper ballots. The polling results were presented at the State Convention, but the website showed only the 'first round' counts and calculations. An Instant Runoff, (IRV) would proceed with elimination rounds until calculations determined a single winner, having a majority of the vote, (50%+). We can do that now.


To get started, click the 'Ballot Results' button from the 'Presidential Candidates' page.




That will load the Election Results screen shown below. This is the page we saw at the Convention, except that it has two new buttons. They are highlighted.


Note that the 'Details' button is only available to the authorized elections officers because it shows the details for every ballot. This information is necessary to verify the accuracy of entered and calculated data, but is not for general consumption.





A twist from what might be considered normal is the inclusion of two 'Write-In' fields. They accept any text that is entered. We see that the count for Write-In votes is listed separately at the top of the page. That is because Write-In votes were not listed with those for registered Candidates. Calculations were done separately at the Convention.


Scroll to the bottom of the page to see the Write-In vote results.




The Write-In votes are listed individually for each associated ballot. At the Convention, they were counted manually. Human judgement was required to group 'Bernard' with 'Bernie', and 'Jessie' with 'Jesse', etc.


To combine these now with the results for the registered candidates, click on the 'Combine Write-In Votes' button and see the page below.



You see the distinct names that were entered as Write-In candidates. Here, you can correct misspelling, and give consistent spelling for each candidate. If you accept the list as stated, 'Bernard Sanders' and 'Bernie Sanders' will be competing for votes.


Below, you see we changed 'Bernard' to 'Bernie', and 'Jessie' to 'Jesse'. Clicking the 'Submit' button reloads the page as seen here.





This list looks right. We have five Write-In candidates now instead of seven. We click the 'Finish' button to move on.


This will launch the calculation process for individual Write-In candidates. When that is finished, the Election Results page reloads, as shown below.



The Write-In candidates are no longer listed at the bottom of the page, but are ranked with the registered candidates, along with percentage of the votes that each has attained. (The 'View Report' button has vanished too, but that is only temporary until its code is updated to handle Write-In votes.)


Now that we have combined Write-In candidates with the registered candidates, we can proceed with the rest of the IRV process. Notice the details at the top of the page. We see that the high vote getter received less than 50% of all Rank 1 votes, and so there is no winner.


Clicking the 'Eliminate Selected Candidates' button will take us to Round 2 by eliminating the votes cast for the selected candidates.


You see that three is a checkbox to the right of each of the candidates. Candidates are ordered with the lowest vote count at the bottom of the list. Five candidates earned zero Rank 1 votes, and three got one, or .99% of the Rank 1 votes. For each of these, the checkbox has been automatically checked.


Note that you can uncheck those boxes, and that you can check any box you like. This might be useful if you need to manually eliminate a candidate for some reason.


Also notice the text under the 'Eliminate Selected Candidates' button. It reminds us that we are about to eliminate votes, not candidates.


For each eliminated Rank 1 vote, we look for that ballot's Rank 2 candidate and reassign it as Rank 1. When that Rank 2 candidate is also at the bottom of the list, or in some cases not on the list because they were previously dropped by the elimination process, they can reappear with a higher Rank 1 vote count!


The 'Details' button is helpful for the authorized Elections officer to see exactly what is occurring. Other members can only wonder because they can not see the individual ballot details.


You will notice that the candidates with 0% of the Rank 1 votes are shown only on the first round. We will not see 0% achievers on further rounds.




We decide to leave the checkbox defaults, and click to proceed to Round 2.




Round 2 shows no winner. The top vote getter's percentages have not changed. Elimination and reassignment of votes only affected the lowest achievers in this round. We see that only six candidates are listed now, and a single candidate is ranked last.



Dennis Lambert has one Rank 1 vote, which is the same value he had on the first round! That is because multiple low-end candidates had their votes eliminated and reassigned. Somebody's Rank 1 vote was eliminated, and their Rank 2 vote was for Dennis Lambert.


We click to proceed to Round 3.



This time we see that the top vote getter's percentage has changed slightly, but not enough to make him a winner. Other candidates did not change. That is because we only reassigned one vote in this round.


We click to move to Round 4.



Still no winner, and now we have two candidates with votes that will be eliminated. We scroll down and see that they are both candidates who were dropped from the list earlier. Remember, we are eliminating and reassigning votes. We are not eliminating candidates.


We click to move to Round 5.


The change in the results is so small it does not deserve another image here.


This is a good place to draw the reader's attention to the fact that many people voted for only a small number of candidates. If a Rank 1 vote is eliminated and there is no Rank 2 or 3, etc. to choose from on that ballot, that ballot is 'exhausted' and does not contribute towards any other candidate.


We click for Round 6. Here we see no change with the top vote getters and multiple low-end candidates. There is still no winner. We move to Round 7.



We have a winner at last! Our IRV process has completed with a single candidate receiving a majority, more than 50% of the Rank 1 votes.


If we reload this page, we see that we have returned to where we began, at Round 1. Clicking the 'Start Fresh' button will do the same thing.


We see that data was not lost or corrupted by this process.


Details can be logged and reported and scrutinized for accuracy.


We have reached the goal for this article, which is to introduce the version of Instant Runoff, Rank Choice Voting that is currently available for testing on the GP-MI web application.


We have not discussed the many decisions that had to be made regarding its 'business rules' or how things can or should be done differently. These subjects should be debated. Policies and procedures should be explicitly stated, and code should enforce those rules. I hope to begin a debate by presenting a summary of my research into what the GP-MI and other communities have done with Preferential Voting.


You are encouraged to test what we have. Please report any issues to the Web Steward.


share icon