bbpPairings Engine
SwissSys uses the bbpPairings engine for FIDE-rated tournaments. It is the official FIDE-endorsed pairing program and implements the Dutch system pairing rules from the FIDE Handbook.
Source and Licensing
bbpPairings is developed by Bierema-Boyz Programming and is available at github.com/BieremaBoyzProgramming/bbpPairings .
It is licensed under the GPL and is distributed with SwissSys as an aggregate. See Help → About for full licensing, copyright, and disclaimer information. Source code is included in the file bbpPairings Source.zip.
How SwissSys Uses bbpPairings
SwissSys does not implement FIDE pairing logic internally. Instead it:
- Exports a TRF file (PrePair.trf) — Writes player data, results, and restrictions to a
PrePair.trffile - Runs bbpPairings — Executes
bbpPairings.exe --dutch "PrePair.trf" -pand reads back the pairing list - Imports the pairings — Converts the engine output into SwissSys board assignments
What Affects FIDE Pairings
Only data exported in the TRF file affects bbpPairings results:
| Exported | Effect |
|---|---|
| Player data, results, ratings | Core input for Dutch system |
| Hard restrictions (team, club, city, state, forbidden pairs) | Exported as XXP lines — players listed cannot be paired |
Bye value (BBU line) | Point value of the pairing-allocated bye |
Final round number (XXR line) | Affects last-round pairing rules |
Acceleration (XXA lines) | Fictitious points for FIDE Baku system |
USCF-only settings (color variation rules, bye strictness, random pairings, etc.) are not exported and have no effect on FIDE pairings. bbpPairings implements its own color and bye rules per the FIDE Handbook.
Inspecting the Engine’s Input and Output
From the pair chart, go to Tools → Inspect FIDE engine input/output to view:
- Input — The exact TRF file sent to bbpPairings
- Output — The pairing list returned by the engine
This is useful for verifying that player data, restrictions, and acceleration values were exported correctly.
If bbpPairings Fails
If the engine returns no valid pairings (output starts with 0), SwissSys will prompt you to either use the USCF engine or pair manually.
Common causes include too many restrictions making a legal pairing impossible.
Related Topics
- Rules for Pairing — Select the pairing engine and configure restrictions
- FIDE Default Mode Limitations — Restrictions when running in FIDE mode
- Accelerated Pairings — Baku acceleration system
- Ratings Report for FIDE — TRF file for rating submission