Receipts
Football: what the model called before the match, and what happened
How to read this honestly
Two are kept per match, win or lose: the result call (who wins) and the model's most confident selection of any kind. Neither is chosen after the fact, which is the point — a page showing only the winners would look like a record and work like an advertisement.
A hit rate on its own means nothing. Backing the home side wins a lot of football matches without predicting anything, so the baseline is shown beside every rate. The gap between them is the only part that is evidence of skill.
For the same reason the list defaults to against the grain first. Sorting by confidence puts a 100% call on a 97–39 mismatch at the top, which is correct and proves nothing — anyone would call it. A confident call on the side the baseline does not back is the one worth showing.
The model does not beat always backing the draw here. Nothing on this page should be read as evidence of skill. Its most confident selections claimed 90.5% and delivered 88.4% over 21,803 matches.
Called it 6,637
| Date | Match | What the model said | Confidence | Result | |
|---|---|---|---|---|---|
| 7 Nov 25 |
|
Away to win 1X2 (match result) · KSA-Pro League |
89.7% | 2–4 |
landed
against the grain
|
| 24 Jan 26 |
|
Away to win 1X2 (match result) · POR-Primeira Liga |
87.8% | 1–2 |
landed
against the grain
|
| 11 Apr 26 |
|
Away to win 1X2 (match result) · KSA-Pro League |
86.9% | 0–2 |
landed
against the grain
|
| 23 Aug 26 |
|
Away to win 1X2 (match result) · NED-Eredivisie |
85.9% | 2–5 |
landed
against the grain
|
| 26 Oct 25 |
|
Away to win 1X2 (match result) · POR-Primeira Liga |
85.6% | 0–3 |
landed
against the grain
|
| 20 Sep 25 |
|
Away to win 1X2 (match result) · POR-Primeira Liga |
84.9% | 0–3 |
landed
against the grain
|
| 10 Mar 26 |
|
Away to win 1X2 (match result) · RSA-Premiership |
84.4% | 0–2 |
landed
against the grain
|
| 1 Mar 26 |
|
Away to win 1X2 (match result) · GRE-Super League |
84.4% | 1–2 |
landed
against the grain
|
| 21 Dec 25 |
|
Away to win 1X2 (match result) · GER-Bundesliga |
83.5% | 0–4 |
landed
against the grain
|
| 3 May 25 |
|
Away to win 1X2 (match result) · ESP-La Liga |
82.4% | 1–2 |
landed
against the grain
|
| 5 Feb 26 |
|
Away to win 1X2 (match result) · KSA-Pro League |
82.1% | 0–6 |
landed
against the grain
|
| 25 Feb 26 |
|
Away to win 1X2 (match result) · KSA-Pro League |
81.5% | 0–5 |
landed
against the grain
|
| 30 Aug 26 |
|
Away to win 1X2 (match result) · NED-Eredivisie |
81.3% | 1–4 |
landed
against the grain
|
| 24 Jan 26 |
|
Away to win 1X2 (match result) · TUR-Super Lig |
81.2% | 1–3 |
landed
against the grain
|
| 13 Dec 25 |
|
Away to win 1X2 (match result) · TUR-Super Lig |
80.8% | 1–4 |
landed
against the grain
|
| 23 Aug 25 |
|
Away to win 1X2 (match result) · POR-Primeira Liga |
80.3% | 1–4 |
landed
against the grain
|
| 25 May 25 |
|
Away to win 1X2 (match result) · ENG-Premier League |
80.0% | 1–2 |
landed
against the grain
|
| 28 Apr 25 |
|
Away to win 1X2 (match result) · NED-Eerste Divisie |
79.9% | 2–3 |
landed
against the grain
|
| 28 Aug 26 |
|
Away to win 1X2 (match result) · POR-Primeira Liga |
79.9% | 0–4 |
landed
against the grain
|
| 23 May 26 |
|
Away to win 1X2 (match result) · RSA-Premiership |
79.7% | 0–2 |
landed
against the grain
|
| 27 Sep 25 |
|
Away to win 1X2 (match result) · NED-Eredivisie |
79.6% | 1–2 |
landed
against the grain
|
| 20 Sep 25 |
|
Away to win 1X2 (match result) · GER-Bundesliga |
79.4% | 1–4 |
landed
against the grain
|
| 11 Apr 26 |
|
Away to win 1X2 (match result) · POR-Primeira Liga |
79.3% | 0–1 |
landed
against the grain
|
| 31 Dec 25 |
|
Away to win 1X2 (match result) · KSA-Pro League |
79.3% | 1–3 |
landed
against the grain
|
| 1 Sep 26 |
|
Away to win 1X2 (match result) · RSA-Premiership |
79.2% | 0–4 |
landed
against the grain
|
Where it goes wrong, and what would fix it
Why this table is ordered by shortfall, not by hit rate
| Market family | Settled | Claimed | Delivered | Shortfall | What that means |
|---|---|---|---|---|---|
| N goals in a row | 15,696 | 30.5% | 28.4% | -2.0pp | Slightly over-claiming. Within what calibration can absorb. |
| Lead by N at any time | 23,544 | 39.5% | 37.8% | -1.7pp | Slightly over-claiming. Within what calibration can absorb. |
| 1X2 — 1UP early payout | 5,232 | 55.1% | 55.1% | -0.1pp | Calibrated. What it claims is what it delivers. |
| Highest scoring half | 7,851 | 33.3% | 33.3% | 0.0pp | Calibrated. What it claims is what it delivers. |
| Teams to score | 53,320 | 25.0% | 25.0% | 0.0pp | Calibrated. What it claims is what it delivers. |
| Last goal | 7,848 | 33.3% | 33.3% | 0.0pp | Calibrated. What it claims is what it delivers. |
| Result & Over/Under | 239,940 | 16.7% | 16.7% | 0.0pp | Calibrated. What it claims is what it delivers. |
| European handicap 0:3 | 39,990 | 33.3% | 33.3% | 0.0pp | Calibrated. What it claims is what it delivers. |
These are the model's own claims measured against results, which is what Track record aggregates and what the radar's calibration already corrects for. Nothing here is a bookmaker price, so none of it says anything about whether a bet had value.