The stock pages tell you the ranking has no measurable edge — and then admit the sample is too short to be sure. So we ran the same question somewhere the evidence is far stronger: prediction markets that resolve in days. A few months there buys thousands of scored, out-of-sample predictions, where the stock funnel gets twelve rebalances a year. If a public-data edge were reachable anywhere, it would show up here fastest.
It doesn't. Here is what we tried.
All keyless and out-of-sample: results from ESPN's public API, prices and outcomes from Polymarket's. Significance is clustered by fixture — the ~6–14 markets on one game share a scoreline and aren't independent, so the honest unit is the game, not the market.
A Poisson goals model — team attack and defense strengths fit from past results — priced every market on each fixture, point-in-time, and was scored by Brier against the market's own price at kickoff. Across 44 fixtures and 311 markets it loses: model Brier 0.152 against the market's 0.147 (t = -1.73, the market is better). A single game where the model won by a mile was pure luck — it vanished the moment the sample had power.
The reasonable hope: thinly-traded leagues are priced by fewer, softer bettors, so a competent model should beat themeven if it can't beat NWSL. It can't. Even Sweden — the best obscure sample — the market out-prices the model.
| league | markets | fixtures | model beats market? |
|---|---|---|---|
| NWSLsharp | 308 | 22 | −0.0055 · t = -1.27 |
| Swedenthin / soft | 112 | 8 | −0.0051 · t = -0.63 |
| MLS | 56 | 4 | −0.0415 · t = -2.40 |
| All | 504 | 36 | −0.0102 · t = -2.45 |
Overall the market wins at t = -2.45. Every league's edge is negative or indistinguishable from zero.
You don't need a model to make money if the prices are simply wrong — the classic favorite-longshot bias says longshots are overbet and favorites underpriced. So we checked 26,714 markets across five sports. The prices are almost perfectly calibrated: a name priced at 0.77 wins 0.77 of the time. Every dot below sits on the diagonal — where the price is the probability.
“Back the favorite” — the one direction with a whisper of an edge — is net-negative after cost (-1.07c per $1, t = 0.89), and there is no internal arbitrage either: of 243 markets scanned, 0 let you buy every outcome for under a dollar. The book carries a normal spread and nothing to exploit.
“Five sports” is only honest if you can see them. Calibration error — the average gap between a market's price and what actually happened — is a couple of cents in every sport: the prices are right. Back-the-favorite is null or negative in 4 of the 5. In the rest, it isn't — and this site doesn't get to bury that.
| sport | markets | fixtures | calib. error | back-favorite (ML) |
|---|---|---|---|---|
| MLB | 10,213 | 361 | 0.70c | — |
| NBA | 5,945 | 544 | 1.51c | +7.33c · t = 3.38 |
| Soccer | 4,270 | 308 | 1.18c | +5.70c · t = 1.36 |
| NHL | 3,607 | 512 | 0.86c | — |
| NFL | 2,679 | 580 | 2.62c | −5.61c · t = -0.75 |
Sport names link to that sport's live board. “—” means too few high-priced favorites in that sport to test the direction honestly.
The one that isn't null: NBA moneyline favorites. Backing every NBA favorite priced ≥ 70c returned +7.33c per $1 after cost, at t = 3.38 — past the conventional t = 2 bar, over 100 fixtures.
We flag it; we don't believe it yet — for the same reasons the rest of this site would demand of any positive result. It is in-sample: found and scored on the same games. It is one slice of about twenty here (five sports × four market types), enough multiplicity to expect a t near 3 somewhere by luck. A soccer moneyline flicker of the identical shape (+6.2c) already regressed to zero once its sample grew. One suspect has been cleared: the reconstruction artifact — favorites firming in the last hour, so a price sampled 60 minutes before tip understates the close and manufactures the gap — was tested directly by repricing the same bets at the actual close. The edge held (+7.29c per $1, t = 3.36) and the last-hour drift on those favorites was nil (+0.04c, t = 0.29) — the anomaly is in the price, not in how we reconstructed it. The honest status is a hypothesis to test out-of-sample as new games resolve — not an edge, and not a bet. When enough fresh NBA fixtures settle, the number will say whether it was real.
This is the same verdict the backtest reaches, from a completely independent direction and with far more statistical power. The stock finding could always be dismissed as “113 months is too short”. This one can't: thousands of markets, resolving in days, and the model still loses to the price while the price stays honest. It is not that our model is bad. It is that liquid markets are priced well enough that a public-data strategy can't beat them after costs — the single fact behind everything on this site.
The books are deep enough to trade — 60% of 120 live books cleared the liquidity gate (82% of moneylines). The constraint was never access. It was that there is nothing to trade on.