Who should I spam, or how does winrate change with player’s experience?

Have you thought about how winrate changes with a player’s experience with a certain hero?

And did you ask yourself, what hero is the strongest in the right hands, and with what hero you can win even without any experience of playing it?

Or maybe what hero is objectively better than others?

How would one find the hidden OP hero?

Well, sit tight, and get some hot tea for yourself. We are going to the fascinating world of stats, where I’ll tell you about players’ experience.

Русская версия

You can also subscribe to my Twitter or join my Discord (or VK and Telegram if you’re Russian), where I talk about this kind of stuff a lot earlier, and also discuss dota stats, theorycraft some new features and monitor trends.

Introduction

You may have thought that all I did for the past couple of months was playing Genshin Impact and rewatching House M.D.

And, well, yeah, it’s pretty much most of what I do, but I also look into my discord chat a lot. And sometimes there are some interesting ideas that catch my eye, so I start implementing it so see what happens. In past two months I had some rather peculiar experiments, and today I would like to talk about one of them.

One idea I found interesting was a suggestion to estimate how different are winrates of heroes when played by different players: ones who have less matches on the hero and ones who have a lot of them.

It sounds interesting on paper: you can use this data to find heroes with higher skill ceiling, and find out their real power level. But here’s the main question: how would you calculate it?

Technical part about calculations

Now I will tell you about how I calculated this data, and if you’re not that interested in this kind of stuff just skip ahead until there are fancy pictures.

Among the things I could use there were, as usual, Immortal Rank data for the latest patch (7.28c). This data works great for this kind of experiments: there is a big enough dataset and the high mmer meta in general is pretty close to the competitive one.

But aside from the actual match data and players’ IDs I have no data at my disposal. It means that only matches happened in this timespan matter, regardless of how many games the player had on this hero in total.

On the other hand, it actually makes sense. If we want to make an objective estimate of the heroes’ power, historical data would affect the final result. So now we have the next question: how should we calculate the data?

It’s rather simple, too. First of all, we should find every player of every hero and calculate the number of matches they played.

The resulting set can be divided into groups of players. We have the most interest in players who had the most and the least games played.

This set would, however, also have a lot of players with a low match count, so we need to make some adjustments for our estimation: for example, all players with only one match are sent to the “low match number” group by default.

And the rest of the set can be divided into four equal parts. Players in the first quarter (before the first quantile, or Q1) will represent players who played less matches than most of the players. Those, who are in the last quarter (or have more than the third quantile matches, or Q3), on the other hand, will have more matches played.

Normal distribution with quantiles

With this approach we now know how to divide the players into groups. This, in turn, allows us to estimate their average win rates, and as a result we will have information about how often players, who had less or more matches on a hero, win. Exactly what we need.

So what can we learn from that?

First of all, we should point out the variables we have at our disposal, as well as what kind of data was used.

All the numbers in this text were based on the Immortal Rank Meta Report for patch 7.28c from the 7th of April. Of course, there will be a new massive patch after the 9th of April, and the meta will change significantly, but I don’t really want to wait for at least two weeks to get another big enouth dataset. And, well, most of the principles will still work for the new patch as well.

So what’s about the the variables?

Header of the table with players’ experience data — https://stats.spectral.gg/lrg2/?league=imm_ranked_728c&mod=heroes-wrplayers

Every hero has these groups of variables:

  • Numbers of players with only 1 match played and more than one match
  • Thresholds for every group of players (Q1 and Q3)
  • Max number of matches played by a single player on the hero (for the whole timespan of the report)
  • Groups of values for less experienced and more experienced players: average winrate, average number of matches on the hero by a single player in this timespan, total number of players in this group
  • Winrate differences: gradient (how winrate changes with every additional game played — it’s not the most useful number at the moment, I’m still figuring out what to do with it) and difference (raw difference in winrates between more experienced and less experienced players)

You might ask, why exactly ranked matches? Why whole patch? Why not a week? Why not competitive?

The answer is simple: the size of the dataset. Last week meta reports have some fresh data, but they also have less matches, so these reports are more vulnerable to any random fluctuations from the least popular heroes. Data in the “biggest” patch report is the most stable.

And with competitive matches the answer is a bit more complicated. This feature is available for the competitive year report and even DPC Season 1 report. But, first of all, there is much less data (significantly less). But overall trends there are more or less similar to what you would see in the Immortal Rank report.

What could we point out first? The obvious thing: on what hero players are usually played the most? By how much?

The first group in this sense is not that interesting: because of a big number of “one match players”, average number of games for less experienced players is usually somewhere around 1.25. But what’s interesting is the average number of matches for more experienced players.

There are two ways to estimate it: flat (take the average number of matches as is) and as a percentage of the hero’s total number of matches.

And just to be clear: charts below are all used with modified scales (so you could actually see the difference in some cases), so if the bar looks like zero, it’s not. Pay attention to the scale on the left.

And let’s start with something fun: flat numbers of max matches played by a single player on a single hero.

Top-10 heroes by max number of matches by a single player in patch 7.28c

