Guide

Round-robin generator: how it works

A round-robin generator is a tool that takes a list of teams and pairs them so every team plays every other team — once in a single round-robin (the standard weekend-tournament format), twice in a double round-robin (the standard for season-long leagues, played home and away). The generator runs the pairing algorithm in a fraction of a second, balances the fixtures across rounds, and rotates a bye when the team count is odd. Here is how it works under the hood, how to use it, and when it is the right pick.

Michael Carter

By Michael Carter

Senior Sports Journalist & Match Analyst · Updated May 31, 2026

6-team round-robin schedule generated by the round-robin generator
A 6-team single round-robin as the generator exports it — five rounds, three matches per round, fifteen matches total.

The math the generator does for you

For N teams in a single round-robin, the generator produces:

  • Total matches: N × (N − 1) ÷ 2 — 6 teams = 15 matches, 8 teams = 28, 12 teams = 66, 20 teams = 190.
  • Number of rounds: N − 1 with an even count, N with an odd count (the extra round absorbs the bye rotation).
  • Matches per round: N ÷ 2 with an even count, (N − 1) ÷ 2 with an odd count (one team byes).
  • Matches per team: N − 1 in a single round-robin, 2(N − 1) in a double round-robin.

For a double round-robin, multiply matches and rounds by two. A 20-team double round-robin (the Premier League shape) is 380 matches across 38 rounds per team.

How the algorithm pairs the teams

The generator uses the circle method: line up the teams in two rows, fix one team in place, and rotate the rest around it round by round. Every rotation produces a fresh set of pairings, and after N − 1 rotations every pair has met exactly once. The method has been used since the 19th century because it is provably balanced — no team plays too often in any one round, and the home/away alternation falls out naturally.

Here is the full output for six teams (A through F), built by the circle method:

RoundMatch 1Match 2Match 3
1A vs FB vs EC vs D
2A vs EF vs DB vs C
3A vs DE vs CF vs B
4A vs CD vs BE vs F
5A vs BC vs FD vs E

Five rounds, fifteen matches, every pair plays once. The generator does the same thing for any team count up to 24 in a fraction of a second.

Odd team counts get a rotating bye

With an odd number of teams, perfect pairing in a single round isn't possible — one team sits out. The generator inserts a virtual “bye” team into the rotation, so the team sitting out moves cleanly through the schedule. Across the cycle, every team byes exactly once. A 7-team round-robin runs 7 rounds with 3 matches plus one bye per round; a 9-team runs 9 rounds with 4 matches plus a bye.

Round-robin generator vs bracket generator

A bracket generator builds a knockout — one loss eliminates a team and the tournament finishes in log₂(N) rounds. A round-robin generator runs the long way: every team plays every other, and the standings table at the end reflects overall performance, not one bad day. Use a bracket when time is the constraint and a single elim wallchart is what people want; use a round-robin when fairness matters more than speed.

Many real tournaments use both. The World Cup, the Champions League, and most pickleball events run a round-robin group stage and then a knockout playoff. Generate the group stage in the round-robin generator, then carry the top finishers into a single-elim bracket from the templates.

Using the round-robin generator

  1. 1. Add teams

    Type team names one per line, or paste a roster. The generator handles any count from 3 to 24. Use placeholders if final names are not in yet — you can rename inline after the schedule generates.

  2. 2. Pick single or double round-robin

    Single for a one-day or weekend tournament, double for a full season played home and away. The math doubles cleanly: double round-robin = 2 × matches and 2 × rounds.

  3. 3. Hit Generate

    The fixtures land instantly. The generator outputs the round-by-round pairings, the bye when the count is odd, and a standings table that will populate as scores come in. Regenerate if you want a different round order — the pairings stay the same.

  4. 4. Track scores, print, share

    Type the final score after each match. Standings sort by points → difference → for. Print the schedule and standings any time, or share the live URL.

Another example

10-team round-robin schedule generated by the round-robin generator
10-team round-robin — 9 rounds, 5 matches per round, 45 matches total. The same circle method scales straight up.

Where this fits next to the other guides

Open the round-robin generator

Add teams, pick single or double, hit Generate. The schedule and the standings handle themselves. Free, no signup.