Python Governance Electoral System

If no one beats me to it I can update the PEP to use Condorcet and a draft ballot tomorrow (and can lock the poll then).

I still don’t see the need as I think it’s pretty obvious we all want to move on. :slight_smile: But if people really want to have that field to almost automatically write the largest number (and thus the lowest ranking) on the ballot then fine by me.

I’ll plan to update the PEP to say we will hold weekly votes until the tie is broken which should be scary enough to get people to change on the first re-vote to break any tie/cycle. :wink: If someone wants to start a separate thread to discuss this and potentially hold another poll then that’s fine.


The beatings voting will continue until morale improves a winner is selected.

Seems fine to me, there’s only a 1.5% chance of hitting it if we have >= 21 voters, so we should probably be pretty unlikely to even hit that case anyways.


No one did, so I have closed the poll and updated PEP 8001 to use the Condorcet method and to re-open voting for a week at a time until no ties or cycles are found.


FYI I just adjusted “rules” of all votes in my PEP 8015, especially the most sensitive vote: elect members of the Steering Committee. I use a different voting method since voting for people is different than voting for a (governance PEP). I proposed that the vote to create the committee is organized by the PSF Board, but following votes will be organized by the current Steering Committee. Someone will have to provide a list of core developers to the PSF Board to organize the vote, since I proposed to not use GitHub but an online service like CIVS.

Well, I don’t really care of the exact service used to vote. The PEP 8001 doesn’t use secret ballots, but a Git repository where each vote will become public and clearly attached to a core developer. Again, voting on a PEP on voting on people are different :slight_smile:

But … I suspect 99.99% of the “real elections” referenced in that had no more than 3 viable candidates. We have a combination of a low number of voters with a high number of reasonable choices.

As a sanity check, I ran my own simulations using 100 voters each picking a full (no duplicate ranks) ranking of 7 candidates, picked uniformly at random from the 7! candidate permutations.

Slightly less than half(!) turned out to have a Condorcet winner. Worse, we won’t have 100 voters, and the fewer there are the worse the chances. Worse again, allowing rank duplicates also boosts the odds of not having a Condorcet winner.

Against that, rankings across voters in real life will doubtless be much more correlated than permutations picked at random, so “less than half” should be viewed as worst-case.

I don’t know how to model that, though. Cutting the number of candidates to 3 and voters to 21, about 92% had a Condorcet winner, far closer to the 98.5% cited in the quote. It’s easy to imagine that real-life ranking correlation closes that gap.

Heh - and going back to 7 candidates, changing the number of voters from 100 to either 99 or 101 boosts the Condorcet-winner rate to about 63%. When there are an odd number of voters, and equal rankings aren’t allowed, no one-on-one contest can tie. When there are an even number of voters, they can tie, and then there’s a substantial chance that “the best” candidate doesn’t lose any one-on-one contest, but does tie on at least one. Not a Condorcet winner then.

Another reason I like voting systems better when they’re not too clever for their own good :wink:.

Anyway, bottom line: best guess is that we’ve grossly overestimated the odds of getting a Condorcet winner on the first try, due to our unusual combination of relatively few voters faced with an unusually high number of viable alternatives. Still think we probably will, but it will no longer be a real surprise to me if we don’t.

A useful thing I added when I switched us to using CIVS is that if we get a tie, it serves to narrow down the field, so our tie breaker ends up being a sort of a run off. Whatever items end up being part of the smith set continue on to the next ballot. I’m guessing that in the case of a tie/cycle there are likely to be <= 3 choices in the smith set, which brings us back to better odds.

I originally did that primarily so people who didn’t care about which one of the tied choices won could just ignore the election at that point and since CIVS meant we couldn’t just extend voting for a week. Seems like it has a useful forcing function function here though.

1 Like

