Skip to main content

Matchup guides

Round-robin scheduling with the Berger circle method

Match-count formulas, five- and six-team circle examples, odd-team byes, court allocation and checks that prevent back-to-back fixtures.

Six numbered cards arranged in a circle around a fixture grid

The draw is done, there are six teams, and now the schedule has to give every team a match against the other five, without anyone playing twice in a row, inside two sessions of pitch time. Most committees do this by pairing names on paper, and discover somewhere around the ninth fixture that one team has been given three matches back to back.

There is a mechanical method for it, well over a century old, and it is right the first time. It is called the circle method, or a Berger table.

First: how many matches, how many rounds

A single round robin with n teams:

  • Matches: n × (n − 1) ÷ 2
  • Rounds: n − 1 when n is even, n when n is odd

The counts you will actually meet:

  • 4 teams — 6 matches, 3 rounds
  • 5 teams — 10 matches, 5 rounds
  • 6 teams — 15 matches, 5 rounds
  • 8 teams — 28 matches, 7 rounds
  • 10 teams — 45 matches, 9 rounds
  • 12 teams — 66 matches, 11 rounds

The middle column is the argument against a full round robin above a handful of teams. At eight teams, 28 matches is two full days of pitch time — which is the point where groups beat a single round robin. See Group setups by entry count.

For a double round robin, double both numbers.

The circle method, in two minutes

Write the team numbers in two rows. Team 1 stays where it is; every other number rotates one place after each round. Pair them off vertically.

With six teams, round one looks like this:

1  2  3
6  5  4

Read down the columns: 1–6, 2–5, 3–4. That is round one.

Hold 1 in place and push 2 3 4 5 6 one step clockwise around the U. Round two:

1  6  2
5  4  3

1–5, 6–4, 2–3. Three more turns gives the whole schedule:

  • Round 1 — 1–6 · 2–5 · 3–4
  • Round 2 — 1–5 · 6–4 · 2–3
  • Round 3 — 1–4 · 5–3 · 6–2
  • Round 4 — 1–3 · 4–2 · 5–6
  • Round 5 — 1–2 · 3–6 · 4–5

Count them: 15 pairings, exactly 6×5÷2. Nothing repeated, nothing missing. Each team appears once per round, so no team can be scheduled for two matches at the same time.

That is the entire algorithm, and it works for any even number of teams.

An odd number of teams: add a ghost

With five teams, add a 0 to make six and rotate exactly as above. Whoever is paired with 0 sits that round out.

  • Round 1 — 2–5 · 3–4, team 1 rests
  • Round 2 — 1–5 · 2–3, team 4 rests
  • Round 3 — 1–4 · 5–3, team 2 rests
  • Round 4 — 1–3 · 4–2, team 5 rests
  • Round 5 — 1–2 · 4–5, team 3 rests

Five rounds, ten matches, every team resting exactly once. Because team 1 never moves it always rests in round one — to spread that, swap team 1 with another number before you start, or reorder the rounds.

Spreading matches across pitches and sessions

The circle method tells you who plays whom in which round. It does not tell you what time, on which pitch. That is step two.

Each round of a six-team event is three matches. If you have:

  • Three pitches — the whole round plays at once, one time slot per round. Five slots and the event is over.
  • Two pitches — each round needs two slots (two matches, then one). Five rounds becomes ten slots, half of them using a single pitch.
  • One pitch — fifteen consecutive slots. A six-team round robin on one pitch is two days, not one.

Two rules when you assign the times:

Do not break round order. Finish round one before starting round two. Jumping ahead means one team has played three matches while another has played none, and the mid-event table stops meaning anything.

Leave at least one match between a team's two matches. The circle method guarantees no team plays twice within a round; what it does not guarantee is that the team in the last match of round one is not also in the first match of round two. Check both seams when you lay out the times.

The reverse fixtures

Double the table above and swap home and away. For a grassroots event on neutral ground, "reverse fixtures" only means playing everyone a second time — and you should reverse the round order for the second half (5, 4, 3, 2, 1) so that two teams who met in round one do not meet again immediately in round six.

What the circle method does not solve

It is a pairing algorithm, not a fixture secretary. Four constraints are still yours to handle:

  • Seeding. The method does not know that teams 1 and 2 are the two strongest. If you want the two best to meet last, assign their numbers so that pairing falls in the final round.
  • Venue constraints. A team travelling in cannot take the 7am slot.
  • Same department. Two teams from the same unit are usually scheduled to meet early, so the result is not open to suspicion at the end of the event.
  • Opening and closing fixtures. The opening match often has to be one specific pairing.

The right way round is to run the circle method first, so the set of pairings is correct, then permute the team numbers to satisfy the constraints. Never edit the pairings — edit the numbers.

Running it

The round robin schedule tool generates the table above for whatever entry count you give it, odd numbers included, with no sign-up.

For a real event, Matchup generates the fixtures for both the group stage and the knockout, spreads them across the number of pitches you declare, keeps the table updated in the tiebreaker order you chose, and hands you one public link to drop into the group chat. Up to 8 matches is free.

Create a tournament for free · Pricing

Read next: Group setups by entry count · Teams level on points

Message our Facebook page