Wednesday August 9, 2017

Implementing Waterfall Elections with OpaVote

Some OpaVote customers want to implement waterfall elections, and in this post, I explain how you can do this with OpaVote. Full disclosure, I just made up the name "waterfall election," but it needed a name and I kinda like it.

In a waterfall election, you are electing multiple positions, say president, vice president, secretary, and treasurer. The key difference from regular elections is that people can run for more than one position. A person may want to be president, but if he doesn't win that election, then he might want to be vice president.

There are two main types of water fall elections, and I'll explain each below. You can use any of OpaVote's counting methods to do a waterfall election, but it works best when voters can rank all of the candidates, such as ranked-choice voting.

Cascade Waterfall Election

With a cascade waterfall election, there is a single ballot, each voter casts a single vote. The votes are counted to determine a first winner, and that person is elected president. The president is then removed from the ballots, the ballots are recounted, and the next winner is elected vice president, and so forth.

This is straightforward to implement in OpaVote. Here are the steps:
  1. Run a regular OpaVote Election with a single winner. The winner of the election is president.
  2. Download the ballots from the Election and create a Count. In the Count, you withdraw the president, and then count the ballots to determine the vice president.
  3. Rinse and repeat with additional Counts as needed.

Segmented Waterfall Election

With a segmented waterfall election, there are multiple ballots, one for each position being filled. Each candidate can run for one, some, or all of the positions. You count all the ballots to determine an initial winner for each of the positions. If a person won more than one position, then that person is removed from the ballots for the lower position (e.g., the president is removed from the vice president ballots) and the ballots are recounted. This is repeated as needed until you have a different winner for each position. 

Here is how you would implement this in OpaVote:
  1. Run a regular OpaVote Election with a contest for each position. E.g., a contest for each of president, vice president, secretary, and treasurer. If the Election produces a different winner for each position, then you are done.
  2. If two different positions have the same winner, then we need to create OpaVote Counts. For example, suppose the same person was elected both president and vice president. That person will be elected president. To determine the vice president, create a Count with the vice president ballots, withdraw the president, and recount the ballots.
  3. Repeat step 2 as needed for other positions.
One last note, my wife took the above picture of Iguazu falls on the border of Argentina and Brazil.  Beautiful place!

Monday July 3, 2017

How to break free from the two-party system

Image of an American flag on cracked pavement.
The U.S. political system is broken. Voters all over the spectrum agree. The brands of both major parties are in the toilet. Trump speaks for himself. Hillary is widely disliked even by members of her own party and lost to the most incompetent and embarrassing candidate for President in history (oops, I guess I just spoke for Trump).

Why is the brand of our only two viable parties in the toilet? Because they don't represent most of us.

The 2016 Presidential election clearly showed that the two parties do not truly represent us. Democratic voters were divisively split between the Bernie camp and the Hillary camp. Republican voters were so fractured that it is hard to identify all the factions, but we have establishment Republicans, Trump supporters, libertarians, evangelicals, and whatever it is that Ted Cruz represents (people that no one likes?).

Given that we can easily identify 7 or so groups of American voters, why is that the 435 voting members of Congress come from only two parties? Sure, the people elected to Congress do vary along the conservative to liberal scale, but first and foremost, the party controls. So many votes are party line. Almost every issue is Democrat vs. Republican with very little independent thought.

As an example of unrepresented people, let's take Trump supporters. For simplicity, I'll describe them as rural, white, working class people from communities where jobs are disappearing. In my view, both parties have paid scant attention to this group despite the fact that this group needs help -- their jobs are disappearing. I'll greatly oversimplify, but Republicans focus on lowering taxes and deregulation while Democrats focus on the middle class and gay and civil rights. None of these things help Trump supporters. Although Trump doesn't appear to be doing anything for his supporters, he directly and clearly spoke to them during the campaign and said he would help them.

With that long-winded intro, I'll now explain how we break free from the two-party system.

Kick the Parties out of the Primary

In most states, we have a Democratic primary election to choose a Democratic candidate, a Republican primary election to choose a Republican candidate, and a general election to choose between the Democrat and the Republican.

Although third-party candidates will often enter the fray, they only do so in the general election. At this stage, voters don't vote for a third-party candidate because they are afraid to elect their least-favorite candidate. For example, a Libertarian will vote for a Republican to make sure the Democrat can't win.

