Some ways to extend social rankings to scores
Kristofer Munsterhjelm via Election-Methods <[email protected]> Tue, 10 Feb 2026 14:02:08 +0100
| Newsgroups | gmane.politics.election-methods |
|---|---|
| Message-ID | <[email protected]> |
Suppose we want to make a method return not just who won (and the order of finish), but how well each candidate did - how close to each other the candidates were - by also returning a score for each. (See the end of the post for 2009 Burlington results :-) This is easy in FPTP: just count the number of first preferences and divide by the number of voters. But suppose that we'd like to have less of a spoiler effect than FPTP *and* return scores. Ideally, we'd like the scores to not be affected by what other candidates are running. But that's impossible, at least for a majoritarian method. Let's say that we have three candidates: A, B, and C, and it's a Condorcet order: A beats B and C, B beats C, and C is the Condorcet loser. Say furthermore that B's win over C is 75-25, and A's win over B is 60-40. Then the straightforward scores if only two of them were present would be (as pretty much every method, including FPTP, would tell you): In A vs B: A: 60% B: 40% In B vs C: B: 75% C: 25% The very strictest IIA interpretation would have these scores not change when the third candidate is introduced. (That's what cardinal methods with absolute interpersonal comparability do.) Since there's a Condorcet order, the *ranking* of the other candidates don't change when we introduce a third, e.g. A>B becomes A>B>C after adding C, B>C becomes A>B>C after adding A. But if the scores were to stay the same, then B's score would have to be 40% and 75% at once. That's clearly impossible. So majoritarian methods' scores, if they're numbers on a scale, must to some degree be relative. I've found two ways to more or less consistently normalize the scores to the number of candidates. One is to keep the top two scorers' score the same, and the other is to make the scores sum to 100%. (For lack of a better term, I'd call the first "minmax-style" because that's what minmax does.) I've also found two ways to calculate these scores - one that's appropriate for LIIA methods, and another that should work on a much broader range of methods. So let's do the calculation types first: The LIIA style is this: Suppose that candidates are ordered x_1 > x_2 > x_3 > ... > x_n, and the pairwise victory of x_k against x_(k+1) is d(x_k, x_(k+1)). Let the score of candidate x_k be s_k. Then set s_(k+1)/s_k = d(x_k, x_(k+1))/d(x_(k+1), x_k) for k = 1..n-1. This is a set of n-1 equations with n unknowns: the normalization method fixes the last unknown. For the A>B>C example above, we'd have: s_A/s_B = 60/40 s_B/s_C = 75/25. The nice thing about this approach is that the relative scores of adjacent candidates stay the same as long as the social ranking/ordering stays the same; in particular when losers or winners drop out and the method passes LIIA, the relative scores of the other candidates stay the same. The plump style that's applicable to more methods is this: For each non-winning candidate x_k, let P_k be the number of plump/bullet votes for x_k that have to be added to the election to make x_k the winner. Let P_none be the number of such votes that have to be added for a new candidate (that currently has no support) to win. Then set up a linear scale that maps 0% to P_none, and set x_1/x_2 = d(x_1, x_2)/d(x_2, x_1).[1] This again has one more unknown than equations (the rate of change of the linear scale, or equivalently, the "virtual" negative value P_1 that should be assigned to a winner, since the winner needs no plump votes to win). And again, the normalization choice determines that unknown. Now for the normalization approaches: Minmax style is simply this: Let the winner x_1's score be d(x_1, x_2)/d(x_2, x_1), so that the top two's scores stays the same no matter how many losers are removed from the election (assuming LIIA). For the A>B>C example and LIIA-style relative scores, that gives: s_A: 0.6 s_A/s_B = 60/40 = 0.4 s_B/s_C = 75/25 = 2/15 = 0.1333... so A: 60% B: 40% C: 13.3% Sum-to-100% is just what it says. For the A>B>C example: s_A/s_B = 60/40 s_B/s_C = 75/25 s_A + s_B + s_C = 100% which gives s_A = 9/17 = 52.9% s_B = 6/17 = 35.3% s_C = 2/17 = 11.8% Finally, here are the different scores for the Burlington election with RP(margins) as the base method for the plump calculations: (Minmax style) Candidate LIIA-relative % Plump-based % Montroll 53.91% 53.91% Kiss 46.09% 46.09% Wright 43.42% 43.53% Smith 41.43% 38.67% Simpson 5.36% 7.78% Write-in 0.26% 1.15% (Sums-to-100) Candidate LIIA-relative % Plump-based % Montroll 28.38% 28.21% Kiss 24.20% 24.11% Wright 22.80% 22.78% Smith 21.75% 20.23% Simpson 2.81% 4.07% Write-in 0.14% 0.60% Minmax-style is more like "approval ratings" while sums-to-100 is more like "how big a share of the total". I'd be inclined to say sums-to-100 is more natural given that ranks are relative anyway, but what do you think? -km [1] Alternatively make the algorithm accept negative ballot counts and see how many negative plump votes have to be added until adding more makes the winner lose, and fix the scale so that zero plumpers added would give 50%. "Negative plumping" like this is possible with ranked pairs, and the values and two scale points determine the system, thus making normalization unnecessary. It gives results similar to minmax-style, but slightly different (e.g. Montroll gets 54.44% instead of 53.91%) ---- Election-Methods mailing list - see https://electorama.com/em for list info