Voters rank the candidates; a rule turns those ballots into a winner. But which rule? Plurality, Borda, instant-runoff and the Condorcet method can each crown a different winner from the very same votes, and sometimes the majority's will cycles with no winner at all. Live runs the real Python engine in your browser via Pyodide.
The same ballots, four rules. Watch where they agree and where they don't.
An arrow A → B means a majority prefers A to B (the number is the margin). One candidate beating everyone is the Condorcet winner; a loop is the paradox: no winner.
Each column is a bloc of voters sharing one ranking, first choice at the top.
First-place votes (what plurality counts) vs Borda points, normalised. Different rules reward different things.
Switch Mode (lower left) to Live · Python for a three-candidate (A, B, C) sandbox, then rebalance the three cyclic blocs; the winners and the cycle shift live.
A candidate who can't win still changes who does, by splitting a bloc. Plurality is uniquely vulnerable; ranked methods recover the majority's real preference.
How vote-splitting worksA beats B, B beats C and C beats A, all by majority. Collective preference need not be consistent, even when every voter is. There may be no Condorcet winner.
The Condorcet paradoxIt isn't that one method is simply right. Arrow's theorem proves no ranked rule can satisfy a few basic fairness axioms at once, so trade-offs are unavoidable.
Arrow's theoremLoad "All four rules disagree": one electorate, four legitimate winners. Choosing the voting method is itself a political decision, made before any vote is cast.
Why it matters