The FIDE Dutch Pairing Algorithm: How Swiss Pairings Work

Chapter 5 — Guide Structure of the FIDE Dutch system, C1–C21 criteria hierarchy, color allocation, floater management, and step-by-step pairing calculation. Updated with FIDE regulations in force from February 1, 2026, and guide to the TRF format.

Whenever tournament management software generates a round in a Swiss system tournament, it applies a deterministic algorithm that evaluates past results, color balances, and player scores. Understanding how the FIDE Dutch System works enables arbiters and tournament organizers to verify pairing correctness, explain unexpected pairings to participants, and properly configure tournament software. This guide analyzes the detailed mechanics of the algorithm according to FIDE rule C.04.3 in force from February 1, 2026.

Why Pairing in Swiss Tournaments Requires an Algorithm

In small events (for example, 8 players over 5 rounds), pairing rounds manually is manageable without major logistical difficulties. However, when the number of participants grows to dozens or hundreds of players over 7 to 9 rounds, manual calculation becomes unfeasible: the intricate network of scores, previously played matches, and color alternation creates thousands of possible combinations per round.

Beyond saving time, manual pairing risks introducing arbitrary or unconscious decisions by the tournament direction. A pairing algorithm is deterministic and reproducible: starting from identical input data (standings, color history, previous head-to-head matches, and seed numbers), it always produces the exact same result, verifiable by anyone using the official regulations.

The FIDE Dutch System does not apply a single rigid rule, but rather evaluates a sequential hierarchy of criteria. Processing satisfies mandatory constraints first (such as preventing rematches or awarding a second PAB) and subsequently balances secondary preferences (such as ideal color alternation or minimizing floats).

What Changes in FIDE Regulations from February 1, 2026

On February 1, 2026, FIDE revisions for Swiss pairing systems (Chapters C.04.1, C.04.2, and C.04.3 of the FIDE Handbook) came into force. The updates introduce uniform criteria coding and clarify the management of specific edge cases:

Regulatory Area Previous Regulation Regulations from February 1, 2026
Criteria Numbering Heterogeneous codes (A1, B1, C1…) Unified sequence from C1 to C21 (C.04.3)
Color Allocation Edge cases not fully detailed Detailed precedence rules for every conflict and clear distinction between topscorers and non-topscorers
Unplayed Games Management depended on individual regulatory context Only games actually played on the board enter color history; for tiebreaks, unplayed rounds follow Article 16 of FIDE C.07
Burstein System Defined generically in C.04.4 Codified in FIDE Chapter C.04.4.2 with detailed specifications for score groups
Double Swiss System Not codified separately Codified in FIDE Chapter C.04.5: every pairing is a two-game match played with alternating colors
Baku Acceleration Categorized under C.04.5 Renumbered to FIDE Chapter C.04.7 (Accelerated Systems: Baku Acceleration)
Official FIDE Handbook References: C.04.1 (Basic rules for Swiss Systems) and C.04.3 (FIDE Dutch System) in force from February 1, 2026.
→ Consult FIDE C.04.1 | → Consult FIDE C.04.3

Score Groups and Seeding Brackets

The core principle of a Swiss system tournament is that players with identical scores should face each other. A score group comprises all participants who have accumulated the exact same point total prior to the start of a round.

Within each group, players are ranked by their initial seed numbers (typically assigned based on FIDE or national ratings). The group is then split into two equal halves: the top half (players with lower seed numbers / higher ratings) and the bottom half. The standard pairing pattern pairs the first player in the top half against the first player in the bottom half, the second in the top half against the second in the bottom half, and so forth.

Example of Pairing in a Score Group (8 Players, Round 1)
SCORE GROUP: 0.0 Points
S1Fischer2200 — Top Half
S2Kasparov2180 — Top Half
S3Tal2150 — Top Half
S4Petrosian2120 — Top Half
S5Spassky2080 — Bottom Half
S6Karpov2050 — Bottom Half
S7Botvinnik1990 — Bottom Half
S8Lasker1960 — Bottom Half
↕ Top half vs bottom half pairing (S1↔S5, S2↔S6, S3↔S7, S4↔S8)
Fischer (White)vsSpassky (Black)
Kasparov (White)vsKarpov (Black)
Tal (White)vsBotvinnik (Black)
Petrosian (White)vsLasker (Black)

In rounds following Round 1, match outcomes split players into distinct groups (winners, players with draws, and losers). The algorithm processes each group in descending order of score, completing pairings for top standings first and resolving score imbalances through floaters.

