awt, abiftool, Debian elections, and a new(-ish) election-software mailing list
-
Hi folks, the Debian Project Leader election of 2003 is a particularly interesting corner case in elections. I've been talking up this old election in many places; mainly on reddit this past week (my /r/Debian post from Thursday , and my /r/EndFPTP post yesterday/Saturday), but I'm going to guess not everyone here reads reddit, and y'all seem like the kind of folks that would be interested in this kind of thing. This is admittedly an excuse to promote a couple of things: 1) my ABIF tools like "awt" and "abiftool", and 2) a mailing list I created last month to discuss election-software development.
Background: The Debian Project has an annual election for the "Debian Project Leader", in which developers vote using the "Schulze method" (a Condorcet method). The official results of the latest election can be found here:
Most elections are pretty boring for outsiders. They might even be boring for the developers who vote in the elections. However, you all may find the 2003 election interesting if you weren't already aware of it:
In the 2003 election, it appears that Martin Michlmayr defeated Bdale Garbee by a mere 4 votes. However, a more interesting aspect of this to be the results if the people voting in this election had used "IRV". Below is a link to the results of this election as shown in "ABIF web tool" (or "awt"), using Copeland (also a Condorcet-winner method), IRV, and STAR voting:
As you can see, Branden Robinson beats both Bdale Garbee and Martin Michlmayr if IRV is used. This is because Garbee and Michlmayr are tied in the third round, so both get eliminated, at least per the election law in the city of San Francisco which states:
(e) If the total number of votes of the two or more candidates credited with the
lowest number of votes is less than the number of votes credited to the candidate with the
next highest number of votes, those candidates with the lowest number of votes shall be
eliminated simultaneously and their votes transferred to the next-ranked continuing
candidate on each ballot in a single counting operation.Because of this quirk of IRV, that means that changing only one ballot can change the results of the election between three different candidates. For example, find the following line in the ABIF, and comment it out (using the "
#
" character at the beginning of the line).1:BdaleGarbee>MartinMichlmayr>BrandenRobinson>MosheZadka>NOTA
To find this line, you'll need to show the "ABIF submission area". Once you find the line and comment it out, you can hit "Submit", and see the fruits of your labor. You can muck around with the election however you want, and see the results of your mucking. In the case of commenting out the line above, Bdale Garbee gets eliminated as a result (which isn't too surprising), but Martin Michlmayr wins, defeating Branden Robinson. This despite the fact that Michlmayr was behind Robinson in the third round by 13 votes in the prior round of voting prior to eliminating the ballot above. It's very surprising that eliminating a ballot that ranks Michlmayr higher than Robinson causes Michlmayr to defeat Robinson.
Garbee can also win by eliminating one of the ballots that ranks Michlmayr higher than Garbee, such as this one:
1:MartinMichlmayr>BdaleGarbee>BrandenRobinson>NOTA>MosheZadka
One of the participants over on the Debian subreddit asked "Wouldn't it be better to randomly choose one of the tied candidates and to then eliminate only that one?" That's not a terrible suggestion, though it would make IRV explicitly non-deterministic, which would create its own problems.
For those that are interested in perusing, there are many of the other Debian elections are available here:
I didn't find any other Debian elections that were as numerically interesting as the DPL2003 election, but please let me know if you find something. You can see all of the elections that I've converted to ABIF and published here (which is only 32 of them, as of this writing):
There are many other elections that could be converted with abiftool.py, which is a command-line interface to the same library used by the ABIF web tool. The user interface for abiftool.py and the ABIF web tool are admittedly a bit janky, but they work for me. Still, if you're a Python developer and/or a web developer generally, and you have time and interest in helping out, please get in touch. In addition, if you're interested in discussing electoral software in general, consider joining the recently created "election-software" mailing list:
The list is pretty low volume right now, but I haven't promoted it very widely yet. I'm hoping that many folks who are writing electoral software will join and either convince me to join their project or allow me to convince you to join the growing legions of developers writing software that supports ABIF.
:-)