Stats from the ASL/KSL era
by Jacob Stubbe Østergaard / JackyVSO
Introduction
The following is a set of insights gleaned from data on offline Starcraft 1 tournament games at the pro level between 2016 and 2024. It includes combined insights related to:
- Game duration
- Matchup dynamics
- Player winrates and ratings
- Map balance
- Spawn locations
- Player and matchup development over time
…and much more.
The dataset comprises all 18 seasons of ASL/SSL and all 4 seasons of KSL for a total of 2,107 games. This is enough to make lots of statistically significant inferences but also few enough that more fine-grained insights that build on a small subset of the games come with a lot of uncertainty.
Data for each game includes players, outcome, date, duration, spawn locations, map details, map selection and tournament context. I have personally compiled the data in a SQL database which I have then queried for the insights. Most of the data has been collected from Liquipedia, while game duration and spawn location has been collected from the AfreecaTV VODs.
It should be noted that since the dataset consists exclusively of top level games, the insights in this article apply only to Starcraft played at the very highest skill level. Different dynamics may be at play at other levels. For analysis of ladder game data instead of ASL/KSL, check out Kraekkling’s work.
Making these stats available is my attempt to give something back to the community. I hope you find them interesting. Let me know if you have further questions that may be answered from this dataset, and I’ll get back to you.
Table of contents
The article is divided into four main parts: Matchups, Maps, Players and Tournament Stats. For the casuals, I recommend using this menu to find the stats you’re interested in. For the nerds, I recommend diving right in and reading the article from end to end.
1. Matchups
The distribution of matchups of games in the database is as follows:
We can see that mirror matchups are quite rare, which is only logical. The comparative scarcity of TvPs can be explained by a slight overrepresentation of Zergs in ASL and KSL in general (see the figures for total games played by each race in the table below) but that leaves no obvious explanation for why there have then been more TvTs than ZvZs. Maybe Zergs try to avoid each other in group selections. Maybe ZvZ series are generally more one-sided and therefore shorter than TvTs series. I don’t know. Now let’s move on to matchup winrates. The numbers still nominally indicate that Protoss is the best performing race.
This table shows the overall winrate for each race across both its non-mirror matchups:
Overall race winrates |
Race | Total games | Overall winrate |
Terran | 1242 | 49.76 |
Protoss | 1166 | 50.6 |
Zerg | 1260 | 49.68 |
Protoss is the best performing race by a margin of 0.8 percentage points over Terran. It also seems that Terran is the 2nd best performing race. But since Artosis often points out that Terran only appears to be doing well because Flash is so good, I decided to check what the winrates would be without Flash. To make a fair comparison, I also removed the statistically best performing player for each of the other races (Rain for Protoss and Soulkey for Zerg), and this is what the updated figures look like:
Overall race winrates |
Race | Total games | Overall winrate |
Terran | 1126 | 47.66 |
Protoss | 984 | 49.83 |
Zerg | 1016 | 46.7 |
So Terran does do noticeably worse without Flash, but still better than Zerg without Soulkey. So while there's still a tiny bit of fuel for the "Protoss is OP" argument, there isn't much left for the "Terran has it hardest" argument - at least not in this dataset.
(While this was all a fun exercise, I should really emphasize that it means very little. The Protoss winrate advantage of 50.6 vs 49.76 over Terran amounts to an advantage of no more than six games, which makes it statistically insignificant by any reasonable standards. There is really only one thing that these numbers show very clearly, and that is that Starcraft is an eerily well balanced game - at least when played on carefully designed maps)
Now let's look at the winrates for the individual non-mirror matchups. The numbers confirm the well-known pattern of T > Z > P > T but suggest that Zerg's advantage over Protoss is slightly smaller than Terran's advantage over Zerg and Protoss' advantage over Terran:
While these figures are very unsurprising, the story becomes a lot more interesting when we go into some more detail. For starters, let's take a look at the development of the matchup winrates year on year:
These graphs tell quite a different story than the overall winrates. The power distributions have actually fluctuated greatly as the races have struggled for the upper hand in the metagame. The picture becomes still more nuanced when we take game duration and spawn locations into consideration.
First, let's look at how game duration correlates to matchup winrates.
Note:because of the limited data available (only 500 tournament games played in each non-mirror matchup since 2016), I have created these graphs using 10 automatically clustered intervals, which means the intervals are of different length but each represent roughly the same amount of games (20-50 games per interval). Using any more intervals than this, let alone setting a point for every single minute, would leave some intervals with way too few data points, which would make the graphs noisy/random. The presented graphs represent a compromise between that and a very coarse version with only a few intervals but more certainty. Their minor details do not represent reality but their major trends are accurate.
Looking at winrates across game duration intervals, the trend is that
Zerg rules the early game but struggles in the midgame. The late game is balanced.
We can see that if the game ends quickly, that bodes well for Zerg. In TvZ, there is a clear trend of early victories being Zerg, midgame victories being Terran, and the late game being very even. Long games are quite evenly split in all three matchups. PvZ has a similar trend but with semi-long games being once again Zerg-favored.
Moving on to spawn locations, we come to one of the most unambiguous findings of this study:
Cross spawns is VERY BAD for Terran
... and amazing for Protoss.
Effect of cross spawns in each matchup |
Matchup | Adjacent spawns winrate | Cross spawns winrate | Net effect |
TvP | Terran +14 | Protoss +7 | Protoss +21 |
TvZ | Terran +14 | Terran +2 | Zerg +12 |
PvZ | Zerg +13 | Protoss +4 | Protoss +17 |
Such strong discrepancies across 200+ games in each matchup on 4-player maps is unlikely to have happened randomly. This table begins to reveal how the overall winrate of each matchup is really just an average of a range of varied winrates under specific conditions. TvP in general might be slightly Protoss-favored but TvP on a 4 player map with adjacent spawns is strongly Terran-favored.
If that table began to reveal how circumstance-dependent the power dynamics between the races are, these charts should drive the point home. They show how matchup winrates are affected by whether it's a 2-player, 3-player or 4-player map:
The most notable thing here is just how lopsided TvP on 2-player maps is. Out of 133 games in the database, Terran has won 46 and Protoss has won 87. If TvP was never played on 2-player maps, it would be a Terran-favored matchup. Terran also fares better with more spawning locations against Zerg, although this is far less pronounced. This is consistent with another finding in the data, which was that the bigger the map (by size in tiles), the better for Terran. I have not included that figure here because it shows the same as the above but less markedly.
PvZ seems hardly to be affected by the number of spawning locations on the map. There's a slight advantage for Protoss on 3-player maps and for Zerg on 2- and 4-player maps but it's small enough to be random. I'll leave it to more accomplished players to explain why this matchup is the least affected.
2. Maps
Now let's keep our focus on the maps for a bit before we move on to stats about players. No less than 78 different maps have been used in ASL and KSL: 22 2-player maps (603 games), 15 3-player maps (425 games), and 41 4-player maps (1079 games).
Since most of these maps have been in use for only one or two seasons, it isn't really possible to glean any statistical insights from them. However, for the most popular maps which have been played across many seasons, it should be possible to make meaningful comparisons. I thought it might be interesting to devise a metric to score these maps according to how balanced they are. The following balance ranking of the 13 most played maps was calculated using RMSE (root mean squared error) across the three matchups, with 50.0% as the target value.
Note: Using RMSE instead of MAE (mean absolute error) means that a strong bias in one matchup is punished more than a moderate bias across all matchups. Whether to use one or the other is a question of what one's idea of balance really is. I'm using RMSE because I personally think a map that is perfectly balanced in two matchups but has a 75% bias in the third one is less balanced than one that has scores of, say, 57/40/58.
Most to least balanced maps |
Rank | Map | Total games | TvP | TvZ | PvZ | Balance score |
1 | Sylphid | 141 | 47.1 | 47.1 | 58.8 | 94.4 |
2 | Retro | 44 | 53.8 | 44.4 | 42.9 | 94.3 |
3 | Eddy | 55 | 54.5 | 58.8 | 46.7 | 94.0 |
4 | Butter | 41 | 44.4 | 37.5 | 50.0 | 92.1 |
5 | Polypoid | 77 | 53.3 | 64.7 | 54.5 | 90.9 |
6 | Eclipse | 94 | 36.0 | 52.4 | 43.3 | 90.9 |
7 | Vermeer | 46 | 62.5 | 64.3 | 50.0 | 89.0 |
8 | Circuit Breaker | 149 | 64.7 | 58.3 | 62.5 | 87.9 |
9 | Fighting Spirit | 105 | 40.0 | 60.9 | 34.6 | 87.7 |
10 | Benzene | 48 | 42.9 | 30.8 | 58.3 | 87.2 |
11 | Heartbreak Ridge | 48 | 30.0 | 57.9 | 55.6 | 87.2 |
12 | Transistor | 41 | 66.7 | 37.5 | 33.3 | 84.6 |
13 | Overwatch 2 | 54 | 37.5 | 69.2 | 70.6 | 82.2 |
14 | Gladiator | 47 | 12.5 | 50.0 | 69.2 | 75.7 |
15 | Dark Origin | 48 | 23.1 | 27.8 | 25.0 | 75.2 |
The winrates displayed are for the first race mentioned in the matchup (e.g. Sylphid has a 47.1% winrate for T in TvP, 47.1% for T in TvZ and 58.8% for P in PvZ)
So Sylphid appears to be the most balanced map yet made, closely followed by Retro, whereas Dark Origin is the least balanced - being very Zerg favored (and Protoss favored in TvP). Looking at the scores for Vermeer, Polypoid and Circuit Breaker, we can see that what is sometimes termed "standard maps" are actually clearly Terran-favored, whereas more unusual maps might be less comfortable for Terran.
3. Players
In this section, we'll abandon the bird's eye view and instead zoom in on how the individual Starcraft 1 pros have been faring against each other. A total of 80 players have qualified for ASL and/or KSL at least once (29 Terran, 27 Zerg, 24 Protoss). Here they are, listed according to how many tournament games they've played:
Total games played (ASL+KSL) |
Rank | Player | Games |
1 | SoulKey | 244 |
2 | Mini | 216 |
3 | Sharp | 191 |
4 | Light | 191 |
5 | Snow | 187 |
6 | hero | 186 |
7 | Rain | 182 |
8 | Best | 175 |
9 | Rush | 157 |
10 | Queen | 143 |
11 | Bisu | 129 |
12 | Action | 124 |
13 | FlaSh | 118 |
14 | Mind | 118 |
15 | Last | 117 |
16 | Larva | 113 |
17 | Soma | 101 |
18 | Shuttle | 100 |
19 | JyJ | 100 |
20 | Stork | 99 |
21 | Jaedong | 97 |
22 | RoyaL | 86 |
23 | Shine | 79 |
24 | EffOrt | 74 |
25 | Mong | 65 |
26 | Sea | 61 |
27 | BarrackS | 51 |
28 | sSak | 48 |
29 | MIsO | 47 |
30 | Sacsri | 43 |
31 | Horang2 | 42 |
32 | Modesty | 40 |
33 | Movie | 38 |
34 | Ample | 34 |
35 | Jaehoon | 32 |
36 | free | 31 |
37 | GuemChi | 31 |
38 | Killer | 31 |
39 | Leta | 25 |
40 | Calm | 24 |
41 | Piano | 19 |
42 | ggaemo | 17 |
43 | ForGG | 17 |
44 | beast | 17 |
45 | Hyuk | 15 |
46 | HyuN | 12 |
47 | Speed | 12 |
48 | nOOb | 11 |
49 | ZeLoT | 9 |
50 | 815 | 9 |
51 | Brain | 8 |
52 | Ss1nz | 8 |
53 | YSC | 7 |
54 | Ruin | 7 |
55 | HiyA | 6 |
56 | Pusan | 5 |
57 | Sky | 5 |
58 | Tyson | 5 |
59 | BishOp | 5 |
60 | Lazy | 4 |
61 | firebathero | 4 |
62 | ByuL | 4 |
63 | Scan | 4 |
64 | Iris | 3 |
65 | NaDa | 3 |
66 | Yoon | 3 |
67 | TY | 3 |
68 | Hint | 2 |
69 | Maru | 2 |
70 | Force(Name) | 2 |
71 | Terror | 2 |
72 | PURPOSE | 2 |
73 | Tinkle | 2 |
74 | soso | 2 |
75 | JJabNewDa | 2 |
76 | ivOry | 2 |
77 | TaeNgGu | 2 |
78 | 1127 | 2 |
79 | Motive | 2 |
80 | Yerim2 | 0 |
In terms of winrates, these are the overall standings:
Total |
Rank | Name | Games | Winrate |
1 | FlaSh | 118 | 74.58 |
2 | Rain | 182 | 63.74 |
3 | SoulKey | 244 | 61.48 |
4 | Last | 117 | 59.83 |
5 | EffOrt | 74 | 59.46 |
6 | Mini | 216 | 55.56 |
7 | Light | 191 | 55.5 |
8 | Soma | 101 | 55.45 |
9 | hero | 186 | 55.38 |
10 | Bisu | 129 | 54.26 |
11 | Snow | 187 | 53.48 |
12 | Queen | 143 | 53.15 |
13 | Best | 175 | 52.0 |
14 | Larva | 113 | 51.33 |
15 | Sharp | 190 | 50.0 |
16 | Mind | 118 | 50.0 |
17 | JyJ | 100 | 50.0 |
18 | Rush | 157 | 49.68 |
19 | RoyaL | 86 | 48.84 |
20 | Leta | 25 | 48.0 |
21 | Action | 123 | 47.97 |
22 | Shuttle | 100 | 47.0 |
23 | Jaedong | 97 | 46.39 |
24 | Sea | 61 | 45.9 |
25 | Stork | 99 | 44.44 |
26 | Jaehoon | 32 | 43.75 |
27 | Shine | 79 | 41.77 |
28 | Calm | 24 | 41.67 |
29 | Ample | 34 | 41.18 |
30 | BarrackS | 51 | 41.18 |
31 | Horang2 | 42 | 40.48 |
32 | sSak | 48 | 39.58 |
33 | GuemChi | 31 | 38.71 |
34 | Sacsri | 43 | 37.21 |
35 | Mong | 65 | 36.92 |
36 | free | 31 | 35.48 |
37 | Movie | 38 | 34.21 |
38 | Hyuk | 15 | 33.33 |
39 | Modesty | 40 | 32.5 |
40 | Killer | 31 | 32.26 |
41 | MIsO | 47 | 31.91 |
42 | Piano | 19 | 31.58 |
43 | ggaemo | 17 | 29.41 |
44 | beast | 17 | 29.41 |
45 | ForGG | 17 | 17.65 |
Even with Soulkey's dominance as of late, FlaSh still shows a winrate that suggests he's on his own level as the best player in this era of Starcraft. However, FlaSh hasn't played since 2020, and when, in a moment, we'll check a ranking that privileges more recent performance, it's a different story.
Now let's take a look at the top players in each matchup:
TvT |
Rank | Name | Games | Winrate |
1 | FlaSh | 27 | 77.78 |
2 | Last | 25 | 72.0 |
3 | Sharp | 57 | 57.89 |
4 | Light | 38 | 57.89 |
5 | sSak | 16 | 56.25 |
6 | Rush | 49 | 55.1 |
7 | RoyaL | 22 | 50.0 |
8 | JyJ | 36 | 47.22 |
9 | BarrackS | 14 | 35.71 |
10 | Mong | 19 | 31.58 |
11 | Mind | 35 | 28.57 |
12 | Sea | 25 | 28.0 |
TvP |
Rank | Name | Games | Winrate |
1 | FlaSh | 28 | 82.14 |
2 | Mong | 20 | 65.0 |
3 | Sea | 17 | 58.82 |
4 | Light | 69 | 57.97 |
5 | Rush | 39 | 48.72 |
6 | Mind | 37 | 48.65 |
7 | Sharp | 69 | 47.83 |
8 | BarrackS | 19 | 47.37 |
9 | Last | 51 | 47.06 |
10 | JyJ | 23 | 39.13 |
11 | sSak | 20 | 35.0 |
12 | RoyaL | 27 | 33.33 |
13 | Ample | 14 | 21.43 |
TvZ |
Rank | Name | Games | Winrate |
1 | FlaSh | 54 | 70.37 |
2 | Last | 41 | 68.29 |
3 | Mind | 46 | 67.39 |
4 | RoyaL | 37 | 59.46 |
5 | Ample | 17 | 58.82 |
6 | JyJ | 41 | 58.54 |
7 | Sea | 19 | 57.89 |
8 | Leta | 11 | 54.55 |
9 | Light | 84 | 52.38 |
10 | Rush | 69 | 46.38 |
11 | Sharp | 64 | 45.31 |
12 | BarrackS | 18 | 38.89 |
13 | sSak | 12 | 25.0 |
14 | Mong | 26 | 19.23 |
PvT |
Rank | Name | Games | Winrate |
1 | Snow | 48 | 66.67 |
2 | Mini | 71 | 60.56 |
3 | Jaehoon | 12 | 58.33 |
4 | Horang2 | 19 | 57.89 |
5 | Best | 67 | 56.72 |
6 | Bisu | 53 | 56.6 |
7 | Rain | 69 | 52.17 |
8 | Shuttle | 44 | 47.73 |
9 | Stork | 32 | 46.88 |
10 | GuemChi | 14 | 42.86 |
11 | Movie | 16 | 31.25 |
12 | free | 11 | 27.27 |
PvP |
Rank | Name | Games | Winrate |
1 | Rain | 51 | 84.31 |
2 | Snow | 48 | 60.42 |
3 | Bisu | 18 | 50.0 |
4 | Mini | 34 | 47.06 |
5 | Shuttle | 19 | 42.11 |
6 | Horang2 | 12 | 41.67 |
7 | Stork | 48 | 39.58 |
8 | Best | 44 | 36.36 |
9 | Jaehoon | 13 | 30.77 |
10 | Movie | 13 | 30.77 |
PvZ |
Rank | Name | Games | Winrate |
1 | Rain | 62 | 59.68 |
2 | Best | 64 | 57.81 |
3 | Mini | 111 | 54.95 |
4 | Bisu | 58 | 53.45 |
5 | Stork | 19 | 52.63 |
6 | Shuttle | 37 | 48.65 |
7 | Snow | 91 | 42.86 |
8 | free | 11 | 36.36 |
9 | Horang2 | 11 | 9.09 |
ZvT |
Rank | Name | Games | Winrate |
1 | EffOrt | 23 | 69.57 |
2 | SoulKey | 94 | 62.77 |
3 | Queen | 47 | 57.45 |
4 | Action | 44 | 52.27 |
5 | hero | 85 | 50.59 |
6 | Sacsri | 18 | 50.0 |
7 | Larva | 24 | 45.83 |
8 | Jaedong | 41 | 41.46 |
9 | Soma | 36 | 38.89 |
10 | Modesty | 32 | 37.5 |
11 | Shine | 38 | 36.84 |
12 | MIsO | 22 | 36.36 |
13 | Killer | 11 | 27.27 |
ZvP |
Rank | Name | Games | Winrate |
1 | Soma | 39 | 71.79 |
2 | hero | 47 | 65.96 |
3 | SoulKey | 89 | 65.17 |
4 | Jaedong | 30 | 60.0 |
5 | EffOrt | 36 | 55.56 |
6 | Larva | 51 | 54.9 |
7 | Shine | 24 | 50.0 |
8 | Queen | 52 | 48.08 |
9 | Action | 50 | 44.0 |
10 | Killer | 15 | 40.0 |
11 | Calm | 10 | 40.0 |
12 | MIsO | 15 | 26.67 |
13 | Sacsri | 23 | 21.74 |
ZvZ |
Rank | Name | Games | Winrate |
1 | Queen | 44 | 54.55 |
2 | SoulKey | 61 | 54.1 |
3 | Soma | 26 | 53.85 |
4 | hero | 54 | 53.7 |
5 | EffOrt | 15 | 53.33 |
6 | Larva | 38 | 50.0 |
7 | Action | 29 | 48.28 |
8 | Shine | 17 | 41.18 |
9 | Jaedong | 26 | 38.46 |
Note: Only players with at least 10 games in the matchup have been included
A few things I found interesting in those rankings:
- While Light is often praised for his TvZ, it is statistically his worst matchup
- Mong has the most lopsided record, being #2 behind FlaSh in TvP but dead last in TvT and TvZ
- No one has a 55%+ winrate in ZvZ. It really seems to be the most random matchup
- Soulkey is not the best in any matchup but he's top 3 in all matchups
- FlaSh is #1 in every Terran matchup
- Rain is the absolute monarch of Aiur...
...which brings us to the next table: best and worst matchup scores across all matchups:
All matchups |
Rank | Name | Matchup | Winrate |
1 | Rain | PvP | 84.31 |
2 | FlaSh | TvP | 82.14 |
3 | FlaSh | TvT | 77.78 |
4 | Last | TvT | 72.0 |
5 | Soma | ZvP | 71.79 |
All matchups (worst) |
Rank | Name | Matchup | Winrate |
1 | Mong | TvZ | 19.23 |
2 | Sacsri | ZvP | 21.74 |
3 | MIsO | ZvP | 26.67 |
4 | Sea | TvT | 28.0 |
5 | Mind | TvT | 28.57 |
Note: Only players with at least 15 games in the database have been included
FlaSh once again asserting dominance by occupying two spots on the top 5. His TvZ is also just outside the top 5 here. In addition to that, I'm surprised to see that Mind's TvT is so weak.
Elo rankings
Now, these winrates have all been historical, spanning the entire period from the 1st ASL in 2016 to the latest one in 2024. If we want to get a better idea of who are the strongest players right now, it might be interesting to look at how their Elo rating might look like. Calculating Elo with k = 30 and starting rating = 1600, we get the following ranking as of November 2nd, 2024:
ASL+KSL Elo rankings, Nov 2nd 2024 |
Rank | Name | Games | Rating |
1 | SoulKey | 244 | 1943 |
2 | FlaSh | 118 | 1848 |
3 | Sharp | 190 | 1790 |
4 | Rain | 182 | 1786 |
5 | hero | 186 | 1744 |
6 | EffOrt | 74 | 1742 |
7 | Snow | 187 | 1731 |
8 | Light | 191 | 1725 |
9 | Mini | 216 | 1720 |
10 | Last | 117 | 1716 |
11 | Rush | 157 | 1709 |
12 | Larva | 113 | 1702 |
13 | JyJ | 100 | 1692 |
14 | Best | 175 | 1681 |
15 | Bisu | 129 | 1678 |
16 | Soma | 101 | 1673 |
17 | Mind | 118 | 1655 |
18 | Queen | 143 | 1641 |
19 | RoyaL | 86 | 1634 |
20 | BarrackS | 51 | 1634 |
21 | Action | 123 | 1614 |
22 | Leta | 25 | 1609 |
23 | Calm | 24 | 1603 |
24 | Ample | 34 | 1586 |
25 | Horang2 | 42 | 1586 |
26 | Stork | 99 | 1574 |
27 | Jaedong | 97 | 1573 |
28 | Jaehoon | 32 | 1566 |
29 | Sacsri | 43 | 1566 |
30 | Shuttle | 100 | 1565 |
31 | Sea | 61 | 1560 |
32 | sSak | 48 | 1538 |
33 | free | 31 | 1537 |
34 | Shine | 79 | 1530 |
35 | Movie | 38 | 1523 |
36 | MIsO | 47 | 1520 |
37 | GuemChi | 31 | 1519 |
38 | Killer | 31 | 1519 |
39 | Modesty | 40 | 1518 |
40 | Mong | 65 | 1510 |
SoulKey's recent streak has put him so far in the lead he's almost 100 points ahead of FlaSh at number 2. It will be interesting to hopefully see them battle it out in the next ASL. We should also note that FlaSh dropped some rating during his last recorded games when he was knocked out by Soma in ASL season 10 while playing Random. One can certainly speculate that he might have been closer to Soulkey if he had stuck to his main race.
Having access to the exact date each game in the database was played, we are also able to draw a graph of how the top players' ratings have developed over the years:
What this graph shows most clearly is just how dominant FlaSh was in 2017-18. 2018-19 brought a sea change with Rain, Last, SoulKey and Light rising to prominence. Later on, in 2021, we saw the rise to greatness of Larva, Mini and Rush.
Player winrates and game duration
Having access to the each game's duration, I drew up a script to search for players with high variance between winrates for different game duration intervals. Here's what I found:
If you're playing Snow or JyJ, finish them off quickly!
Snow and JyJ both show a clear trend. If the game is short, they likely lose. The longer the game goes on, the more likely they are to end up winning.
If you're playing BarrackS, you have a window
BarrackS very often loses after 15-17 minutes but if he makes it past that, he's actually likely to win.
If you're playing Mini, try to survive until the late game
Ever aggressive, Mini wins his games in the early and midgame.
If you're playing Shine, kill him in the midgame
Shine is dangerous in the early and late game but vulnerable in the midgame.
Jaedong is weak for three minutes
Jaedong's graph is the most anomalous. He has an extremely low winrate in games that end after 11 to 14 minutes but a very solid winrate in games that end after 8 to 11 and 14 to 19 minutes. In SSL 1, we saw him miss his lurker timing against Light and lose after 11 minutes, which was symptomatic of his TvZ as a whole according to Artosis.
Note: The intervals in the above graphs have been automatically generated to each represent an equal share (roughly 20%) of the player's games, and only players with a lot of games in the database have been included. The winrate in each duration interval for each player in the graphs above is thus calculated from somewhere between 15 and 30 games. This does mean there's a lot of uncertainty but likely most of the trends are not random.
Lastly, before we move on to some general tournament stats, here's a ranking of the pro players from "fastest" to "slowest" based on their average game duration:
Average game duration by player |
Rank | Name | Race | Avg. game duration |
1 | HyuN | Zerg | 9:50 |
2 | beast | Zerg | 9:54 |
3 | Hyuk | Zerg | 11:09 |
4 | Calm | Zerg | 12:09 |
5 | Soma | Zerg | 12:22 |
6 | Queen | Zerg | 12:40 |
7 | MIsO | Zerg | 12:49 |
8 | Shine | Zerg | 12:55 |
9 | Killer | Zerg | 12:55 |
10 | hero | Zerg | 12:59 |
11 | BarrackS | Terran | 13:02 |
12 | Jaedong | Zerg | 13:10 |
13 | SoulKey | Zerg | 13:10 |
14 | Sacsri | Zerg | 13:11 |
15 | Bisu | Protoss | 13:23 |
16 | Mini | Protoss | 13:33 |
17 | ggaemo | Zerg | 13:40 |
18 | Modesty | Zerg | 13:49 |
19 | Movie | Protoss | 13:56 |
20 | Larva | Zerg | 13:58 |
21 | EffOrt | Zerg | 14:00 |
22 | nOOb | Protoss | 14:08 |
23 | RoyaL | Terran | 14:17 |
24 | Action | Zerg | 14:19 |
25 | Horang2 | Protoss | 14:41 |
26 | Jaehoon | Protoss | 14:46 |
27 | Rain | Protoss | 14:47 |
28 | FlaSh | Terran | 14:48 |
29 | Stork | Protoss | 14:59 |
30 | Ample | Terran | 15:08 |
31 | Best | Protoss | 15:12 |
32 | Rush | Terran | 15:21 |
33 | Light | Terran | 15:22 |
34 | ForGG | Terran | 15:22 |
35 | Snow | Protoss | 15:29 |
36 | GuemChi | Protoss | 15:30 |
37 | Piano | Terran | 15:55 |
38 | Shuttle | Protoss | 16:05 |
39 | Leta | Terran | 16:05 |
40 | Last | Terran | 16:07 |
41 | sSak | Terran | 16:26 |
42 | Mind | Terran | 16:36 |
43 | Sea | Terran | 16:41 |
44 | JyJ | Terran | 16:45 |
45 | free | Protoss | 17:16 |
46 | Sharp | Terran | 17:28 |
47 | Mong | Terran | 17:51 |
48 | Speed | Terran | 20:45 |
Note: Only players with at least 10 games in the database have been included
Some findings here:
- BarrackS is suspiciously up there with the Zergs. Infested?
- free is practically a Terran trapped in a Protoss' body
- FlaSh is notably the third fastest Terran, but this may in part be because a few of his matches were not actually played in Terran matchups. This will only have had a minor effect though.
- The slowest player is named Speed.
Finally, we can take a look at how quickly or slowly each player wins on average.
Average game duration by player (wins only) |
Rank | Name | Race | Avg. game duration |
1 | MIsO | Zerg | 10:54 |
2 | Soma | Zerg | 11:49 |
3 | Queen | Zerg | 12:20 |
4 | Mini | Protoss | 12:30 |
5 | Ample | Terran | 12:51 |
6 | Modesty | Zerg | 12:57 |
7 | Bisu | Protoss | 13:00 |
8 | hero | Zerg | 13:00 |
9 | Jaedong | Zerg | 13:08 |
10 | Shine | Zerg | 13:12 |
11 | SoulKey | Zerg | 13:19 |
12 | Larva | Zerg | 13:28 |
13 | Action | Zerg | 13:52 |
14 | Rain | Protoss | 13:59 |
15 | EffOrt | Zerg | 14:05 |
16 | Sacsri | Zerg | 14:09 |
17 | FlaSh | Terran | 14:21 |
18 | Movie | Protoss | 14:25 |
19 | GuemChi | Protoss | 14:30 |
20 | Jaehoon | Protoss | 14:55 |
21 | free | Protoss | 14:57 |
22 | Rush | Terran | 15:05 |
23 | Best | Protoss | 15:23 |
24 | RoyaL | Terran | 15:50 |
25 | Stork | Protoss | 15:54 |
26 | Last | Terran | 16:11 |
27 | BarrackS | Terran | 16:30 |
28 | Shuttle | Protoss | 16:48 |
29 | Light | Terran | 16:52 |
30 | Mind | Terran | 16:55 |
31 | Snow | Protoss | 16:58 |
32 | sSak | Terran | 17:22 |
33 | Horang2 | Protoss | 17:26 |
34 | Leta | Terran | 17:34 |
35 | Sea | Terran | 17:37 |
36 | Sharp | Terran | 18:14 |
37 | Mong | Terran | 18:49 |
38 | JyJ | Terran | 18:52 |
This shows JyJ as the most "patient" player, with his average victory having the longest duration. At the top, we find notoriously aggressive MIsO (a.k.a. Where), while Mini and his zealot pressure leads the non-Zerg pack.
4. Tournament Stats
In this section, we'll look at some overall stats. First we'll look at the longest and shortest games, game duration by matchup, and game duration by spawn locations. Then we'll take a look at how Bo5 and Bo7 series normally play out, and then finally the advantage of being seeded and the probability of winning a group decider match.
Longest and shortest games in ASL/KSL history
Just for curiosity's sake, these were the longest games ever played in ASL or KSL:
Longest games |
Rank | Matchup | Winner | Loser | Map | Date | Tournament | Season | Duration |
1 | TvT | Last | Sharp | Sylphid | 2019-7-21 | ASL | 8 | 48 minutes |
2 | TvT | Mind | Rush | Fighting Spirit | 2017-9-12 | ASL | 4 | 47 minutes |
3 | PvZ | SoulKey | Snow | Blitz Y | 2024-4-16 | ASL | 17 | 44 minutes |
4 | TvT | Sea | FlaSh | Benzene | 2017-1-22 | ASL | 2 | 41 minutes |
5 | PvZ | Best | Action | Nemesis | 2023-4-3 | ASL | 15 | 41 minutes |
6 | TvP | Light | Rain | Fighting Spirit | 2018-10-18 | KSL | 2 | 40 minutes |
7 | PvZ | Shuttle | EffOrt | Transistor | 2018-4-15 | ASL | 5 | 39 minutes |
8 | PvZ | hero | Mini | Third World | 2018-5-13 | ASL | 5 | 39 minutes |
9 | TvZ | SoulKey | Mong | Vermeer | 2022-2-17 | ASL | 13 | 39 minutes |
10 | TvP | Best | Light | Seventy-six | 2023-3-28 | ASL | 15 | 39 minutes |
...and these were the shortest:
Shortest games |
Rank | Matchup | Winner | Loser | Map | Date | Tournament | Season | Duration |
1 | TvZ | SoulKey | FlaSh | Camelot | 2017-5-28 | ASL | 3 | 2 minutes |
2 | TvZ | SoulKey | Sharp | Gladiator | 2018-8-24 | KSL | 1 | 2 minutes |
3 | TvZ | Mind | SoulKey | Heartbreak Ridge | 2018-11-9 | KSL | 2 | 2 minutes |
4 | TvZ | Shine | BarrackS | Nemesis | 2022-8-30 | ASL | 14 | 2 minutes |
Note: Since game duration is only registered by whole minutes completed, games with the same duration in minutes cannot be ranked among each other. There are 29 games in the database that ended between 3:00 and 4:00 but only the four shown above ended between 2:00 and 3:00.
SoulKey is known as a macrozerg but that apparently doesn't stop him from having been involved in 3 of the 4 shortest ever games in ASL and KSL.
Unsurprisingly, the two longest ever games were all TvTs. These are the average game durations by matchup:
Average duration of each matchup |
Rank | Matchup | Average duration |
1 | TvT | 17m46s |
2 | TvP | 16m38s |
3 | PvZ | 14m31s |
4 | TvZ | 14m13s |
5 | PvP | 12m20s |
6 | ZvZ | 9m12s |
And these have been the longest games in each matchup respectively:
Longest game of each matchup |
Matchup | Winner | Loser | Map | Date | Tournament | Season | Duration |
TvT | Last | Sharp | Sylphid | 2019-7-21 | ASL | 8 | 48 minutes |
PvZ | SoulKey | Snow | Blitz Y | 2024-4-16 | ASL | 17 | 44 minutes |
TvP | Light | Rain | Fighting Spirit | 2018-10-18 | KSL | 2 | 40 minutes |
TvZ | SoulKey | Mong | Vermeer | 2022-2-17 | ASL | 13 | 39 minutes |
PvP | Snow | free | Optimizer | 2020-10-11 | ASL | 10 | 31 minutes |
ZvZ | Action | EffOrt | Apocalypse | 2023-8-21 | ASL | 16 | 23 minutes |
Effect of cross spawns on game duration
It's well known that cross spawns makes games longer, but this effect is drastically stronger in some matchups than others. Here's how cross spawns affects game duration:
Matchup duration by spawns |
Matchup | Adjacent spawns | Cross spawns | Difference |
PvZ | 13m32s | 16m4s | 19.46 |
ZvZ | 9m20s | 10m15s | 10.25 |
PvP | 11m56s | 13m5s | 10.04 |
Overall | 14m17s | 15m26s | 8.26 |
TvP | 16m9s | 17m15s | 7.08 |
TvT | 16m47s | 17m46s | 5.99 |
TvZ | 14m31s | 14m51s | 2.45 |
Cross spawns has by far the strongest effect on the duration of PvZs, whereas it has little effect on TvT and TvZ. Again, I'll leave it to the experts to interpret this difference but I'm curious about the answer.
Series stats
The first game myth
In almost every single pre-series interview ever, one or both players states that they "just need to win the first map" and then they'll probably take the whole series. It's really remarkable how ubiquitous this belief is. (And by the way, why are those pre-series interviews always so boring?! Is it something about Korean culture? Whenever they're on, I keep thinking of all the stupid nonsense I'd be saying if I had the floor instead.) Anyway, that was actually what prompted me to start gathering all this data in the first place. This incessantly repeated claim just sounded spurious to me, so I wanted to check it. So I did, and I found that:
- The winner of game 1 ended up winning the Best-of-5 73.1% of the time.
That might look like a lot at first glance but we have to remember that obviously winning any one game in a best of 5 is going to drastically increase your chances of winning the whole series. To find out if the first game is really so important, what we can do is compare this figure to the same figure for games 2 and 3. Plugging those into the same query, we find that
- The winner of game 2 ended up winning the Best-of-5 71.1% of the time, whereas
- The winner of game 3 ended up winning the Best-of-5 73.6% of the time.
So winning game 1 is statistically less important than winning game 3, but really each game is almost exactly equally important. This is based on 201 Best-of-5s in the database. Running the same calculations for Best-of-7s actually indicates that game 2 is more important than any other game but that's based on only 45 recorded Best-of-7s and therefore tells us almost nothing.
In ASL Season 17, Soulkey became the first player to win an ASL finals series after losing the first game. This only goes to show that such streaks are bound to be broken sooner or later. Still, it was statistically remarkable while it lasted.
In conclusion:
Map selection advantage
Players and casters often place some emphasis on the advantage of map selection. I wanted to test this assumption also and in doing so, I found something surprising:
Being the one who selects the map is just as important in mirror matchups as in non-mirror matchups
Generally speaking;
- the player who chose the map went on to win the game in 54.3% of cases,
- whereas for mirror matchups only, the map chooser won 53.1% of the time
This is surprising because the advantage of choosing a map is often chalked up to being about whether this map is generally good for your race in the given matchup or not.
The relatively low overall winrate for the map chooser seems partially to be due to the limited average range of choices. Once we get to the last few maps of the series, there might only be two or three maps left to choose from, which might not be much of an advantage. As such, we can see that when counting only the first map choice:
- the player who chose the first map won that game in 58.8% of cases.
Reverse sweeps
The last series stat I've registered is the probability of reverse sweeps. In 201 Best-of-5s, we have seen seven reverse sweeps. The probability of making a reverse sweep in a Best-of-5 (i.e. the probability that if you're down 0-2, you go on to win the series) stands at
6.8%.
In 45 Best-of-7s across ASL and KSL, there has never been a reverse sweep.
Seeds
Having dealt with the first game myth, let's try to take on another pre-game-interview cliché: "My goal is to make it to the Round of 4 and get seeded for the next season". Further investigation shows that this cliché has somewhat more merit. Comparing the average season results of seeded players and non-seeded players, we get the following:
- Average result of seeded player: 8.3
- Average result of non-seeded player: 14.8
This means that the average result for a seeded player was roughly getting eliminated in the Round of 8, whereas the average result of a non-seeded player was roughly getting eliminated in the Round of 16. This is a really considerable advantage, and it should be noted I am comparing the same set of players, meaning the average result for non-seeded players listed here is the average result for players who have been seeded in at least one season, in seasons where they were not seeded. So the figures can't be explained by arguing that players who earn a seed are obviously just better than those who don't. More likely the explanation is that the ASL's Round of 24 with its Best-of-1 format is a real slaughterhouse that even the best players struggle to make it out of alive.
To further galvanize this point, becoming a seeded player greatly increases your chance of becoming a seeded player again in the next season:
- Probability of gaining seed as already seeded player: 39.7%
- Probability of gaining seed as non-seeded player: 17.3%
Decider matches: Winners' loser vs losers' winner
That leaves just one more thing I wanted to check. Something has always bothered me about the double elimination format employed in starleague group stages. It seems unfair when there's a rematch in the decider match and the winner of the first match gets eliminated. Those players came out 1-1 on the night and although the advancing player did win the intervening match, that may only have been because he was facing easier opposition in the losers' match than the eliminated player was facing in the winners' match.
In any case, I found that across 176 decider matches,
- Winners' loser advanced 53.8% of the time, while
- Losers' winner advanced 46.2% of the time
5. (You must construct) Additional notes
Please get in touch if you have found any errors in these charts, if you feel there's something important I forgot to mention, or if you have any requests for insights you'd like me to pull from the database. Anything pertaining to game duration, map details, tournament results, series outcomes or temporal developments should be possible to draw from there. The database also includes some columns that I have not touched upon here, such as birth year of the players, year of publication for maps, ASL tiers, and Ro. 24 and Ro. 16 group affiliations. I have also categorized maps as island or standard but since so few games have been played on island maps, I can't really make any inferences about that. What I don't have is any information about build orders. That would be the next level. But it would be challenging to categorize the build orders in useful ways and very time-consuming to gather the data.
I would like to stress that I am not a statistician. I'm just a layperson with a basic understanding, doing my best. I haven't bothered to calculate p-values for all the charts, and my uncertainty assessments are just estimates. I apologize if you're a professional statistician and reading any of this has caused you to facepalm.
Feel free to copy these charts and tables but please link here if you publish them.
Thanks to Liquipedia for providing most of the data and to everyone who's keeping Starcraft alive during its very first century as the greatest game ever!
How to get in touch:
Reddit: u/jacobvso
TL.net: JackyVSO
If you're interested in a detailed explanation of how I did this, that is available [here](https://github.com/JackyVSO/Starcraft/blob/main/readme.md).