Round Robin Schedule Generator
Build a fair round robin schedule for any number of teams, with automatic byes for odd counts and balanced home and away games.
About this tool
A round robin is the fairest way to run a league: every team plays every other team the same number of times, so the final table cannot be blamed on an easy draw. A single round robin has each pair meet once, and a double round robin has each pair meet twice, once at home and once away.
Two details are where simple generators go wrong. The first is an odd number of teams. With five teams, three can play while one sits out, but a generator that only knows how to pair teams evenly will either refuse the input or quietly invent a phantom match. This tool adds a virtual slot instead, so exactly one team rests each round and every team rests exactly once.
The second detail is home advantage. If you always let the same slot host, one team ends up playing almost every game at home. Here the home side of each pairing is chosen so that home games are spread as evenly as the arithmetic allows: with an odd number of teams everyone hosts exactly the same number of games, and with an even number the counts differ by at most one.
Why perfect home balance needs an odd number of teams
With an odd number of teams each plays an even number of games, so home and away split exactly in half. With an even number each plays an odd number of games, the totals cannot all be equal, and the counts end up differing by exactly one — the best the arithmetic allows.
A team only ever looks at its own record: how many home games it got. With n teams, each plays n minus one games. When n is odd, n minus one is even, so the total divides cleanly and every team can take exactly half at home. When n is even, n minus one is odd, and an odd number cannot be halved — someone has to have one more home game than someone else.
The schedule is built so that this shortfall is spread as thin as possible: the counts never differ by more than one, which is the tightest bound available. That is why the balance line reads a single number for odd leagues and a one-apart range for even ones.
It is worth seeing why a fixed rule fails. If the same slot always hosts, one team accumulates almost all its games at home. The host is instead chosen from the positions of both teams in the list, and that is what keeps the totals close across the whole table.
How the fixtures are rotated so everyone meets once
The schedule uses the circle method: teams sit in slots, the opposite slots play each round, then all but one slot rotate by a single position. After n minus one rounds, every pair has met exactly once.
One slot stays fixed while the others move one place each round. The fixed slot is what guarantees the rotation brings it together with every other team in turn, and the order of movement is what stops the remaining pairs from repeating.
The direction of the rotation matters. Rotate the wrong way and some pairs meet twice while others never meet at all — and the total number of matches still looks about right, so the error hides unless you check every pair. Getting the direction right is the whole reason this is a known method rather than an ad hoc shuffle.
With an odd number of teams the same method runs with one extra virtual slot, so the round count becomes n rather than n minus one — the extra round is simply the space the rotating bye needs.
Why two teams cannot share a name
Team names are checked for duplicates without regard to case, and a repeat is refused outright. Two identical names make the printed fixtures unreadable and make the home-game tally look wrong.
Home and away balance is worked out on positions in the list, not on the names, so two rows reading the same are two different teams as far as the schedule is concerned — and the balance line would show two separate counts that look like a mistake.
Case is ignored when checking, so "Rovers" and "rovers" count as the same name. The check exists to catch the copy-paste slip in which a team appears twice because a line was duplicated, which would otherwise silently double that team’s games.
Home advantage cannot be fixed to a slot
Give one slot permanent home status and that team plays at home nearly every week; allocate greedily by round and the balance collapses as soon as there are more teams. Both plain approaches were measured here and both fail. This page orients fixtures by distance on a circle, which bounds the spread of home games to one.
An odd number of teams can be perfectly balanced: every team gets (n-1)/2 home games. An even number cannot, because n-1 is odd, so each team takes either n/2 or n/2 minus one. A spread of one is the limit, not a shortfall.
Why home and away can be settled independently: pairing already guarantees exactly one match per team per round, so orientation can be decided afterwards by a separate rule without touching the round structure. Splitting the two problems is what makes one of them provable.
The extra slot with an odd number of teams is a dummy: whoever is paired with it has a bye that round, which produces no fixture and does not break the one-match-per-team premise.
Duplicate names, case-insensitively, are refused outright. A table containing two teams with the same name cannot be read — which row is which becomes guesswork. Better to ask for a rename than to print an unreadable schedule.
Frequently asked questions
How many matches and rounds does a round robin have?
With n teams, a single round robin has n times (n minus one) divided by two matches. If n is even that fits into n minus one rounds with every team playing each round; if n is odd there are n rounds and one team rests in each of them. A double round robin doubles both the matches and the rounds.
What happens with an odd number of teams?
One team has a bye each round. The schedule adds a virtual slot, and whichever team is paired with it sits out that round. Across the season the bye moves through the teams so that each one gets it exactly once, which is why an odd league finishes in n rounds rather than n minus one.
How are home and away games decided?
The host of each pairing is picked to keep home games balanced across the table. With an odd number of teams every team hosts exactly half of its games. With an even number the totals cannot be split perfectly, so some teams host one more game than others, and the difference never exceeds one.
What is the difference between single and double round robin?
In a single round robin each pair meets once, which is the shortest complete schedule. In a double round robin each pair meets twice, once at each ground, which is the usual format for home-and-away leagues. The second half of a double round robin mirrors the first with home and away swapped.
Can I use this for any sport or activity?
Yes. A round robin is a scheduling pattern, not a scoring system, so it works for football, chess, esports, debate leagues or anything else where everyone should meet everyone. Enter your team names and the tool produces the fixtures.
Related tools
Multiply, transpose, invert and find the determinant of matrices. Partial pivoting keeps results stable, and a singular matrix reports no inverse instead of a screen of NaN.
Score a ten-pin bowling game from any roll sequence, with a frame-by-frame scorecard, correct strike and spare bonuses and the tenth-frame three-ball rules.
Apply percent-off steps and fixed coupons in order and see what each deducts, the true final price, the single equivalent discount, and how far off the naive sum would be.