<html><head></head><body><div class="ydpcf00fc0dyahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div></div>
<div dir="ltr" data-setdir="false">Interestingly Kristofer put the two methods together suggesting the simulation ran them as if they were they same method. I don't really know the difference between all the STV methods, but QPQ also got a score 0f 0.998 for 9 seats, suggesting it's up there as well. Do we know why Schulze outperformed the others for 5 seats but not 9?</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">Toby</div><div><br></div>
</div><div id="ydp75ef3b03yahoo_quoted_1145505876" class="ydp75ef3b03yahoo_quoted">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
<div>
On Sunday, 31 May 2026 at 10:34:43 BST, Etjon Basha via Election-Methods <election-methods@lists.electorama.com> wrote:
</div>
<div><br></div>
<div><br></div>
<div><div id="ydp75ef3b03yiv3363098413"><div><div>Thank you for sharing these Kristofer,<div><br clear="none"></div><div>Always a pleasure to see one's biases reinforced by independent sources, with such a total Warren/Meek STV victory over Schultze. If only Warren had outdone Meek, this would have been perfect.</div><div><br clear="none"></div><div>Best regards,</div><div><br clear="none"></div><div>Etjon</div><div><br clear="none"></div><div>The only thing th</div></div><br clear="none"><div id="ydp75ef3b03yiv3363098413yqt45435" class="ydp75ef3b03yiv3363098413yqt7804498335"><div class="ydp75ef3b03yiv3363098413gmail_quote ydp75ef3b03yiv3363098413gmail_quote_container"><div dir="ltr" class="ydp75ef3b03yiv3363098413gmail_attr">On Sun, 31 May 2026, 1:31 am Kristofer Munsterhjelm via Election-Methods, <<a shape="rect" href="mailto:election-methods@lists.electorama.com" rel="nofollow" target="_blank">election-methods@lists.electorama.com</a>> wrote:<br clear="none"></div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;" class="ydp75ef3b03yiv3363098413gmail_quote">So I implemented a quick version of a spatial Droop proportionality measure:<br clear="none">
<br clear="none">
The voters are drawn from a standard normal over a 1D opinion space, and <br clear="none">
the candidates are drawn either from the same standard normal or a <br clear="none">
uniform distribution (odd iterations use one, even iterations use the <br clear="none">
other).[1] Each voter ranks the candidates in distance (and rates them <br clear="none">
according to negative distance).<br clear="none">
<br clear="none">
The "ideal" kth candidate is the k/(s+1)th quantile of the (drawn) voter <br clear="none">
distribution; the error is then the square root of the sum of squares <br clear="none">
between each ideal kth candidate and the kth candidate actually elected <br clear="none">
(in order from leftmost to rightmost).<br clear="none">
<br clear="none">
So, for instance, if it's a two-candidate election and the voters' <br clear="none">
quantiles are -0.43 and +0.43, and method X elects candidates who are at <br clear="none">
-0.27 and +0.34 respectively. Then the error for method X in that <br clear="none">
election is the Euclidean distance between (-0.43, 0.43) and (-0.27, <br clear="none">
0.34) ~= 0.184.[2]<br clear="none">
<br clear="none">
I then calculated the VSE over this measure with 4096 voters, 10 <br clear="none">
candidates, and different numbers of seats. Here are some results with <br clear="none">
some comments afterwards.<br clear="none">
<br clear="none">
Note that a bad result (low VSE) only gives an indication that the <br clear="none">
method doesn't select candidates close to the Droop quantiles, but not <br clear="none">
*why*. It doesn't distinguish between that happening because the method <br clear="none">
has a different notion of proportionality, or because it has no such <br clear="none">
notion and is all over the place.<br clear="none">
<br clear="none">
(I'd like to implement something that determines what that notion of <br clear="none">
proportionality is if there is one. But I should read Ryan's post more <br clear="none">
thoroughly before I do that.)<br clear="none">
<br clear="none">
2 seats:<br clear="none">
Name VSE<br clear="none">
Log-penalty voting -1.47<br clear="none">
Random ballots 0.29<br clear="none">
Isoelastic (r=1) 0.32<br clear="none">
Isoelastic (r=10) 0.37<br clear="none">
Schulze STV 0.45<br clear="none">
SNTV 0.46<br clear="none">
QPQ (0.01) 0.47<br clear="none">
Psi voting (delta=0) 0.52<br clear="none">
Psi voting (Sainte-Laguë) 0.55<br clear="none">
Psi voting (d'Hondt) 0.56<br clear="none">
QPQ (Sainte-Laguë) 0.59<br clear="none">
Isoelastic (r=2) 0.64<br clear="none">
(Bloc) Normalized 0-20 Range 0.65<br clear="none">
(Bloc) Borda 0.68<br clear="none">
PSC-CLE 0.72<br clear="none">
QPQ (d'Hondt) 0.79<br clear="none">
Meek/Warren STV 0.80<br clear="none">
STV 0.80<br clear="none">
STV-ME(Schulze) 0.80<br clear="none">
Harmonic voting (delta=0.02) 0.80<br clear="none">
Harmonic voting (d'Hondt) 0.87<br clear="none">
Harmonic voting (Sainte-Laguë) 0.93<br clear="none">
<br clear="none">
5 seats:<br clear="none">
Name VSE<br clear="none">
Log-penalty voting -1.36<br clear="none">
Isoelastic (r=10) -0.30<br clear="none">
Schulze STV 0.21<br clear="none">
QPQ (0.01) 0.32<br clear="none">
Isoelastic (r=1) 0.36<br clear="none">
Psi voting (delta=0) 0.39<br clear="none">
Random ballots 0.38<br clear="none">
Psi voting (Sainte-Laguë) 0.40<br clear="none">
Psi voting (d'Hondt) 0.41<br clear="none">
(Bloc) Normalized 0-20 Range 0.44<br clear="none">
Isoelastic (r=2) 0.44<br clear="none">
(Bloc) Borda 0.49<br clear="none">
Harmonic voting (delta=0.02) 0.59<br clear="none">
SNTV 0.67<br clear="none">
Harmonic voting (d'Hondt) 0.76<br clear="none">
PSC-CLE 0.81<br clear="none">
QPQ (Sainte-Laguë) 0.83<br clear="none">
Harmonic voting (Sainte-Laguë) 0.89<br clear="none">
STV 0.94<br clear="none">
QPQ (d'Hondt) 0.94<br clear="none">
Meek/Warren STV 0.94<br clear="none">
STV-ME(Schulze) 0.96<br clear="none">
<br clear="none">
9 seats:<br clear="none">
Name VSE<br clear="none">
Log-penalty voting -0.70<br clear="none">
Schulze STV 0.00<br clear="none">
Isoelastic (r=10) 0.10<br clear="none">
Isoelastic (r=1) 0.19<br clear="none">
Random ballots 0.41<br clear="none">
SNTV 0.57<br clear="none">
Harmonic voting (delta=0.02) 0.57<br clear="none">
QPQ (0.01) 0.57<br clear="none">
Isoelastic (r=2) 0.71<br clear="none">
(Bloc) Normalized 0-20 Range 0.71<br clear="none">
(Bloc) Borda 0.81<br clear="none">
Psi voting (d'Hondt) 0.82<br clear="none">
Psi voting (Sainte-Laguë) 0.82<br clear="none">
Psi voting (delta=0) 0.83<br clear="none">
Harmonic voting (d'Hondt) 0.90<br clear="none">
QPQ (Sainte-Laguë) 0.91<br clear="none">
PSC-CLE 0.92<br clear="none">
Harmonic voting (Sainte-Laguë) 0.95<br clear="none">
STV 0.98<br clear="none">
STV-ME(Schulze) 0.98<br clear="none">
QPQ (d'Hondt) 0.998<br clear="none">
Meek/Warren STV 0.998<br clear="none">
<br clear="none">
("Random ballots" is the method where one repeatedly picks a random <br clear="none">
voter and elects their favorite continuing candidate.)<br clear="none">
<br clear="none">
The most surprising part, to me, is the bad fit of Schulze STV and how <br clear="none">
little IRV's problems seem to generalize to STV, at least by this <br clear="none">
measure. It's also a bit surprising that for most tunable methods, <br clear="none">
d'Hondt does better than Sainte-Laguë, but for Harmonic the opposite is <br clear="none">
true.<br clear="none">
<br clear="none">
Harmonic seems to do better than Psi, just as it did in the my earlier <br clear="none">
simulations.<br clear="none">
<br clear="none">
In retrospect, it's not that surprising that Harmonic is beaten by <br clear="none">
ranked methods because it doesn't optimize the same thing (just like <br clear="none">
single-winner Range has a different objective than majority rule).<br clear="none">
<br clear="none">
If I were to guess, I'd imagine that there is some kind of property <br clear="none">
that, if passed, leads to good performance here; and STV passes its due <br clear="none">
to the way it works, but Schulze STV doesn't because it was designed <br clear="none">
primarily to be strategy-resistant. But that's just a guess.<br clear="none">
<br clear="none">
-km<br clear="none">
<br clear="none">
[1] My point with doing this was to penalize methods that just make <br clear="none">
assumptions about the voter distribution from the candidate distribution <br clear="none">
or vice versa.<br clear="none">
<br clear="none">
[2] Ideally, the error measure should be designed to generalize to <br clear="none">
something like the Sainte-Laguë index in the party list case, but I just <br clear="none">
chose something easy and broadly reasonable here.<br clear="none">
----<br clear="none">
Election-Methods mailing list - see <a shape="rect" href="https://electorama.com/em" rel="nofollow" target="_blank">https://electorama.com/em</a> for list info<br clear="none">
</blockquote></div></div>
</div></div><div class="ydp75ef3b03yqt7804498335" id="ydp75ef3b03yqt46702">----<br clear="none">Election-Methods mailing list - see <a shape="rect" href="https://electorama.com/em" rel="nofollow" target="_blank">https://electorama.com/em</a> for list info<br clear="none"></div></div>
</div>
</div></body></html>