If you are running a tournament for the first time, the pairing looks like the most frightening part: who plays whom, who gets White, how to avoid pairing two players twice. On this page we go through how it all works in the Swiss system and under the FIDE rules - with a worked example and in plain language. And you do not have to work the pairs out by hand: at the end there is a free Vibe Chess tool that will do the pairing for you, right in the browser or on Telegram.
Chess tournament pairing is the procedure of distributing players into pairs each round by a fixed algorithm. In the Swiss system the pairs are formed automatically on the basis of points scored, rating and the history of meetings. The aim is to bring together players of similar strength fairly and to ensure that everyone plays the right number of games against different opponents with no repeats.
The Swiss system was invented in Zurich by Dr Julius Müller, a schoolteacher from the town of Brugg. The official birthday of the system is 15 June 1895, at the 5th Swiss national chess tournament with 32 players. The winner was Max Pestalozzi, the tournament's organiser. Since then the system has become the FIDE standard and spread to every mass chess tournament in the world, from children's cups to the Aeroflot Open and the Russian Cup.
The modern FIDE Dutch System algorithm, dominant since the 1990s, was shaped by the Dutch international arbiter Geurt Gijssen. In 2011-2013 the FIDE Systems of Pairings and Programs Commission (SPPC) rewrote the rules to remove the discrepancies between programs. The reference implementation became JaVaFo, by Roberto Ricca, the secretary of the SPPC.
FIDE approves several pairing algorithms at once. The main one is the Dutch. The alternatives are Dubov, Burstein and Lim. Plus the accelerated Baku modification. Each is described in its own chapter of Handbook C.04.
Geurt Gijssen, the Dutch international arbiter · Modern form: the 1990s
FIDE's main pairing system and the dominant standard at tournaments worldwide. Implemented in Swiss-Manager, Vega, JaVaFo, Tornelo and Lichess Swiss. The current edition, Handbook C.04.3, has been in force since 1 February 2026.
Eduard Lvovich Dubov (1938-2018), the Soviet mathematician and arbiter · Approved by FIDE
The «Russian system»: it globally levels out the average rating of the opponents faced by every player on the same score. It was used for a long time in Russian opens because it produces interesting pairings in the early rounds when the rating spread is wide.
Alexander Burstein · Approved by FIDE
It uses an internal «index» - each player's figures at the current point in the tournament - to match equivalent opponents. The player ranked first in a group plays the last.
The Singapore Chess Federation · In force since 1 February 2026
The newest FIDE-approved system. It improves the distribution of colours and reduces the number of floaters compared with the Dutch. The bye goes to the lowest-ranked player in the bottom score group.
FIDE C.04.7 Accelerated Systems · The current standard
Accelerated pairing. The top half receives a virtual point for a win before round one - the strong immediately meet their equals and the weak play each other. After half the rounds the virtual points are halved, and then removed.
How the software decides who gets White and who gets Black. The hierarchy is absolute → strong → mild. In a conflict the stronger level always wins.
A hard requirement. It arises when the colour difference is greater than +1/−1, or when a player has had the same colour in the last two rounds. A third colour in a row is categorically forbidden - the pairing is invalid.
A colour difference of exactly +1 or −1. We try to satisfy it, but where it conflicts with another strong preference it may be broken - priority goes to the higher-ranked player.
A colour difference of 0. It is desirable to give the opposite colour to the last round. A mild preference is the easiest one to break.
10 players rated from 2200 down to 1500. By the formula ⌈log₂(10)⌉ that is 4 rounds. We show every pairing in every round with an explanation of how downfloaters, colour conflicts and an odd field are handled.
In round four player A (3 points, the only one in the 3.0 group) drops as an MDP into the 2.0 group. Players C, D and E2 in 2.0 make three, and one of them (E2) drops into the 1.0 group as a new MDP. Player J - the only one on 0 points - has no opponent and receives a Pairing-Allocated Bye worth +1 point. All the colours alternate under FIDE rule 5.2.
The six main programs of 2026. A full review and feature comparison is on the page about chess tournament software.
Heinz Herzog, Austria · Desktop (Windows)
The de facto standard at large opens, in 24 languages including Russian, used by 180+ federations and for 600,000+ tournaments. Integrated with chess-results.com.
Luigi Forlano, Italy · Desktop (Win/Linux/Mac)
Free for tournaments of up to 30 players on Windows and entirely free on Linux. It supports Dutch, Dubov, Burstein and Lim.
Roberto Ricca, secretary of the FIDE SPP commission · Java engine
The reference engine: every other program is certified against JaVaFo. Built into Vega, Swiss-Manager and Tornelo.
Bierema Boyz Programming (open-source) · C++ engine, GPL
The Lichess Swiss engine. It implements Dutch and Burstein. Entirely open source.
Tornelo Pty Ltd, Australia · Cloud SaaS
Hybrid tournaments online plus over the board, DGT boards, live cheat detection, FIDE-certified.
vibechess.ru · Web plus a Telegram bot
The Swiss system, round robin, Scheveningen and knockout. Nothing to install; registration through the Telegram bot @vibechessbot. Buchholz and Sonneborn-Berger calculated automatically.
Register every player with their full name, rating (national, FIDE or internal) and city. If a player has no rating, assign a provisional starting one (1000, for instance) or leave them unrated.
Sort them: 1) by descending rating; 2) where equal, by descending FIDE title; 3) alphabetically. These are the Pairing Numbers (PNo).
By the formula ⌈log₂(N)⌉. For 8 players that is 3 rounds, for 16 it is 4, for 32 it is 5, for 64 it is 6 and for 128 it is 7. That is the minimum for guaranteeing a single winner. You can add a round or two in reserve.
Set down in the regulations, before the tournament begins, which colour player No. 1 gets in round one. Usually White. All the alternation that follows depends on it.
S1 is the top half, S2 the bottom. The pairs: No. 1 from S1 vs No. 1 from S2, No. 2 from S1 vs No. 2 from S2 and so on. Colours alternate down the boards. That is the Dutch System.
Into the software or by hand: 1 for a win with White or Black, ½ for a draw, 0 for a loss, + for a win by default, − for a loss by default, bye for missing the round.
The software groups the players into score brackets (equal points), the pairs inside each group are formed by the same S1/S2 rules, the prohibitions are checked (repeat opponents, a third colour in a row) and the downfloaters and upfloaters are handled.
Under FIDE C.04.2, once published the pairings are changed only in five exceptional cases (an accidental repeat, a late registration and so on). Correcting them by hand «for fairness» makes the tournament invalid for FIDE rating.
Under FIDE C.04.2 the pairings are changed after publication only under five exceptions. Any edit «on request» breaks their validity.
A third colour in a row is categorically forbidden. The pairing is invalid and a rearrangement has to be found.
A breach of the Dutch System's quality criteria. The software has to choose a different pairing.
A player should not receive a PAB if they have already had any bye - half-point, full-point or a win by forfeit.
A late-registered player is added with minimal changes. Recalculating pairings that have already been published is forbidden.
The bye goes strictly to the lowest-ranked player in the bottom group, not to a «random» one.
Rule 5.2.3 applies - the larger colour difference wins, not the rating.
The algorithm rejects them automatically, but with manual pairing it is easy to miss one.
The starting colour has to be announced in the regulations before the tournament begins; it is not assigned on the fly.
Grounds for a disciplinary procedure through the FIDE Ethics and Disciplinary Commission.
The full Dutch System through the open-source bbpPairings engine - the same one FIDE uses as its reference. The default tie-break is Sonneborn-Berger. A new round starts only once every game of the previous one has finished. The bye for an unpaired player is worth 1 point. Tournaments are created by the team leader.
A guarantee of no repeat opponents. Tie-breaks in the order: Buchholz Cut-1 → Buchholz → Sonneborn-Berger. Agreeing a draw before move 40 is forbidden. A club account is required.
The virtual venue of the Russian Chess Federation (play.ruchess.ru). Swiss-system tournaments with national rating calculation. A login is issued after your documents are checked and is tied to your federation ID.
A free service in the browser and in the Telegram bot @vibechessbot. Six formats: Swiss, round robin, Scheveningen, knockout, team events and multi-round seasons. It implements the Dutch algorithm with the FIDE constraints: pairs inside score brackets, colour alternation, no repeats, bye handling and automatic Buchholz and Sonneborn-Berger. Nothing to install, and players register from a link through the Telegram bot. It suits schools, corporate tournaments, amateur leagues and chess networking evenings.
The Vibe Chess tournament app does everything discussed above: a Swiss by the Dutch algorithm, colours under FIDE 5.2, bye handling, automatic Buchholz under FIDE C.07 and an export of the results. It suits a school tournament, a corporate series, an amateur league or a city rapid. Nothing to install, nothing to pay and nothing to register - only Telegram.
None of the above has to be worked out by hand: the Vibe Chess app creates a tournament free and pairs the players itself by the FIDE rules. Anybody can be the organiser: the button for creating an event is available to everyone, with no clubs, no accreditation and no payment.
The order is this: you create an event with a date, a venue and a time control, open registration, press «Start tournament» - and the first pairing goes out to every player's phone. After that you enter the results, and the table with points and Buchholz works itself out.
It is a pairing system in which each round a player meets somebody on the same score. The strong play the strong and the weak play the weak - everyone plays opponents of their own strength. Over the tournament everyone plays the same number of games, but not everyone plays everyone. It was invented in Zurich in 1895 by Julius Müller.
Dr Julius Müller, a Swiss schoolteacher from the town of Brugg near Zurich. The official birthday of the system is 15 June 1895, at the 5th Swiss national chess tournament in Zurich, with 32 players.
The main one is the FIDE (Dutch) System, governed by Handbook C.04.3 (the edition in force from 1 February 2026). Also approved are Dubov (C.04.4.1), Burstein (C.04.4.2), Lim (C.04.4.3, new in 2026) and the accelerated Baku method (C.04.7).
The minimum is given by the formula ⌈log₂(N)⌉. Examples: 8 players → 3 rounds, 16 → 4, 32 → 5, 64 → 6, 128 → 7, 256 → 8, 512 → 9. In practice one or two extra rounds are often added.
One player receives a Pairing-Allocated Bye (PAB) - usually the lowest-ranked player in the bottom score group who has not had a bye before. By default the bye is worth 1 point (a full-point bye) unless the regulations say otherwise.
No. That is an absolute colour preference and is categorically forbidden by every FIDE system. A third colour in a row is a violation and the pairing is invalid.
Under FIDE C.04.2, no - apart from five exceptions (an accidental repeat of opponents, a late registration, two players «left without an opponent» with the consent of both, and others). Any adjustment «on request» makes the tournament invalid for FIDE rating and can become grounds for a disciplinary procedure through the Ethics Commission.
The Dutch pairs locally inside score groups: split in half, pair No. 1 vs No. 1 and so on. Dubov aims globally to level out the average rating of the opponents faced by every player on the same score - a different optimisation problem. The Dutch is the world standard; Dubov is the historical Russian alternative.
FIDE-certified: Swiss-Manager (Heinz Herzog, Austria), Vega (Luigi Forlano, Italy), JaVaFo (Roberto Ricca, the engine), Tornelo (cloud), SwissSys, Swiss Master and Swiss-Chess. Amateur and online: Lichess Swiss (which uses bbpPairings), Chess.com Swiss and the Vibe Chess tournament app.
It is the reference pairing engine for the Dutch System, written by Roberto Ricca, secretary of the FIDE SPP commission. Every other program is tested for conformity with JaVaFo. It is included in Annex 3 of the FIDE Handbook as the reference.
A method of reducing «blind» rounds in tournaments with a wide rating spread. The top half receives a virtual point for a win before round one - the strong immediately meet their equals and the weak play each other. After half the tournament the virtual points are halved, and then removed. FIDE regulation C.04.7.
Lichess Swiss uses the Dutch through bbpPairings, starts a round automatically once every pair is ready, gives an unpaired player a bye worth 1 point and breaks ties on Sonneborn-Berger. Chess.com Swiss guarantees no repeats, breaks ties by BH-C1 → BH → SB and forbids draws before move 40. The Russian federation's own Play platform runs its own virtual venue with national rating calculation.
In round one the top of S1 (player No. 1) receives a «start colour» announced in advance - usually White. All the alternation that follows, and the checking of absolute, strong and mild colour preferences, depends on it. Failing to announce it in advance is a breach of the FIDE rules and a potential source of conflict.
A downfloater (a Moved-Down Player, MDP) is a player left without a pair in their score group and moved into the group below. An upfloater is a player from the lower group brought up to pair with an MDP. In the Dutch System floating in the same direction two rounds running is forbidden, with exceptions.
The Vibe Chess tournament app implements a simplified Dutch algorithm with the basic FIDE constraints: pairs inside score brackets, colour alternation (no third colour in a row), a history of meetings (no repeats), a PAB assigned for odd fields and Buchholz calculation. It suits schools, corporate tournaments and amateur leagues - but not FIDE-rated events, which need Swiss-Manager or Vega.
The tournament as a whole is in a Swiss-system chess tournament online. How the tie-break is worked out after the pairing is in the Buchholz score. What the resulting table looks like is in an online tournament table. A comparison of the software is in tournament software. The corporate format is in corporate tournaments. A chess evening in Moscow is in chess networking in Moscow.