In top-10 by the max number of games on a hero by a player there are Naga Siren, Windranger, Venomancer, Visage, Pudge, Huskar, Phoenix, Broodmother, Pugna and Night Stalker. Their numbers are all somewhere between 200 and 250.

All of these heroes (except for Night Stalker and Pudge) are quite popular “cheese” picks, and also are quite popular among the boosters. Pudge doesn’t quite fit here, but doesn’t really surprise anyone: he was always loved by the players.

What’s interesting is Night Stalker: in patch 7.28c there was one Immortal player who played 444 matches. Why exactly Night Stalker? I have no idea.

Top-10 heroes by max number of matches on a hero by a player relative to the hero’s total number of matches

The picture gets slightly different when looking at the numbers of matches relative to the total number of matches of the hero. In this version of the list there are still cheesy heroes, but there are more of less picked heroes, who are generally considered weak in current meta. Night Stalker doesn’t really stand out as much anymore, but I’m surprised to see Spectre and Brewmaster here. And on the highest spots you may see Lone Druid, Huskar, Visage and Chen players.

Bot-10 heroes by max number of matches by a single player in patch 7.28c

Among the heroes with the least flat values of max number of matches of a single players there are some out-of-meta heroes: Drow Ranger, Faceless Void, Sven, Omniknight, Viper, Meepo, Zeus, Necrophos, Silencer, Kunkka…

Bot-10 heroes by max number of matches on a hero by a player relative to the hero’s total number of matches

…but it gets more interesting if we’re going to look at the percentages relative to total games. Worst heroes here are, on contrary, mostly meta heroes. The worst one is Puck, who was played in 7.28c by almost everybody.

But if these were max matches, what’s with the average number of games for more experienced players?

There are also the same two ways to estimate, which produce two different results.

Top-10 heroes by average number of matches for more experienced players in the patch

The best hero by the flat values is, undoubtedly, Visage, but after that the picture gets a bit more interesting. Unlike max number of matches, there aren’t that many cheese heroes, but a lot of complex ones instead: Broodmother, Techies, Tinker, Io, Earth Spirit, Dark Willow, Hoodwink, Morphling, Elder Titan.

Top-10 heroes by the average number of matches for more experienced players relative to total number of matches of the hero

Worst heroes by this criteria are not as interesting.

Bot-10 heroes by average number of matches for more experienced players in the patch

Flat numbers show a lot of out-of-meta core heroes.

Bot-10 heroes by the average number of matches for more experienced players relative to total number of matches of the hero

And relative numbers show a bit more curious picture: there are, again, a lot of popular meta heroes.

But if in case of max number of matches it could be explained by constant bans and counter picks, there we see some new heroes (Shadow Shaman, Tusk, Lion), and the main reason for lowering the result might be the lower total pool of players.

Alright, so we now know, on what heroes players are playing the most, and on whom the least. But it’s not THAT interesting, isn’t it?

So here’s the cool chart to begin with: now every hero is a point on a scatter plot, where coordinates on X-axis are percentage of maximum matches relative to total number of matches of the heroes, and Y-axis are winrates of players who played the most matches on this hero.

Scatter plot, where X-axis is max number of matches of a hero relative to total matches of the hero, and Y-axis is winrate of a player who played the most matches

And now let’s think, what can we do with the data?

First of all, we can find out average number of wins of both groups of players to then compare them with each other. With this we will find out what heroes are best and worst for more and less experienced players.

Scatter plot, X-axis is winrate of less experienced players, Y-axis is winrate of more experienced players

And we can get this plot! Horizontal position represents winrates of less experienced players, and vertical position represents more experienced players. Heroes closer to top right corner represents heroes who are better for both less and more experienced players.

And here we can spot some heroes who can help us point out a couple of interesting ideas.

First, winrates of more experienced players at high MMR can be used as an objective way to evaluate the hero’s power level. These players are playing the hero a lot, more than others, and not only do this quite often, but also know how to use the hero to its full potential.

Second, you can notice that strong meta heroes are usually closer to the top right corner. Some exceptions could be Tinker and Io (strong in current meta, but weak in less experienced hands), and the most top-right heroes are Enigma, Lycan, Razor, Nyx Assassin, Bane, Naga Siren, Beastmaster. A bit lower you can notice Night Stalker, Troll Warlord, Weaver, Shadow Shaman, Pugna, Luna and some others, who are rather popular in current meta.

And it means this kind of data represents current meta rather well, and also helps to point out heroes who are mistaken for being strong.

For example, closer to bottom left corner there are Pudge, Shadow Fiend, Grimstroke, Phantom Assassin, Keeper of the Light, Kunkka, Morphling, and a bit higher, but still close enough are Axe, Snapfire, Sven, Zeus, Outworld Devourer. Most of these heroes are still quite popular in both pubs and competitive games, but their winrates are weak at best, for both less and more experienced players.

Who should I spam?

Since we already found out how to evaluate power levels of the heroes, there’s only one question left: who should one spam?

What heroes are better with little to no experience, and what heroes are best with more experience? What heroes you should not play in ranked if you don’t know what you’re doing?

