How the win probability works
The method follows xPetu's master's thesis Win probability estimation for strategic decision-making in esports (2024), the work behind Coachless' WPA. That thesis applies it to items in ranked games. Here it is applied to kills and objectives in professional games, live from the lolesports stats feed.
1. Win probability
The model estimates w(x) ≈ Pr(blue wins | x) for a game state x. LoL is zero-sum, so for the mirrored state x′ (same game seen from red) it must hold that w(x′) = 1 − w(x). Every feature is a blue-minus-red difference, so swapping the sides flips the sign and the model is symmetric by construction. The one exception is the intercept, which captures blue-side advantage.
It is an L2-regularised logistic regression. Objective coefficients are kept non-negative, since taking an objective can't lower your own chance to win. The feed has no game clock and finals have pauses, so combined gold stands in for game time.
2. Win probability added
For an action d that takes effect in state x and ends in state z, ΔW(d) = w(z) − w(x) (thesis eq. 4). Here the actions are the kills and objectives seen between two consecutive frames of the feed. If several happen in the same frame gap, the observed change is shared in proportion to each event's isolated effect in the model.
- Kills: killer and assisters split the gain, the player who died carries the loss.
- Objectives: split equally between the team's players who were alive. The feed doesn't say who hit the objective, so being alive stands in for taking part.
- Change between events (farm, XP, time) is reported as drift and credited to nobody.
- Nexus: the jump from the last frame to 100% is split across the winning team.
On the Worlds page each objective also gets the thesis' two averages: W̄, the mean win probability just before the action, which measures selection bias (teams take Barons when ahead), and ΔW̄, the mean WPA, which measures the action's average impact.
3. Coefficients
Loading…
5. Limits
- The feed has team gold, kills, towers, inhibitors, dragons and barons, plus per-player level, gold, KDA, CS and health. It has no positions, damage, void grubs, herald or draft strength, so the model can't see them.
- Past games are sampled every 20 seconds (training every 60). Live games use every frame the feed serves, at least every 10 seconds.
- The feed has no winner field. Bo1 winners come from the match result. Series games are inferred from the final frame and checked against the series score.
- The feed only serves frames at least 20 seconds old, so the live page runs about 25 seconds behind the game, roughly the broadcast delay.
- A single game's WPA is noisy. The thesis averages ΔW over many actions for exactly this reason (sec. 4.3).