Skip to main content
Performance
Performance

Model performance

Beat the closing line

+0.58pp

1,022 picks published as value, settled, at a real recorded price.95% interval +0.15 to +1.00pp over 538 picks across 47 match-days. The interval excludes zero.

It clears zero by 0.15pp. The smallest effect this sample could reliably detect is 0.60pp (80% power, 538 picks across 47 match-days). The measured 0.58pp is below that, so this establishes that we are not BEHIND the close; it does not establish how far ahead.

Win rate

53.3%

929 decided picks of 1,022 settled. A win rate is not a return: the price each pick was taken at decides that.

Return per pick

-3.97%

At the price each pick was available at. 95% interval -11.39 to +2.76% — wide enough that no return can be claimed from it either way.

Shopped to the best price we observed on the ladder, the same picks return -28.84u (-2.82%) — a change in the price, not in the results. 600 of 1022 picks had a priced ladder at their own line; the rest keep the price we recorded. We name the book on each pick, because which books you can actually use is not something we can know for you.

94% of these picks were published before the current settings. We changed what the model is allowed to publish on 17 October 2026, so the record above mostly measures picks the gate would select differently today. It is a true record of what we called; it is not yet a record of what we are calling now. Enough picks from the current settings will have settled to report them separately around 25 September, and to compare them properly around 14 October.

These two point opposite ways, and both are true. Beating the closing line says the forecast is better than the market’s. The return is what is left after the bookmaker’s margin is paid out of that edge — and the margin is currently several times larger than the edge, so a better-than-market forecast still loses money at the prices available.

What this counts

Published as a value pick, settled, at a real recorded entry price, graded forward rather than by a retrospective sweep.

Sold as value today: asian handicap — +0.76pp (+0.21 to +1.30pp) over 596 picks.

A previously published figure read 53.2% over 771 picks. Same picks, different population. The headline keeps markets that were later retired, and counts only picks carrying a real recorded price. No result changed.

What this counts

The record counts markets currently published as value picks. Markets we no longer publish as value picks, and in-play calls, are still graded and still shown on their own fixtures — they just do not move this number.

Those 5,148 retired picks returned -6.5%. We retired those markets on this same history, so read the scoped figure as a description of what we publish now, not as an independent forecast.

A correction, stated in full. A defect let 119 picks that had failed our own edge floor be counted as value picks. They returned -24.7%, so removing them IMPROVES the figure above: as published it was -3.5% over 921 picks. We publish all three so the correction can be checked rather than trusted. The rule was written down before it was applied, it judges each pick against the floor that was in force when that pick was published, and it leaves in 22 settled picks we could not demonstrate the defect for — which were 19-3 in our favour.

Every pick ever settled, all markets: -5.6% (-280.9u over 5,016 priced picks).

Last 90 daysWin rate 51.4% vs 50.7% break-evenReturn +1.8%Beat close 54%· 637 graded
Record provenanceLive forward 647 picks · +1.7% returnRetrospective or untimed 124 picks · +31.0% return

"Live forward" picks carry a publication time and were graded as their matches finished; "retrospective or untimed" picks were settled after the fact by a bulk sweep or carry no publication time, so nothing shows they were offered before kickoff. Graded between 2026-06-16 and 2026-11-04.

Methodology

How we keep this honest

• Only picks we actually published to you are counted — the exact picks you can act on, nothing cherry-picked.

• Pre-match picks lock at kickoff and are graded win or lose — we never quietly delete a losing pick.

• Win rate is shown against break-even — the win rate the odds require to profit — so the number means something on its own.

• "Beat the closing line" is how often we secured a better price than where the market ended up — the sharpest sign of a real edge.

• Return is measured at fair (no-margin) odds, isolating our forecasting skill from the bookmaker's cut.

• Pushes return the stake — a line landing exactly counts as neither win nor loss — and a cancelled match voids its picks instead of leaving them hanging.

• Small samples are flagged, not hidden, and every graded pick is listed in the archive below.

Calibration curve

Predicted vs actual

When we say a chance is X%, it should happen about X% of the time. On average our stated chances land within ±4.1 points of what actually happens.

0%-10%1 predictions
0%
10%-20%1 predictions
0%
20%-30%2 predictions
50%
30%-40%30 predictions
23%
40%-50%87 predictions
47%
50%-60%334 predictions
53%
60%-70%230 predictions
59%
70%-80%26 predictions
62%
80%-90%9 predictions
44%
90%-100%2 predictions
100%

Measured on published picks only, which are selected for value — so this is a stricter test than a model's raw output.

Forward calibration

Do we deliver what we claim?

Measured on picks we published and settled promptly — not on the data the model was fitted to. A negative figure means the model claimed more than it delivered.

Every published pick-3.48pp
4,445 picks · 76 match-days95% interval -5.69pp to -1.36ppECE 3.62pp
Picks sold as value-4.35pp
946 picks · 53 match-days95% interval -9.19pp to +0.08pp — contains zeroECE 4.66pp
Asian handicap, sold as value-5.03pp
548 picks · 51 match-days95% interval -11.49pp to +1.27pp — contains zeroECE 5.55pp

