We took an in-depth look at the three group stage formats currently in use and set out on a journey to find the perfect format, one that determines the best teams in the group stage of a tournament and seeds them into the playoffs bracket as fairly and accurately as possible.

For at least a decade we have been searching for the perfect group stage format. A format that finds the best teams and ranks them in an order which accurately represents where they stand among the competition in the first stage of the tournament and that also correctly seeds them into the playoffs bracket. These things have not always happened, which is why we decided to look into ways of improvement.

There are three basic formats in the current landscape: round robin, GSL, and Swiss. In top-tier Counter-Strike, round robin — by far the oldest of the three, as a format that has been used in many mainstream sports and other esports — has taken a back seat, although we could still see it in play at the biggest tournaments until recently, such as at all IEMs before this year's Katowice stop.

The GSL format (named after the Global StarCraft League) arrived in Counter-Strike 1.6's last year, 2012, after Tomi "lurppis" Kovanen brought it to attention and explained its benefits. It went on to become the go-to format at the Majors in CS:GO, with many other organizers using it in their premier tournaments as well. DreamHack is now perhaps the biggest advocate of the GSL format, as they continue to use it regularly, be it for the Open circuit or at the larger Masters tournaments, while ESL came up with an adjustment to the same principle for their tournaments in 2018.

How can we improve the tournament format at the Majors?

The Swiss, adapted from tournaments in chess, is the newest in CS:GO. The teams advance through the format by facing opponents with the same win-loss record, until they reach a set amount of wins and advance to the playoffs, or a set number of losses and get eliminated. It was first used at the ESL One Cologne 2016 Main Qualifier and, at the beginning of 2017, the format was brought to the Majors themselves, where it has been the most prominent ever since.

Different organizers using different formats is understandable. The tournaments are theirs, after all, so it's up to them which system they see as the most fitting for whatever reasons, such as scheduling, the number of teams attending, the viewers' preferences, etc.

However, the Majors, in which the developers themselves are involved, need to be readdressed. They are the pinnacle of CS:GO, the events we hold to the highest standards. They should feature the best way available to get the eight best teams in the playoffs, sorted as accurately as possible, which is ultimately what the perfect format should do.

Let's first take a look at each of the three formats and explain what their flaws are before we finish with our idea of a solution.

Round robin

The round robin is undoubtedly the most flawed. The lack of proper tiebreakers, particularly in cases where more than two teams end up with the same amount of points, is perhaps the most glaring problem. Usually, those cases are dealt with by using round difference between the tied teams, but that is hardly a solution, as teams shouldn't have to worry about how many rounds they can afford to lose; winning the match is the only thing that should matter.

The best tiebreaker would be rematches between the tied teams, but there normally isn't time for that in an already tight schedule during groups. That is why, ahead of IEM Katowice 2016, ESL introduced mr3 tiebreakers, where the teams played each other on the same map in an overtime setting, after they all participated in one veto. Fortunately, that only happened once, in 2017's Katowice tournament, and, as we can see, ESL abandoned the idea and round-robin altogether.

Every team's nightmare

Secondly, the outcome of a round-robin group stage can already be determined before the last matches are played, which renders said matches meaningless. That, for example, happened in both groups at ESL Pro League Season 6 Finals, as Luminosity played Liquid and North faced NiP at the end of groups with nothing at stake, aside from some pocket change.

Although this issue rarely comes up nowadays, mainly because it's rarely possible to do with no risk involved, round robin allows for teams to lose a match on purpose to avoid a hard matchup in the playoffs. That can be limited by proper scheduling, in which both groups are being played at the same time, but not completely prevented. Lastly, the oldest format of the trio only determines who the best teams are within the chosen groups rather than the best out of all teams, so it's very dependent on seeding.

GSL

The GSL format is a significant improvement over round robin in that there is no need for tiebreakers and there are no meaningless matches, because it's essentially a double-elimination bracket.

Nonetheless, it isn't perfect. The last issue mentioned above persists, perhaps even more so than in the round robin. A team faces only three opponents, or two if the decider is a rematch of the initial round, in which case they only need to be better than one opponent to make it to playoffs.

