Skip to main content
Documentation

Swiss Rounds

In a Swiss stage nobody is knocked out. Every round pairs players with similar records against each other, so the field sorts itself: the strong meet the strong, everyone keeps playing, and the standings converge on a real order without a bracket's early exits.

This page explains how the pairings are actually decided, what the standings show, and how a round moves from "generate" to "played". Format setup, scoring values, and the tiebreaker catalogue live in Stages & Formats.

Setting up the stage

A Swiss stage has two settings of its own, under Swiss Settings when you create or edit it:

  • Max Rounds — how many rounds the stage will run. Leave it empty for unlimited rounds and decide when to stop by finalizing the stage. Once the cap is reached, generating another round is refused; the field is editable mid-event, so you can raise the cap if the event needs one more round. Stages & Formats has a rounds-per-field-size table if you want a starting point — it's guidance in the docs, not a suggestion the app makes.
  • Pairing Method — how players inside a score group are matched up (see below). The default is Adjacent.

Everything else — match points, bye points, forfeit points, and which tiebreakers appear and in what order — is part of the stage's scoring configuration.

How pairings are decided

Each time you generate a round, the pairing engine works through the same sequence:

  1. Rank the field by the current standings — points first, then your stage's tiebreakers, exactly as the standings table shows them.
  2. Hand out a bye if the number of eligible players is odd (see Byes).
  3. Split the rest into score groups — everyone on the same number of points forms one group.
  4. Work down from the top group. If a group has an odd number of players, its lowest-ranked player floats down into the next group so both can pair cleanly.
  5. Pair inside each group using the pairing method, then check for rematches: any pair who have already played gets repaired by swapping pairings around within the group, as long as that doesn't break other valid pairings.

Everything the engine decided along the way is written into the round as pairing notes — score groups, who floated down, which rematch was repaired or forced, who was left out and why. They're on the review screen under Why these pairings, and they stay with the round afterwards for organizers to read back.

Pairing methods

| Method | Inside a score group it pairs | Feels like | | ------------ | ----------------------------- | ------------------------------------------------ | | Adjacent | 1v2, 3v4, 5v6 | Neighbours play each other. The default. | | Slide | 1v5, 2v6 | Top half against bottom half ("cross" pairing). | | Fold | 1v8, 2v7 | Strongest against weakest ("slaughter" pairing). | | Random | shuffled | No structure inside the group — chance decides. |

In the first round nobody has a record yet, so there's a single score group ordered by seed — the stage's seeds if you've set them, otherwise the competition's — and the pairing method decides who meets whom from there.

Rematch avoidance is strong, not absolute

The engine actively tries to break rematches, and in most fields it succeeds. In a small or late-stage field it can run out of options — the last two players in a score group may have already met. When that happens the pairing is not silently allowed: the round's notes flag it as a forced rematch, and the review screen tells you before you release, so you can accept it or rearrange the pairings by hand.

Byes

When the eligible field is odd, one player sits out and takes the bye. The engine picks the lowest-ranked player who hasn't already had a bye in this stage. If every remaining player has already had one, it falls back to the lowest-ranked player and says so in the notes.

A bye scores whatever your stage's scoring config awards for a bye, and it counts as a played round. Like forfeits, byes are left out of the strength-of-schedule tiebreakers (Buchholz, Median Buchholz, Sonneborn-Berger, Koya) — those only count opponents a player actually faced. And byes never affect anyone's platform rating; see Stats & Rankings.

Who gets left out of pairings

Some participants are deliberately excluded before pairing even starts, and each exclusion is listed by name in the round's notes rather than being dropped quietly:

  • Withdrawn or dropped players, at either the competition or the stage level.
  • Players already Advanced or Eliminated from this stage (relevant in Swiss elimination).
  • Anyone with no standings row yet, or — in a stage that uses groups — no group assignment. Both of these mean something needs fixing, which is exactly why they're surfaced.

If someone withdraws after you generated a round but before you released it, release is refused and names the players involved. Regenerate the round to pair the field as it actually stands.

Swiss inside groups

Add groups to a Swiss stage and each group runs its own independent Swiss: pairings never cross group boundaries, and the standings page shows a separate leaderboard per group, with ranks restarting at 1 in each. Byes are handed out per group, so an odd group produces its own bye.