Instead, we could have what is called a top-two primary where all candidates compete together in a first round, and the top-two candidates then compete in a second round to determine the winner. It is possible that the second round has two candidates from the same party!

Why is this better? Consider what happened in France this year where they use a top-two primary.

Emmanuel Macron won the Presidency of France for the centrist En Marche party. What is amazing is that this party did not exist a year before. He created a party, and a year later he won the Presidency under that party. This is what happens when parties don't control primary elections. A brand new party has a chance to compete and win the Presidency.

Let's also look at the 2017 French Parliament elections, which also use a top-two primary. The En March party, which did not exist a year before, won 53% of the seats of the national parliament.

Americans would be well served by a centrist party, but we can't do that because the two parties control the primaries.

Instant runoff voting would also be helpful here, but I don't think it is enough. The primaries for the two major parties dominate the news cycle and third-party and independent candidate can't get any attention. Having all candidates compete together would help place all candidates on a level playing field.

Give People More Choices for Congress

Members of Congress are elected from single-member voting districts. This is called a "winner-take-all" system because the people who didn't vote for the winner (which could be more than half of the people) don't get any representation at all.

Let's use Massachusetts as an example, which has 9 members of Congress and 9 single-member districts. Here is the registration of Massachusetts voters:

  • 1,526,870 Democrat (34%)
  • 479,237 Republican (11%)
  • 2,480,742 unaffiliated or other parties (55%)

Although Democrats make up only 34% of voters, all 9 members of Congress are Democrats. Even worse, the last time Massachusetts elected a non-Democrat to Congress was 1997. A huge chunk of Massachusetts voters have been completely unrepresented for 20 years.

The reason it is called a winner-take-all system is that the losers get nothing, no representation.

The solution is to use multi-member districts. Instead of 9 single-member districts, Massachusetts could have 3 districts that each elect 3 members. Under this scenario, the 3 districts would each be three times as large and have 3 times as many voters. Each voter could get one vote or could submit a ranked vote with the single transferable vote.

With multi-member districts, the elected candidates are more likely to represent the diverse views of the voters. For example, a 3-member district might elect 2 Democrats and 1 Republican. A 3-member district is also more likely to elect independents or third-party candidates. The key is that since multiple people are elected from the district, the multiple people are more likely to represent the views of the different voters in the district.

Why is it that we have single-member districts in the first place? I think there are two main reasons. First, the major parties like single-member districts because it gives them unfair advantage and allows them to suppress the other party and third parties. Second, there is an outdated notion that it is important to be geographically close to the person who represents you. Back in the days of horse and buggy, this made some sense. Nowadays, it is silly and they spend all of their time in Washington D.C. anyway.

These are my proposed solutions for changing our political system to give us a better chance of electing politicians who actually represent us. You may have a different view of the best way to do this and I'd love to hear your thoughts in the comments. The key is that we have to do something!

Sunday June 25, 2017

OpaVote now has Guaranteed Email Delivery

Image of a blindfolded archer illustrating the difficulties of email delivery.
OpaVote is excited to announce a new feature that we call guaranteed email delivery. When doing online voting, it is extremely important that voters receive their ballots, and OpaVote now goes to the extreme to make this happen. This is necessarily a complicated topic so please read to the end to understand our guarantee.

OpaVote provides managers with detailed information regarding the delivery of each email that is sent. Emails are in one of 4 states:
  • Pending -- OpaVote hasn't yet sent the email. Emails get sent at a rate of 2 per second so it may take a little time for all the emails to be sent.
  • In Transit -- OpaVote has sent the email but the receiving mail server hasn't decided whether to accept it yet.
  • Rejected -- This can mean one of three things: (i) the email bounced, (ii) the voter opted out of receiving emails, or (iii) the voter marked the email as spam.
  • Delivered -- The receiving mail server accepted the email, and nearly all of the time, the email will reach the voter's inbox.
The rest of this blog post is about bouncing emails. When an email bounces, we often receive some information about the cause of the bounce, and we report this information to the election manager in the list of bouncing emails. There are basically three reasons an email may bounce:
  1. An invalid email address (voter@gmail.cam).
  2. A disabled account for a valid email address (e.g., a full inbox).
  3. The receiving email server gets skittish and bounces the email as possible spam. We call this a skittish spam bounce.