The Hierarchy of Pairing Criteria: From C1 to C21

FIDE rule C.04.3 defines 21 criteria ranked by a strict hierarchy of priority (from C1 to C21). When constructing pairings for each round, the software searches for the combination that prioritizes satisfying higher-order criteria. Lower-priority criteria are sacrificed only when strictly necessary to comply with a higher-ranking rule.

  • C1
    No rematch between the same players Mandatory
    Two players who have already faced each other in a previous round of the same tournament can never be paired together again.
  • C2
    No second PAB or unplayed full point Mandatory
    No player may receive more than one Pairing Allocated Bye (PAB) or benefit from a second unplayed full point (forfeit win or unplayed round awarding 1 point).
  • C3
    Absolute color preference for non-topscorers High Priority
    Two non-topscoring players who share the same absolute color preference (for example, both requiring White due to color imbalance or to avoid three consecutive same-color games) cannot be paired against each other.
  • C4
    Pairing completion High Priority
    The pairings chosen for players already examined must allow a valid pairing to be formed for all remaining participants in the tournament.
  • C5
    Minimization of PAB recipient score High Priority
    If a round with an odd number of players requires assigning a PAB, it must be awarded to the player with the lowest possible score.
  • C6
    Minimization of the number of downfloaters High Priority
    The algorithm minimizes the number of players transferred (downfloaters) from their score group to the lower group.
  • C7
    Minimization in descending order of downfloater scores High Priority
    Among candidate combinations with an equal number of downfloaters, players with the lowest possible scores are selected.
  • C8
    Suitability of downfloaters for the next group High Priority
    The selected downfloaters must enable the lower score group (next bracket) to satisfy criteria C1–C7.
  • C9
    Minimization of unplayed games of the PAB recipient Medium Priority
    Minimize the number of previously accumulated unplayed games for the player selected to receive the PAB.
  • C10
    Control of color difference exceeding ±2 for topscorers and opponents Medium Priority
    Minimize the number of topscorers or their opponents who would finish the round with an absolute color difference (White minus Black games) exceeding 2.
  • C11
    Prohibition of three consecutive same colors for topscorers and opponents Medium Priority
    Minimize the number of topscorers or their opponents assigned the same color for three consecutive rounds.
  • C12
    Minimization of unsatisfied color preferences Medium Priority
    Minimize the total number of players in the tournament who are not assigned their preferred color.
  • C13
    Minimization of unsatisfied strong color preferences Medium Priority
    Minimize the number of players with a strong color preference who are not granted their requested color.
  • C14–C17
    Minimization of float repetitions in recent rounds Refinement Priority
    Prevent the same player from suffering or granting a float (downfloater or upfloater) in consecutive rounds or within the previous two rounds.
  • C18–C21
    Minimization of score differences in floats Refinement Priority
    Minimize in descending order the score gap associated with floats executed in current and recent rounds.
Calculation Principle

The pairing engine’s objective is not to construct “balanced games” in terms of individual strength, but to maximize adherence to the C1–C21 hierarchy. If strict application of criteria C1 (no rematch) and C2 (no second PAB) forces a pairing between two players with a wide score or rating gap, the algorithm will execute the pairing in compliance with official regulations.

Rules for Color Allocation: White and Black

Color allocation frequently causes doubts among participants. Understanding the distinction between color preference and absolute color right helps clarify software pairing decisions.

Fundamental FIDE 2026 Rule: Only games actually played on the board enter a player’s color history. Unplayed rounds (such as the PAB / paired bye, half-point request byes, or forfeit wins and losses) do not alter the count of Whites and Blacks played, nor do they generate color preferences for subsequent rounds.

Color Preference and Absolute Color Right

A player expresses a color preference when their history of games actually played shows an imbalance (for example, 2 Whites and 1 Black) or when they played Black in the preceding round. Conversely, a player holds an absolute color right when they have played two consecutive games with the same color or when their color difference would reach an absolute value greater than ±2: in these cases, regulations mandate assigning the opposite color for the next round.

If two paired players both hold an absolute right to the same color (for instance, both requiring White), the algorithm grants the color to the player with the greater overall imbalance or higher seeding precedence according to FIDE priority tables (criteria C3, C10–C13).

Round 1 Color Assignment

In Round 1, with no historical games played, color assignment on Board 1 is determined by drawing lots or by organizational directive (traditionally granting White to Seed 1). Consequently, all players in the top half receive White in Round 1, while all players in the bottom half receive Black.

