Prediction Methodology
How DOTA2PREDICT forecasts professional Dota 2 matches
DOTA2PREDICT uses multiple independent models to estimate the outcome of professional Dota 2 matches. Each model weighs different signals — from pure skill ratings to recent form and head-to-head history. No single model is perfect, but together they give a well-rounded view of every matchup.
How predictions are generated
When a professional match is scheduled, the engine automatically:
- Identifies both teams and their current rosters from OpenDota.
- Loads rating history — each team's Elo, recent results, and form trend.
- Computes match features — Elo gap, momentum, head-to-head record, tournament tier and format (Bo1/Bo3/Bo5).
- Runs every model — each outputs a win probability (e.g. "Team A 63%").
- Publishes the consensus — the ensemble pick + per-model breakdown, refreshed as new data arrives.
Model families
| Elo family | Skill-based ratings updated after every completed pro match. Winners gain rating, losers drop; the size of the move scales with the rating gap. |
| Form & H2H | Combine recent results, win streaks, and direct head-to-head history between the two teams. |
| Ensemble | Blend the above signals into a single consensus probability — the headline pick shown on each match. |
The 19 models in detail
Every upcoming match is scored by 19 independent models. Each isolates a different signal, so where they agree confidence is high, and where they split the match is genuinely uncertain. Below is what each one actually measures, when it is strong, and where it is weak.
Rating models (Elo family)
Elo H2H — The baseline rating. Every pro team carries an Elo number that rises when it wins and falls when it loses, with the size of each move scaled by the gap between the two sides on the classic 400-point chess scale (a 100-point edge ≈ a 64% win expectation). It updates after every completed professional match, so it reacts fast and forms the foundation the other models build on. Its blind spot: it treats all wins equally regardless of opponent quality or context — which the specialised models correct.
Elo HQ — A high-confidence, slow-moving variant. A smaller K-factor and a wider 2000-point scale mean ratings change gradually and a single upset barely moves the needle. That makes Elo HQ a stable, noise-resistant estimate of a team's true long-run strength, good for separating genuine tier-one sides from teams on a short hot streak. The trade-off is lag: after a real roster change it takes longer to catch up than the faster models.
Tier Elo — Elo computed only from matches against top-30 opposition. Beating weak teams in open qualifiers does not move this rating at all, so it measures a team's record where it counts — against the field it will meet deep in a tournament. Strong for premier events; sparse (and less reliable) for teams that rarely face elite competition.
Form & momentum
Form — Pure win-rate over the last 10 matches, ignoring ratings entirely. It captures a team peaking or slumping right now that a slow rating has not absorbed yet. Best as a short-term corrective; on its own it is noisy and easily fooled by an easy or brutal recent schedule.
Streak — Reads the current win/loss streak and blends it with Elo. A long unbeaten run signals confidence and cohesion; a losing skid signals the opposite. It sharpens calls on teams with clear momentum but overreacts when a streak was built against weak opponents.
WR10 — Win-rate specifically against top-10 opponents, blended with Elo. It answers the key playoff question — can this team beat the very best, not just the field. High predictive value for finals and upper-bracket matches; thin data for teams that seldom play the elite.
SOS (Strength of Schedule) — Recent form re-weighted by the quality of the opponents that produced it. A 7-3 run against top teams counts for far more than 9-1 against qualifiers. It rescues teams whose raw record understates a hard schedule and deflates padded win-rates.
Blend models
Apex — A momentum-aware ensemble that fuses Elo, Form and Streak. It leans on ratings for a stable base while letting current form and momentum tilt the call, aiming to be right on both steady favourites and teams that are surging or fading. One of the strongest all-round individual models.
Oracle — The conservative counterweight. It starts from the slow Elo HQ rating and actively dampens its confidence whenever the momentum signals disagree with it. When form and rating point the same way it is decisive; when they conflict it deliberately hedges toward a coin-flip rather than guess. Fewer bold calls, but its confident ones are trustworthy.
Eagle — A blend of Elo, WR10 and Form weighted toward performance against top-tier opposition. It favours teams with a proven elite record over teams merely rated highly, which makes it sharp for high-stakes matches between established contenders.
Phantom — A high-conviction model that stays silent unless Elo and WR10 strongly agree on the same side. Rather than predict every match, it only commits when two independent skill signals line up, trading coverage for precision on the calls it does make.
Dota-specific & draft
Fatigue — A Dota-specific penalty for back-to-back matches played less than ~12 hours apart. Long best-of series and packed group stages wear teams down, and the tired side underperforms its rating. Applies only in congested schedules; otherwise it defers to Elo.
Patch-Aware — Elo with a patch-boundary decay. When Valve ships a balance patch the meta resets, so form recorded on the old patch loses weight and recent-on-patch results count for more. It reacts faster than plain Elo to a team adapting well (or badly) to a new patch.
Meta Strength — Grades a team's recent hero pool against the heroes currently winning in the pro meta. A side comfortable on this patch's strong picks gets a boost; one still forcing off-meta comfort heroes is marked down. Draft-driven and independent of raw ratings.
Synergy — Measures how well the heroes a team actually draws together have performed as a unit, from hero co-occurrence win-rates within its recent lineups. It rewards teams with practised, coherent hero combinations over ones assembling ad-hoc drafts.
Roster Change — A penalty for lineup instability. A freshly reshuffled roster almost always underperforms its inherited Elo while it rebuilds chemistry, so this model marks down teams with recent player changes and trusts settled lineups more.
Meta-models (consensus filters)
Vanguard — A consensus filter that fires only when Elo and WR10 strongly agree (both above 60% on the same team). When two independent approaches — overall rating and elite head-to-head record — converge, confidence is high. Low coverage by design, but historically its picks are among the most accurate.
Nexus — A three-way consensus of the strongest blend models — Apex, Oracle and Eagle — that activates only when all three agree and their average confidence clears 55%. Three different analytical styles confirming each other produces a robust, high-confidence signal.
Consensus — The broadest agreement model: it triggers when at least 75% of the base models converge on the same side. When the whole ensemble points one way despite measuring different things, the result tends to hold across match contexts — the single most reliable "the field agrees" indicator on the site.
What happens after a match
Results are pulled from OpenDota and reconciled automatically. When a match completes:
- Each model's prediction is scored correct or incorrect.
- Team Elo ratings update based on the result.
- Model accuracy on the models leaderboard updates.
- All upcoming matches are re-predicted with the new ratings.
Match tiers
Matches are grouped by tournament tier, which sets how much weight predictions carry:
- Premium — The International, Majors, and top DPC-tier events. Richest data, best accuracy.
- Professional — regional leagues and qualifiers.
- Amateur / Other — lower-tier and unranked matches. Shown as a schedule; model output is muted because accuracy drops toward a coin-flip.
The prediction pool
Predictions on DOTA2PREDICT use a pari-mutuel pool, not fixed bookmaker odds. Everyone who predicts a match puts into a shared pool. When the match settles, winners split the whole pool in proportion to their stake — there is no bookmaker margin baked into the odds. Live odds shown on a match are derived from the current split of the pool and move as more predictions come in.
Because the pool is shared across DOTA2PREDICT and its sister site, your balance and deposits work the same everywhere — but your Dota predictions are tracked separately from any CS2 activity.
Data source
Match schedules, results, rosters, and player data come from OpenDota — an open data platform for professional Dota 2. Data refreshes continuously for live and upcoming matches.
Predictions are for informational and entertainment purposes only. Past accuracy does not guarantee future results.