I noticed that, but didn’t say anything. It’s arguable. Not all Condorcet methods guarantee to pick the winner from the Smith set. Curiously enough, the method CIVS favors (Minimax-PM) may pick its winner from outside the Smith set. That method is trying to optimize a measure of utility, and when the Smith set isn’t a singleton there’s no reason to expect that measure to have much of anything to do with Smith set membership.

It is an attractive method because it finds the candidate who could become the Condorcet winner with the fewest number of additional ballots.

I’d prefer to be more flexible about this. If there is no Condorcet winner, I expect there will be discussion about the results; some authors will withdraw their PEPs; some will explain misunderstandings about their PEPs; some may even want to tweak their PEPs in response to the discussions

Which wouldn’t be a Bad Thing to my eyes at all. If people didn’t want a chance to reconsider, presumably they would have picked Schulze in the poll. Under the fantastic assumption that more than a handful of people had any idea what any of this stuff really meant to begin with :wink:.

So my major concern, is that the original system meant that if you were still fine with your ranking you could just check out at that point and no need to do anything else. However since CIVS doesn’t allow us to re-open an election and change how you vote, then we’re forcing everyone to re-vote in the run-off election or risk getting something chosen by the handful of people who bothered.

Neither option is inherently wrong, it basically just comes down to a trade off of allowing flexibility vs allowing people to more safely check out once they’ve voted once. Although I don’t think the old system allowed people to tweak their PEPs either, since that tweaking might invalidate the rankings.

1 Like

I understand the motivation. The rub is that restricting the next round to members of the Smith set is putting a thumb on the scale: not all well-regarded Condorcet methods pick the winner from the Smith set. Which nobody will care about until it’s their favorite PEP that’s thrown out because in the induced strongly connected components DAG their PEP happens to be in an equivalence class with a DAG predecessor. And, to me, it really is about as arbitrary as that sounds :wink:.

How about this instead? The next round contains the Smith set, and any PEP that would have won under any of the methods CIVS supports. Schulze and Ranked Pairs always do pick from the Smith set, but Minimax-MP (along with other minimax variants) does not. It’s not easy to make a case that any PEP outside that (possibly slightly larger) set could have won under any plausible deterministic Condorcet method.

This isn’t any harder. CIVS will tell us directly which PEP would have won under each method it supports. However, I don’t believe CIVS tells us what the Smith set is.

The best approach remains ensuring we have a Condorcet winner to begin with :wink:.

They have to when there is a Condorcet winner right? Otherwise they wouldn’t be a Condorcet method? So this is only the case when there isn’t a single item in the Smith Set (I say this only because I sat here reading this and it confused me at first because Condorcet criterion is related to the Smith Criterion).

Fun fact, not all Minimax variants pass the Condorcet Criterion at all.

Honestly, I don’t really care. I’m perfectly fine with anything, including just redoing the vote from scratch. I only picked the method I did to try and reduce the requirement people continue to pay attention after the first vote, as the original method did. I’d suggest writing up a PR to adjust the tie breaking procedure, I’m fine with whatever.

In my PEP 8015, I chose “The vote uses the Schulze/Beatpath/CSSD variant of the Condorcet method using an online service like Condorcet Internet Voting Service (CIVS).” I hesitate with Approval vote and Helios (which seems more secure than CIVS). But I’m not sure that it matters much. I suggest to use a second vote in a case of a tie (see the Python Steering Committee section for all details).

Right x 2.

Right. Satisfying Smith implies Condorcet is satisfied, but not necessarily the converse. As quoted before, in problem cases Minimax-PM picks a candidate that would require a minimal number of new ballots to become the Condorcet winner. So, in that sense, it’s looking for whichever candidate is “closest to” (by that metric) being a Condorcet winner. If the Smith set is a singleton, there’s nothing to do. But if there’s more than one Smith set member, being in the Smith set has nothing in particular to do with the minimum number of new ballots needed to become a Condorcet winner. Being in the Smith set then is simply irrelevant to that specific Condorcet method’s goal.

