It’s been a long time coming, but we are revisiting our ecosystem posts from a year+ back, but this time we are incorporating more data, using better techniques, doing all roles, and I think generally being more respectful of the nuance of this challenge.
What are classes? At a fundamental level, we want to know what champions are similar to what other champions. There are a variety of ways to attack this problem, from evaluating kits to observing performance. Here, we are using champion’s match-ups (how they perform against other opposing champions) and synergies (how they perform with allied champions) to evaluate similarity. Our assumption is that two champions with similar kits will share similar match-ups and synergies with other champions and share a class.
The Mission: To show what champions are in the same class using using their match-ups and synergies from season 16.
The Outcome: Heatmaps establishing classes for each role. A champion similarity explorer to see which champions are most similar and why.
The Cool Stuff
Heatmaps showing classes:
Champion similarity app:
The Classes
Support

Wardens: Braum, Taric, Alistar, Rell, Rakan, Leona. I know, I know. You want to call them engagers. We could, but you need to accept that Braum, Taric, and Alistar are in this class, and they are a HIGHLY correlated block. So either Braum is an engager or Leona is a Warden. I decided to call them all Wardens.
good against: cat, Yasuo, playmaker supports, short-range mobile ADCs, and poke ADCs.
weak against: anti-melee ADCs, mage supports, enchanter supports, and true mage mids.
(By the way, if you scroll down past the heatmaps in the app above you can find all class interactions like the chart below. I won’t show them all here in the class descriptions, but below is one so you know what I’m drawing from.)

Playmakers: Nautilus, Bltizcrank, Pyke, Tahm Kench, Thresh, Maokai, Poppy, Pantheon, Elise. While they are the least unified and most diverse support block, some members can project threat further than the wardens. They are are more unified by what they struggle against.
Strong against: enchanter supports, poke ADCs, and duelist tops
Weak against: warden supports, anti-melee ADCs, heavy-fighter jungers, anti-assassin mids.
Mages: Morgana, Brand, Neeko, Swain, Zyra, Mel, Xerath, Lux, Vel’Koz. Your warden-killer class.
strong against: anti-melee ADCs, anti-melee mids, long-ranged immobile ADCs, heavy-fighter junglers.
weak against: cat, poke ADCs, enchanter supports, team-assassin junglers, short-range mobile ADCs.
Cat: Yuumi. She had to be her own class. An enchanter that is basically a mage- and enchanter-killer. Struggles into wardens which sets her apart from every other enchanter.
Enchanter: Senna, Seraphine, Karma, Bard, Zilean, Lulu, Nami, Janna, Sona, Milio, Soraka. The most versatile support class. Outside of weakness to Nautilus, Blitz, Yuumi, and Pyke, this class is simply better than the other support classes. Outside of that, they have a pretty flat match-up profile, useful in all cases.
good against: anti-melee ADCs, warden supports, mage supports, heavy-fighter junglers.
weak against: assassin junglers, long-range immobile ADCs, melee mid assassins.
ADC

Poke: Ziggs, Ezreal, Jhin. You know them, you hate them. Pew pew.
good against: mage supports, long-range immobile ADCs, true mage mids, and farming junglers
weak against: warden, playmaker, and cat supports. Bad into short-range mobile ADCs, fighter junglers, team-assassin junglers.
Long-Range (LR) Immobile: Miss Fortune, Ashe, Varus, Draven, Kog’Maw, Jinx, Caitlyn, Aphelios.
Good against: classes that hate range. anti-melee mids, enchanter supports, slippery junglers.
Bad against: poke ADCs, Yasuo mid, mage supports, and anti-ranged tank tops.
Short-Range (SR) Mobile: Twitch, Samira, Kaisa, Vayne, Zeri, Lucian, Tristana. Twitch doesn’t belong here. Go ahead, leave a comment about it on Reddit. He won’t be the last outlier in a class, but think about what it says about his interaction profile that these are his peers. For the others, get close-in, bounce around, and murder. Apex cat-killers live here.
good against: cat, poke ADCs, mage supports, diver junglers, team-assassin junglers.
weak against: warden supports, anti-assassin mids, ult-tank junglers.
Anti-Melee: Nilah, Xayah, Yunara, Corki, Sivir, Smolder, Swain. Melee killers. Good against: warden supports, playmaker supports, ult-tank junglers, fighter junglers.
Weak against: mage and enchanter supports, slippery junglers, poke ADCs, farming junglers.
Mid