We can't do anything about the first two types of bounces, but we can do something about the last one. If the reason for a bouncing email includes any of the words graylist, blacklist, blocked, SpamAssassin, or spamcop, then the bounce likely falls into the third category, and we can take other actions to get this email delivered.

Here are the specifics of our guarantee:
  • Only applies to elections of $20 or more.
  • Notify us if any of your voters has a bounce reason that is a skittish spam bounce.
  • We'll put our backup measures into place to get the email delivered.
  • As a last resort, I'll send a voting email from my personal gmail account. If this email is not received, then the voter email address is not capable of receiving email.
In a nutshell, if a voter's email address is capable of receiving email, then we will get the email delivered!

Wednesday June 21, 2017

Manual Tie Breaks for Counts

We've added a new feature to our OpaVote Counts that has been a long time coming...

An OpaVote "Count" is the online equivalent of the old OpenSTV software that is no longer available, and a Count lets you count ranked ballots with 23 different counting methods (e.g., ranked-choice voting, instant runoff voting, or the single transferable vote), a variety of counting options, and withdrawing candidates.

With an OpaVote Count, you can now break ties manually. When you initially count the votes, any ties will be broken randomly. After the initial count, you can recount the votes, and in doing the recount you have the option to manually specify how ties are to be broken.

Screenshot showing how to break ties with OpaVote.

If your initial count had a tie, then you will something similar to the image above on your console. In this example, there was a tie:
  • in Round 2 between Chocolate, Strawberry, and Cookies & Cream, and the tie was broken with a random selection of Cookies & Cream, and
  • in Round 3 between Chocolate and Strawberry and the tie was broken with a random selection of Strawberry.
To better understand what is going on, it is helpful to view the current results in another browser tab or window. You can now change how the ties are broken. For example, for Round 2, you could uncheck Cookies & Cream and check Chocolate so that Chocolate was selected instead of Cookies & Cream, and you will see this when you recount the ballots.
Some important things to note:
  • If you make an invalid selection, such as checking no candidates or checking more than one candidate, then the tie will be broken randomly.
  • You can only change one tie break at a time, because changing one tie break will change all later ties in the count. For example, if you change the tie at Round 2 as indicated above, then the tie at Round 3 is now between Strawberry and Cookies & Cream.
Manually tie breaking is not available for Elections and Polls.  If you need this feature for an Election or Poll, then you will need to create a Count using the ballots from the Election or Poll.

Friday June 9, 2017

Elections in español, français, and português!

Flag of Argentina Flag of Brazil Flag of France Flag of Mexico OpaVote gets customers from all around the world who want to do online voting in many different languages. Previously, when election managers provided text in their own language, voters would see a mix of their own language and English.

We are excited to announce that OpaVote now fully supports elections in Spanish, French, and Portuguese! When setting up the election, the manager can choose his or her language, and this will cause OpaVote to send voting emails in that language and also present voting pages in that language. Your voters will see only their own language.

Here are some statistics I found regarding the number of people who speak a language (including non-native speakers):
  • 510 million who speak English
  • 420 million who speak Spanish
  • 213 million who speak Portuguese
  • 130 million who speak French
With this update, we've more than doubled the number of voters who can use OpaVote entirely in their own language.

These are the top candidates for future languages to be added to OpaVote:
  • 1 billion speak Chinese
  • 255 million speak Russian
  • 230 million speak Arabic
  • 229 million speak German
  • 127 million speak Japanese
I've left off Hindi and Punjabi because I'm thinking many of these people speak English.  Let me know if I should add those to the list as well.

Thursday June 1, 2017

OMG, All Voting Systems are Flawed!!!

XKCD comic about Arrow's Theorem.
Sorry, for the silly title, but I couldn't think of good one for this post... In this post, I'll present a simple example of a set of 34 ballots where three different voting systems (plurality, instant runoff voting, and Condorcet) each select a different winner.

There are two points to showing this example.

First, the title relates to Arrow's Theorem, which loosely speaking, proves that all methods of counting votes are flawed in some way. It sounds fatalistic at first. How can we possibly elect our leaders if there is no right way of doing so?

Well, no voting system is perfect, but many of them are good. There are lot's of differences of opinion as to which voting system is "best" or should be used for different applications. Your organization needs to consider the options and select what you think is best (we have recommendations here, here, here, and here).

