A pairing engine: a piece of software that takes the state of a tournament - who has played whom, with which colours, on how many points - and returns the pairings for the next round according to the FIDE Swiss rules.
Inside other software, essentially always. An organizer encounters JaVaFo without ever seeing it:
The data format they exchange is TRF, the FIDE standard tournament file - which is why tournament data moves between programs at all.
These are the two engines an organizer is likely to hear about, and they solve the same problem in different ways.
| JaVaFo | bbpPairings | |
|---|---|---|
| Language | Java | C++ |
| Licence | proprietary, free to use | open source |
| Rules | FIDE Dutch | FIDE Dutch |
| Interface | file in, file out | file in, file out |
| Typical use | desktop tournament software | servers and self-hosted tools |
Because both implement the same published rules, their pairings agree in the overwhelming majority of positions. Where they differ, it is in situations the rules leave open to more than one legal solution - and either answer is correct.
Being open source, bbpPairings is the usual choice for anything self-hosted, which is why it is the engine behind the pairings in our own tools.
You will never install JaVaFo. What is worth taking away is the layer it represents.
The practical consequence for a club: use something that calls a real engine rather than pairing by hand, whatever the size of the event - running an event in the app.
Because the Dutch rules are long and precise, and simplified versions drift from them within two rounds, producing rematches and colour imbalances that players notice. A certified engine also gives you an answer when somebody disputes a pairing.
The FIDE standard file format for tournament data. It is what pairing engines read and write, and it is the reason an event can move between different programs instead of being locked into one.
A pairing engine for Swiss tournaments written in Java by Roberto Ricca. It implements the FIDE Dutch pairing rules and is used as a reference implementation: it is what other programs are checked against.
Not directly. It is a component: arbiter programs call it themselves, and a club organiser never sees it. You need it if you are writing your own software or want to verify a pairing independently.
They are two engines implementing the same Dutch rules. JaVaFo runs on Java and appeared earlier; bbpPairings is written in C++, needs no runtime and is easier to embed. Both are endorsed by FIDE, and on the same input they give the same pairings.
Yes. Export the tournament to TRF, feed the file to the engine and compare the result with what your program produced. That is exactly how disputes about “the pairing is wrong” are settled.
Everything people usually keep in a spreadsheet is already in the app: pairings, points, tie-breaks, round order. Free, with no subscriptions and no cap on the number of players.
The bot is constantly improved based on real tournaments. If you need a feature that isn't there yet, message the developers right inside the bot with the /support command. Many features appeared exactly because organizers asked for them, and useful ideas get added quickly.
Software - Swiss-Manager, Vega, Chess-Results. Systems - rounds in a Swiss.
At the board since childhood: hazy about his rating, precise about every rook he has blundered. Counts an evening as a good one if the opponent stayed to talk afterwards instead of rushing off to check with an engine. Message →