Yasuo: Our second solo-champ class. He owns the other mid assassins, ranged and melee. The true mage mids too. He beats assassin junglers and duelist tops. He loses to warden supports, ult-tank junglers, and-melee ADCs, and heavy-fighter junglers.
Melee Assassins: Naafiri, Zed, Qiyana, Talon, Yone, Irelia, Katarina, Akshan, Kassadin, Akali, Diana, Fizz, Ekko. A massive mid class. They exist to destroy the true mage mids.
good against: true mage mids, ranged mid assassins, jungle assassins, poke ADCs, farming junglers, mage supports.
weak against: Yasuo, fighter and heavy-fighter junglers, anti-melee mids, warden supports, ult-tank junglers, battle mage mids.
True Mages: Xerath, Aurelion Sol, Veigar, Taliyah, Syndra, Lux, Hwei, Vel’Koz. A class defined by beating battle mage mids,
good against: battle mage mids, anti-assassin mids, anti-melee mids, warden supports, anti-melee ADCs.
weak against: melee and ranged assassin mids, poke ADCs, assassin junglers, team-assassin junglers, duelist tops.
Ranged Assassins: Ahri, Aurora, Leblanc, Zoe. A distinct class from the melee assassins, they are effective vs both battle mages and true mages where melee can only beat true mages.
good against: true mage and battle mage mids, team-assassin junglers, heavy-fighter junglers, anti-melee mids.
weak against: anti-assassin mids, anti-ranged tank tops, ult-tank junglers, and melee assassin mids.
Anti-Assassins: Lissandra, Vex, Twisted Fate, Malzahar. The bane of mobile assassins.
good against: ranged and melee assassin mids, Yasuo, team-assassin and fighter junglers, playmaker supports, short-range mobile ADCs.
weak against: true mage and battle mage mids, diver junglers, ult-tank junglers, anti-ranged tanks, farming junglers, and enchanter supports.
Battle Mages: Mel, Ryze, Vladamir, Cassiopia, Viktor, Orianna, Anivia, Azir. The shorter-range, higher durability mages. They are good vs melee assassin mids where true mages are not.
good against: melee assassin mids, ult-tank junglers, anti-assassin mids, anti-melee adcs, fighter and heavy-fighter junglers, Yasuo.
weak against: true mage mids, ranged assassin mids, assassin and team-assassin junglers, poke ADCs.
Anti-Melee: Sylas, Galio. Good vs melee assassins and tanks, bad vs. range and brawlers.
good against: ult-tank junglers, anti-range tank tops, diver junglers, melee assassin mids.
weak against: farming junglers, true mage mids, team-assassin junglers, mage supports, and heavy-fighter junglers.
Jungle

