How to fix voting by popularity

At SURHUL, the Student’s Union of Royal Holloway, University of London, we have a problem. I’m sure it’s not an uncommon one, particularly at student’s unions.

Our electoral system is essentially a popularity contest. Manifestos, campaigning and student outreach have very little impact on the results. Many positions are uncontested and whoever runs wins by virtue of being the candidate who is running; people assume that this means that they care about the position enough to run, and that’s enough for them.

I don’t think this is a good way to run elections, and it’s not something that should be encouraged. But it’s something that can be very easily fixed, or at least I think so.

Essentially- why not make the candidates unlisted? Let’s say there’s a candidate running for a position- let’s call them John Smith. They’ve been out hard campaigning throughout the week, and you’ve just gotten canvassed by this candidate on your way to the library. You sit down and decide you should probably vote, so you grab your laptop or a public terminal and load the website up, log in… and vote.

But here’s the crucial bit. We use alternative transferable vote for most of our elections, which requires you to put a number by each candidate, ranking them in priority. There are also two meta-options: re-open nominations (RON), and no further preferences (NFP). The way this is presented to you is as a list of all candidates, followed by the NFP/RON options, and you just type in a number by each option in descending order of preference.

The lazy voter just sticks a 1 by the only candidate and hits vote. If we’re lucky (in terms of improving democracy) they vote for RON as their second preference, or maybe they even vote RON for first preference. In terms of improving democracy by encouraging people to go out and canvass for their position (which is more likely to discourage people running for the sake of running/sticking it on their CV and encourage people who care enough about the position that they’re willing to go out and get people voting for them), the ideal option is that people vote for people they’re aware of through canvassing (online or in person) and vote RON for any positions they’ve not had any contact from people over.

So how can we encourage this over the default impulse to vote for whoever’s running? Simple- we remove the candidate’s names from the ballot. “What on earth is he on?”, you may well be thinking. Well, here’s the thing- if we remove people’s names and require people to actually enter the name of a candidate they want to vote for, people cannot just vote for people because they’re running; they won’t know who is running, if anyone. Of course, they can go find out who is running by looking at the candidate and manifesto listings. But this encourages people to find out more about who they’re voting for, and discourages lazy voting- both good things for democracy. Canvassing gets your name into people’s heads (and, through flyers etc, into people’s hands, making the process of voting even easier).

And because our votes are 100% online, the process of typing in someone’s name can be made easier – if we want to vote for John Smith, we type J and are immediately autocompleted to John Smith. This entry is now an entry we can put a preference number by (or in perhaps a better UI, we could have draggable lists to make specifying preference easier). This stops people with complex names from being disadvantaged against other candidates in elections.

So with this system, the view that would greet you on any election position vote page would be “Hello, this is the election for the position of X. Type a candidate’s name in below, re-order the entries so the option you most want to win is at the top and no further preferences is above any entries you don’t want to cast a vote for, and press vote”. Voters would either just click vote to vote for re-open-nominations, or could go look at the manifestos etc and see who’s running and why, type in the people they want to vote for, drag the markers around, click vote, confirm their vote after seeing a screen detailing their vote, and then they’re done. Simple as that.

I figure I might do a quick proof of concept system that demonstrates what I’d imagine a voting UI to look like that used this system. I don’t see any major downsides to this system, but I’d love some feedback if I’m missing something obvious. And if people think it’s a good idea, who knows- maybe we’ll get this to a general meeting and see about making it the standard, or at least get it trialled.

