How the Hero Data Works
Where the data comes from
Heroes have three sources, and I keep them apart on purpose:
- Valve — abilities, talents, facets and base stats, straight from the game's own data rather than a retelling of it.
- STRATZ — win rates, pick rates, positions, builds and matchups from high-rank ranked games.
- Tracked pro games — picks and bans from the series covered on this site.
The hero list itself comes from the dotaconstants build on GitHub, not the OpenDota API — the API lags patches by weeks, and a new hero shouldn't have to wait.
Tier lists by position
The tier list is built from Divine and Immortal games, separately for each position. Every hero gets a score — win rate plus half the weight of popularity (both normalised, popularity on a log scale):
- heroes picked in under 1% of games at that position are left out — too niche;
- the rest are ranked by score: top 10% are S, up to 30% A, up to 60% B, up to 85% C, the rest D.
Popularity is in there for a reason: a high win rate over a handful of games is noise, while a hero that gets picked constantly and still wins is the meta. The list refreshes every two days.
Hero pages
- Abilities and talents — from Valve's data, refreshed every two days.
- Builds — first purchases by Legend to Immortal players, by cost: early (up to 2,000 gold), core (up to 4,500) and late.
- Skill build — the most common ability at each level, from parsed high-rank matches on STRATZ. That's 15–30 matches per hero (it's all STRATZ hands out), so the grid is refreshed once per patch.
- Positions — the hero's main roles in Divine+ games (5% of games or more) and its tier in each.
Counters
Counter pages (for example, who counters Lina) use Divine and Immortal matchups from STRATZ — against and alongside. “Advantage” is how much better or worse a hero does against a specific opponent than you'd expect from both heroes' overall strength. That way a strong hero doesn't look like a counter to everything just because it's strong. Refreshed every two days.
Pro meta and tournament stats
The pro meta covers every tracked pro game in the last 30 days: picks, bans, the share of games a hero was picked or banned in, win rate, and the three pros who play it most. Recalculated once a day.
Tournaments with at least 10 tracked games get their own hero stats page, covering all phases of the event together.
Patches
Patch notes are Valve's official ones. On top of them sit two blocks:
- Win rate impact — each changed hero's win rate at the end of the previous patch vs now (STRATZ, all ranks).
- What changed in the meta — the biggest winners and losers in ranked (only heroes with 2,000+ games in both patches) and the heroes rising or falling in pro pick-or-ban rate (at least 30 games in each patch). “Patched” means the hero is in the notes; the rest moved because of other changes.
Win-rate snapshots started with patch 7.41f and pro drafts with 7.41e, so older patches don't have these blocks.