[This dendrogram uses SNN clustering instead of Ward. Junglers have less-clear classes than support, ADC, and mid, but these approximate classes feel reasonable.]
Farming: Zed, Kindred, Jayce, Graves, Karthus, Taliyah. These champs have blazing clears and big damage.
good against: anti-melee mids, slippery junglers, fighter and heavy-fighter junglers, anti-assassin mids, anti-melee ADCS, warden supports.
weak against: anti-ranged tank tops, diver junglers, poke ADCs, assassin junglers, ult-tank junglers.
Assassin: Rengar, Nidalee, Talon, Fiddlesticks, Shaco, Elise, Khazix, Qiyana. Closely related to the farming junglers but with more mobility.
good against: slippery and farming junglers, enchanter supports, true mage mids, ranged assassin mids, and battle mage mids. Basically anything squishy that wants to be at range.
weak against: diver and ult-tank junglers, anti-ranged tanks tops, fighter junglers, and warden supports.
Ult-Tank: Sejuani, Malphite, Rammus, Nunu, Amumu. Dive-oriented and ult-dependent, they are closely related to the fighter and diver jungle classes.
good against: anti-assassin mids, ranged assassin mids, melee assassin mids, assassin junglers, team-assassin junglers.
weak against: slippery and diver junglers, anti-melee and true mage mids, anti-melee ADCs, mage supports, battle mage mids, heavy-fighter junglers.
Fighter: Lee Sin, Rek’Sai, Vi, Briar, Warwick. This group is a cross between an assassin and a brawler, closely related to divers and heavy-fighters.
good against: melee assassin mids, cats, assassin junglers, duelist tops, poke ADCs, team-assassin junglers.
weak against: true mage mids, farming junglers, anti-assassin mids, anti-melee ADCs, warden supports.
Heavy-Fighter: Wukong, Zac, Jax, Volibear, Zaheen. Beefier and more team-fight oriented than fighters.
good against: warden supports, yasuo, melee assassins mid, anti-ranged tank tops, support playmakers, fighter junglers.
weak against: slippery junglers, true mage mids, mage supports, enchanter supports, farming junglers.
Diver: Dr. Mundo, Nocturne, XinZhao, Jarvan IV, Diana, Hecarim. Yeah, Mundo is an outlier, but he like these others really want to be inside your backline. They’re happy to skirmish, a bit less happy to teamfight.
good against: assassin junglers, melee-assassin mids, farming junglers, ult-tank junglers, and support mages.
weak against: slippery junglers, anti-melee mids, and team-assassin junglers.
Slippery: Iven, Ekko, Lilia, Gwen, Sylas, Udyr. These champions are hard to pin down, excelling at countering beefy divers.
good against: ult-tank junglers, diver junglers, anti-ranged tank tops, heavy-fighter junglers, and warden supports.
weak against: team-assassin junglers, assassin junglers, and farming junglers.
Team-Assassin: Viego, Master Yi, Ambessa, Kayn, Naafiri, Belveth. They provide nothing but damage, and prefer skirmishes or to enter fights late. good against: slippery junglers, mage supports, true mage mids, anri-ranged tanks, and anti-melee mids.
weak against: anti-assassin mids, ult-tank junglers, short-ranged mobile ADCs, and range-assassin mids.
Top

[I know, melee is too big of a class. If you want to know why top classes were punted on, go read the nitty gritty.]
Ranged: many. They beat melee tops. It’s their core defining feature. They lose to duelist tops and anti-ranged tank tops.
Duelist: Riven, Fiora, Ambessa, Yone, Irelia, Yasuo, Gwen, Yorick. Generally good mobility (not yorick) defines this class.
good against: anti-ranged tank tops, true mages, and slippery junglers.
weak against: melee tops, fighter junglers, and anti-assassin mids.
Melee: way too many. We have tanks, we have juggernauts, but what we don’t have is excessive mobility. They are strong versus duelist tops. They are weak versus ranged tops. Outside of that, it’s too big of a group to generalize.
Anti-Ranged Tank: Malphite, Dr. Mundo, Ornn, Sion. Malphite will get his own class when I revisit top lane. These misfits are united by an ability to beat ranged tops, anti-assassin mids, and farming junglers. They are weak vs duelist tops and anti-melee mids and slippery junglers.
The Nitty Gritty
The Data: 8.6 million diamond+ games across regions BR, EUN, EUW, KR, NA, TW, and VN from patch 16.1-16.4 in ranked solo queue.
The Method: For each role (Top, Mid, etc…), I determined champion similarity using match-ups and synergies against all roles. I eliminated overall champion win rate by employing WR-corrected deltas. I corrected for different sample sizes using Empirical Bayes shrinkage (explained in blindablility post). I removed damage type (magic vs physical) from synergies via principal component analysis. I measured champion similarity via Pearson correlation. I determined champion classes using Ward’s hierarchical clustering.
What is a class? Like really?
When determining class is easy: Rell and Leona’s match-ups have a Pearson Correlation of 0.6, and synergies 0.45. [Pearson Correlation measures the strength of the correlation between two variables ranging from 1 (perfect negative) to +1 (perfect positive), with 0 indicating no linear correlation] Therefor, they are extremely similar and are probably the same class.

Rell is Leona’s most similar peer. Leona is Rell’s most similar peer. When this is the case, any system will put them in the same class. In fact, the support class in general has very strong relationships like this as shown below.

Wtf am I looking at? This is a correlation matrix. The colors show Pearson Correlation. 1 means perfectly correlated (all match-ups and synergies match). You can see champions match themselves with a value of 1, so the diagonal is all green. Champions that aren’t correlated will be negative. For example, Nami and Braum have a very negative correlation. That means in match-ups and synergies where Nami is strong, Braum is weak, and vice-versa.
Now that you know how to read it, it’s easy to see why I say support has strong classes. Wardens, Mages, and Enchanter all are very similar to their own class and dissimilar to others. Mages and Enchanters have some similarity overlap. Playmakers are more diverse, you can tell because their block is less green.
Now, I had to choose a method to separate supports into these classes. I chose a Ward clustering method using using Manhattan distance on each champion’s full profile of matchup and synergy deltas. Ward’s method minimizes within-cluster variance — it merges the two groups that increase total variance the least at each step, which tends to produce compact, evenly-sized clusters. The dendrogram below uses Ward to assign groups.

But minimizing within-cluster variance is just one way to group. Alternatively, we could use Shared Nearest Neighbor (SNN) clustering, which groups champions based on how many neighbors they share — if Leona and Nautilus both have Braum, Rell, and Taric among their closest neighbors, SNN considers them similar even if their raw profiles differ in magnitude. This makes it more robust to outliers but can struggle with ties in sparse neighborhoods. When we use this method, we get slightly different groups than before, as shown below.

While Bard has migrated to the mage side, mages have bifurcated, and Yuumi has joined the enchanters, most of the other groups remain stable. The support role has very strong classes.
TL;DR: Assigning classes is easy when champions have strong similarities to a single set of peers.
But it isn’t always like that. Let’s talk about top lane.
Uh… Why did you punt on top classes?
When determining class it hard: Top lane is a different beast. Why? Take a look at the correlation matrix.

Ranged? Strong. Duelist? Strongish. But the rest? Look how middling the Unique champion correlations are. Do Chogath and Ksante and Shen and Tahm share similarity with the true tanks? They do, but they share stronger similarities with Illaoi and Urgot and nasus and other fighters and tanks with mixed features. All classifiers, Ward or SNN or other will struggle to put that mess into groups.


So while I could subdivide into 10 groups and end up with some more groupings, the groupings aren’t really satisfying. Some make sense, like Jax-Volibear-Warwick. If you look at the correlation matrix you can see these 3 are STRONGLY associated. Others give you food for thought like Gangplank-Olaf. But Olaf is only really there because he has no home. Their common thread is probably being CC immune. And while I think these groupings are interesting, I don’t feel comfortable arbitrarily calling them classes.
This is why top has a massive grouping called “Unique”. There are some strong groupings in there, but we simply can’t arrange these into satisfying classes with any of the UMAP, Complete Linkage, Single Linkage, Ward, SNN, or other clustering methods I have tried, and I think it’s incorrect to do so. I could just manually group things, and I may have a crack in a later post, but for now let’s appreciate how diverse the Top role roster really is.
If you want some food for thought, here is another equally valid way of clustering top laners.

Conclusion and Road Forward
I think we have really satisfying classes for the support role, reasonably satisfying classes for ADC, Mid, and Jungle, and pretty unsatisfying classes for Top. I’m happy with that for now. Clearly top will require its own post. You can use the champion similarity explorer to find champions opposite your current champs or similar to them. The match-up and synergy heatmaps can be a quick season 16 reference for what beats what. I hope you enjoy mucking around in the data and please leave suggestions for what to do next!