Across every published pick the model claims more than it delivers, and that is established. Whether the picks we sell as value are over-confident is not: that sample is smaller and its interval still contains zero.

Bins: equal width deciles · all history. The error figure moves with the bin choice, so the choice is stated. Intervals are a clustered bootstrap over match-days, because picks on one slate share fixtures and model version.

These are three nested samples, widest first — not a trend. Reading a direction across them is how a difference of half a point once got published as a finding.

Closing-line value

Did the price move toward us?

A pick beats the close when the market shortens it after we publish. A price that never moved counts as half, not as a loss, and a pick whose close we captured before publishing is left out entirely — it could not have been beaten. It is a faster read on whether a market is worth selling than the settled return, because it uses every pick rather than only the decided money.

Double chance75.0%

8 outcomes · 3 match-days · too few to conclude

Moneyline 1x257.5%

20 outcomes · 7 match-days · too few to conclude

Asian handicap55.4%

387 outcomes · 39 match-days · 95% interval 49.7–60.9%

Draw no bet50.0%

10 outcomes · 6 match-days · too few to conclude

Over under corners46.5%

57 outcomes · 13 match-days · 95% interval 37.8–53.8% · too few to conclude

Over under goals38.9%

36 outcomes · 7 match-days · too few to conclude

Measured on picks published as value, settled forward against a captured closing price, pre-match only. Above 50% the market moved toward the pick after we published it.

And is it moving?

All markets pooled, newest last. A calendar week holds too few match-days at our volume to carry a rate, so each point covers a rolling window and the series steps weekly.

2026-11-0653.6%

518 outcomes · 39 match-days · 95% interval 48.5–58.2%

2026-11-0753.6%

518 outcomes · 39 match-days · 95% interval 48.5–58.2%

2026-11-0853.6%

518 outcomes · 39 match-days · 95% interval 48.5–58.2%

2026-11-0953.6%

518 outcomes · 39 match-days · 95% interval 48.5–58.2%

2026-11-1053.6%

518 outcomes · 39 match-days · 95% interval 48.5–58.2%

2026-11-1153.6%

518 outcomes · 39 match-days · 95% interval 48.5–58.2%

2026-11-1253.6%

518 outcomes · 39 match-days · 95% interval 48.5–58.2%

2026-11-1353.6%

518 outcomes · 39 match-days · 95% interval 48.5–58.2%

90 days ending on each point's own date, so consecutive points overlap and a single match-day cannot move the line by itself. Stepped weekly because a calendar week at our current volume holds too few match-days to carry a rate at all.

By confidence band

Hit rate by confidence

HIGHtoo few to trust2/2 (100.0%)

Realistic range 34–100%

LOW233/397 (58.7%)

Realistic range 54–63%

MEDIUM149/323 (46.1%)

Realistic range 41–52%

Reliability by slice

How much the model beats the base rate

Measured nightly over every graded outcome, not only the picks we published. Each figure is how much sharper our probabilities are than simply knowing how often the thing happens; zero means no sharper at all. Every row states the sample it was measured over and its interval, and a slice with too few outcomes is shown and labelled rather than quietly dropped.

By market

11 slices

Every graded outcome, not only the picks we published.

Player prop-3.8%−7.8pp off

38,670 outcomes · 39 match-days · 95% interval 89.4–90.6%

claimed 97.8% · happened 90.0%

Half time full time7.2%−0.3pp off

40,499 outcomes · 106 match-days · 95% interval 13.0–13.6%

claimed 13.6% · happened 13.3%

Both teams to score22.2%

11,222 outcomes · 108 match-days · 95% interval 49.0–50.9%

Both sides of this market are counted together, so over- and under-confidence cancel and no direction can be read from it.

Over under corners23.4%

106,823 outcomes · 72 match-days · 95% interval 49.7–50.3%

Both sides of this market are counted together, so over- and under-confidence cancel and no direction can be read from it.

Moneyline 1x229.5%−0.2pp off

16,874 outcomes · 108 match-days · 95% interval 32.6–34.1%

claimed 33.5% · happened 33.3%

Double chance29.7%+0.0pp off

16,870 outcomes · 107 match-days · 95% interval 65.9–67.4%

claimed 66.6% · happened 66.7%

Correct score30.9%−0.6pp off

28,090 outcomes · 108 match-days · 95% interval 11.8–12.6%

claimed 12.8% · happened 12.2%

Team totals32.0%

11,240 outcomes · 107 match-days · 95% interval 41.3–43.9%

Both sides of this market are counted together, so over- and under-confidence cancel and no direction can be read from it.

By tier

4 slices

How far into a fixture the read was taken.

(none)-3.8%

38,670 outcomes · 39 match-days · 95% interval 89.4–90.6%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

PREMATCH LINEUP31.8%

