Swiss System · 4–64 participants

Swiss System Tournament Generator

Run a multi-round Swiss tournament without requiring everyone to play everyone. Generate deterministic no-rematch pairings from current standings, award fair automatic byes, and configure Buchholz, Sonneborn-Berger, Head-to-head, and Wins tiebreaks—all saved in this browser.

  • 4–64 Participants
  • Local Save
  • JSON Backup
  • Round Presets
  • No Rematches
  • Fair Byes
  • Configurable Tiebreaks
  • CSV Export
  • No Account
  • Print-ready

Setup

Tournament settings

Add 4 participants to calculate practical round presets.

Quick uses the formal recommendation. Reliable adds one round and Extended adds two, both capped at the no-rematch maximum of —. No preset guarantees a unique ranking.

Secondary tiebreak order

Points is always first. Initial roster order and stable participant ID are always the final fallback.

  1. 1. Buchholz
  2. 2. Sonneborn-Berger
  3. 3. Wins

Participants

Build the roster

0/64
One team or player per line. Duplicate names are allowed.

    Generation summary

    0 participants · 3 planned rounds · 0 planned competitive matches

    No Bye is needed.

    Add at least 4 participants.

    How the Swiss tournament generator works

    Add a roster, choose a Quick, Reliable, Extended, or Custom round count, select a first-round pairing method, and generate Round 1. After every competitive match in a round has a recorded result, the generator uses the current standings to build the next complete round while avoiding every previous opponent.

    Pair participants without repeat opponents

    Pairing prioritizes opponents on the same points, then minimizes score differences while avoiding every previous opponent. An exact matching solver evaluates the complete pairing round instead of accepting a first-valid greedy pairing. If no complete no-rematch round exists, generation stops with an explicit explanation.

    Fair Swiss byes for odd rosters

    An odd-sized roster gives one participant a Bye each round. The Bye is not a played match and has no fake opponent. The lowest-ranked eligible participant receives it, and nobody receives a second Bye while an eligible Bye-free participant remains.

    Swiss standings and tiebreaks

    Standings show played, wins, draws, losses, Byes, points, Buchholz, and Sonneborn-Berger. Points stays first; organizers can order Buchholz, Sonneborn-Berger, Head-to-head, and Wins before the fixed roster-order fallback. Head-to-head uses a mini-table only for participants still tied at that step, and Byes never create an opponent.

    Correct earlier results safely

    Later pairings depend on earlier standings. Before changing a historical result, BracketMetrik shows an impact preview. Confirmation removes every later generated round and its results, then the organizer can regenerate from the corrected standings. Undo restores the complete previous snapshot.

    Local save, backup, CSV, and printing

    The product saves automatically to IndexedDB in this browser and does not require an account or provide cloud sync. Validated JSON backup supports portable recovery through the atomic import contract, while standings and pairings/results export as spreadsheet-ready CSV. Browser printing includes settings, tiebreak order, generated rounds, results, Byes, and current standings. Start New Tournament preserves the previous local record.

    Swiss round guidance and pairing limits

    The practical round recommendation is the ceiling of log base two of the participant count, subject to the product's supported limit. It is guidance, not a requirement. Organizers may choose any supported round count, and generation remains subject to no-rematch feasibility.

    BracketMetrik is a general-purpose Swiss implementation. It does not claim FIDE certification or official FIDE compliance.