For detailed regulatory rules on color inversion and balancing: FIDE C.04.3 (Sections 4–7).
→ Open Section C.04.3 in FIDE Handbook

Handling Floaters: Downfloaters and Upfloaters

When a score group contains an odd number of participants, one player cannot find an opponent within their score group. This player is designated a floater.

A downfloater is a player transferred from their score group to the immediately lower score group. The upfloater is the player in the lower score group paired against them.

The algorithm selects candidate downfloaters while minimizing penalties on criteria C6, C7, and C8 (and C5 if selecting a PAB). Typically, the lowest-seeded player in the score group is chosen, unless doing so causes a rematch violation (C1) or an incompatibility with pairing completion (C4).

Example of Downfloater Selection

In an 8-player tournament, Round 1 yields four winners (1.0 group) and four losers (0.0 group). Because both groups have an even number of players (4 players each), Round 2 proceeds without floaters.

If one Round 1 game ended in a draw, the standings would show 3 players at 1.0 point, 2 players at 0.5 points, and 3 players at 0.0 points. The 1.0 group is odd (3 participants): the lowest-seeded player in the 1.0 group becomes the downfloater and is paired into the 0.5 group.

Practical Example: Round 1 of the Alekhine Memorial

Consider a simulation of an 8-player tournament ranked by initial rating:

Initial Data: 8 players at 0.0 points.
Seeding: S1 Fischer (2200), S2 Kasparov (2180), S3 Tal (2150), S4 Petrosian (2120), S5 Spassky (2080), S6 Karpov (2050), S7 Botvinnik (1990), S8 Lasker (1960).

Step 1 — Division:
Top Half (S1–S4): Fischer, Kasparov, Tal, Petrosian.
Bottom Half (S5–S8): Spassky, Karpov, Botvinnik, Lasker.

Step 2 — C1–C2 Verification: No previous games played (criterion C1), no PAB or bye to assign (criterion C2).

Step 3 — Matchups: S1↔S5, S2↔S6, S3↔S7, S4↔S8.

Step 4 — Colors: Round 1 draw assigns White to the top half.

Alekhine Memorial — Definitive Round 1 Pairings
Board 1Fischer (White)vsSpassky (Black)
Board 2Kasparov (White)vsKarpov (Black)
Board 3Tal (White)vsBotvinnik (Black)
Board 4Petrosian (White)vsLasker (Black)

Practical Example: Forming Round 2

Assuming wins by all four higher-seeded players in Round 1 (Fischer, Kasparov, Tal, and Petrosian), the provisional standings generate two distinct score groups for Round 2:

Group A (1.0 pt): Fischer, Kasparov, Tal, Petrosian (4 players).
Group B (0.0 pt): Spassky, Karpov, Botvinnik, Lasker (4 players).

Group A Pairings: Divide into halves → Top Half: Fischer (S1), Kasparov (S2). Bottom Half: Tal (S3), Petrosian (S4).
Matchups: S1↔S3 (Fischer vs Tal) and S2↔S4 (Kasparov vs Petrosian). C1 Verification: no previous games between players.

Group A Colors: Fischer and Kasparov played White in Round 1, so they require Black. Tal and Petrosian played Black, so they require White. The final pairings are: Tal (White) vs Fischer (Black) and Petrosian (White) vs Kasparov (Black).

Pairing Generation in ChessPairings.org

You can create test tournaments and run round simulations via the web platform.

Open Platform →

How to Interpret Seemingly Unusual Pairings

Players and arbiters sometimes encounter pairings that appear incorrect at first glance. The FIDE criteria hierarchy explains why these outcomes occur:

Player with 3.0 points paired against an opponent with 2.5 points

This situation occurs when the 3.0 group contains an odd number of participants or when all intra-group pairings would violate criterion C1 (repeated game) or C2 (second PAB to avoid). The system transfers a downfloater to the lower group (according to rules C6–C8) to find a compatible opponent.

Player receiving the same color for two consecutive rounds

Perfect color alternation is a secondary priority constraint (criterion C12) compared to avoiding repeated games (criterion C1) or managing PABs (criterion C2). When the algorithm must choose between assigning the preferred color or enabling round completion (criterion C4) without duplicate pairings, avoiding rematches takes precedence.

The top two in the standings paired as early as Round 4

If the top two leaders share the same score and all other combinations within the top bracket would cause violations of higher criteria with remaining participants, the system advances the direct matchup between leaders.