119,506 outcomes · 77 match-days · 95% interval 45.1–45.8%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

PREMATCH EARLY32.6%

260,984 outcomes · 97 match-days · 95% interval 44.8–45.4%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

INPLAY50.0%

75,126 outcomes · 106 match-days · 95% interval 38.8–39.5%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

By competition

93 slices

Competitions with enough settled outcomes to measure.

AF91-51.6%

162 outcomes · 1 match-days

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

AF81-49.4%

264 outcomes · 2 match-days

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

AF90-39.0%

758 outcomes · 3 match-days

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

AF14315.3%

1,640 outcomes · 5 match-days

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

AF14428.2%

1,345 outcomes · 4 match-days

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

DED28.2%

17,112 outcomes · 27 match-days · 95% interval 46.0–47.6%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

AF10328.5%

3,362 outcomes · 6 match-days

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

AF16228.7%

1,821 outcomes · 9 match-days · 95% interval 40.0–44.5%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

By confidence band

3 slices

The band is a threshold on a score that does not currently rank outcome.

LOW10.4%

3,160 outcomes · 91 match-days · 95% interval 47.4–52.8%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

MEDIUM14.8%

4,112 outcomes · 89 match-days · 95% interval 51.6–56.4%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

HIGH16.9%

353 outcomes · 46 match-days · 95% interval 49.8–63.3%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

By price

5 slices

The price the pick was available at, not the fair price.

3.0+-4.2%

548 outcomes · 63 match-days · 95% interval 16.2–24.2%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

2.2-3.0-1.3%

1,021 outcomes · 79 match-days · 95% interval 33.8–40.8%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

1.8-2.20.3%

2,340 outcomes · 82 match-days · 95% interval 45.4–50.2%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

<1.83.8%

2,132 outcomes · 84 match-days · 95% interval 58.7–64.6%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

(unpriced)26.7%

1,584 outcomes · 68 match-days · 95% interval 62.2–73.8%

This counts every market at once, and markets with two opposite sides cancel each other out, so no direction can be read from it.

By market and band

30 slices

The finest cut, and the one where cells go thin.

Over under goals · MEDIUM-3.2%

632 outcomes · 53 match-days · 95% interval 42.6–51.2%

Team totals · LOW1.7%

395 outcomes · 33 match-days · 95% interval 38.1–48.1%

Over under corners · MEDIUM2.0%

434 outcomes · 45 match-days · 95% interval 46.7–57.4%

Over under corners · LOW2.3%

515 outcomes · 48 match-days · 95% interval 47.3–58.3%

Over under goals · LOW2.5%

673 outcomes · 60 match-days · 95% interval 42.6–51.1%

Moneyline 1x2 · MEDIUM5.7%+3.1pp off

226 outcomes · 49 match-days · 95% interval 42.7–57.3%

Asian handicap · LOW10.9%

739 outcomes · 81 match-days · 95% interval 50.0–59.8%

Asian handicap · MEDIUM12.1%

1,791 outcomes · 86 match-days · 95% interval 48.6–57.0%

By sport

BASKETBALL
25.0% hit4 graded
FOOTBALL
53.3% hit718 graded

By market

asian handicap
52.1% hit612 graded
over under corners
59.1% hit110 graded

By analysis tier

Hit rate by tier

PREMATCH EARLY316/592 (53.4%)
PREMATCH LINEUP68/130 (52.3%)

By edge bucket

Hit rate by edge range

0-3%9/15 (60.0%)
3-6%196/406 (48.3%)
6-10%152/265 (57.4%)
10%+27/35 (77.1%)

By league

Hit rate by competition

WC
62.1% hit116 graded
MLS
56.7% hit97 graded
ELC
46.2% hit93 graded
PD
52.5% hit61 graded
FL1
48.0% hit50 graded
EL
66.7% hit48 graded
CL
50.0% hit44 graded
PPL
46.5% hit43 graded
SA
48.8% hit41 graded
DED
57.9% hit38 graded
PL
35.1% hit37 graded
BL1
47.1% hit34 graded
ID1
70.0% hit10 graded
AF5
83.3% hit6 graded
NBA
25.0% hit4 graded

By model version

Performance by model

matchsense-football-moneyline v2026.03.1383/718 (53.3%)
matchsense-basketball-spread v2026.03.11/4 (25.0%)

Model audit log

Version history

matchsense-basketball-spread v2026.03.1

Model matchsense-basketball-spread v2026.03.1 is currently active

activated

10/20/2026

matchsense-football-moneyline v2026.03.1

Model matchsense-football-moneyline v2026.03.1 is currently active

activated

10/20/2026

matchsense-basketball-spread v2026.03.1

Model matchsense-basketball-spread v2026.03.1 created for BASKETBALL Spread

created

3/25/2026

matchsense-football-moneyline v2026.03.1

Model matchsense-football-moneyline v2026.03.1 created for FOOTBALL Moneyline

created

3/25/2026