How win impact is measured
Raw win rates reward items for being bought by players who were already winning. Stronk compares choices made in the same game state instead.
The question
If the same player, in the same situation, had chosen option B instead of option A, how much would their chance of winning change? Nobody randomizes builds, so this has to be estimated from ranked games, and no method makes that perfectly unbiased. Stronk removes the biases the data lets it remove, and says how solid each number is.
How
- Win probability. A model predicts each team's chance of winning at every minute from the game state: gold, experience, kills, towers, dragons, barons and the time. It is checked for calibration: games given 60% are won about 60% of the time.
- Decision points. Each choice is measured from the moment it is made: champion select for runes and spells, and the start of each item slot for items. A cheaper item that completes earlier gets credit for it, and games that end before an item is finished still count.
- Win probability added. For each decision, the score is the final result minus the win probability at that moment. An option's win impact is its average score minus that of the alternatives chosen at the same point, for the same champion and role.
- Comparable situations only. A second model estimates how likely each option is in each situation. Options that are almost never chosen where the others are get no number ("too few games") rather than a misleading one.
- Uncertainty. Small samples are pulled toward the average of similar champions, intervals come from resampling whole games, and every option is compared with the most played one with a false discovery correction across the whole patch. Only differences that survive it are called clear.
How it is tested
Synthetic games with known, planted effects, including hidden player skill and items bought mostly when ahead, check that the method recovers the true effects and calls nothing clear that isn't. The win probability model's calibration and these checks run on every change, with limits that may only get stricter.
The full method, its known limits and its tests are public: docs/wpa-method.md.
The data
Match data comes from Riot Games' official API: ranked solo games of high-elo players on the current patch. Only aggregate statistics per champion, role and patch are published, as signed files the app verifies before using.