Scatter plots: vertical values are winrates of more experienced players, and horizontal values are average number of matches for more experienced players — flat (left) and relative to the hero’s total number of matches (right)

And stats can answer all those questions. And, as expected, meta affects it as well. So among the more “easy” heroes among the most effective ones would be strong meta heroes, and among the “worst” there are most likely to be the weakest heroes at the moment.

But first of all — who you definitely should not play without much experience?

Bot-10 heroes by winrate for less experienced players

The answer is quite obvious: complex heroes, like Lone Druid, Meepo, Tinker, Io, Keeper of the Light, Kunkka… Medusa? Bristleback? Pudge? What the hell are they doing here?

The reason is — you guessed it — the meta. These heroes had some problems finding their place in the game for a while now. In case of Tinker and Io the reason might be related to the need to know the exact reason why these heroes are busted and what makes them strong (specific playstyle and item build), and also to understand how to play them.

Top-10 heroes by winrate for less experienced players

But it’s not all that simple with the best heroes as well. No hero has a winrate higher than 50% for less experienced players — meaning you should train these heroes at least a little bit before playing. Although, the closest heroes to 50% threshold are Abaddon, Razor, Nyx Assassin, Bounty Hunter, Shadow Shaman — which are rather straight forward. You might also spot some very strong meta heroes, like Lycan, Bane, Naga Siren, Night Stalker, Ancient Apparition.

And here’s an obvious question: if you need to learn to play anyway, who should you learn to play first? It’s probably some kind of Morphling, Grimstroke, maybe even Shadow Fiend? They are strong and scary…

Bot-10 heroes by winrate for more experienced players

…not.

Among the heroes who can’t get higher than 50% winrate even in good and experienced hands are Pudge, Shadow Fiend, Witch Doctor, Snapfire, Morphling, Axe, Phantom Assassin, Grimstroke, Lina. But what’s common for all these heroes?

The answer is simple: it’s a perception trap for a player (which is also commonly called “the fading bias effect”). Most of these heroes have some kind of skillshots, and if they don’t — they have some kind of “feel good” ability (like satisfying crit chance, or morph, or dunk).

And human mind is a fascinating thing: it usually remembers good moments (like getting a good crit, or landing a skillshot), but not bad ones (like losing a game). This may create a false impression that these heroes are good, even if in reality they are absolute trash.

But who should you actually train to enjoy some juicy MMR?

Top-10 heroes by winrate for more experienced players

And once again there are some meta and cheese heroes. Interestingly, most of these heroes are usually called “situational”, but considering the high winrate with a high number of games, maybe Lycan, Razor, Enigma, Broodmother, Tinker, Naga Siren and others are not so situational after all?

“But where are Io and Clinkz”, you might ask. It’s quite simple, really: they are in the next 5 heroes after top-10. There are also traditionally good heroes in experienced hands: Lone Druid and Meepo. They, however, can’t be found among the best ones for a different reason: they are just too weak at the moment, so even the best players have a hard time getting a win with them.

And the last important value that you can look is the difference in winrates between the groups of players. In theory, this difference should mirror levels of complexity for heroes.

Top-10 heroes by winrate difference between more and less experienced players

And here you can notice something weird. Among the most complex heroes there are Tinker, Io, Visage, Lone Druid, Lycan, Broodmother… But why Clinkz and Medusa?

How I pointed out earlier, with some heroes you need to understand what exactly makes them strong and how to play them to be successful. And, yes, the least popular heroes may pop up here for a similar reason.

Pretty close to the top there are Arc Warden, Vengeful Spirit, Huskar, Phantom Lancer, Techies.

Bot-10 heroes by winrate difference between more and less experienced players

And among the easiest heroes there are… Witch Doctor, Abaddon, Slardar, Lich, Skywrath Mage, Axe, Shadow Shaman, Juggernaut. The most unexpected heroes here are probably Shadow Demon and Snapfire.

Closing Words

My job was to tell you about what I did, how I did it and what stats may tell you. And, most importantly, this data is available from now on (more accurately, it was already available for two month now) in Immortal Ranked reports, as well as Competitive Meta reports, and weekly meta reports.

All the data in this text was based on 7.28c Immortal Ranked report, but most of the things apply for any other patch and competitive meta.

With this kind of stats it’s rather easy to spot when somebody “reinvents” a hero by finding a new way to play and win: for example, it happened with Tusk and Sven a month ago, when some players at high MMR started winning more than 65% of games on these heroes.

And in theory methods I used while calculating this data may be used to point out “more experienced” players to then explore their matches and item builds.

I listed the best and the worst heroes, and also made some useful plots to find a hero that suits you. And you can also periodically check the trends yourself and find the new imba before everybody else.

And you can also follow me on Twitter or join my Discord (or follow me on VK and Telegram if you’re Russian), where I write about various data anomalies, trends and other cool stuff when it happens. You can also donate here to support me and this kind of content, I would greatly appreciate that.

And remember: try not to get trapped by your perception and use stats, since stats don’t lie.

Writing code and stories. https://spectral.gg/