Grouped Swiss is still paired round by round from the Rounds tab — there's no "generate everything at once" for Swiss the way there is for round robin. A group that's down to a single eligible player is skipped for that round, with a note saying so, and a pool needs at least two eligible players before it can be paired at all.

Running a round

The organizer flow is a review-then-publish loop, and only one round can be live at a time:

  1. On the Rounds tab, click Generate Round N. This computes the pairings and opens a review screen. No round and no matches exist yet, and players see nothing — the header says so.
  2. Check the notes, rearrange anything you want by clicking a player and then a slot, then Release round. This is the moment the round and all its matches are created and the pairings become visible to players.
  3. Open the round when play should start. This is the lifecycle flag that turns the round from Upcoming into In Progress and triggers the round notifications.
  4. Complete the round once every match in it is finished. The platform refuses to complete a round with matches still outstanding, and tells you how many.

The full review screen — its errors and warnings, the click-to-place editing, Regenerate, and Discard — is documented in Managing Events. Editing isn't over at release, either: while a round is still Scheduled, its detail page has a Swap mode for exchanging two players between pairings.

Set the round's dates with the Set dates control on the round card. This isn't decoration — the round notifications below are driven by those dates, so a round with no dates set sends nothing.

Round states, and what you can undo

| State | Players see it as | What you can still do | | ------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Scheduled | Upcoming | Open it, or delete the round entirely | | Open | In Progress | Complete it once all matches are done; revert it to Scheduled as long as no match has been completed (matches with games recorded but no final result are reset and revert fine) | | Completed | Completed | Generate the next round |

You can't release a new round while another is still Scheduled or Open — finish or clear the current one first. That guard is what keeps standings, pairings, and the round history in step.

Standings

The Swiss standings table lives on the competition's public page as Current Standings, and shows:

| Column | What it is | | ------------------------- | ------------------------------------------------------------------------------------------------- | | # | Rank | | Player | Name, plus any status badge | | Pts | Match points from your stage's scoring config | | Your tiebreaker columns | Whichever tiebreakers you configured, in your configured order | | W-L (or W-D-L) | Record; the draw column appears when the stage's match format can end in a draw (BO1 or Two-Game) | | Played | Matches played, byes included | | F | Forfeits — this column appears only when the stage has any |

Which tiebreakers appear and in what order is entirely up to your stage's scoring configuration — every tiebreaker in the catalogue is computed for Swiss, and you drag them into priority order when you create or edit the stage. A new Swiss stage starts with Buchholz, Matches Played & Won, Head-to-Head, Game Win %, Seed. The full catalogue is in Stages & Formats.

Withdrawn and dropped players are handled by the standings rules that apply everywhere: a player who never completed a match disappears from the board, and one who did stays visible — de-emphasized, without a rank number, carrying a Withdrew badge — so their opponents' tiebreakers still add up. See Leaving a Competition.

What players see

  • Their pairing, on the competition page, as soon as you release the round — a released round is public even before you open it, shown as Upcoming. Each round card carries its name, status, and date range; a player who has the bye is named there too. Results appear live as matches finish, without anyone reloading the page.
  • A notification once the round is open and its start date has passed — in-app, push, and a Discord DM, subject to each player's own notification preferences. It names the round and the competition, and includes the play-by deadline when the round has an end date. Only players with an unfinished match are messaged, and there's no email for this one.
  • Reminders while the round runs — a halfway nudge, and an urgent warning 24 hours before the deadline. Both go only to players who still have a match outstanding, and both need the round's dates to exist.

Nothing is auto-forfeited when a deadline passes. Overdue matches are surfaced for you to settle deliberately through the Resolution Queue.

Swiss elimination

Swiss Elimination is a separate stage format that runs Swiss pairings but adds thresholds — the "X-N and you're out" structure familiar from trading-card-game events:

  • Wins to Advance — reach this many wins and the player is marked Advanced.
  • Losses to Eliminate — reach this many losses and the player is marked Eliminated.
  • The maximum number of rounds is derived for you: wins + losses − 1.
  • Pairings happen inside win-loss pools, and thresholds are processed when you complete each round, so Advanced and Eliminated badges appear in the standings as the stage progresses. Both groups drop out of later pairings automatically.
  • A Slide Pairing (Round 1 override) switch pairs the first round top-half-versus-bottom-half instead of the default Adjacent method. It's on by default, and it only overrides Adjacent — if you've chosen Fold or Random, round 1 uses that method and the switch does nothing.