How it works/ELO rankings

How the Dota 2 ELO Rankings Work

The idea

ELO is a rating system originally built for chess. The core idea: after each match, points flow from the loser to the winner. Beat a stronger team, gain a lot. Lose to a weaker team, lose a lot.

Every team starts at 1500. No reputation bonus, no legacy points, nothing. You earn your rating by winning and lose it by losing. The rating knows nothing about a team's name, budget or past glory — only results.

The expected result

Before a series, the model works out team A's expected result from the rating gap:

E(A) = 1 / (1 + 10^((R(B) − R(A)) / 400))

A 100-point gap is roughly a 64% chance to win a game, 200 points 76%, 400 points 91%. On the site the per-game chance is capped at 10–90% — the model is never “100% sure”.

What a series is worth

Ratings update after a completed series, not after individual games:

Δ = K × (result − E)

The base K is 32 — moderate on purpose, so one upset doesn't cause wild swings. It's multiplied by three adjustments:

  • Tournament weight. By default Tier 1 = 1.0, Tier 2 = 0.6, qualifiers = 0.3. Individual events can be weighted up — TI counts for more.
  • Stage. Playoffs ×1.2, grand final ×1.5, when the stage is known.
  • Margin. A 2–0 counts in full, a 2–1 two-thirds, and a 1–1 Bo2 draw half, nudging both teams toward the middle.

A Tier 1 example: a 1600 team beats a 1500 team 2–0 — +12. If it's 2–1 — +8. The other way round, the 1500 team beating the 1600 team 2–0 earns +20: the surprise is worth more.

Three divisions

Ratings live in three separate pools: Division 1 (Tier 1), Division 2 (Tier 2) and Mix / Stacks — pickup rosters from open qualifiers, not real orgs. Each pool starts at 1500, so you can't compare a number across them: a 1535 in Division 2 is not “above” a 1500 in Division 1. Read each table on its own.

When teams from different divisions do meet, the expected result adds 200 points per division step. So a 1700 Division 2 team against a 1500 Division 1 team is an even match — and a Division 2 side feasting on other Division 2 teams doesn't get to leapfrog a Tier 1 team it has never played.

Which division a team sits in reflects the level it actually competes at, and it can move: a Division 2 team that starts earning real Tier 1 results gets promoted, and the reverse holds too.

From games to series

The chance to win a series comes from the per-game chance p:

BO3: p² × (3 − 2p)  ·  BO5: p³ × (10 − 15p + 6p²)  ·  BO2 draw: 2p × (1 − p)

These are the numbers on every match's probability bar and in the team comparison tool.

Rebuilt from scratch

Results come in automatically, and after every new one all ratings are recalculated from the first tracked series onward, in order. A corrected result or a newly added series flows correctly into everything after it. Teams that played an event under a different name share one rating. Ratings stay between 800 and 3500.

Limits

The model only sees tracked series. It knows nothing about stand-ins, illness or motivation — so a new team needs a few series before its rating settles, and my own pick sometimes goes against the model. How well the model does on its own is in the “Vs. the ELO model” card on the track record.

See it in action: ELO rankings · rating history & upsets.