Na`Vi only had to beat Heroic twice to advance

A recent development by ESL, who evolved the GSL format to eight teams per group for IEM Katowice 2018 and some of their future events, helps the aforementioned issues considerably. However, the organizers use it to find three teams who advance (first place to semis, second and third to quarter-finals). If it were to produce four, the last matches of each bracket would only serve to seed the teams who had already advanced to quarter-finals, so you'd still only have to beat two teams to get there.

Swiss

As far as improvements go, teams play between three to five opponents and have to beat three to advance to playoffs. Furthermore, they can meet any opponent throughout the group stage, depending on their results.

At StarSeries, best-of-three series were introduced into the system for the first time. That has reduced the possibility of big upsets, rewarding teams with a deeper map pool as opposed to teams who play only three to four maps and get away with it in best-of-ones, but it can't prevent the odd matchups created by the randomizer.

With the way things currently stand, the semi-randomized system only considers the teams' scores when determining the next matchups, which means it is possible that the two best teams — or the two worst teams — can meet earlier than they should, for example. That makes the entire system collapse because a team ends up in a pool where they shouldn't be in the first place, which snowballs into more and more mismatches down the line.

Cloud9 had one of the toughest routes at StarSeries

A good example would be Cloud9's route in Kiev when they were ranked third in the world. After winning the first match, they met FaZe (the #1 team at the time) in the 1-0 pool and lost, and proceeded to lose to SK (#2) in the 1-1 pool. As if that wasn't enough, when they beat Virtus.pro in the fourth round, they faced the hardest matchup in the fifth round, mousesports, and got eliminated. Cloud9 likely would have made it to playoffs had they had just a bit more luck on their side.

The perfect format

That leads us to the solution. The most obvious idea would be to utilize a predetermined seeding, which would stay the same throughout the group stage, but it's not as simple as that. It would highly depend on good seeding and limit the number of possible matchups severely.

On top of that, in a perfect scenario where no upsets happen, a predetermined seeding would lead to the ninth-best team advancing to the playoffs rather than the eighth-best because of the Swiss format's core rule; rematches can't happen, unless it's unavoidable.

To deal with that issue, either that rule must be scrapped — which would undermine the Swiss format's significant advantage over GSL — or in-tournament reseeding must be introduced.

There is a way to use the tournament's results to reseed the teams based on what level of opponents they have faced; the Buchholz system, which is normally used as a tiebreaker. It determines how hard a team's route has been throughout the tournament by summing up the scores of their opponents, so it can also serve as a seeding tool between each round to prevent teams from having a much tougher (or easier) route than they should.

As it's based on results within the tournament, it's completely objective. That is not the case with predetermined seeding, which is based on results over a much longer period of time, so it's prone to overlook teams' recent improvement or decline. However, it is still necessary to use predetermined seeding for the first round at the very least, as Buchholz can only take over in the third round, when each team has played two opponents, which creates a diversity in the seeding.

To show how this works in practice, let's take the next StarSeries example, in which we left things as they actually happened until round three, at which point Buchholz can be applied, and proceeded by reseeding each pool from there on:

Buchholz scoring method: sum of previous opponents' current scores (W-L)



In reseeding ahead of round five, a tiebreaker (the higher number of wins) was used between Liquid and TyLoo, who had the same final Buchholz score (0).

As you can see, not only does Buchholz add your opponent's scores directly after you've played them, it continuously gathers data on all your previous opponents to determine what level of teams you've faced throughout the tournament, giving you your next opponent based on that information.

You will find that, in rounds three and four, this mostly results in seeding groups rather than specific seeds for each team. That is because the sample size of your previous opponents is still quite small, so there can be more than one possibility of the next round's matchups. By round five, things usually get a lot clearer, as at that point most teams have finished the group stage and thus Buchholz's sample size increases.

The nature of Swiss is that as you keep winning, you should meet harder and harder opponents, while as you keep losing, you should meet easier and easier opponents. The Buchholz system underlines that nature, as it prevents the best teams (and the worst teams) within each pool from meeting each other. If you've faced difficult opposition (a set of teams who won more matches than they lost on average), the Buchholz system will put you up against an opponent that hasn't been tested as much, and vice versa.

This can be improved further. The problem is that there is still the randomized second round in place, which can wreak havoc if by a chance it turns into the worst case scenario, or similarly:

A scenario like this is what we're trying to avoid

This is what we're trying to avoid with the Buchholz system later on. That is why it would be better if predetermined seeding was extended to round two as well — or at least seeding pools of four teams, if that is how the first round was drawn — before Buchholz can take over in round three and start taking in-tournament results into consideration.

When you've arrived at the final standings, with eight teams through to the playoffs, another issue comes up. Up to this point, the playoffs brackets which followed the Swiss format have been drawn semi-randomly:

1. 3-0 teams are drawn against 3-2 teams

2. Remaining 3-2 team is drawn against a 3-1 team

3. Remaining 3-1 teams face each other

This has caused quite some controversy in the past, most notably at PGL Major Krakow, where Astralis (3-1) faced SK (3-1) in the quarter-finals, while North (3-1) got the easier matchup, Virtus.pro (3-2).

It can be done in a better way. And guess what - the Buchholz system's original purpose is exactly this, to break ties. By calculating each team's Buchholz score, you can seed them 1-8 instead of into three groups (1st-2nd, 3rd-5th, and 6th-8th) and the aforementioned issue is solved.

Here is the PGL Major Krakow playoffs bracket in an alternate universe, where Buchholz was used to assign each team an exact seed after the Swiss group stage came to an end:

Astralis wouldn't have faced SK, but instead they would have played North, who had had a much easier route throughout groups than the other 3-1 teams. Meanwhile, SK — as the team who had faced the toughest opposition on average out of the three teams — would have met Virtus.pro on the other side of the bracket.

To conclude, not only can Buchholz make sure all teams have a fairly even route throughout the group stage — based on actual results in the tournament as opposed to a prediction ahead of the event (for most of the way) —, it then helps seed them into playoffs in a fair way, accomplishing what we expect from a perfect format. The only drawback is that the numbers behind the Buchholz system are quite complicated to follow, but the basic principles of the Swiss format stay the same.

The only thing that remains is to hope this becomes more than just a theory on paper. Your turn, tournament organizers.