Open data: every settled bet our AI has placed

The complete settled record behind our published figures — wins and losses, with the entry price we actually took. Downloadable, and computed from the database on every page load rather than written down once.

It is published so it can be checked. Every number on this page is the sum of rows in the file below; if your arithmetic disagrees with ours, ours is wrong and we want to hear about it.

Recompute the ROI yourself: download the file, divide net profit by total staked across whichever rows you like, and you should land on the same figure this page shows. Live signals are the only paid part of OddsFlow — you pay for timing, never for proof. This settled record is free, public and recomputable; verification never sits behind the paywall.

The record

Settled bets
31,812
Matches
4,016
Competitions
125
Return on stake
+11.70%
Won
15,234
Lost
12,260
Half / push
4,318
Total staked
6,887,923
Net profit/loss
+803,488

31,812 settled bets, 2026-01-25 to 2026-09-07. A seven-day delay applies, so the most recent week is not included here or in the download.

Why win rate is the wrong question

Across this record the models won 15234 bets and lost 12260, and returned +11.70% on stake. That is not a contradiction. A bet has two numbers — how often it lands, and the price paid for it. A service winning 70% of its bets at odds of 1.20 loses money; one winning 40% at 3.00 makes it. Win rate is the easiest metric to inflate, which is why it is the one most often published alone.

By competition

Every competition is listed, including the losing ones. 21 of 125 fall below 50 settled bets and are flagged: at that size a single quarter-line settling the other way moves the return by whole percentage points, so those rows describe variance, not skill. They are shown because omitting them would turn this table into a selection of whichever competition got lucky.

CompetitionBetsMatchesW–LReturn
La Liga1,737164877693+18.00%
FIFA World Cup1,442100590693-0.20%
Brasileirão Série A1,321115607594+13.80%
Serie A1,276134607505+14.30%
Premier League1,211134625464+23.20%
Bundesliga1,02798535400+28.70%
Saudi Pro League1,02580546377+16.30%
Brasileirão Série B1,021120439423+7.90%
Ligue 11,017110538403+26.00%
Chinese Super League92561454352+26.90%
J1 League79198371347+2.90%
Eredivisie68865329294-1.90%
Major League Soccer63069310222+18.80%
Liga Profesional Argentina53062270163+18.60%
Primeira Liga52959266211+16.10%
UEFA Conference League47985255189+12.90%
Eerste Divisie47543207216-2.00%
Süper Lig46949219208-5.50%
UEFA Champions League37852221143+20.50%
EFL Cup37541175162+4.70%
Turkish 1. Lig3555218592+25.60%
2. Bundesliga35433188119+21.80%
Ligue 234537183112+18.90%
Leagues Cup34442156157-1.10%
Allsvenskan33934166134+11.20%
Segunda División33237146113+9.40%
Peruvian Primera División31840149125+9.60%
Ekstraklasa31037128107+9.50%
Eliteserien3082515697+19.60%
NWSL Women30139156105+22.00%
Egyptian Premier League2983214893+15.80%
Swiss Super League29724159121+23.90%
Chilean Primera División29329147112+15.10%
Championship2864715094+22.70%
Serie B2802714580+25.50%
Torneo Federal A2766011291+6.50%
Colombian Primera A2743913477+23.60%
Liga I27033125101+14.50%
League One2584312392+13.40%
Ecuadorian Liga Pro2573715174+30.60%
Belgian Pro League25334119107+15.20%
K League 124970106108+5.20%
Superliga2452712882+19.50%
League Two2284312784+19.50%
Belgian First Amateur Division227309990+3.50%
Czech Liga2232811777+19.90%
Paraguayan División Profesional - Clausura2172910774+22.70%
USL Championship2134810463+22.90%
Scottish Premiership212199295+1.70%
NB I204229967+21.00%
CAF Champions League197136076-7.80%
Tweede Divisie191279370+9.80%
South African Premier Soccer League187228950+18.80%
Austrian Bundesliga180198975+5.50%
Indian Super League172149076+12.60%
Spanish Primera División RFEF - Group 1164185375-14.80%
Serbian SuperLiga150268839+30.30%
HNL149185977-1.30%
Belarusian Premier League146265165-8.20%
Greek Super League139176538+25.20%
Sammarinese Campionato139147943+31.60%
Spanish Primera División RFEF - Group 2139187235+26.60%
Coppa Italia132196552+9.90%
Frauen Bundesliga132126249+13.30%
K League 2127254847+6.40%
Uruguayan Primera División - Apertura126294845-0.60%
DFB-Pokal126135465-5.20%
CAF Confederation Cup12183464-29.90%
CONMEBOL Libertadores119155246+10.80%
Club Friendlies115785443+6.60%
Bolivian Primera División114285042+7.50%
Liga MX110244639+9.30%
Kazakhstan Premier League107224352-10.20%
Brazilian Serie C107284530+21.10%
FA WSL10475625+33.00%
3. Liga101246017+47.90%
Superettan100293620+22.90%
UAE Pro League100183051-26.70%
Slovak Super Liga100193741-5.10%
Russian Premier League99183845-2.60%
Thai League 19672635-18.30%
Portuguese Segunda Liga92294436+2.80%
Cypriot 1st Division91124634+9.40%
Primera División Femenina91144429+19.80%
Macedonian First League90173333+2.40%
Bulgarian First League89252646-20.60%
Ligat Ha'al86163342-11.80%
Ukrainian Premier League83173515+34.10%
Malawian Super League83193424+14.40%
Liga Panameña de Fútbol82193433+4.80%
Challenger Pro League82234825+20.30%
Slovenian 1. SNL76172928+2.60%
Copa Do Brasil73103729+7.10%
Irish Premier Division73124319+34.40%
CONMEBOL Sudamericana67102728-1.10%
UEFA Europa League66162538-33.80%
Ligi kuu Bara59202026-15.50%
Omani Professional League5992516+12.70%
Feminine Division 1584288+44.00%
Russian Cup57102130-17.40%
Erovnuli Liga55162216+6.80%
Canadian Premier League54153018+26.70%
Kvindeliga5382721+8.70%
EFL Trophy5382030-19.00%
Polish Cupsample too small40272014+15.30%
Russian First Leaguesample too small38152010+33.70%
Austrian 2. Ligasample too small35201815+7.40%
Damallsvenskansample too small3113179+21.10%
Qatar Stars Leaguesample too small31101710+24.10%
English FA Cupsample too small222172+70.90%
Veikkausliigasample too small171396+12.40%
Copa Riosample too small15278-6.50%
KNVB Bekersample too small159105+26.80%
Georgian Liga 3sample too small141192+44.50%
Saudi King's Cupsample too small141076+5.20%
Greek Cupsample too small141166-4.80%
UEFA Champions League Womensample too small131174+20.00%
Myanmar National Leaguesample too small11470+75.10%
Scottish League Cupsample too small8643+19.90%
Peruvian Copa De La Ligasample too small6313-36.60%
Malaysian FA Cupsample too small5331+32.50%
Croatian Cupsample too small4422-1.20%
Taça de Portugalsample too small4330+85.00%
Community Shieldsample too small1101-100.00%
Trophée des Championssample too small1110+80.00%

