Where the data comes from
- Public match stats — hero/item reference, daily win rate and pick rate trends, item popularity ("Build timing"), public matchups and match cards.
- Rank snapshots — win rate and pick rate by rank and position for the tier list, plus matchups for counters. The API key never reaches the site: a collector fetches the data and stores it in the database/bundle.
- We only count ranked matches of reasonable length; turbo and very short games are dropped.
How tiers and "Why S?" work
For each slice (rank × position) we take heroes with enough games (usually ≥ 200, for Top 1000 ≥ 60).
- Win rate is smoothed toward the slice average (smoothing strength K = 100 games) so rare heroes don't jump around from noise.
- WinScore — how far the smoothed win rate is above (or below) average, in percentage points.
- PopScore = 1.5 × ln(pick rate / median pick rate) — a popularity bonus that never outweighs win rate.
- Meta Score = WinScore + PopScore. Heroes are sorted descending and split into tiers by share: S ≈ 8%, A ≈ 20%, B ≈ 40%, C ≈ 22%, the rest — D.
The "Why S?" block on the tier list and the "How is it calculated?" link on hero pages show this breakdown for a specific hero: win rate contribution, popularity contribution, sample size and confidence interval.
Positions
When the snapshot has a role breakdown (Pos 1–5), the tier list is built separately for each position. If a slice is missing, we honestly fall back to "all positions" and don't make numbers up. Estimating positions from lineups is still in progress.
Counters
A pair's advantage is hero A's win rate against B minus A's average win rate, smoothed. Pairs with fewer than 40 games (15 for Top 1000) are hidden to avoid showing noise.
Top 1000
A separate slice of the Immortal leaderboard (rank ≤ 1000). For now the players table is a placeholder with no made-up win rates; the Top 1000 tier list is only built when the snapshot has enough matches.
Limits
- These are past stats, not advice to "always pick this".
- Snapshots update in batches; numbers can lag the live API by hours.
- Items in "Build timing" are purchase frequency, without item win rate (not in the data yet).