Research · Aug 2026
When the market says 94%, the favourite still loses 1 in 6.
1,830 professional games · 46,835 per-minute snapshots · 19 leagues · March 20 – August 21, 2026
Methodology
Window: March 20 – August 21, 2026. Every professional game where our live ingester tracked an open Polymarket game-winner market: 1,830 games across 19 leagues (LCK, LEC, LCS, LPL, CBLOL, LCP, MSI, LCK Challengers, Prime League, LFL, TCL, LES, LJL, NACL and others).
Sampling: one snapshot per game-minute, taken as close as possible to the 30-second mark of that minute — 46,835 snapshots in total. Degenerate quotes (below 2% or above 98%) are excluded, since they carry no information and would flatter the curve.
Scoring: each snapshot contributes both sides — the quoted probability p for one team and 1−p for the other. That makes the curve symmetric by construction and immune to any bias in which team happens to be listed first. Winners are resolved through our team-alias table, because the same team is spelled differently across feeds; the 105 games whose winner could not be resolved on either side are excluded rather than counted as losses.
1. The calibration curve
If the market were perfectly calibrated, every row below would show the same number in the first two columns. Between roughly 35% and 65% it very nearly does. Outside that band it does not.
| Market price | Actually won | Error (pts) | Samples |
|---|---|---|---|
| 5.6% | 17.7% | +12.1 | 10,962 |
| 15.0% | 23.6% | +8.6 | 9,351 |
| 24.9% | 30.7% | +5.8 | 8,999 |
| 34.8% | 35.9% | +1.0 | 8,520 |
| 44.8% | 45.2% | +0.5 | 8,444 |
| 54.5% | 54.2% | −0.3 | 9,346 |
| 64.9% | 64.0% | −0.9 | 8,498 |
| 74.9% | 69.0% | −6.0 | 9,120 |
| 84.9% | 76.3% | −8.6 | 9,367 |
| 94.3% | 82.2% | −12.1 | 11,063 |
Error is actually won minus market price. Positive = the market underrated that side.
The shape is the classic favourite–longshot bias inverted: underdogs are underpriced and heavy favourites are overpriced, and the further you go toward the edges, the worse it gets. The two extreme buckets are the largest in the dataset — this is not a small-sample tail effect.
2. It isn't just games that are already over
The obvious objection: a 94% quote at minute 35 of a decided game is trivially correct, so maybe the bias lives entirely in the early game. It does not. Restricting to quotes of 85% or higher and splitting by game phase, the gap is present throughout — and is actually smallest late, when the market has the most information.
| Game phase | Avg. price | Actually won | Error (pts) | Samples |
|---|---|---|---|---|
| 0–9 min | 90.5% | 79.6% | −10.9 | 2,383 |
| 10–19 min | 92.0% | 80.3% | −11.7 | 6,126 |
| 20–29 min | 93.1% | 81.6% | −11.5 | 5,727 |
| 30 min + | 92.8% | 84.2% | −8.6 | 1,569 |
3. The interesting part: it is not universal
Split the same 85%-and-above quotes by league and the single number breaks apart. In CBLOL, a 92.5-cent favourite wins barely two thirds of the time. At MSI and in the LPL the market is calibrated, or even slightly pessimistic about its favourites.
| League | Actually won | Error (pts) | Samples |
|---|---|---|---|
| CBLOL | 67.2% | −25.2 | 1,031 |
| LEC | 72.6% | −19.7 | 1,866 |
| LCK Challengers | 75.2% | −16.8 | 1,060 |
| LCK | 78.0% | −14.4 | 2,628 |
| LCS | 78.6% | −13.9 | 1,022 |
| LCP | 82.9% | −9.4 | 1,384 |
| La Ligue Française | 82.9% | −9.0 | 938 |
| Prime League | 85.8% | −6.1 | 1,454 |
| LES | 89.8% | −2.8 | 1,368 |
| TCL | 90.1% | −1.9 | 754 |
| MSI | 93.6% | +1.4 | 706 |
| LPL | 94.4% | +2.5 | 341 |
| NACL | 97.1% | +4.7 | 630 |
Quotes of 85% or higher only. Average price is ~92% in every league listed, so the actually won column is directly comparable across rows. Leagues with fewer than 300 samples are omitted.
We do not have a clean causal answer for the split, and we would rather say so than invent one. The plausible candidates: liquidity (MSI and LPL markets attract far more volume than a CBLOL regular season game), and how sharply a league's games actually snowball. Both are testable, and neither is tested here.
Limitations
- One season, one game. Five months of 2026 professional League of Legends. Nothing here should be assumed to transfer to another esport, or to another year with a different patch cadence.
- Coverage is not random. A game only enters the dataset if Polymarket listed a market for it and our ingester caught it live. Leagues with thin market coverage are under-represented.
- Prices are mid-quotes, not fills. The snapshots record the quoted probability, not what you could actually trade at. Spread and depth at the extremes are exactly where a price is least reliable — which is also where the effect is largest.
- No causal claim. This is a calibration measurement. It says what the market did, not why.
FAQ
Does this contradict your other study, which said the market beats your model?
No — they measure different moments. That study looked at pre-match prices, where Polymarket beat our Bayesian model on both accuracy and Brier score. This one looks at live in-game prices. The market being sharp before a game starts and exaggerated once it is running are perfectly compatible findings.
Is a 94% favourite losing 18% of the time normal?
For a well-calibrated market, no — a 94% quote should lose about 6% of the time. Some overpricing of heavy favourites is common across betting markets, but a 12-point gap is large, and it persists at every stage of the game.
Where does the data come from?
Our own live ingester: it follows the official lolesports feed and records the Polymarket order book for the matching market throughout each game. The same pipeline powers our live dashboard and is available through the API.
Can I reproduce this?
The underlying per-minute odds history is downloadable as CSV or JSON — see the API documentation. The full methodology is described above; every filter we applied is stated.
Figures frozen August 21, 2026. Our model's own ongoing track record is published at /model/accuracy. Not affiliated with Riot Games or Polymarket.