Take the data

Row-level, one line per settled bet, with the minute and scoreline at entry, the odds recorded before the outcome was known, and the settled profit or loss.

How the numbers are produced

1. Attack and defence strength, weighted toward recent matches

A Dixon-Coles model estimates each side's scoring and conceding rates, adjusted for the opponent, with older matches carrying less weight. It also corrects the low-score dependency that a plain Poisson model gets wrong — 0-0, 1-0 and 1-1 are not independent outcomes in practice.

2. Expected goals rather than the scoreline alone

A side can win 1-0 having been outplayed. Training on results alone teaches the model the wrong lesson, so shot quality enters the estimate: xG measures what a team actually created rather than what fell for it that day.

3. Monte Carlo simulation

The fixture is simulated thousands of times from those rates. The output is a distribution rather than a single scoreline: the probability of each exact score, each 1X2 outcome, each goals line and each Asian handicap.

4. Comparison against the market, and the filter

The model probability is compared with the probability implied by the offered price. A bet is only recorded when the gap between them is wide enough. That is why most fixtures produce no bet at all — in most matches the market is already right, and betting into it just pays the margin.

Limitations — read before citing

Stated here so that anyone quoting this record is not caught out by them later.

  • The sample is small. Several hundred bets over roughly six months does not separate genuine edge from a good run with any confidence, and no single competition here comes close to a sample that would.
  • This is a trading record, not a backtest. These are bets that were recorded at prices that existed at the time. It is not a simulated result over historical data and cannot be reproduced by re-running the model on old fixtures.
  • Figures are in model stake units, not currency. Real-money return is lower, because the price actually executed is rarely the price displayed.
  • A seven-day publication delay applies, so the most recent week never appears.
  • The models changed over the period. Earlier rows were produced by earlier versions, so the record is not a single system measured end to end.

How to cite

If you use this in a story or a paper, this is the reference we would ask for.

OddsFlow AI, "Settled Predictions Record" (2026-01-25–2026-09-07). Retrieved from oddsflow.ai/open-data.

The live record

This page is the archive. The running record, updated after each match, is here.

This is data analysis published for information and research. It is not betting advice, and no bet is placed on this platform. Past results do not guarantee future results. 18+.