Swiss Pairings, Explained
After reading this you will know how a Swiss tournament pairs its next round from the current standings, why players meet opponents on the same score, and how to check a pairing table by hand for a small event.
What Swiss pairing is
A Swiss tournament runs a fixed number of rounds. In each round every player meets one opponent, and the system tries to match players who have scored the same so far. Nobody plays the same opponent twice. Unlike a round-robin, where everyone eventually plays everyone, a Swiss event with 6 players might run only 3 or 4 rounds and still separate a clear winner.
Here is the hook. Suppose 6 players have finished two rounds. Alice and Bob both have 2 points, Carol and Dana both have 1, Erik has 1, Fred has 0. You cannot just pair "1 versus 2, 3 versus 4" from the standings, because Alice and Bob already played each other in round 1. The pairing has to look at both the scores and the history. That is the whole problem, and it is what the generator solves.
The result is a set of matches for the next round plus, when the count is odd, one bye. The winner of the event is whoever has the most points at the end. No knockout, no elimination.
When to use it, and when not
Swiss works well when you have many players and few rounds. With 32 players you need only 5 rounds to produce a meaningful ranking, because after each round the field splits into score groups and strong players quickly meet other strong players. A round-robin among 32 would take 31 rounds.
Use Swiss when time or venue limits the number of rounds, when you want every entrant to play every round (nobody is knocked out), and when you accept an approximate ranking rather than a proven one. Chess clubs, board-game conventions and esports qualifiers use it for exactly these reasons.
If your field is small enough that everyone can play everyone in the time you have, prefer a full round-robin: it produces a complete, fair result. Use the Round-Robin Schedule Generator for that. Switch to Swiss only when the round count is the binding constraint.
The pairing rule and the intuition behind it
Sort the players by score, highest first. Break each score into a score group: all players with the same points. Inside a group, the standard club method splits the group in half and pairs the top of the top half against the top of the bottom half.
Here n is the number of players in the score group, and i is a player's rank inside that group. So in a group of 4 ranked 1, 2, 3, 4, player 1 meets player 3 and player 2 meets player 4. The idea is that the strongest in the group should not immediately face the second strongest; you want the leaders spread across boards so the top spots stay contested.
Two complications force adjustments. First, a rematch: if the intended pairing repeats an earlier game, the generator backtracks and tries the next available opponent. Second, an odd group: if a score group has an odd number of players, one player cannot be paired inside it. That player floats down to join the group below.
- Score group
- All players tied on the same number of points before the round.
- Float
- A player moved into the next-lower score group because their own group had an odd size or a rematch could not be avoided.
- Bye
- The round off, worth a point (or half a point in some rules), given when the total player count is odd. It goes to the lowest-scored player who has not had one yet.
A worked example with six players
Reproducing the demo standings
Load the demo data. It reads:
| Player | Points | Opponents played |
|---|---|---|
| Alice | 2 | Bob, Carol |
| Bob | 2 | Alice, Dana |
| Carol | 1 | Alice, Erik |
| Dana | 1 | Bob, Fred |
| Erik | 1 | Carol, BYE |
| Fred | 0 | Dana |
- Score group 2 points: Alice and Bob. Pair them. But they already met in round 1 (Alice's opponents include Bob). Rematch. The group of 2 cannot pair internally without a repeat, so one player must float down.
- Float Bob down into the 1-point group. That group now holds Carol, Dana, Erik plus Bob, four players ranked Bob, Carol, Dana, Erik by points then order.
- Alice is now alone at the top with no legal partner above, so she floats down too and joins the working group. Handle the 1-point cluster carefully: the generator pairs from the top, giving each player the highest-ranked opponent not yet met.
- Take Alice first. She has played Bob and Carol. Her highest untried opponent is Dana. Pair
Alice vs Dana. - Take Bob next. He has played Alice and Dana. Highest untried is Carol. Pair
Bob vs Carol. - Remaining: Erik (1 point) and Fred (0). Erik has played Carol and taken a bye. Fred has played Dana. They have not met. Pair
Erik vs Fred.
The count is even (6 players), so there is no bye this round. Final pairings:
| Board | Player | Opponent | Note |
|---|---|---|---|
| 1 | Alice (2) | Dana (1) | float down |
| 2 | Bob (2) | Carol (1) | float down |
| 3 | Erik (1) | Fred (0) | float down |
Notice that both 2-point leaders had to be paired against 1-point players. That is the direct consequence of Alice and Bob having already met. Swiss cannot invent a fresh top-score opponent, so it pushes the leaders down one group.
An interactive to see rematches force floats
Reading the pairing table
Every row shows two players and, when relevant, a float flag. Read the flags first. A float tells you the pairing crossed a score boundary, which means a clean same-score match was not possible. In the demo, all three boards are floats, a sign that the small field and early rematches left little room.
Check the points next. A game between a 2 and a 1 (like Alice vs Dana) is a downfloat for Alice and an upfloat for Dana. Over several rounds you want to avoid floating the same player repeatedly, because it distorts their schedule strength. The club method here does not track float history across rounds, so watch for it yourself in longer events.
Common mistakes
The most frequent input error is forgetting a past bye. If Erik took a bye in round 2 and you omit it, the generator may hand him a second bye, or fail to see why his opponent list is short. Write BYE as an opponent exactly as the demo does for Erik.
Do not assume the top two players in the standings will meet. In the demo, Alice (2) and Bob (2) are the two leaders, yet they are paired against 1-point players because they already met in round 1. Ranking order alone never determines a Swiss pairing; history overrides it.
A second mistake is expecting a bye whenever a round "feels" lopsided. The bye appears only when the player count is odd. With 6 players there is no bye, even though every board is a float. A third mistake is mislabeling half-point scores. If your rules award 0.5 for a draw, write Alice, 2.5; Bob, Carol and keep the decimals consistent, or the sort into score groups will be wrong.
Related tools
If your event is small and you have enough rounds, a full round-robin gives a complete result where every pair meets once. The Round-Robin Schedule Generator builds those fixtures by the circle method and inserts byes for odd fields. Use Swiss when the round count is capped; use round-robin when it is not.
Frequently asked questions
How many rounds should a Swiss event have?
A common rule is \lceil \log_2 N \rceil rounds to find a single clear winner. For 6 players that is 3 rounds; for 32 players, 5 rounds. Add a round or two if you want a more reliable full ranking rather than just a top finisher.
Why did two players on the same score not get paired together?
Almost always because they already played. The generator backtracks past any rematch and takes the next legal opponent, which often means floating one player into an adjacent score group.
Who gets the bye?
The lowest-scored player who has not already had one. In the demo, if a seventh player with 0 points and no prior bye existed, that player would take it. Byes usually count as a full point in the standings.
Does this follow the full FIDE rules?
No. It uses the standard club approach: top-down pairing with backtracking to avoid rematches, plus explicit floats. It does not implement the complete FIDE color-allocation and float-history rules. For a casual club or convention it produces sound, checkable pairings.
Can two players meet more than once?
Not while any unmet opponent remains. Only in the rare case where every legal pairing is exhausted (a very small field late in an event) might a rematch become unavoidable, and the generator will flag it rather than hide it.