FIDE-Approved Alternative Systems (Burstein, Baku, Double Swiss)

Burstein System (FIDE C.04.4.2)

The Burstein system is a variant of the Dutch system that applies alternative rules for score bracket formation and intra-group pairing, offering greater flexibility in score tolerances while maintaining rating proximity.

Regulatory reference: FIDE C.04.4.2 (Burstein System).
→ Consult FIDE C.04.4.2

Double Swiss System (FIDE C.04.5)

In the Double Swiss System, every pairing is a match between two players consisting of two consecutive games played with alternating colors. The match score is the sum of both games; byes and pairing criteria are governed by FIDE Chapter C.04.5, applied from February 1, 2026.

Baku Acceleration (FIDE C.04.7)

Baku Acceleration modifies score group formation in opening rounds to reduce overly predictable initial pairings without altering actual standings scores.

The initial seeding list is divided into groups GA and GB. During the first part of the accelerated rounds, players in group GA receive virtual points equal to the value of a win for pairing purposes only; in the remaining accelerated rounds, these virtual points are halved. After the final accelerated round, virtual points are no longer assigned.

Regulatory reference: FIDE C.04.7 (Accelerated Systems: Baku Acceleration).
→ Consult FIDE C.04.7

Structure and Reading of TRF Report Files

The TRF (Tournament Report File) format is the standard data interchange format defined by FIDE for transmitting tournament results for rating calculation. ChessPairings.org supports exporting in TRF-16 format and also offers an export option named TRF-25; users are invited to verify the format accepted by the destination federation.

Below is a sample excerpt of a TRF-16 structure for Round 1:

012 Alekhine Memorial Open
022 Club Room, Alessandria
032 2026-03-03
042 2026-03-03
052 Mikhail (Chief Arbiter)
062 5
072 1
082 Rapid
092 15+10
132 Buchholz Cut-1, Buchholz, Wins, Direct Encounter
001  No  Name              Rtg  FID       Pts  R1
001    1 Fischer           2200 1234567   1.0  0000 W  5 1
001    2 Kasparov          2180 2345678   1.0  0000 W  6 1
001    3 Tal               2150 3456789   1.0  0000 W  7 1
001    4 Petrosian         2120 4567890   1.0  0000 W  8 1
001    5 Spassky           2080 5678901   0.0  0000 B  1 0
001    6 Karpov            2050 6789012   0.0  0000 B  2 0
001    7 Botvinnik         1990 7890123   0.0  0000 B  3 0
001    8 Lasker            1960 8901234   0.0  0000 B  4 0

Each line marked with the 001 prefix contains individual player data. Reading from left to right: starting rank number, name, rating, FIDE ID, total score, followed by individual round columns. For each round, the assigned color (W for White, B for Black), opponent rank number, and game outcome (1 for win, 0 for loss, = for draw) are indicated.

The bbpPairings Calculation Engine and Tiebreak Processing

Pairing generation on ChessPairings.org relies on bbpPairings, an open-source C++ engine implementing the FIDE Dutch algorithm logic.

Standings and tiebreak calculations are performed separately from pairing generation and must match the published regulations of the tournament.

Note on Computational Complexity

From a theoretical perspective, graph matching is one possible implementation approach for the FIDE Dutch pairing algorithm, though exact implementation details vary across software engines. When modeled as a graph, candidate edges are weighted based on compliance with the C1–C21 hierarchy.

Frequently Asked Questions About the FIDE Dutch Algorithm

What happens if two players in the same score group have already played each other?

Criterion C1 states that no game can be repeated in the same tournament. The algorithm applies an internal transposition within the group or, if necessary, moves a player to the lower group (downfloater according to C6–C8) to avoid duplication.

Is it possible to receive the same color for three rounds in a row?

No, criterion C11 prohibits assigning three consecutive identical colors to topscorers and their opponents (and criterion C3 prohibits the same absolute color preference between non-topscorers). However, playing two consecutive rounds with the same color is possible when perfect alternation (C12) conflicts with higher-priority constraints such as C1 (repeated games) or C4 (pairing completion).

What is a TRF file and what data does it contain?

A TRF (Tournament Report File) file is the standard text format defined by FIDE to transmit tournament data for rating calculation. It contains player registration details, list of rounds played, assigned colors, opponents, and results achieved.

Organize Your Chess Tournament

Swiss pairings based on FIDE 2026 regulations and management of commonly used tiebreaks.

Access Platform