Swiss vs round-robin: pairing 24 players in one chess club evening
Roberto Delgado ยท 10 September 2026
A club tournament director's first instinct is usually "have everyone play everyone else" โ it is the fairest thing you can say out loud, and for eight players it is also the right decision. The numbers quickly stop adding up, and chess is the sport where the gap between "fair in theory" and "fair given the time available" becomes apparent fastest.
What a round-robin tournament really costs
A round-robin tournament requires N โ 1 rounds for N players to face each other once, and in each round there is one empty board for every pair not yet matched if you try to run it in parallel on too few boards. For 8 players that is 7 rounds โ a long day, but doable. For 24 players it is 23 rounds. No club evening, and no club weekend, has 23 rounds in it. Round-robin does not get progressively harder as the field grows โ it becomes impossible.
What Swiss pairing gives you back
Swiss pairing does not try to have everyone play everyone. It aims to rank the field using as few games as possible, pairing players who currently have similar scores and letting the standings emerge from a small number of rounds instead of a full round-robin. The number of rounds needed scales with the logarithm of the player count, not the count itself: rounds = ceil(log2(N)), with a floor of one round. For 24 players that is ceil(log2(24)) = 5 rounds โ an evening, not a month.
Under the hood, the pairing for each round does not follow the old "solve the top bracket first, then the next, and never revisit it" approach. It is resolved as a single minimum-weight matching across the whole field at once, so a pairing decision in the bottom half can still respect constraints from the top half in the same round. Two rules are enforced almost without exception: no rematches, and (where relevant) no repeated pairing between players from the same club or federation below the top group. These are not soft preferences nudged by a small penalty โ the pairing engine removes the forbidden pairings from consideration first, and only allows them back in, at a deliberately enormous cost, if the alternative is failing to pair someone at all. An odd player draws a bye, scored as a win, rotated so the same person is not left out twice.
24 players, one evening: the actual numbers
| Round-robin tournament | Swiss system | |
|---|---|---|
| Rounds required | 23 (N โ 1) | 5 (ceil(log2(24))) |
| Every pair meets? | Yes, exactly once | No โ usually only players with similar scores meet |
| Fits in one evening? | No | Yes |
| Result at the top | No ambiguity โ complete results matrix | Often a tie on points; resolved by tiebreak |
What happens when players tie
Five rounds among 24 players usually leaves two or three people tied at the top โ nobody has played everyone else, so a tied score does not mean an identical run of opponents. The usual fix is tiebreak criteria based on the difficulty of the schedule, not an extra game: Sonneborn-Berger (the sum of the scores of the opponents you beat, plus half the scores of those you drew with) rewards beating strong players over padding a score against weak ones; Buchholz (the sum of opponents' scores) is the plainer, older cousin of the same idea. This app resolves ties in that order โ head-to-head result first if the tied players met, then Sonneborn-Berger, then Buchholz, then raw win count โ which is standard chess practice, not an arbitrary house rule. It is worth publishing the tiebreak order before round one, because it changes who a player "should" want to face in the last round.
Draws matter for the same reason: chess awards 1 point for a win, ยฝ for a draw, 0 for a loss, so two players can tie on points without an identical won-lost record, and the tiebreak has real work to do.
When round-robin is still the right call
- Small, closed groups. Eight players, one weekend, 7 rounds โ round-robin gives an unambiguous result and nobody misses facing a rival. This is the classic format for high-level round-robin tournaments for a reason.
- Rating is not the point. A friendly club atmosphere where "everyone plays everyone eventually" matters more than crowning a single winner quickly.
- You have real time. A multi-week league can spread 23 rounds over a season, one a week. It stops being a same-evening problem.
And the reverse: Swiss is the wrong tool once the field is small enough that a full round-robin fits the calendar anyway โ the log-scaling that makes Swiss worth it for 24 players buys nothing for 8.
A short decision rule
- If N โ 1 rounds fit in the time you actually have โ round-robin. It is the fairer result whenever it is affordable.
- If it does not (most club evenings, most opens) โ Swiss, budget ceil(log2(N)) rounds, and publish the tiebreak order in advance.
- If the field has a real, trusted rating spread and you want round 1 to already reflect it โ that is a different question, start-score pairing rather than plain Swiss โ see the McMahon vs Swiss article for when that head start is worth adding.
For the product side โ generating Swiss rounds, recording results, exporting a TRF16 file for FIDE-rated events โ see the chess tournament guide and the Swiss generator guide.