The record
Every data lean we publish is logged before kickoff — the probability, the market odds at that moment, immutably — and settled after full time at flat 1-unit stakes. Wins and losses alike. The market is usually right; this page is where we prove we're honest about it.
Every probability we publish is logged — 1X2, BTTS and the goals markets alike. What counts as a lean (the staked record), one rule since 5 August 2026: the model's probability exceeds the market's implied probability (1 / odds, bookmaker margin included, not de-vigged) by ≥ +2 percentage points on any published market — 1X2 home/draw/away, FT Over/Under 2.5, HT Over/Under 1.5, BTTS yes/no — against a real, multi-book average price frozen about 30 minutes before kickoff, in a league whose model has at least 20 effective matches and whose results are not behind the source. Every side that clears the cut is one lean, staked flat 1u, so a match can carry more than one. Before 5 August only the two O/U markets could be leans; those rows keep their original classification and the change is marked in the ledger. Identical rule to the backtest below and the ✓ marks in the match table. Everything logged that isn't a lean is scored on the accuracy board instead — was our 64% really a 64%?
Cumulative P/L
┊ 2026-08-05 — All markets eligible for leans
| Market | ✓ Decided | ✓ Hit rate | ✓ P/L | Below cut | Below-cut P/L |
|---|---|---|---|---|---|
| Half-time Over/Under 1.5 | 364 | 54.9% | −31.67u | 2266 | −206.21u |
| Full-time Over/Under 2.5 | 515 | 48.5% | −16.67u | 2119 | −149.51u |
| Full-time Over/Under 3.5 | 402 | 58.5% | −34.91u | 2214 | −196.66u |
| Match result (1X2) | 551 | 25.9% | −120.72u | 3376 | −232.44u |
| Both teams to score | 340 | 43.5% | −34.91u | 2276 | −164.35u |
"Below cut" = published probabilities whose divergence never reached the ≥2% lean threshold — the bets the model told you not to make, staked flat 1u anyway. That contrast is the point: same model, same matches, and the cut separates the two columns. All markets mint ✓ leans on the same rule since 2026-08-05 (before that only the two O/U markets did; earlier rows keep their classification). We claim only the ✓ column. Prices are multi-book averages, re-checked as kickoff approaches and frozen ~30 minutes before the match — the frozen price is what every lean settles against.
| Date | Match | Lean | Data % | Odds | Result | P/L |
|---|---|---|---|---|---|---|
| 2026-09-11 | Admira – Kapfenberg1-0 (1:0) | Home win | 62% | 1.82 | WON | +0.82u |
| 2026-09-11 | Admira – Kapfenberg1-0 (1:0) | BTTS: No | 46% | 2.41 | WON | +1.41u |
| 2026-09-11 | SK Rapid II – First Vienna0-2 (0:1) | HT U1.5 | 67% | 1.63 | WON | +0.63u |
| 2026-09-11 | SK Rapid II – First Vienna0-2 (0:1) | FT U2.5 | 49% | 2.45 | WON | +1.45u |
| 2026-09-11 | SK Rapid II – First Vienna0-2 (0:1) | FT U3.5 | 72% | 1.61 | WON | +0.61u |
| 2026-09-11 | SK Rapid II – First Vienna0-2 (0:1) | BTTS: No | 46% | 2.45 | WON | +1.45u |
| 2026-09-11 | Ried – Salzburg1-1 (0:0) | FT U2.5 | 48% | 2.49 | WON | +1.49u |
| 2026-09-11 | Ried – Salzburg1-1 (0:0) | FT U3.5 | 70% | 1.64 | WON | +0.64u |
| 2026-09-11 | Ried – Salzburg1-1 (0:0) | Home win | 20% | 5.73 | LOST | −1.00u |
| 2026-09-11 | Ried – Salzburg1-1 (0:0) | Draw | 25% | 4.35 | WON | +3.35u |
| 2026-09-11 | Ried – Salzburg1-1 (0:0) | BTTS: No | 47% | 2.26 | LOST | −1.00u |
| 2026-09-11 | Darmstadt – Arminia Bielefeld2-1 (1:0) | Home win | 48% | 2.98 | WON | +1.98u |
| 2026-09-11 | Nurnberg – Hannover2-1 (1:1) | HT U1.5 | 62% | 1.76 | LOST | −1.00u |
| 2026-09-11 | Nurnberg – Hannover2-1 (1:1) | FT U2.5 | 46% | 3.14 | LOST | −1.00u |
| 2026-09-11 | Nurnberg – Hannover2-1 (1:1) | FT U3.5 | 69% | 1.91 | WON | +0.91u |
| 2026-09-11 | Nurnberg – Hannover2-1 (1:1) | BTTS: No | 43% | 3.23 | LOST | −1.00u |
| 2026-09-11 | Clermont – Boulogne0-0 (0:0) | HT U1.5 | 80% | 1.35 | WON | +0.35u |
| 2026-09-11 | Clermont – Boulogne0-0 (0:0) | FT U2.5 | 68% | 1.71 | WON | +0.71u |
| 2026-09-11 | Clermont – Boulogne0-0 (0:0) | FT U3.5 | 86% | 1.24 | WON | +0.24u |
| 2026-09-11 | Clermont – Boulogne0-0 (0:0) | BTTS: No | 60% | 1.88 | WON | +0.88u |
| 2026-09-11 | FC Emmen – De Graafschap1-2 (1:1) | Away win | 41% | 4.16 | WON | +3.16u |
| 2026-09-11 | Amstetten – Austria Vienna (Am)4-2 (2:1) | FT U2.5 | 51% | 2.26 | LOST | −1.00u |
| 2026-09-11 | Amstetten – Austria Vienna (Am)4-2 (2:1) | FT U3.5 | 73% | 1.48 | LOST | −1.00u |
| 2026-09-11 | Amstetten – Austria Vienna (Am)4-2 (2:1) | BTTS: No | 48% | 2.24 | LOST | −1.00u |
| 2026-09-11 | Venlo – Oss3-1 (2:1) | HT U1.5 | 77% | 1.70 | LOST | −1.00u |
| 2026-09-11 | Venlo – Oss3-1 (2:1) | FT U2.5 | 50% | 2.68 | LOST | −1.00u |
| 2026-09-11 | Venlo – Oss3-1 (2:1) | FT U3.5 | 72% | 1.72 | LOST | −1.00u |
| 2026-09-11 | Venlo – Oss3-1 (2:1) | BTTS: No | 48% | 2.68 | LOST | −1.00u |
| 2026-09-11 | Jong Ajax – Waalwijk0-2 (0:0) | HT U1.5 | 61% | 1.77 | WON | +0.77u |
| 2026-09-11 | Jong Ajax – Waalwijk0-2 (0:0) | FT U2.5 | 35% | 3.03 | WON | +2.03u |
| 2026-09-11 | Jong Ajax – Waalwijk0-2 (0:0) | FT U3.5 | 58% | 1.87 | WON | +0.87u |
| 2026-09-11 | Jong Ajax – Waalwijk0-2 (0:0) | BTTS: No | 35% | 3.07 | WON | +2.07u |
| 2026-09-11 | Hacken – Mjallby1-1 (0:1) | Away win | 38% | 5.27 | LOST | −1.00u |
| 2026-09-11 | Rodez – Grenoble0-1 (0:1) | HT U1.5 | 73% | 1.45 | WON | +0.45u |
| 2026-09-11 | Montpellier – Pau FC1-0 (0:0) | FT U2.5 | 56% | 1.87 | WON | +0.87u |
| 2026-09-11 | Montpellier – Pau FC1-0 (0:0) | BTTS: No | 55% | 1.91 | WON | +0.91u |
| 2026-09-11 | Sariyer – Bandirmaspor1-1 (1:0) | HT U1.5 | 82% | 1.34 | WON | +0.34u |
| 2026-09-11 | Sariyer – Bandirmaspor1-1 (1:0) | FT U2.5 | 71% | 1.69 | WON | +0.69u |
| 2026-09-11 | Sariyer – Bandirmaspor1-1 (1:0) | FT U3.5 | 88% | 1.23 | WON | +0.23u |
| 2026-09-11 | Sariyer – Bandirmaspor1-1 (1:0) | Draw | 35% | 3.19 | WON | +2.19u |
| 2026-09-11 | Sariyer – Bandirmaspor1-1 (1:0) | BTTS: No | 62% | 1.86 | LOST | −1.00u |
| 2026-09-11 | Stade Nyonnais – Xamax1-3 (1:1) | FT U2.5 | 48% | 2.43 | LOST | −1.00u |
| 2026-09-11 | Stade Nyonnais – Xamax1-3 (1:1) | FT U3.5 | 71% | 1.62 | LOST | −1.00u |
| 2026-09-11 | Stade Nyonnais – Xamax1-3 (1:1) | BTTS: No | 44% | 2.54 | LOST | −1.00u |
| 2026-09-11 | Maastricht – Almere City0-4 (0:0) | HT U1.5 | 63% | 1.72 | WON | +0.72u |
| 2026-09-11 | Maastricht – Almere City0-4 (0:0) | FT U3.5 | 60% | 1.74 | LOST | −1.00u |
| 2026-09-11 | Maastricht – Almere City0-4 (0:0) | Away win | 50% | 2.21 | WON | +1.21u |
| 2026-09-11 | Maastricht – Almere City0-4 (0:0) | BTTS: No | 38% | 2.84 | WON | +1.84u |
| 2026-09-11 | Nancy – Reims1-2 (0:2) | Away win | 52% | 2.20 | WON | +1.20u |
| 2026-09-11 | Eindhoven FC – Dordrecht2-1 (1:1) | FT U2.5 | 42% | 2.56 | LOST | −1.00u |
Accuracy — every published probability
all markets, leans or not · 14,423 settled · Brier 0.2261P/L is only claimed for leans; the rest of what we publish is judged on calibration — within each probability band, did outcomes land as often as we said they would?
| We said | Avg stated | It happened | n |
|---|---|---|---|
| 0–20% | 15.9% | 20.6% | 647 |
| 20–40% | 30.0% | 31.5% | 5077 |
| 40–60% | 49.7% | 49.6% | 5629 |
| 60–80% | 68.3% | 65.6% | 2835 |
| 80–100% | 83.4% | 74.9% | 235 |
DC v2 backtest — 2025 / 2025-2026
backtest, not the live recordWhat our score-distribution model's blind leans (divergence ≥ 2% vs average market odds, flat 1-unit stakes) would have returned over the 2025 and 2025-2026 seasons across 10 leagues — average odds are the conservative basis: real execution prices can only be better. Spoiler: they lose — -551.2u over 9,038 leans — which is precisely why we publish probabilities, not tips. The probabilities are well calibrated through the middle of the range (table below) and the goals markets lose roughly the bookmaker margin; 1X2 leans lose more — where the model disagrees hardest with the market, the market is usually right. We show it anyway. The live ledger above only ever contains leans logged before kickoff.
| Predicted | Actual | Samples |
|---|---|---|
| 0%–10% | 8.1% | 234 |
| 10%–20% | 17.7% | 1789 |
| 20%–30% | 27.4% | 6614 |
| 30%–40% | 36.7% | 6212 |
| 40%–50% | 44.3% | 7341 |
| 50%–60% | 55.1% | 6882 |
| 60%–70% | 62.3% | 4857 |
| 70%–80% | 71.8% | 2668 |
| 80%–90% | 77.5% | 657 |
| 90%–100% | 71.4% | 28 |
How this works
- Every published probability is snapshotted before kickoff together with the market odds at that moment. Records are never edited afterwards.
- Settlement is mechanical: flat 1-unit stakes, won = odds − 1, lost = −1, postponed or unresolvable = void (0).
- The probabilities are a statistical baseline built from historical first-goal-time and scoring data — they know nothing the market doesn't. This page exists so you can see exactly what that is and isn't worth.
- Statistics, not betting advice. 18+ · never stake more than you can afford to lose.
