[EM] Some ways to extend social rankings to scores

Kristofer Munsterhjelm km-elmet at munsterhjelm.no
Tue Feb 10 05:02:08 PST 2026


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%)


More information about the Election-Methods mailing list