5 thoughts on “How to fix voting by popularity”

  1. Hey James!

    This sounds like a pretty cool idea – and it might be worth getting some feedback from ERS on it, too!

    However, the only problem I can forsee is that two candidates with the same name – let’s say Peter, might fall foul of auto-complete…thoughts?

  2. In the case of two people with identical first names you provide both names in a drop-down, randomly ordered, for the user to select. Pretty straightforward solution that I don’t think poses any problems.

    I’m currently working on an implementation of this called StrongATV which implements this user interface as well as a fairly sophisticated cryptographic security system that is extremely resistant to tampering and is designed with the following in mind as a set of security guidelines (shamelessly stolen from Applied Cryptography, chapter 6.1- Esoteric Protocols: Secure Voting)

    1. Only authorized voters can vote.
    2. No one can vote more than once.
    3. No one can determine for whom anyone else voted.
    4. No one can duplicate anyone else’s vote.
    5. No one can change anyone else’s vote without being discovered.
    6. Every voter can make sure that his vote has been taken into account in the final tabulation.

    The name StrongATV refers to both the security and cryptographic features as well as the fact that it’s opinionated software – it aims to strongly encourage good democratic behaviour through the design and implementation.

    Also, ERS? As in the electoral reform society?

    Edit for the compsci crowd: Here’s my (really early and done with no sleep in the midst of loads of Java, so probably crap) initial plan on storing vote data in StrongATV. tl;dr: Public key on server to encrypt votes, sequential and unique ID (linked through one-way hash) per election to spot discontinuities from tampering, unique ID given to users to allow them to check their vote was tabulated and not tampered with, decrypt is done at tabulation time with a private key uploaded to the server by the returning officer, tabulation is done, and the passphrase forgotten and private key destroyed from server; the key gets generated at start of elections and stored on a USB stick in a safe by someone who doesn’t know the password to decrypt the private key. Buddy system combined with good crypto = exceptionally tamper-resistant system, as far as I can make out. Not perfect, but it can’t be, so hey.

  3. I think first we should at least fix the voting system so that it has basic validation. I mean I’ve noticed that even now the voting is online, there are still so called “spoiled votes” in the ballot. There needs to be some system so that a ballot cannot be submitted unless it is valid.

    As for this system, I’m not sure how effective it would be in practice. It assumes ironically that people are not lazy and will make an effort to type in a name. At best this system will further fix voting by popularity (since people will just type in the name of the first name they can remember), at worse it will lead to most people voting RON for a lot of the positions.

    Not to mention this system would then become discriminatory since if someone is dyslexic then its massively unfair to expect them to have to spell the candidate’s name.

    One other approach would be to apply an exception to the normal voting rules for the case where only one candidate is running. If only one candidate is running, then it should be mandated that they MUST achieve over double the number of R.O.N votes in order to win the position

    1. Not to mention it would also lead to perfectly good candidates being left out simply because they have a complicated name

    2. Regarding dyslexia: They wouldn’t have to spell the name out, just a first letter, which would be listed on another page for them to read/copy-paste. I don’t think that’s a massive issue (I’m not an expert on dyslexia!) but if it is then obviously another solution would be needed. How about this: You have a button to bring up the candidate’s manifesto pages, and at the bottom of each manifesto is a big button marked ‘Add this candidate to my vote’. Press it and the candidate appears in your vote.

      Perhaps fixing voting by popularity is not the best overall title – this is more about encouraging good democratic process (ie voting for people whose _policies_ they agree with and who they feel will actually do a good job – as one example take Ines Borski who won in the last elections despite not even researching the position she was running for (or knowing about it – she changed what she was running for last-minute!)), which I feel is something that can be done through good design. A lot of voting is psychology, clearly, and designing the user experience around how people vote to encourage good process and strong democracy is the way to go.

      I would suggest that, in terms of encouraging strong democracy, having most people vote RON is actually exactly what should happen if the conditions arise to let it happen. If people vote for anyone it should be because they think they’re a good candidate. Not because they can!

      Achieving double RON’s votes is actually trivial and I don’t think would solve anything.

      I’m confused as to how online votes can be spoiled; I tried to spoil my vote as part of first testing the SURHUL online votes, and you certainly can’t do it through the web interface. I didn’t try sending raw POSTs, though.

Comments are closed.