Everything we tested,
including what failed.
Three full seasons, replayed match by match with every price set before the result was known. No selections removed afterwards. Here is all of it.
Season by season
CLV is closing line value — how much better than the closing price the model's picks were, which is the honest measure of whether it saw something real. Simulated ROI is what fixed reference stakes would have returned in the replay — no money was staked, and the number depends entirely on the staking rules chosen. We treat it as reference data from the collector, not gospel.
| Season | CLV | Simulated ROI | Note |
|---|---|---|---|
| 2023/24 | -0.03% | -18.8% | the unseen exam — the filter died here |
| 2024/25 | +1.36% | -5.6% | tuned season |
| 2025/26 | +2.46% | -11.2% | tuned season |
Model skill against a placebo
The same machinery run on scrambled data, subtracted from the real thing. Anything that survives is signal rather than the testing procedure fooling itself. This is the part that held up every time, including on the season the model had never seen.
| Season | Skill vs placebo |
|---|---|
| 2023/24 | +0.69 |
| 2024/25 | +0.53 |
| 2025/26 | +0.70 |
Real, replicated, and far too small to bet.
The exam we failed
We found what looked like an edge across two seasons — the model's strongest disagreements, excluding home wins, beating the close by about two points. We froze the rules and tested them on a third season the model had never touched.
It came out flat against the closing price and lost heavily on money. Both pillars broke: conviction stopped concentrating the edge, and the "never back home teams" rule reversed outright. That is what a pattern fitted to the past looks like when it finally meets fresh data.
Model vs market, league by league
Every settled paper pick is a disagreement with the market — the model claimed an edge, the price said otherwise. This is how those disagreements have gone, league by league. CLV is closing line value: whether the price the model took beat the closing price, the honest measure of whether it saw something real (shown only where a closing price was captured).
| League | Fixtures read right | Calls W–L | Avg edge taken | Avg CLV | Ref P/L |
|---|---|---|---|---|---|
| La Liga | 5 of 16 | 5–11 (3v) | +19.6 pts | -10.65% (n=13) | -5.09u |
| Serie A | 3 of 10 | 3–7 (3v) | +16.1 pts | +4.80% (n=10) | -2.60u |
| Ligue 1 | 5 of 9 | 5–4 (2v) | +16.8 pts | -5.92% (n=9) | +0.42u |
| Championship | 5 of 8 | 5–3 (1v) | +15.0 pts | -3.18% (n=7) | +4.51u |
| Bundesliga | 2 of 6 | 2–4 (2v) | +14.8 pts | -1.26% (n=7) | -0.91u |
| Premier League | 2 of 6 | 2–4 (2v) | +19.6 pts | -0.79% (n=8) | -2.10u |
The live paper record, 2026/27
The fourth exam runs in public. Every high-conviction call is published before kick-off and settled afterwards, judged on beating the closing price and on profit at the price taken. The bars were written down before the season started and cannot be moved.
22 of 55 fixtures read right · CLV -3.36% on 54 closed price(s) · paper P/L at a £1 reference stake: £-5.77
Leg level: 77 calls published · 66 settled (22 won / 33 lost / 11 push) · 9 pending. Legs on the same fixture rise and fall together — 77 calls across 77 fixtures is closer to 77 separate opinions than 77. Count fixtures, not chips.
Closing line value over time — the running average across settled fixtures. This is the honest version of a tipster's profit graph: it can climb or fall, and it stays up either way. Faint dots are single fixtures; the line is the running mean. Counted per fixture (not per leg), so it can read a touch below the leg-level headline above.
Paper profit and loss over time — the graph every tipster shows, drawn our way: £1 a call, one call per fixture, every loss in, and it stays up when it falls. Three seasons of testing said this line does not climb; watch whether the season agrees.
| Date | Match | League | Flagship call — the biggest disagreement logged | Odds taken | Result | Legs | Fixture | Avg CLV |
|---|---|---|---|---|---|---|---|---|
| 19 Sep | Athletic Club v Alaves | La Liga | Alaves, draw no bet | 3.84 ✓78h | pending | 1 | — | — |
| 19 Sep | Brighton v Arsenal | Premier League | Brighton, draw no bet | 3.36 ✓78h | pending | 1 | — | — |
| 19 Sep | QPR v Preston | Championship | Preston, draw no bet | 3.41 ✓78h | pending | 1 | — | — |
| 19 Sep | Eintracht Frankfurt v SC Freiburg | Bundesliga | under 3.5 goals | 1.73 ✓77h | pending | 1 | — | — |
| 19 Sep | Cardiff v Charlton | Championship | under 2.5 goals | 2.26 ✓75h | pending | 1 | — | — |
| 19 Sep | Millwall v West Ham | Championship | Millwall, draw no bet | 2.93 ✓75h | pending | 1 | — | — |
| 18 Sep | Brentford v Chelsea | Premier League | Brentford, draw no bet | 2.12 ✓83h | pending | 1 | — | — |
| 18 Sep | Monaco v Lens | Ligue 1 | Lens, draw no bet | 2.46 ✓58h | pending | 1 | — | — |
| 16 Sep | Levante v Athletic Club | La Liga | Levante, draw no bet | 2.26 ✓83h | pending | 1 | — | — |
| 15 Sep | Bristol City v Lincoln | Championship | Lincoln, draw no bet | 2.57 ✓58h | won 0-1 | 1 | read right | -15.0% |
| 15 Sep | Middlesbrough v Millwall | Championship | Millwall or the draw | 2.62 ✓30m | won 2-2 | 1 | read right | +0.0% |
| 14 Sep | Torino v AS Roma | Serie A | Torino or the draw | 2.38 ✓80h | lost 0-2 | 1 | read wrong | -1.7% |
| 13 Sep | Real Sociedad v Atletico Madrid | La Liga | Real Sociedad, draw no bet | 2.11 ✓83h | lost 0-3 | 1 | read wrong | -9.0% |
| 13 Sep | Napoli v Bologna | Serie A | Bologna, draw no bet | 3.57 ✓80h | lost 1-0 | 1 | read wrong | +19.8% |
| 13 Sep | Manchester United v Manchester City | Premier League | Manchester United, draw no bet | 2.26 ✓79h | lost 0-1 | 1 | read wrong | +0.8% |
| 13 Sep | RB Leipzig v Hamburger SV | Bundesliga | Hamburger SV or the draw | 3.16 ✓53h | lost 5-0 | 1 | read wrong | -2.2% |
| 12 Sep | Sunderland v Arsenal | Premier League | Sunderland or the draw | 2.36 ✓45m | lost 0-2 | 1 | read wrong | +0.0% |
| 12 Sep | Atalanta v Cagliari | Serie A | Cagliari or the draw | 2.30 ✓10h | won 1-2 | 1 | read right | +7.2% |
| 12 Sep | Athletic Club v Elche | La Liga | Athletic Club under 1.5 goals | 2.30 ✓80h | won 1-1 | 1 | read right | -8.9% |
| 12 Sep | Strasbourg v Monaco | Ligue 1 | Strasbourg, draw no bet | 2.23 ✓79h | push 1-1 | 1 | push/void | -7.0% |
| 12 Sep | Osasuna v Espanyol | La Liga | Osasuna, draw no bet | 1.55 ✓6h | lost 0-2 | 1 | read wrong | -2.0% |
| 12 Sep | FC Augsburg v Bayer Leverkusen | Bundesliga | FC Augsburg, draw no bet | 3.22 ✓77h | push 2-2 | 1 | push/void | +17.6% |
| 11 Sep | West Ham v Wrexham | Championship | West Ham under 1.5 goals | 2.25 ✓59h | lost 6-0 | 1 | read wrong | -1.2% |
| 07 Sep | Elche v Real Sociedad | La Liga | Elche, draw no bet | 2.05 ✓83h | lost 2-3 | 1 | read wrong | -16.7% |
| 06 Sep | Angers v Rennes | Ligue 1 | Angers, draw no bet | 2.80 ✓79h | lost 1-2 | 1 | read wrong | -2.2% |
| 05 Sep | AS Roma v Atalanta | Serie A | AS Roma under 1.5 goals | 2.18 ✓30m | lost 2-1 | 1 | read wrong | +0.0% |
| 05 Sep | Athletic Club v Atletico Madrid | La Liga | Athletic Club, draw no bet | 2.01 ✓78h | won 3-0 | 1 | read right | -3.5% |
| 05 Sep | Bayer Leverkusen v Union Berlin | Bundesliga | Bayer Leverkusen under 2.5 goals | 1.66 ✓77h | lost 4-0 | 1 | read wrong | -7.9% |
| 05 Sep | Werder Bremen v RB Leipzig | Bundesliga | Werder Bremen, draw no bet | 2.91 ✓77h | won 3-1 | 1 | read right | -6.6% |
| 05 Sep | Fiorentina v Torino | Serie A | Torino, draw no bet | 3.01 ✓29h | won 1-2 | 1 | read right | +7.8% |
| 04 Sep | Paris Saint Germain v Monaco | Ligue 1 | Paris Saint Germain under 2.5 goals | 1.75 ✓11h | won 1-2 | 1 | read right | -8.5% |
| 04 Sep | Genoa v Como | Serie A | Genoa, draw no bet | 3.37 ✓82h | lost 1-4 | 1 | read wrong | -9.7% |
| 04 Sep | VfB Stuttgart v 1. FC Köln | Bundesliga | 1. FC Köln or the draw | 2.62 ✓82h | lost 4-1 | 1 | read wrong | -0.8% |
| 04 Sep | Lyon v Auxerre | Ligue 1 | Auxerre or the draw | 2.57 ✓9h | lost 3-1 | 1 | read wrong | -4.9% |
| 03 Sep | Toulouse v Lille | Ligue 1 | Toulouse, draw no bet | 2.58 ✓10h | lost 0-1 | 1 | read wrong | -6.1% |
| 01 Sep | Swansea v Watford | Championship | Swansea under 1.5 goals | 1.84 ✓34h | lost 2-0 | 1 | read wrong | +1.0% |
| 01 Sep | Portsmouth v Derby | Championship | Derby, draw no bet | 2.75 ✓30m | won 0-2 | 1 | read right | +0.0% |
| 31 Aug | Barcelona v Rayo Vallecano | La Liga | Rayo Vallecano +2 on the Asian handicap | 1.96 ✓83h | lost 5-2 | 1 | read wrong | -30.4% |
| 30 Aug | Lazio v Genoa | Serie A | Genoa over 1.0 goals | 2.79 ✓82h | lost 1-0 | 1 | read wrong | — |
| 30 Aug | Paris FC v Nice | Ligue 1 | over 2.0 goals | 1.55 ✓77h | won 3-0 | 1 | read right | +1.6% |
| 29 Aug | Sevilla v Atletico Madrid | La Liga | Sevilla, draw no bet | 2.49 ✓83h | lost 1-3 | 1 | read wrong | -13.3% |
| 29 Aug | Lyon v Le Havre | Ligue 1 | Le Havre +1 on the Asian handicap | 2.07 ✓82h | won 1-1 | 1 | read right | +0.3% |
| 29 Aug | Borussia Dortmund v Hamburger SV | Bundesliga | Hamburger SV over 1.0 goals | 2.94 ✓80h | lost 2-0 | 1 | read wrong | — |
| 29 Aug | Tottenham v Newcastle | Premier League | under 3.0 goals | 1.80 ✓32h | won 0-2 | 1 | read right | -1.5% |
| 29 Aug | Strasbourg v Lens | Ligue 1 | Strasbourg, draw no bet | 2.49 ✓79h | won 2-1 | 1 | read right | -12.6% |
| 29 Aug | Levante v Real Betis | La Liga | Levante, draw no bet | 2.36 ✓79h | won 5-2 | 1 | read right | +0.3% |
| 29 Aug | 1. FC Köln v 1899 Hoffenheim | Bundesliga | 1. FC Köln, draw no bet | 2.18 ✓77h | won 3-2 | 1 | read right | -2.5% |
| 29 Aug | Union Berlin v Eintracht Frankfurt | Bundesliga | Union Berlin, draw no bet | 1.82 ✓77h | push 3-3 | 1 | push/void | -6.3% |
| 29 Aug | Liverpool v Nottingham Forest | Premier League | Nottingham Forest +1 on the Asian handicap | 2.10 ✓75h | won 2-2 | 1 | read right | -0.7% |
| 29 Aug | Middlesbrough v West Brom | Championship | West Brom +1 on the Asian handicap | 1.61 ✓75h | lost 3-1 | 1 | read wrong | -5.8% |
| 28 Aug | Alaves v Villarreal | La Liga | Alaves, draw no bet | 2.19 ✓83h | won 1-0 | 1 | read right | -4.0% |
| 28 Aug | Crystal Palace v Manchester City | Premier League | Crystal Palace, draw no bet | 3.77 ✓83h | lost 1-4 | 1 | read wrong | +2.8% |
| 28 Aug | Lille v Paris Saint Germain | Ligue 1 | Lille, draw no bet | 3.24 ✓82h | push 2-2 | 1 | push/void | -14.0% |
| 27 Aug | Barcelona v Athletic Club | La Liga | Athletic Club +1 on the Asian handicap | 2.42 ✓83h | lost 2-0 | 1 | read wrong | -28.2% |
| 26 Aug | Real Madrid v Real Sociedad | La Liga | Real Sociedad +1 on the Asian handicap | 2.37 ✓59h | lost 4-1 | 1 | read wrong | -31.6% |
| 25 Aug | Valencia v Real Betis | La Liga | Valencia, draw no bet | 1.86 ✓83h | lost 0-1 | 1 | read wrong | -3.0% |
| 24 Aug | Fulham v Chelsea | Premier League | Fulham, draw no bet | 2.69 ✓83h | lost 2-3 | 1 | read wrong | -1.7% |
| 24 Aug | AS Roma v Fiorentina | Serie A | Fiorentina +1 on the Asian handicap | 1.74 ✓34h | lost 4-0 | 1 | read wrong | +6.3% |
| 23 Aug | Elche v Barcelona | La Liga | Elche +1 on the Asian handicap | 2.65 ✓83h | void | 1 | push/void | — |
| 23 Aug | Torino v AC Milan | Serie A | Torino over 1.0 goals | 2.27 ✓82h | push 1-2 | 1 | push/void | — |
| 23 Aug | Atalanta v Sassuolo | Serie A | Sassuolo +1 on the Asian handicap | 1.96 ✓82h | push 2-1 | 1 | push/void | +0.3% |
| 23 Aug | Newcastle v Liverpool | Premier League | Newcastle, draw no bet | 2.73 ✓79h | push 2-2 | 1 | push/void | -7.9% |
| 23 Aug | Le Havre v Monaco | Ligue 1 | Monaco under 2.0 goals | 1.56 ✓79h | won 0-1 | 1 | read right | — |
| 23 Aug | Angers v Lille | Ligue 1 | Angers over 1.0 goals | 2.67 ✓29h | lost 0-2 | 1 | read wrong | — |
| 23 Aug | Manchester City v Bournemouth | Premier League | Bournemouth +1 on the Asian handicap | 2.10 ✓77h | push 2-1 | 1 | push/void | +1.7% |
| 22 Aug | Espanyol v Real Madrid | La Liga | Espanyol +1 on the Asian handicap | 2.13 ✓83h | void | 1 | push/void | — |
| 22 Aug | Genoa v Napoli | Serie A | Genoa, draw no bet | 3.36 ✓82h | lost 0-2 | 1 | read wrong | +14.9% |
| 22 Aug | Parma v Cagliari | Serie A | Cagliari, draw no bet | 2.09 ✓82h | won 0-1 | 1 | read right | +3.0% |
| 22 Aug | Valencia v Celta Vigo | La Liga | Valencia over 1.0 goals | 1.61 ✓81h | lost 0-0 | 1 | read wrong | — |
| 22 Aug | Udinese v Como | Serie A | Udinese over 1.0 goals | 2.79 ✓80h | push 1-1 | 1 | push/void | — |
| 22 Aug | Wrexham v Watford | Championship | Wrexham under 1.0 goals | 3.28 ✓50h | push 1-1 | 1 | push/void | — |
| 21 Aug | Real Betis v Real Sociedad | La Liga | Real Betis over 2.0 goals | 3.88 ✓83h | lost 1-0 | 1 | read wrong | — |
| 20 Aug | Rayo Vallecano v Alaves | La Liga | over 2.0 goals | 1.99 ✓83h | push 1-1 | 1 | push/void | +11.8% |
| 16 Aug | Espanyol v Levante | La Liga | Levante over 1.0 goals | 2.40 ✓67h | lost 3-0 | 1 | read wrong | — |
| 15 Aug | Alaves v Getafe | La Liga | Alaves over 1.0 goals | 2.05 ✓44h | won 3-0 | 1 | read right | — |
| 15 Aug | Stoke City v Swansea | Championship | Swansea over 1.0 goals | 1.82 ✓40h | won 1-2 | 1 | read right | — |
| 15 Aug | Norwich v West Brom | Championship | West Brom, draw no bet | 2.75 ✓40h | won 1-2 | 1 | read right | -1.3% |
✓ verified price. The tick beside each odds figure is how long before kick-off that price was captured and written to the ledger by the collector — nothing is priced after the fact, and the closing price it is judged against is the last one seen before kick-off.
Every leg, one row per call — the full ledger view
| Date | Match | League | Call | Odds taken | Model | Edge (pts) | Result | Close | CLV |
|---|---|---|---|---|---|---|---|---|---|
| 19 Sep | Athletic Club v Alaves | La Liga | Draw no bet · away | 3.84 | 41% | +16.4 | pending | — | |
| 19 Sep | Brighton v Arsenal | Premier League | Draw no bet · home | 3.36 | 46% | +18.1 | pending | — | |
| 19 Sep | QPR v Preston | Championship | Draw no bet · away | 3.41 | 41% | +13.5 | pending | — | |
| 19 Sep | Eintracht Frankfurt v SC Freiburg | Bundesliga | Over/Under · under 3.5 | 1.73 | 68% | +13.1 | pending | — | |
| 19 Sep | Cardiff v Charlton | Championship | Over/Under · under 2.5 | 2.26 | 56% | +13.9 | pending | — | |
| 19 Sep | Millwall v West Ham | Championship | Draw no bet · home | 2.93 | 58% | +26.4 | pending | — | |
| 18 Sep | Brentford v Chelsea | Premier League | Draw no bet · home | 2.12 | 58% | +14.0 | pending | — | |
| 18 Sep | Monaco v Lens | Ligue 1 | Draw no bet · away | 2.46 | 50% | +12.2 | pending | — | |
| 16 Sep | Levante v Athletic Club | La Liga | Draw no bet · home | 2.26 | 62% | +21.4 | pending | — | |
| 15 Sep | Bristol City v Lincoln | Championship | Draw no bet · away | 2.57 | 53% | +16.7 | won 0-1 | 3.02 | -15.0% |
| 15 Sep | Middlesbrough v Millwall | Championship | Double chance · draw/away | 2.62 | 49% | +12.8 | won 2-2 | 2.62 | +0.0% |
| 14 Sep | Torino v AS Roma | Serie A | Double chance · home/draw | 2.38 | 52% | +12.1 | lost 0-2 | 2.424 | -1.7% |
| 13 Sep | Real Sociedad v Atletico Madrid | La Liga | Draw no bet · home | 2.11 | 61% | +16.8 | lost 0-3 | 2.32 | -9.0% |
| 13 Sep | Napoli v Bologna | Serie A | Draw no bet · away | 3.57 | 42% | +16.0 | lost 1-0 | 2.98 | +19.8% |
| 13 Sep | Manchester United v Manchester City | Premier League | Draw no bet · home | 2.26 | 56% | +14.6 | lost 0-1 | 2.242 | +0.8% |
| 13 Sep | RB Leipzig v Hamburger SV | Bundesliga | Double chance · draw/away | 3.16 | 43% | +12.6 | lost 5-0 | 3.231 | -2.2% |
| 12 Sep | Sunderland v Arsenal | Premier League | Double chance · home/draw | 2.36 | 56% | +16.3 | lost 0-2 | 2.356 | +0.0% |
| 12 Sep | Atalanta v Cagliari | Serie A | Double chance · draw/away | 2.30 | 56% | +15.1 | won 1-2 | 2.146 | +7.2% |
| 12 Sep | Athletic Club v Elche | La Liga | Home team goals · under 1.5 | 2.30 | 54% | +13.4 | won 1-1 | 2.53 | -8.9% |
| 12 Sep | Strasbourg v Monaco | Ligue 1 | Draw no bet · home | 2.23 | 59% | +17.8 | push 1-1 | 2.402 | -7.0% |
| 12 Sep | Osasuna v Espanyol | La Liga | Draw no bet · home | 1.55 | 73% | +12.3 | lost 0-2 | 1.585 | -2.0% |
| 12 Sep | FC Augsburg v Bayer Leverkusen | Bundesliga | Draw no bet · home | 3.22 | 45% | +16.0 | push 2-2 | 2.736 | +17.6% |
| 11 Sep | West Ham v Wrexham | Championship | Home team goals · under 1.5 | 2.25 | 62% | +20.9 | lost 6-0 | 2.28 | -1.2% |
| 07 Sep | Elche v Real Sociedad | La Liga | Draw no bet · home | 2.05 | 61% | +15.8 | lost 2-3 | 2.459 | -16.7% |
| 06 Sep | Angers v Rennes | Ligue 1 | Draw no bet · home | 2.80 | 50% | +17.1 | lost 1-2 | 2.867 | -2.2% |
| 05 Sep | AS Roma v Atalanta | Serie A | Home team goals · under 1.5 | 2.18 | 56% | +13.0 | lost 2-1 | 2.182 | +0.0% |
| 05 Sep | Athletic Club v Atletico Madrid | La Liga | Draw no bet · home | 2.01 | 67% | +21.1 | won 3-0 | 2.083 | -3.5% |
| 05 Sep | Bayer Leverkusen v Union Berlin | Bundesliga | Home team goals · under 2.5 | 1.66 | 71% | +14.5 | lost 4-0 | 1.8 | -7.9% |
| 05 Sep | Werder Bremen v RB Leipzig | Bundesliga | Draw no bet · home | 2.91 | 47% | +15.6 | won 3-1 | 3.117 | -6.6% |
| 05 Sep | Fiorentina v Torino | Serie A | Draw no bet · away | 3.01 | 43% | +12.3 | won 1-2 | 2.79 | +7.8% |
| 04 Sep | Paris Saint Germain v Monaco | Ligue 1 | Home team goals · under 2.5 | 1.75 | 68% | +14.3 | won 1-2 | 1.914 | -8.5% |
| 04 Sep | Genoa v Como | Serie A | Draw no bet · home | 3.37 | 40% | +12.8 | lost 1-4 | 3.733 | -9.7% |
| 04 Sep | VfB Stuttgart v 1. FC Köln | Bundesliga | Double chance · draw/away | 2.62 | 50% | +13.9 | lost 4-1 | 2.64 | -0.8% |
| 04 Sep | Lyon v Auxerre | Ligue 1 | Double chance · draw/away | 2.57 | 49% | +12.6 | lost 3-1 | 2.705 | -4.9% |
| 03 Sep | Toulouse v Lille | Ligue 1 | Draw no bet · home | 2.58 | 53% | +17.1 | lost 0-1 | 2.751 | -6.1% |
| 01 Sep | Swansea v Watford | Championship | Home team goals · under 1.5 | 1.84 | 63% | +12.2 | lost 2-0 | 1.824 | +1.0% |
| 01 Sep | Portsmouth v Derby | Championship | Draw no bet · away | 2.75 | 48% | +14.3 | won 0-2 | 2.752 | +0.0% |
| 31 Aug | Barcelona v Rayo Vallecano | La Liga | Asian handicap · away +2 | 1.96 | 70% | +22.0 | lost 5-2 | 2.816 | -30.4% |
| 30 Aug | Lazio v Genoa | Serie A | Away team goals · over 1.0 | 2.79 | 51% | +17.0 | lost 1-0 | — | no close captured |
| 30 Aug | Paris FC v Nice | Ligue 1 | Over/Under · over 2.0 | 1.55 | 74% | +13.8 | won 3-0 | 1.53 | +1.6% |
| 29 Aug | Sevilla v Atletico Madrid | La Liga | Draw no bet · home | 2.49 | 56% | +18.9 | lost 1-3 | 2.871 | -13.3% |
| 29 Aug | Lyon v Le Havre | Ligue 1 | Asian handicap · away +1 | 2.07 | 65% | +18.9 | won 1-1 | 2.065 | +0.3% |
| 29 Aug | Borussia Dortmund v Hamburger SV | Bundesliga | Away team goals · over 1.0 | 2.94 | 53% | +20.6 | lost 2-0 | — | no close captured |
| 29 Aug | Tottenham v Newcastle | Premier League | Over/Under · under 3.0 | 1.80 | 65% | +12.8 | won 0-2 | 1.83 | -1.5% |
| 29 Aug | Strasbourg v Lens | Ligue 1 | Asian handicap · home +0 | 2.49 | 55% | +16.4 | won 2-1 | 2.844 | -12.6% |
| 29 Aug | Levante v Real Betis | La Liga | Asian handicap · home +0 | 2.36 | 61% | +20.5 | won 5-2 | 2.352 | +0.3% |
| 29 Aug | 1. FC Köln v 1899 Hoffenheim | Bundesliga | Asian handicap · home +0 | 2.18 | 57% | +13.1 | won 3-2 | 2.236 | -2.5% |
| 29 Aug | Union Berlin v Eintracht Frankfurt | Bundesliga | Asian handicap · home +0 | 1.82 | 65% | +12.1 | push 3-3 | 1.94 | -6.3% |
| 29 Aug | Liverpool v Nottingham Forest | Premier League | Asian handicap · away +1 | 2.10 | 63% | +17.5 | won 2-2 | 2.111 | -0.7% |
| 29 Aug | Middlesbrough v West Brom | Championship | Asian handicap · away +1 | 1.61 | 71% | +13.0 | lost 3-1 | 1.71 | -5.8% |
| 28 Aug | Alaves v Villarreal | La Liga | Asian handicap · home +0 | 2.19 | 60% | +17.1 | won 1-0 | 2.28 | -4.0% |
| 28 Aug | Crystal Palace v Manchester City | Premier League | Draw no bet · home | 3.77 | 52% | +27.3 | lost 1-4 | 3.664 | +2.8% |
| 28 Aug | Lille v Paris Saint Germain | Ligue 1 | Asian handicap · home +0 | 3.24 | 50% | +21.1 | push 2-2 | 3.764 | -14.0% |
| 27 Aug | Barcelona v Athletic Club | La Liga | Asian handicap · away +1 | 2.42 | 54% | +14.7 | lost 2-0 | 3.366 | -28.2% |
| 26 Aug | Real Madrid v Real Sociedad | La Liga | Asian handicap · away +1 | 2.37 | 52% | +12.1 | lost 4-1 | 3.46 | -31.6% |
| 25 Aug | Valencia v Real Betis | La Liga | Draw no bet · home | 1.86 | 62% | +12.3 | lost 0-1 | 1.916 | -3.0% |
| 24 Aug | Fulham v Chelsea | Premier League | Draw no bet · home | 2.69 | 60% | +25.4 | lost 2-3 | 2.74 | -1.7% |
| 24 Aug | AS Roma v Fiorentina | Serie A | Asian handicap · away +1 | 1.74 | 74% | +19.4 | lost 4-0 | 1.634 | +6.3% |
| 23 Aug | Elche v Barcelona | La Liga | Asian handicap · home +1 | 2.65 | 80% | +44.8 | void | — | |
| 23 Aug | Torino v AC Milan | Serie A | Home team goals · over 1.0 | 2.27 | 66% | +24.4 | push 1-2 | — | no close captured |
| 23 Aug | Atalanta v Sassuolo | Serie A | Asian handicap · away +1 | 1.96 | 67% | +18.2 | push 2-1 | 1.95 | +0.3% |
| 23 Aug | Newcastle v Liverpool | Premier League | Asian handicap · home +0 | 2.73 | 59% | +24.1 | push 2-2 | 2.96 | -7.9% |
| 23 Aug | Le Havre v Monaco | Ligue 1 | Away team goals · under 2.0 | 1.56 | 78% | +17.4 | won 0-1 | — | no close captured |
| 23 Aug | Angers v Lille | Ligue 1 | Home team goals · over 1.0 | 2.67 | 54% | +18.5 | lost 0-2 | — | no close captured |
| 23 Aug | Manchester City v Bournemouth | Premier League | Asian handicap · away +1 | 2.10 | 63% | +18.3 | push 2-1 | 2.069 | +1.7% |
| 22 Aug | Espanyol v Real Madrid | La Liga | Asian handicap · home +1 | 2.13 | 79% | +34.6 | void | — | |
| 22 Aug | Genoa v Napoli | Serie A | Asian handicap · home +0 | 3.36 | 45% | +17.1 | lost 0-2 | 2.926 | +14.9% |
| 22 Aug | Parma v Cagliari | Serie A | Asian handicap · away -0 | 2.09 | 62% | +16.9 | won 0-1 | 2.03 | +3.0% |
| 22 Aug | Valencia v Celta Vigo | La Liga | Home team goals · over 1.0 | 1.61 | 74% | +14.8 | lost 0-0 | — | no close captured |
| 22 Aug | Udinese v Como | Serie A | Home team goals · over 1.0 | 2.79 | 49% | +14.7 | push 1-1 | — | no close captured |
| 22 Aug | Wrexham v Watford | Championship | Home team goals · under 1.0 | 3.28 | 42% | +13.7 | push 1-1 | — | no close captured |
| 21 Aug | Real Betis v Real Sociedad | La Liga | Home team goals · over 2.0 | 3.88 | 40% | +15.3 | lost 1-0 | — | no close captured |
| 20 Aug | Rayo Vallecano v Alaves | La Liga | Over/Under · over 2.0 | 1.99 | 72% | +24.6 | push 1-1 | 1.78 | +11.8% |
| 16 Aug | Espanyol v Levante | La Liga | Away team goals · over 1.0 | 2.40 | 67% | +26.9 | lost 3-0 | — | no close captured |
| 15 Aug | Alaves v Getafe | La Liga | Home team goals · over 1.0 | 2.05 | 61% | +14.7 | won 3-0 | — | no close captured |
| 15 Aug | Stoke City v Swansea | Championship | Away team goals · over 1.0 | 1.82 | 70% | +18.6 | won 1-2 | — | no close captured |
| 15 Aug | Norwich v West Brom | Championship | Asian handicap · away -0 | 2.75 | 47% | +12.5 | won 1-2 | 2.788 | -1.3% |
12 settled call(s) show no CLV because no closing price was captured for that market — the gap is shown, not filled in.
The early-season window
For a club’s first few games the model still leans on last season’s data, and that is where its ugliest misreads have come from (documented on the wrongs page). The rule was pre-registered on 19 August, before the results it applies to were known: a call sits inside the window if at kick-off either club had completed fewer than 5 league matches this season. Same untouched rows, split two ways — the full record above is always the headline, whichever view looks better.
| View | Fixtures read right | Calls W–L | Avg CLV | Ref P/L |
|---|---|---|---|---|
| Inside the early-season window | 20 of 52 | 20–32 (11p) | -3.23% (n=51) | £-7.96 |
| Outside the window | 2 of 3 | 2–1 | -5.42% (n=3) | £+2.19 |