Repository navigation
Tournament Swiss
In a Swiss-system tournament, teams are paired round by round according to their accumulated performance. Unlike elimination-based formats, no team is removed from the tournament after a loss. All teams continue playing until the configured number of rounds is completed.
The system uses match points to group teams for the next round:
- Win: 3 points
- Draw: 1 point
- Loss: 0 points
When the number of teams is odd, one team receives a bye for that round. The bye is assigned, when possible, to the lowest-ranked team that has not yet received one, and it is scored as a win for pairing and ranking purposes.
By default, the number of rounds is calculated automatically from the number of teams (using the smallest number of rounds that can cover all participants), but this can be overridden from the tournament options.
The Swiss format includes three configurable options:
- Number of rounds You can explicitly define the number of rounds to be played. If left empty, the application calculates it automatically based on the number of teams.
-
Tie-break rule
When two or more teams end with the same match points, ranking order can be resolved using one of the supported
Swiss tie-break systems:
Buchholz,Median Buchholz,Sonneborn-Berger,Direct Encounter, orPoint Differential.
The available systems are interpreted as follows:
- Buchholz: Sum of the match points achieved by all opponents faced by a team. A higher value indicates a stronger strength of schedule.
- Median Buchholz: Same as Buchholz, but removing the lowest and highest opponent scores when possible. This reduces the impact of extreme results.
- Sonneborn-Berger: Sum of defeated opponents' points, plus half of drawn opponents' points. It rewards wins against high-performing opponents.
- Direct Encounter: Compares only the results among tied teams that faced each other. It prioritizes head-to-head performance inside the tie group.
- Point Differential: Difference between points scored and points conceded across played fights. It rewards teams with stronger overall scoring margins.
The application does not stop at the selected tie-break rule. It applies a fixed fallback chain until the tie is resolved, and only then falls back to the next scoring criteria.
| Principal rule | If still tied... | If tied again... | Then... | Finally... |
|---|---|---|---|---|
| Buchholz | Median Buchholz | Sonneborn-Berger | Direct Encounter | Point Differential |
| Median Buchholz | Buchholz | Sonneborn-Berger | Direct Encounter | Point Differential |
| Sonneborn-Berger | Buchholz | Median Buchholz | Direct Encounter | Point Differential |
| Direct Encounter | Buchholz | Median Buchholz | Sonneborn-Berger | Point Differential |
| Point Differential | Buchholz | Median Buchholz | Sonneborn-Berger | Direct Encounter |
In other words, the last two tie-break options reuse the remaining Swiss criteria in this order:
Buchholz -> Median Buchholz -> Sonneborn-Berger -> the other one of the last two rules.
If a critical position is still tied after applying the full chain, the tie is resolved with an daihyōsen combat.
- Avoid repeated pairings When enabled (default), the pairing algorithm prevents teams from facing each other more than once whenever possible. If no valid pairing can be produced under that constraint, the system relaxes it to allow round generation.
The following examples use teams composed of one competitor each.
| Team | Competitor |
|---|---|
| Team 1 | Bernard, Paul |
| Team 2 | Colombo, Sempronio |
| Team 3 | Dupont, Pierre |
| Team 4 | Durand, Jacques |
| Team 5 | Evans, Harry |
| Team 6 | Fabbro, Caio |
| Team 7 | Férnandez, Fulano |
| Team 8 | Lopes Marques, Pedro |
Swiss points used in this example:
- Win: 3 points
- Draw: 1 point
- Loss: 0 points
Round results:
| Round | Group | Pairing | Result | Points granted |
|---|---|---|---|---|
| 1 | A | Team 1 vs Team 2 | Team 1 wins | Team 1 +3 |
| 1 | A | Team 3 vs Team 4 | Team 4 wins | Team 4 +3 |
| 1 | A | Team 5 vs Team 6 | Team 5 wins | Team 5 +3 |
| 1 | A | Team 7 vs Team 8 | Team 8 wins | Team 8 +3 |
| 2 | A | Team 4 vs Team 1 | Team 4 wins | Team 4 +3 |
| 2 | A | Team 5 vs Team 8 | Draw | Team 5 +1, Team 8 +1 |
| 2 | B | Team 2 vs Team 3 | Team 2 wins | Team 2 +3 |
| 2 | B | Team 7 vs Team 6 | Team 7 wins | Team 7 +3 |
| 3 | A | Team 4 vs Team 8 | Draw | Team 4 +1, Team 8 +1 |
| 3 | B | Team 5 vs Team 1 | Team 5 wins | Team 5 +3 |
| 3 | B | Team 2 vs Team 7 | Team 2 wins | Team 2 +3 |
| 3 | C | Team 3 vs Team 6 | Team 3 wins | Team 3 +3 |
Final Swiss points after round 3:
| Team | Competitor | Swiss points |
|---|---|---|
| Team 4 | Durand, Jacques | 7 |
| Team 5 | Evans, Harry | 7 |
| Team 2 | Colombo, Sempronio | 6 |
| Team 8 | Lopes Marques, Pedro | 5 |
| Team 1 | Bernard, Paul | 3 |
| Team 3 | Dupont, Pierre | 3 |
| Team 7 | Férnandez, Fulano | 3 |
| Team 6 | Fabbro, Caio | 0 |
This example illustrates how byes are resolved when the tournament has an odd number of teams. In this case, there are 11 single-person teams.
| Team | Competitor |
|---|---|
| Team 1 | Bernard, Paul |
| Team 2 | Colombo, Sempronio |
| Team 3 | Dupont, Pierre |
| Team 4 | Durand, Jacques |
| Team 5 | Evans, Harry |
| Team 6 | Fabbro, Caio |
| Team 7 | Férnandez, Fulano |
| Team 8 | Lopes Marques, Pedro |
| Team 9 | Martin, Tizio |
| Team 10 | Navarro, Mengano |
| Team 11 | Ortega, Zutano |
In this Swiss tournament setup:
- A bye is assigned each round when the number of teams is odd.
- The system assigns the bye to the lowest-ranked team that has not received a bye yet.
- If all eligible low-ranked teams already received one, the lowest-ranked team receives it again.
- A bye is scored as a win: +3 Swiss points.
- For ranking purposes, the bye is also counted as one won fight and one fight done.
Bye distribution example across three rounds:
| Round | Bye team | Reason (as implemented) | Bye score effect |
|---|---|---|---|
| 1 | Team 11 | Lowest-ranked team at round start, no previous bye | +3 points |
| 2 | Team 10 | Lowest-ranked team in current ordering without previous bye | +3 points |
| 3 | Team 9 | Lowest-ranked team in current ordering without previous bye | +3 points |
A practical consequence is that byes are spread across different teams whenever possible, instead of repeatedly benefiting the same participant.
Complete 3-round flow example (including byes, 11 teams):
| Round | Group | Pairing | Result | Points granted |
|---|---|---|---|---|
| 1 | A | Team 1 vs Team 2 | Team 1 wins | Team 1 +3 |
| 1 | A | Team 3 vs Team 4 | Team 4 wins | Team 4 +3 |
| 1 | A | Team 5 vs Team 6 | Team 5 wins | Team 5 +3 |
| 1 | A | Team 7 vs Team 8 | Team 8 wins | Team 8 +3 |
| 1 | A | Team 9 vs Team 10 | Team 10 wins | Team 10 +3 |
| 1 | A | Team 11 | Bye | Team 11 +3 |
| 2 | A | Team 11 vs Team 8 | Draw | Team 11 +1, Team 8 +1 |
| 2 | A | Team 5 vs Team 4 | Team 4 wins | Team 4 +3 |
| 2 | A | Team 10 | Bye | Team 10 +3 |
| 2 | B | Team 1 vs Team 2 | Team 2 wins | Team 2 +3 |
| 2 | B | Team 3 vs Team 6 | Team 3 wins | Team 3 +3 |
| 2 | B | Team 7 vs Team 9 | Team 7 wins | Team 7 +3 |
| 3 | A | Team 10 vs Team 4 | Draw | Team 10 +1, Team 4 +1 |
| 3 | A | Team 11 vs Team 8 | Team 11 wins | Team 11 +3 |
| 3 | B | Team 2 vs Team 3 | Draw | Team 2 +1, Team 3 +1 |
| 3 | B | Team 1 vs Team 7 | Team 7 wins | Team 7 +3 |
| 3 | C | Team 5 vs Team 6 | Team 5 wins | Team 5 +3 |
| 3 | C | Team 9 | Bye | Team 9 +3 |
Swiss points after round 3:
| Team | Competitor | Swiss points |
|---|---|---|
| Team 4 | Durand, Jacques | 7 |
| Team 10 | Navarro, Mengano | 7 |
| Team 11 | Ortega, Zutano | 7 |
| Team 5 | Evans, Harry | 6 |
| Team 7 | Férnandez, Fulano | 6 |
| Team 2 | Colombo, Sempronio | 4 |
| Team 3 | Dupont, Pierre | 4 |
| Team 8 | Lopes Marques, Pedro | 4 |
| Team 1 | Bernard, Paul | 3 |
| Team 9 | Martin, Tizio | 3 |
| Team 6 | Fabbro, Caio | 0 |
This sequence shows how byes are integrated in both pairing and scoring logic while maintaining Swiss progression across rounds.
In this scenario, Team 4 and Team 5 are tied with 7 Swiss points. Depending on the selected tie-break system, their final order may change.
| Team | Competitor | Swiss points | Buchholz | Median Buchholz | Sonneborn-Berger | Direct Encounter | Point Differential |
|---|---|---|---|---|---|---|---|
| Team 4 | Durand, Jacques | 7 | 11 | 8 | 8.5 | 0 | +4 |
| Team 5 | Evans, Harry | 7 | 8 | 7 | 7.0 | 0 | +6 |
Resulting order in this example:
- With
Buchholz,Median Buchholz, orSonneborn-Berger: Team 4 ranks above Team 5. - With
Direct Encounter: no change in this case, because there is no decisive head-to-head result. - With
Point Differential: Team 5 ranks above Team 4.
The following case shows three teams tied on Swiss points, where each tie-break system produces a different order.
| Team | Competitor | Swiss points | Buchholz | Median Buchholz | Sonneborn-Berger |
|---|---|---|---|---|---|
| Team 1 | Bernard, Paul | 6 | 18 | 11 | 8.0 |
| Team 2 | Colombo, Sempronio | 6 | 17 | 12 | 9.5 |
| Team 8 | Lopes Marques, Pedro | 6 | 16 | 10 | 10.0 |
Resulting order for this scenario:
- With Buchholz: Team 1, Team 2, Team 8.
- With Median Buchholz: Team 2, Team 1, Team 8.
- With Sonneborn-Berger: Team 8, Team 2, Team 1.
Interpretation:
- Buchholz rewards the strongest overall opponent set.
- Median Buchholz reduces the effect of extreme opponent scores.
- Sonneborn-Berger gives more weight to wins against stronger opponents and can therefore invert the order.
This is why selecting the tie-break rule should be considered part of the tournament definition and communicated to participants before the first round starts.