6.81 Hero Stats, kinda

With my former method for interacting with the API increasingly appearing to be permanently disabled, there’s not a lot left for me to do.  But people still want to know what’s going on in the new patch, so I’ve taken a look at DotaMax, a Chinese site that claims to have hero stats with skill bracket information.

I say “claims,” because I have no way of personally vouching for the quality of their data.  I have a suspicion as to how they get it, and if my suspicion is correct there are likely gaps in their match records.  These gaps might be innocuous, or they might actually warp the results.  They definitely appear to have less total matches on record than Dotabuff.  In my 7 day test, Dotamax only had 88% the match volume of Dotabuff.  6.80 looks even worse, with Pudge for example having only 55% the Dotabuff numbers.

The better news is that the numbers themselves tend to conform to my expectations from other sources.  This doesn’t prove that they’re good, but they’re at least not obviously bad.  So far.

One last caveat.  This was an experimental project done over the course of a couple days.  I used DotaMax’s Last 7 days setting for the 6.81 numbers, but because this wasn’t done all at once there may be discrepancies.  These should usually be small, but if a hero’s win rate changes between sections, it’s because of this.

Normal/High/Very High Match Distribution

According to the DotaMax numbers, it was 75% Normal, 15% High, 10% Very High.  This is a larger Very High section than usual, which could represent matchmaking maturing over time, but as I mentioned, DotaMax appears to have an incomplete set of games.  If my suspicion from earlier is correct, it’s a lot more likely for them to drop Normal and High matches, which would artificially compress the distribution some.

As a reminder, it’s theorized that public approximations have Normal as being somewhere around < 3000 MMR and Very High being > 4000.

Ranked vs Unranked Match Distribution

People have speculated that the N/H/V distribution is significantly different for ranked matches only, and DotaMax appears to agree with them.  In only ranked matches the distribution I found 51/26/23.  ~57% of VH matches in the Dotamax results take place in ranked compared to 18% in Normal and 26% overall.  These trends represented by these results are likely factual even if the particular numbers might be warped by unevenly distributed dropped matches.

VH Top 25 by Win Rate


Hero Shifts by Skill Level


No surprises, but a couple things to point out.

First, Terrorblade and Phoenix took their hits in the patch, but they’re both looking competitive in higher skill games, especially Phoenix.

Lycan is another hero whose 6.81 nerf might have been exaggerated by his predominantly low skill performances in Dotabuff.

The people saying Earth Spirit would be competitive in Captain’s Mode might have a point.  Despite having the worst overall public win rate in Dota 2 history, he’s consistently putting up the strongest VH trend since 6.78 Wisp.  It’s true that at 42.61% Earth Spirit still doesn’t have the greatest of VH win rates, but neither does Shadow Demon and SD sees plenty of competitive play (though perhaps a bit more than he ought to).  And if you look exclusively at VH Ranked games, Earth Spirit’s win rate goes all the way up to 45.30%, albeit with a small sample of just under 10k games.

Necrolyte (technically -phos but whatever) has the latest case of Spirit Breaker syndrome.  Necro still isn’t getting much competitive attention, but pubs are mostly ignoring him too so he might be able to evade nerfs for a bit longer.

I won’t trust Legion Commander‘s results until I have proof that people have stopped skipping Overwhelming Odds to max Moment of Courage.

Hero Popularity: China Versus the World

One interesting feature of this site is that it also provides results exclusive to the Chinese servers.  This gives us a glimpse into the shifts in hero popularity between China and the rest of the Dota 2 servers.  The end result is pretty large, so I’m just going to thumbnail them.

<-Very High | Normal ->


Lower level Chinese pubs appear to be much more conscientious towards team composition than their predominantly Western counterparts.  The top 10 less-played heroes on the Chinese side starts with Pudge and then goes entirely pub-carry with Drow Ranger, Phantom Assassin, Riki, Ursa, Sniper, Faceless Void, Bloodseeker, Meepo, and Troll Warlord.

In both brackets, Chinese players show a big affinity towards Axe, Earthshaker, Slark, Doom, Skeleton King and Kunkka.

Bloodseeker and Viper are surprisingly popular in VH pubs.

Besides Earthshaker, Ancient Apparition appears to be the support of choice.

Invoker is present in 56.76% VH games.

Concluding Remarks

As a reminder, I can’t completely vouch for these results.  They look believable, but that doesn’t preclude them from being warped in some subtle way.  Do with them what you will.

On a final note, I had to mess around with a Chinese translator to navigate the site and came across a hero translation I’ve never seen before.  I guess in the Chinese backstory he’s a disgruntled Counter-strike grognard.



6 Responses to 6.81 Hero Stats, kinda

  1. osamc says:

    Did you check the match length distribution? I think it will be very skewed in favor for short games.

    • phantasmal says:

      I haven’t been able to find anything about match length on the site, but this is my #1 concern as well.

  2. Styðja says:

    Looks like Bane’s name is ‘Bring Disaster’ in china.

  3. 烈之斩 says:

    DotaMax grabs its data via dota2’s API, but due to their server capacity and the truth that API now it’s very broken (you can’t grab from a certain date), they only able to record the -ap games. Now they’re adding more, but it’s still one of the reasons their match numbers is much less than dotabuff.

  4. harmonica says:

    Thanks for the post on winrates. Very interesting to see the data from across the pond (well, two ponds for myself).

    I’ve only recently starting interacting with the API myself, purely for recording my own match data – but would it not be possible for you to record match IDs for whatever data you grab and use that as the start_at_match_ID when you pull your data?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: