Explaining … CPO-STV

I like explaining things so today I’m going to explain a voting system known as “CPO-STV”.

In my last two posts I explained two of my favourite voting systems. The Single Transferable Vote (STV) is a system which allows multiple candidates to be elected to Parliament from a constituency in a way that ensures that the overall number of seats given to each party will be roughly in line with what we’d expect if the election was held under a system of pure proportional representation, but at the same time leaves the choice of which specific candidate wins in the hands of the voter. The Condorcet system is a system for electing one individual, such as a mayor or a President, in a way which is as fair as possible: the winner is the candidate who is most acceptable to the most people and tactical voting has the least impact.

Is it possible to combine these two systems and create a system which has the best of both? Can we create a system which elects multiple candidates from a seat in a way which is proportional, but still ensures that each individual candidate is chosen on the basis of the broadness of their support and not any tactical considerations concerning who else is running? Yes you can! That system is called “CPO-STV” which stands for “Comparison of Pairs of Outcomes by the Single Transferable Vote”.[i]

To my mind CPO-STV is the fairest and best method for electing multiple candidates to a body like a parliament where proportionality between the political parties is important. You set up your constituencies just as you would for a classic STV election, and voters vote in the same way they do for a classic STV election: “rank your candidates in order of preference until you are indifferent.

None of the maths involved in CPO-STV is that hard but you have to consider many many many different combinations of votes so CPO-STV is always done using a computer to speed up the calculation process.

The first thing you do, although it doesn’t make a huge amount of difference, is decide which variant of STV rules and which variant of Condorcet rules you are going to use.[ii]

The second thing you do is you look at how many candidates there are, and how many seats you need to fill, and work out write down every single possible combination of winners. You quickly realise that you need a computer because there are a lot of them. Say there was even a very very simple election where there were three vacancies and seven candidates stood. Say the candidates are called A, B, C, D, E, F, and G. You have to consider an election where A,B and C win, an election where A, B, and D win, one where A, B and E win …. and so on. And then there’s also the election where B, C, and D win, where B, C, and E win… and so on. And so on. In total even for this very simple election there are 7C3 = 35 possible outcomes.[iii]

Here are the 35 different sets of winners you can get when you are electing 3 candidates and 7 have stood.

The third thing you do is you then pair up every single possible outcome with every single other possible outcome. So, for our election above, you’d then pair up Outcome 1 (ABC winners) with Outcome 2 (ABD), then you’d pair Outcome 1 with Outcome 3 (ABE), Outcome 1 with Outcome 4 (ABF)… and so on. Not to mention Outcome 2 with Outcome 3, Outcome 2 with Outcome 4 and so on. And so on. For all the possible outcomes. So if three candidates winning out of seven means 35 possible outcomes then 35 possible outcomes means 35C2 = 595 possible pairs of outcomes!

If you read my post on Condorcet you probably know where I’m going with this. Each of those 595 possible matchups is then treated like a duel under Condorcet rules. You fight all the duels and the outcome that wins all its duels is the overall winner. And those candidates are elected. So say in the election above after all the 595 duels are fought Outcome 7 (BCE) has won all its duels and beaten all the other Outcomes, then Candidates B C and E would be elected. And if there was some sort of tie between the outcomes then you’d use one of your tiebreak rules (discussed at the end of the Condorcet blog post) to resolve it.

So what rules are these duels fought under? The answer, rather brilliantly, is the Single Transferable Vote. You use STV not to decide who wins, but as a tool to analyse how happy people would be with a predetermined set of winners.

If you remember from the STV post, STV works by sequentially redistributing the spare surplus votes of candidates which have already won and then knocking out the least supported candidate and redistributing their votes.

In CPO you are doing something similar, but because you are using STV as a tool for comparison between two predetermined sets of winners, you don’t knock out candidates based on their performance. Instead you first of all eliminate, and redistribute under STV rules, the votes of all the candidates who lost in both the outcomes you are analysing. You then redistribute, under STV rules, the spare (surplus) votes of all the candidates who are guaranteed winners: in other words they were elected in both the outcomes you are analysing.

What this process does is use the rules of STV to squeeze as many votes as possible towards those other candidates: candidates that were elected in one of the outcomes you are analysing, but lost in the other. You are in effect asking the question “if this were how the first half of an STV election were to go, with one set of candidates definitely out, and another set definitely in, then where would the rest of the votes be? Who would those people back?”

You then do exactly that: you look at the votes you have squeezed towards those candidates. You award points to each outcome based on where those points have gone, the outcome with the most points wins the duel. And if it comes down to it, the points difference becomes the “margin of defeat” and you use that to break ties.

So say this duel is from the election I talked about above. Say this one duel pits Outcome 4 (A, B and F are victorious) against Outcome 7 (B, C, and E are victorious). So under both of those outcomes candidates D and G lost. So you take all the votes that were cast and you redistribute the votes cast for candidates D and G under the rules for STV. Under both of those outcomes Candidate B won. So you take any surplus votes that Candidate B doesn’t need and you redistribute them under the rules for STV. What you’re left with is a bunch of votes that have been pushed towards the other candidates: A, C, E and F. Then you go through and you give Outcome 4 a point for each vote that is now counted for candidates A and F (because they won under 4 but not under 7) and you give Outcome 7 a point for each vote that is now counted for candidates C and E (because they won under 7 but not under 4). Say 7 ends up with 100 points and 4 with 60 points. You write down “7 beats 4 by 40”, you reset all your votes to their starting positions, and then you do the same thing for the next duel. At the end you look to see which outcome has won all their duels, and that outcome gives you your winners.

And that is CPO-STV.


[i] It’s not actually the only method. There’s also “Schulze STV” but I don’t really like Schulze STV because as far as I can make out it’s essentially a simplified version of CPO-STV which still manages to be horrendously complicated. I don’t really see the point of simplifying something very complicated just a little bit, I think you should either simplify it a lot or not at all.

Personally I’ve never understood why we couldn’t have a system which combines STV and Condorcet in a much more straightforward way: using classic STV to find the winners but then, when there comes a time to eliminate a candidate, using Condorcet to determine which candidate should be eliminated. However, I’m not a professional mathematician and presumably either a) there’s a really good reason that this won’t work that I haven’t thought of or b) it turns out that mathematically that system would produce the same results as Schulze or CPO.

[ii] See footnotes from previous blog posts for the differences between those systems. You can use any form of STV you wish but since you are going to be using a computer anyway you might as well use one of the really accurate computerised ones like Meek or Warren. You can use any quota you want but CPO’s inventor — Nicholas Tideman — recommends the Hagenbach-Bischoff quota. I don’t really know why but I think it’s because, unlike with conventional STV, the smaller your quota is in CPO the more chances it gives to other candidates and so the more likely the final outcome will be proportional. Tideman invented the “Ranked Pairs” method of resolving ties in the Condorcet system so it is usual to use those rules, but it can work with any set of rules which deal with direct comparisons between pairs (Schulze, Minimax, Copeland).

[iii] It’s actually not quite this many. If a candidate has more first preference votes than the quota you set under the STV rules then there’s simply no way they can lose under CPO rules. So you don’t need to bother analysing outcomes which don’t feature those candidates winning and can discard them straight away.