How we read a draft
One model reads the whole seat in one pass, and it says Modeled every time
Two things about draft tools are worth knowing before you read any of them. Adding up per matchup numbers overstates the answer, and even a perfect draft model cannot be right very often. This page says what we do about both.
No pair terms are added up anywhere, and we publish no accuracy headline. Every number the draft read prints carries Modeled with 0 games behind it.
The draft read runs in the desktop app. It needs the champion select the League client is filling in, seat by seat, which a static page has no way to see, so there is no draft screen on this website. This page is the explanation; the thing it explains is in the app.
The draft read is not a measurement. It is a model, trained offline on drafts we generated, and every number it produces carries the word Modeled with no games behind it. That label is not a disclaimer at the bottom of a page. It sits on the number.
The measured parts of this site are separate and say where they came from: recorded ranked games from EUW, Korea and NA. Nothing from the model is mixed into those, and nothing from those is printed as if the model had measured it.
Why do you not stack matchup deltas?
The arithmetic that makes other draft tools sound certain.
Adding up, against one model
What a pairwise engine does
Measure one number per matchup and one per pairing, then add them up. Each of those numbers can be measured perfectly well. The adding is the problem, because it treats every pair as a separate piece of evidence, and matchup signals are not separate. Three enemy champions with heavy attack damage are one reason to build armor, counted three times.
DraftGap publishes its own worked failure, which is the most useful thing anyone in this market has done for the argument: a full magic damage five stack scores about 65% under the pairwise sum and about 40% under a whole draft model. Its formula is open source, which is the only reason the failure can be named this precisely. Where a tool publishes no formula, we have nothing to say about its arithmetic, and we would rather say nothing than characterise an engine we cannot read.
What we do instead
Our fix is structural rather than clever. There is nothing to add up, because the whole seat goes through one model in one call.
Simulate five signals that are all noisy readings of the same underlying thing. Each one measures correctly on its own. Added up the way a pairwise engine adds them, a truth worth about 60% turns into a claim of 92%. Every "your draft wins 61%" line out of a summing engine sits somewhere on that curve.
What one model sees
Both teams at once, as one set of numbers.
The board becomes 54 numbers: 5 per seat across all 10 seats, plus a few that describe the two teams as wholes. Per seat it is the champion, how well it fits the role it is in, how much the player has played it, how they have been doing lately, and whether we know who is in that seat at all.
5 small networks read those numbers and vote. How far apart their answers sit is where the range comes from, and the range widens again for every seat where the client has not told us who is playing. A draft where we know nobody is a draft we are less sure about, and the number says so by getting wider rather than by getting quieter.
When the client does report the players, that is the part that moves the answer most. The research literature agrees: the feature that lifts pre game prediction is who is piloting, not what was drafted, and almost no draft tool conditions on it.
Why does every draft number say Modeled?
Because a word on the number is worth more than a paragraph at the bottom of a page.
A measured number is a count of real games and prints how many. A modeled number is something we worked out, and the honest thing to do with it is to say so where the number is, every time it appears. The draft read is the second kind. It carries the word Modeled and a sample size of zero, on the number, in the app.
Zero is not a placeholder there. It is the true count of games behind that particular figure, and printing anything else would be borrowing credibility from the measured parts of this site that the model did not earn.
What accuracy does your draft model get?
Worked example: the ceiling, in arithmetic anybody can redo.
In soloqueue the draft is a small term in a result decided by ten players over forty minutes. Suppose the draft moves the true chance of winning by a couple of points either way. A model that knew that true chance exactly, with no error at all, would still call the winner only about 52% of the time. That is the ceiling for a perfect model. A claim of 58% implies drafts routinely hand out 60/40 games at champion select, and a claim of 62% implies more than that.
The published research lands where the arithmetic says it must. The best peer reviewed result reaches about 55% on 279,893 games from the top tenth of a percent of players, and the methods before it sit between 52% and 54%. On this market's own record, one tool claimed 62%, an outside tester measured about 52% against its public API, and the corrected model settled near 55%. That correction is the honest part of the story.
There is a quieter point underneath. A model can reach the mid 50s overall and still be nearly blind where you need it, because most of what it earns comes from a tail of broken drafts that anyone could call. In the band where sensible pick decisions live, the same models resolve almost nothing.
So we do not publish an accuracy headline. There is no honest number to put in that slot, and putting a dishonest one there is the single most common thing in this market.
What the read is allowed to say
Three answers, and ties are one of them.
| situation | what we print |
|---|---|
| One pick is clearly ahead | beats with its range and the word Modeled on it |
| The top picks' ranges overlap | too close, all of them shown as equals, and any of these works |
| A seat we know nothing about | A wider range and a note saying average pilots are assumed |
| Bans | The biggest threat, never the most likely |
An invented player stat never appears. When the client does not report who is in a seat, we say we are assuming an average pilot rather than filling the gap with a number that looks like knowledge.
How to check us
-
Take any tool's accuracy claim and hold it against the ceiling arithmetic above. If the claim needs drafts to decide games at 60/40, ask where those games are.
-
Look at what our draft numbers are labeled, which means looking in the app: the draft read needs the draft as the client fills it in, so it runs there and there is no draft screen on this website. Every number it prints says Modeled and carries no games. One carrying a game count would be a bug, and we want to hear about it.
-
Compare the two objects directly. DraftGap's summing formula is open source and its worked failure is published. Ours has no pair terms in it to inspect, which is the whole claim.
-
Read the research yourself. The 279,893 game result and the ones below it are in the peer reviewed literature, not in our repository.
What the draft read cannot do
It trains on drafts we generated, so it inherits whatever our generator gets wrong about real drafts. Pick and ban order is not in the match data anyone gets from Riot, so no tool in this market learns it from real games, ours included.
It cannot see your mastery unless the client reports it, it cannot see how you feel today, and in the band where most real pick decisions sit it will often tell you the picks are too close. That is the honest answer there, and it is the one we print.
ko.lol for desktop
Your champion pool, your matchups and your patch notes, on your desktop while you play.
Free. For Windows.