Thursday, October 18, 2018

Above the Line (ATL) Voting with OpaVote

Some single transferable vote (STV) elections use what is called above-the-line (ATL) voting or a group voting ticket. ATL voting is most common in Australia where STV elections sometimes have a large number of candidates and voters are required to rank a certain number of candidates in order to cast a valid ballot.

To reduce the burden on voters, the voters have an option to allow their favorite party to choose the rankings for them. This post explains how you can implement an ATL online election with OpaVote.

Above, is an example of a ballot that includes an ATL option. The thick black horizontal line there is the "line" of above the line. A voter can vote above the line (ATL) or below the line (BTL) but not both (I suppose some implementations may allow both but I'll skip that to simplify the discussion).

An ATL vote is to select a party of the four parties competing in the election. If a voter picks a party, then the voter's vote is determined by the party's "ticket". Before the election, each party specifies its ticket, which corresponds to a ranking of the candidates competing in the election. Each party presumably ranks it own candidates the highest and followed by candidates of ideologically similar parties.

A BTL vote allows the voter to rank the candidates any way he or she wants.

ATL Elections with OpaVote

We'll explain how to implement an ATL election with OpaVote. It requires some manual processing of ballots, but in most ATL elections, a large percentage of voters vote ATL and this greatly simplifies the manual processing.

First, create an OpaVote election with two Contests. The first contest is for ATL voting. You list each party as a candidate and select the checkbox voting, single winner voting method. The second contest is for BTL voting. You list each candidate and select your preferred ranked voting method.

Second, run the election and collect all of the votes. For now, I will presume that all voters complied with your voting instructions and voted either ATL or BTL but not both. At the end of the election, you will have results for each of the ATL contest and the BTL contest, but these are not the final results, because you need to merge them together.

Third, create an OpaVote Count for properly merging the ATL votes and the BTL votes. There are a few steps to do this:

  1. Enter a weighted vote for each party's ticket. For example, suppose 143 voters cast an ATL vote for party A's ticket. You enter a single ballot with the candidate order for party A and assign it a weight of 143. Repeat this for the other parties.
  2. Enter each of the BTL votes (with a weight of 1). Here, you are just reentering the votes from the election. The percentage of BTL votes is usually small (a few percent) so this operation isn't too tedious.
  3. Count the votes to get the final winners.
And that is it! Not fully automated but fairly easy to do.

The above example is for an ATL election where you are filling a single position (e.g., President), but you can also do an ATL election for filling multiple positions. For example, if you are filling 4 positions, then your first election would have 5 contests -- one for ATL and then one BTL contest for each position. You would then need to create an OpaVote Count to merge the votes for each position so 4 four Counts for this example.

Another issue you need to address are voters who have voted both ATL and BTL. I'll call these double votes. Your election rules should define what to do in this instance, and they most likely just pick one and ignore the other.

If your election rules state that BTL is ignored for double votes, then you implement the process above, but at step 2 when you enter each of the BTL votes, you need to make sure that you DON'T enter the BTL votes from double votes.

If your election rules state that ATL is ignored for double votes, then you need to modify step 1 from above to make sure that you exclude ATL votes from double votes. This may be somewhat tedious since you may need to manually count a large number of ATL votes, but since it is checkbox voting and not ranked voting it shouldn't be too much work.