Hence my “well-regarded” qualifier earlier :wink:.

I’ll stop talking about this now - nobody really cares, the problems probably won’t come up, and if the sh*t hits the fan anyway everyone will ignore what the PEP says anyway :wink:.

As this thread has become very long and detailed (thank you to all who contributed thoughts), would anyone like to provide a three to five sentence summary of what the current consensus has evolved re: system to be used. Thanks!

It’s the current version of PEP 8001, which hasn’t changed in some time. The election will be held under the CIVS service, and the Condorcet winner (the one who beats all others in one-on-one contests) is the winner if it exists. There was broad consensus on that.

Donald made up :wink: stuff about what to do if a Condorcet winner doesn’t exist. There’s no consensus about that, because, best I can tell, Donald and I are the only two who have ever even mentioned that part of 8001. Nobody wants to talk about it.

A Condorcet winner probably will exist. If one doesn’t, I expect people will suddenly become interested in how to proceed, but I’m OK with what Donald put in 8001 (run another election involving only members of “the Smith set”). I’d prefer running another full election, because nobody really wants to endure understanding what “the Smith set” means. Perhaps it would be good enough to say that the Schulze method, and the ranked pairs method, always do pick their winner from the Smith set - although not all Condorcet methods do.

The rub here is that the winner in our poll - “pure Condorcet” - isn’t actually an election method. It’s a form of ballot, along with just one criterion for picking the inarguable winner if it exists. Which is why it took more than 5 sentences (sorry!) to explain all that.

1 Like

Thanks! That helps a bunch :smiley:

12 posts were split to a new topic: Does the Nov 16 - Nov 30 voting timeframe still work?

I don’t see a more current thread dedicated to PEP 8001, so I’ll post my comment here. @ambv recently urged everyone to read PEP 8001, which is why I’m posting now.

I want to suggest a small suggestion / clarification to the PEP text. My suggested wording change is at the bottom of this post.

At the end of PEP 8001, it says–

The chances of [a voting cycle] occurring when there are 21 or more voters, though, is less than 1.5%. [1]

[1] Voting Cycles

To me, this reads like it’s a statement of actual probability. But when you go to the referenced source, it’s an historical statement about certain past real-world elections: “Less than 1.5% of real elections lead to a chance voting cycle when there are 21 voters or more.” (This latter sentence is actually also a bit misleading because it reads as a statement in the present sentence about all real elections with more than 21 voters. But if you go to its source, it says it’s about ERS elections that were analyzed, “However, there are only 101 voting cycles (1.45 percent) among the 6,794 ERS elections with 21 or more voters.”)

Also, a couple sentences later, it says, “But on a small council with 3 factions, inadvertent ties are more common [than 10%].”

In our case, it seems possible that the chances of a cycle could be much higher than 1.5% (like the small council example referenced above). This is because our election seems unusual in certain ways. I don’t have a good understanding of the factors that increase the likelihood of a cycle, but in our case there are a large number of options, a number of which could have strong or roughly equal support (though I haven’t been following the discussions enough to know). This is different from most elections I’ve seen.

So maybe that sentence should be qualified more. Perhaps–

For one analyzed set of real-world elections with 21 voters or more, a cycle occurred less than 1.5% of the time. [1]

Fun postscript: The inventor of 3-2-1 later discovered this thread, and apparently is a big fan of :-):


If you are not exhausted by the discussion or you want a video summary, I found this video to be entertaining and educational:

One of the key points is that it has been proven you can’t have a voting system that doesn’t have at least one of these properties:

  • The system is dictatorial
  • The system is rigged against one of the candidates
  • The system is not strategy-proof

Since the first two properties are highly-undesirable, we are left to choose between systems that minimize the amount of strategy (i.e. minimize insincere voting). The 3-2-1 system has been specifically designed to minimize strategic voting and according to vote simulations does a good job at it.