Schulze method calculator

Paste the ballots — one person per line, options in order of preference — and this runs the Schulze method (also called the beatpath or path-winner method). It builds the pairwise matrix, finds the strongest path between every pair of options, and returns the Schulze winner plus a full ranking. It's a Condorcet method: whenever a Condorcet winner exists it picks it, and when preferences cycle it resolves them by comparing beatpath strengths. Everything runs in your browser; nothing is uploaded.

Separate each ballot's options with >, a comma, or a tab. Names are matched case-insensitively. A ballot may rank as few options as the voter likes — any options it leaves off are treated as tied below the ones it ranked. You can also prefix a line with a count, e.g. 8: E>B>A>D>C, to enter identical ballots at once.

What the Schulze method does

The Schulze method is a Condorcet completion rule: it always elects the Condorcet winner (an option that beats every other head-to-head) when one exists, and it has a principled way to break the tie when preferences cycle. It does this with the idea of a beatpath. A direct win from A over B has a strength equal to the number of voters who prefer A to B. A path A → X → B is only as strong as its weakest link, and the strongest path from A to B is the strongest such chain. A beats B in the Schulze sense when the strongest path from A to B is stronger than the strongest path from B back to A. The option that isn't beaten by any other on beatpaths is the Schulze winner.

How this calculator counts

Who uses it

The Schulze method is one of the most widely adopted Condorcet methods in real organizations — it has been used for internal elections by projects and groups such as Debian, Ubuntu, the Wikimedia Foundation, the Free Software Foundation Europe, and several Pirate Parties. It's popular because it satisfies a long list of fairness criteria (Condorcet, monotonicity, clone-independence, reversal symmetry) while still always producing a winner.

A worked example — resolving a cycle

When majorities point in a circle — A beats B, B beats C, C beats A — a plain Condorcet check reports no winner. The Schulze method looks past the direct wins to the strengths of the whole network of beatpaths and picks the option whose paths dominate. Load the example above (five voters over Left / Center / Right) to see the pairwise matrix and the strongest-path table side by side; here Center's beatpaths dominate, matching the Condorcet compromise winner.

Schulze vs. other methods

Unlike instant-runoff (RCV), which can eliminate a broadly-liked compromise early because it only looks at first preferences each round, the Schulze method weighs the entire pairwise network, so it never drops a Condorcet winner. It differs from the plain Condorcet/Copeland tie-break by using path strengths rather than a simple win count, and from the position-scoring Borda count entirely. Running the same ballots through every method at once is the quickest way to see how sensitive your result is to the rule. Want each person to submit their own ranking instead of pasting? Create a shared rankit poll — one link, no signup.

Common questions

Is there always a Schulze winner? Yes. Even when preferences cycle, comparing strongest paths always yields at least one unbeaten option, so the method never fails to produce a winner.

Does it agree with Condorcet? Whenever a Condorcet winner exists, the Schulze method elects it. They only differ when there's a cycle.

Do ballots have to rank every option? No. Unranked options are treated as tied at the bottom of that ballot.

Is anything sent to a server? No. The whole count runs in your browser, so you can paste real ballots safely.