Loomio

Ranked Pairs Voting Method

Martin Adams PublicSeen by 69

Have you considered implementing the Tideman "Ranked Pairs" Condorcet voting system?

From what I can tell, it seems like the most socially-just voting system out there. The wikipedia article can explain it better than me. https://en.wikipedia.org/wiki/Ranked_pairs

Martin Adams

Ah, thanks, Steve, that makes sense.

Steve Phillips / @elimisteve

:-) The point system described above is called the Borda Count: https://en.wikipedia.org/wiki/Borda_count

There's also Approval Voting, which each voter casts a vote for their favorite some-number-of candidates. Majority voting is a special case of this, where voters vote for their top 1 favorite candidate only.

Steve Phillips / @elimisteve

I faced a similar issue when working on a new philosophical methodology I created, Executable Philosophy. Instead of choosing one particular vote aggregation method (e.g., majority voting or Condorcet voting), I ended up creating a meta-aggregation method that determined an overall winner based upon which one was considered to be the winner according to the greatest number of individual aggregation methods.

def metatheory_simple(prefs, theories=all_theories):
    '''
    Which candidate do most theories consider to be the winner?
    '''
    borda_winner     = borda(prefs)
    condorcet_winner = condorcet(prefs)
    approval2_winner = approval_2(prefs)
    approval3_winner = approval_3(prefs)
    majority_winner  = majority(prefs)

    winners = (
        tuple([borda_winner]),
        tuple([condorcet_winner]),
        tuple([approval2_winner]),
        tuple([approval3_winner]),
        tuple([majority_winner]),
    )

    return majority(winners)

Martin Adams

Cool, thanks! The Borda count, especially the Quota Borda System, seems like a more feasible alternative. I’ve begun watching your video on Executable Philosophy, will take me some time to understand it. I like the premise of it so far—that philosophy ought not to be ambiguous, among other things.

James Kiesel

As with anything, if there's enough stimulus from the community, either in terms of developer energy or (paying) customer feedback, this is a thing that could happen. The codebase is somewhat decently set up at this point to slide this kind of functionality alongside what exists already, and so maybe someone could take an interest in coding up a prototype of a Ranked Pairs plugin.

I'll say that my personal gut reaction to most voting systems (especially ones that require a wikipedia page to explain them), is that they're too complicated to be used outside of very specific communities.

Martin Adams

Great, @jameskiesel. Perhaps I’ll code something like that one day. Though I will say that I just don’t know the Ranked Pairs or the Borda Count methods well enough yet to be able to explain them simply. So less a reflection of the sophistication of these methods, and more a reflection of my being new at this topic of voting systems.

Steve Phillips / @elimisteve

For the Borda Count, the user instructions would simply be, "rank these options from first to last".

Jeremy Entwistle

Each of the groups should be allowed to set a default voting method. That all the proposals will adhere to that method of voting unless changed otherwise. Such that proposals can use either the standard voting method, rank choice, or others. In addition, other parameters should be allowed to be set too. As with the standard method, another parameter would be what constitutes as passing with a yes or no vote (majority, super majority, etc).

Furthermore, the settings for a group can be determined by the aggregation of user settings. Such that if one user likes the standard method, while most other users prefer rank choice, then it sets it to rank choice.