STAR made clone-resistant is a Condorcet method (Ranked Score, Sorted Margins)

As a basic method, score voting is intuitive, reasonable and simple, but the lack of whole vote may be an impediment to public adoption.

STAR (Score + Automatic Runoff) addresses that by doing an automatic runoff between the Score winner and the runner-up, but is not resistant to the highest scoring faction running more than one candidate (i.e., it is not clone-resistant). It also does not have a clear extension to multi-winner.

After thinking about the problem for some time, I realized that the generalization of STAR is to find a Condorcet-winner, if one exists, or alter the score sum ranking as minimally as possible in order to achieve a ranking that is in order pairwise.

Back in 2005, Forest Simmons proposed a new method called Approval Sorted Margins. The basic idea of this method was that a ranking or rating would be combined with an approval threshold, and Approval would be used to automatically handle any Condorcet cycles in the pairwise contests.

The way Sorted Margins works is based on an initial ranking sorted in decreasing order of an approval metric. One could sort this ranking by pairwise contests using Bubble or Sink sort, but neither of those would be symmetric. So the question is, how does one sort based on an approval rating seed, with minimal impact to the initial order?

In Sorted Margins, the ranking is successively examined, and the pairwise out-of-order pair with minimum approval margin is swapped, until there are no longer any pairwise out-of-order pairs. This is symmetric and modifies the initial seed order as minimally as possible.

If there is a Condorcet winner, that candidate will automatically sift upward to the top of the ranking. Similarly, if there is a Condorcet loser, that candidate will automatically sift downward to the bottom of the ranking. And clones are also handled automatically, since they would sift upwards or downwards together.

In considering how Approval Sorted Margins could be adapted to a multiwinner method, I recalled a quota-based Range Reweighted Voting method I had worked on back in 2011:

I didn’t pursue it further because of the reasons I already discussed about plain Range Voting.

But this method could easily be adapted to use Sorted Margins, if the approval rating seed uses Score Sums instead of Approval (from an approval cutoff). It turns out that what I’m calling Ranked Score Sorted Margins gives virtually the same results as Approval Sorted Margins when the score range is large enough (0 to 5 or larger), and is as easy to explain and use as basic Score Voting.

Ranked Score Sorted Margins is Condorcet Winner, Condorcet Loser, Monotonic, Clone Immune, Chicken Dilemma resistant, and more resistant to Burial strategies than other clone-immune Condorcet methods such as Schulze, Ranked Pairs or River.

Toward that end, I wrote a quick python script to implement the method. It is the program in the GitHub repository

If you don’t have a system with Python and NumPy available, send me an example and I would be happy to run it for you.