Oddsprey

Forgot your password?

Don't have an account yet? Create one

Methodology

What goes in, what comes out, and how the published record is calculated. The guide explains the model and how a stake is sized; this page covers everything around it.

The data behind a prediction

Every fixture is priced from the same set of inputs, and every match page publishes which ones were actually available for that match. Nothing is silently missing.

InputWhat it contributes
Recent formEach side's last matches, results and goals, home and away.
Head to headRecent meetings between these two clubs.
Season profileThe season's record for each side: scoring, conceding, shot volume.
Competition standingsWhere both sides sit in the table they are playing in.
Historical resultsYears of league results, used to rate clubs against each other.
Bookmaker oddsLive prices from several books, the number our number is compared to.
Injuries and suspensionsWho is unavailable.
Confirmed lineupsWhen published before kickoff.
Match-day weatherConditions at the ground.

Match history and odds come from commercial data providers. Historical league results come from football-data.co.uk. Ratings are built from that history rather than bought in.

How a fixture becomes a prediction

Confidence labels come out of this too. They describe how much history a fixture was priced on, not how likely the bet is to win. The bands are defined here.

What the AI analyst does, and what it does not

A small number of fixtures a day get a written analysis from a large language model. It reads the same data ledger above and argues the bet the model already backs.

It does: write the argument, flag the risk in it, name the context a goal model cannot see, and adjust the expected goals for a match within limits when it has a stated reason.

It does not: choose which bet to place, set the price, set the stake, or decide whether a bet clears the rules. Selection and staking are arithmetic, and the model's numbers are what they run on.

If the write-up and the placed bet ever come apart, the write-up is not published. A reader is never shown the case for one bet next to a different one.

Settlement

Bets settle against the final score from the data provider, automatically, within minutes of full time. Every bet is graded won or lost. A cancelled or abandoned fixture is voided and its stake returned, which means it counts in neither column.

The price recorded is the price at the moment the bet was called, not the closing price. If a market moves after we publish, that movement is shown next to the original number rather than replacing it.

A day's board is frozen once the day ends. Changing a selection rule afterwards cannot alter what was claimed on a past day.

Whether our prices beat the closing line

A bet's result is a poor way to judge the bet. Over a few hundred bets the noise is far larger than any edge, so a good run and a lucky run look identical. The closing price is a better instrument. It is the market's last and best estimate, and comparing our price to it answers the same question far more precisely.

We measure our odds against the closing odds. Both carry the bookmaker's margin, so the margin cancels and zero means we struck at the close.

The current answer is that we cannot tell. Across 596 comparable bets between 2026-08-04 and 2026-09-04, our prices sit +0.18% against the close, with a standard error of 0.12%. That is a t statistic of 1.48 against a bar of 2.69. It is indistinguishable from striking at the market price.

Of 7 markets measured, 0 clear the bar. 4 cannot be measured at all: both sides of the market appear to beat the close, which is impossible, so what we are seeing there is a difference between two price sources rather than line value.

551 of 1147 bets are excluded because no comparable closing price was captured for them.

We publish this because the alternative is publishing only the findings that flatter us. If the answer changes, this section changes with it.

How the numbers on the results page are calculated

FigureHow it is computed
Settled betsBets won plus bets lost. Voids and anything not yet settled are excluded.
Win rateBets won divided by settled bets.
ProfitReturns minus stakes, over settled bets, at the recorded price.
Return (ROI)Profit divided by total staked, as a percentage. Not profit over bankroll, which flatters a small book.

Stakes are the ones the rules actually produced, at a fixed reference bankroll. Every settled bet counts, including the ones that lost, and nothing is removed once it has settled.

A win rate on its own says very little, because a 70% win rate at short prices can lose money and a 30% win rate at long ones can make it. Return is the number that matters, and over any short run it is mostly noise.

What we hold back

How the inputs are weighted, and where we let the model disagree with the market, stays in-house. That is the part that took the longest to get right.

Everything that affects whether you can check us is public: the prediction, the price we called it at, the stake, the result, and the running record.