Second, your organization needs to be clear in stating which voting system will be used. Different voting systems can produce different results and you don't want a post election dispute over who the winners are! Even smaller changes to counting rules can affect the outcome so a good way to be precise is to state that San Francisco RCV or Scottish STV will be used (both of which are implemented by OpaVote).

Now let's get to the example that causes three different winners under plurality, IRV, and Condorcet. Note that, most of the time, most voting systems produce the same results so that this is definitely a contrived example.

Ballots

We have 34 ballots with 4 candidates who we will call A, B, C, and D. Here are the ballots:
  • 10 voters rank B first, A second, C third, and D fourth
  • 9 voters rank C first, A second, B third, and D fourth
  • 8 voters ranks D first, A second, C third, and B fourth
  • 7 voters rank A first, C second, D third, and B fourth

Plurality Voting

Plurality voting is really easy. Candidate B has the most first place votes and is thus the plurality winner.

Instant Runoff Voting

With IRV, we eliminate the last place candidate and transfer votes until we have a winner. As you can see below, Candidate A has the fewest votes at round 1, and Candidate D has the fewest votes at round 2. In round 3, Candidate C has a majority and is the IRV winner.

The plurality winner, Candidate B, doesn't win under IRV because Candidate B is not popular among supporters of the other candidates. In fact, Candidate B wasn't anyone's second choice!

Condorcet Voting

Condorcet voting is a little harder to explain and visualize. With Condorcet, the winner of the election is the candidate who wins all pairwise elections (if such candidate exists). The table below illustrates this.

The first row indicates that Candidate A beats Candidate B by 24 to 10, Candidate A beats Candidate C by 25 to 9, and Candidate A beats Candidate D by 26 to 8. Since Candidate A beats all of the other candidates in pairwise elections, Candidate A is the Condorcet winner.  Similarly, the other rows show how the other candidates fared in pairwise elections (B loses to A and C but beats D, C loses to A but beats B and D, and D loses to everyone).

The plurality winner, Candidate B, did not do well with Condorcet since he lost to both Candidate A and Candidate C.

The IRV winner, Candidate C, lost to Candidate A because Candidate A was a very popular second choice. Although Candidate A had the fewest first choices, Candidate A was second on every other ballot. Proponents of Condorcet voting often cite this as a benefit over other voting systems, and see here for a more in-depth comparison.


Wednesday April 26, 2017

By-Elections or Filling Vacant Seats with RCV

Image of ballot box.Sometimes it happens that an elected office becomes unexpectedly vacant. The person who held the office may resign, be kicked out, or have died. When this happens, the office may remain vacant until the next scheduled election or a special election or by-election may be held specifically to fill the vacant seat.

One cool feature about ranked-choice voting is that it is REALLY easy to reuse the ballots to fill a vacancy. This avoids the expense and hassle of having people come out to vote again to fill the vacancy. We'll address single-winner and multi-winner elections separately because there are different considerations.

IRV or Single-Winner RCV

With instant runoff voting, it is especially easy to fill a vacancy. Here is what you do:
  1. Save the ballots from the original election.
  2. Mark the vacating candidate (and any others who no longer wish to run for the office) as withdrawn.
  3. Recount the votes!
When recounting the votes, they will be counted as if the vacating candidate was never running in the first place.

You can easily do this with OpaVote. When creating an OpaVote Count, there is an option to mark candidates as withdrawn before counting the ballots.

STV or Multi-Winner RCV

With the single transferable vote, it is a little more complicated because it is harder to maintain proportional representation with a by-election. It is still easy to do though, and there are a few options so your organization can choose which one it likes best.

Suppose a previous election filled 5 positions out of a field of 10 candidates using STV. Now one of the 5 candidates has vacated and that position needs to be filled. Here are three options for filling the vacant seat:

(1) Mark the vacating candidate (and any others who no longer wish to run for the office) as withdrawn) and recount the ballots to fill 5 seats. The first candidate to win a seat who was not previously a winner is selected to fill the vacancy.

(2) Look at the results of the original STV election results, and select the candidate with the 6th largest number of votes at the end of the election (i.e., the non-winning candidate with the highest number of votes).

(3) Recount the ballots with IRV to choose a new winner. This throws proportional representation out the window, but it is another option to consider.

One could propose other options that are more complicated than the above, but we have only presented options that you could easily implement with OpaVote.