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
93,027
Matches
9,275
Competitions
209
Return on stake
+7.20%
Won
36,856
Lost
37,512
Half / push
18,659
Total staked
9,715,770
Net profit/loss
+704,361

93,027 settled bets, 2026-01-25 to 2026-10-21. 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 36856 bets and lost 37512, and returned +7.20% 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. 26 of 209 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 Liga2,2382031076–898+17.20%
Major League Soccer1,936165816–778+5.60%
Brasileirão Série A1,782151767–790+12.50%
Brasileirão Série B1,702183693–667+6.30%
UEFA Nations League1,54586423–690-12.70%
Saudi Pro League1,526115769–523+16.70%
Serie A1,519161704–615+13.60%
Premier League1,484160732–540+22.90%
FIFA World Cup1,442100590–693-0.20%
Bundesliga1,420131637–602+25.80%
Ligue 11,342142641–552+23.60%
Eerste Divisie1,28599511–501+2.10%
Club Friendlies1,139146420–447-0.90%
Liga Profesional Argentina1,112120516–322+19.40%
Eredivisie1,09598489–469-0.10%
USL Championship1,087121417–421+3.90%
Friendlies1,08177350–482-10.00%
Chinese Super League1,07375496–441+25.40%
J1 League1,053137442–454+2.00%
EFL Trophy1,00461336–448-9.10%
Segunda División99294435–329+11.80%
CONCACAF Nations League98057258–476-21.00%
Championship947103354–359+3.80%
Colombian Primera A93894362–365+2.00%
Belgian First Amateur Division895108354–384-1.80%
League One884104350–313+8.80%
League Two866115358–347+2.20%
Primera Nacional82084260–331-6.00%
2. Bundesliga80368364–309+10.00%
Primeira Liga76984332–327+12.50%
Turkish 1. Lig75990342–241+14.30%
Spanish Primera División RFEF - Group 175973286–328-6.10%
Eliteserien73754344–242+15.50%
Tweede Divisie73478305–275+3.20%
Ekstraklasa73073289–293+2.10%
J3 League72856261–313-3.60%
NWSL Women72372298–287+4.30%
Liga I72363236–373-15.20%
Peruvian Primera División71867332–240+15.60%
Africa Cup of Nations - Qualification71741274–220+9.60%
3. Liga71581295–264+5.80%
J2 League71354271–271+5.80%
Ligue 271069283–273+1.80%
Spanish Primera División RFEF - Group 269572257–260+0.60%
Torneo Federal A687105281–246+5.40%
Allsvenskan68462313–250+9.70%
UEFA Champions League67378358–222+20.30%
Serie B65264256–267+2.50%
Süper Lig64674264–300-6.40%
Primera División Femenina64352292–198+18.40%
EFL Cup63257271–276+1.60%
Egyptian Premier League62264283–215+9.60%
Ecuadorian Liga Pro61564291–233+11.70%
UEFA Conference League61194310–232+13.40%
Uruguayan Primera División - Apertura59976213–195+2.90%
FA WSL57837239–220+9.10%
Taça de Portugal56757223–225-2.70%
Primera B Metropolitana56351150–263-19.20%
Czech Liga55857198–246-6.00%
Swiss Super League54943227–273+13.60%
Ettan Södra54037243–178+15.80%
Superliga53548257–199+12.00%
Serie C - Girone B53545197–177+6.50%
K League 153395193–244-1.20%
Serie C - Girone A51447214–194+7.10%
Austrian Bundesliga50743200–241-8.00%
Belgian Pro League50557204–222+0.70%
K League 249557152–203-8.20%
Norwegian First Division49139170–228-9.80%
Ettan Norra48240179–204-1.50%
Liga de Expansión MX48232192–200-1.30%
Serie C - Girone C48145137–201-12.70%
Kazakhstan Premier League47654160–227-14.60%
Thai League 147535187–154+10.60%
Superettan46364140–189-6.70%
Paraguayan División Profesional - Clausura46056186–171+9.50%
English FA Cup45449199–158+26.20%
Bolivian Primera División44652179–163+0.00%
Cypriot 1st Division44340164–191-3.60%
Colombian Primera B44233142–168-4.10%
Greek Super League44139168–157+6.90%
NB I43739195–159+11.00%
Chilean Primera División42542187–167+5.60%
Scottish Premiership42338170–169+2.40%
Portuguese Liga Revelação U2342334142–171-3.70%
CAF Champions League41731129–180-10.50%
Ukrainian Premier League41546156–164+2.60%
Frauen Bundesliga41531160–162+1.50%
Austrian 2. Liga39952122–209-23.60%
Sammarinese Campionato39736147–190-7.30%
South African Premier Soccer League39443155–122+8.30%
Damallsvenskan39443129–174-13.20%
Veikkausliiga38543163–119+14.10%
Thai League 238136154–141+6.80%
UEFA Europa Cup - Women3802382–211-37.20%
HNL37638166–154+10.00%
Kvindeliga37433144–155+1.00%
Serbian SuperLiga37149176–122+15.60%
Polish II Liga - East37131162–131+12.10%
Chinese League One36729139–160-3.80%
Liga MX36665133–135+10.20%
Liga Panameña de Fútbol35845115–146-5.70%
CAF Confederation Cup35730127–152-5.90%
Macedonian First League35436160–125+8.20%
Erovnuli Liga35143110–158-12.60%
Liga 1 Indonesia34525135–137+5.40%
Leagues Cup34442156–157-1.10%
Irish Premier Division34232114–152-5.90%
Canadian Premier League34138124–136-5.50%
AFC Champions League Elite33725126–151-5.40%
AFC Champions League Two33425120–132-2.70%
Ykkönen3212196–184-31.20%
Chinese League Two31329145–89+19.50%
French National 131030106–167-11.30%
Brazilian Serie C30949130–106+9.60%
UEFA Champions League Women30223114–130-6.10%
Uruguayan Segunda División30135121–106+5.80%
Belarusian Premier League3005297–129-3.80%
Portuguese Segunda Liga29447101–123-3.60%
Slovak Super Liga2944190–146-17.80%
Challenger Pro League2924293–138-12.20%
Bulgarian First League28643112–115+4.50%
Botola Pro28626100–111-3.80%
UAE Pro League2753187–113-11.20%
Ykkösliiga27118109–90+9.70%
Indian Super League27024118–138+7.20%
Welsh Premier League2652498–125-8.00%
Qatar Stars League2632788–107-6.60%
UAE League Cup2622069–141-30.10%
Ligat Ha'al2563668–115-17.50%
England Premier League 2 Division One24920122–79+18.20%
Serie A Women2481855–150-37.80%
Slovenian 1. SNL24537107–76+11.60%
Uzbekistan Super League2452177–105-11.30%
FIFA Asean Cup2391293–99+1.20%
Malawian Super League2383567–101-15.90%
Ecuadorian Serie B2361949–114-26.90%
Polish I Liga2342685–87+1.40%
Venezuelan Primera División2342072–111-9.80%
Czech FNL2332095–95+0.40%
Algerian Ligue 12262058–101-15.80%
Omani Professional League2152567–77-7.50%
Danish 1st Division2141766–90-8.20%
Russian Premier League2133960–103-15.50%
CONMEBOL Libertadores2092292–70+14.40%
Meistriliiga2031875–80-1.00%
Scottish Championship2032145–58-2.30%
KNVB Beker20224100–75+11.60%
Virsliga1981371–61+8.00%
Georgian Liga 31942661–105-17.40%
Feminine Division 11921862–73-1.40%
Ligi kuu Bara1843487–59+15.80%
National League1844148–93-18.60%
Northern Ireland Premiership1762980–63+10.70%
Coppa Italia1672170–76-4.60%
Azerbaijan Premyer Liqa1661676–67+2.60%
Úrvalsdeild1621667–75+2.40%
Maltese Premier League1612065–58+7.10%
Costa Rican Primera División1581570–43+13.40%
Spanish Tercera División RFEF - Group 151541942–69-14.40%
CONMEBOL Sudamericana1511749–53-2.30%
Scottish League One1511825–88-41.50%
Russian First League1464164–45+30.30%
Scottish League Two1432049–61-8.80%
Armenian Premier League1421558–61+4.20%
Malaysian FA Cup1411554–66+0.10%
Greek Cup1362039–67-19.90%
Croatian Cup1341569–38+24.80%
World Cup - U20 - Women129834–53-7.70%
UEFA Europa League1263066–49-24.30%
DFB-Pokal1261354–65-5.20%
Bosnian Premijer Liga1241332–53-14.80%
Asian Games122837–55-18.10%
Türkiye Kupası104731–58-25.10%
Russian Cup1031839–46-3.20%
Myanmar National League1031140–39+6.00%
Albanian Superliga1011244–43+10.60%
Lithuanian A Lyga90924–51-34.80%
Ethiopian Premier League811424–27-3.40%
Copa Do Brasil731037–29+7.10%
Challenge League65622–32-8.20%
Copa Rio64630–28+1.10%
Polish Cup582832–17+30.40%
A-League Mensample too small46516–21-13.90%
Scottish League Cupsample too small431012–26-29.30%
Spanish Tercera División RFEF - Group 11sample too small42718–13+28.20%
World Cup - Women - Qualification Europesample too small38410–21-31.90%
Peruvian Copa De La Ligasample too small3358–23-46.90%
WE Leaguesample too small24312–6+25.00%
Spanish Tercera División RFEF - Group 4sample too small1833–9-11.70%
Copa del Reysample too small1828–4-4.40%
Spanish Tercera División RFEF - Group 12sample too small1545–8-42.50%
Spanish Tercera División RFEF - Group 3sample too small1521–10-18.20%
Saudi King's Cupsample too small14107–6+5.20%
Asian Games Womensample too small12110–0+80.40%
Kirin Cupsample too small1213–7-46.50%
FIFA Intercontinental Cupsample too small910–2-14.60%
Icelandic 1. deildsample too small810–7-86.30%
Spanish Tercera División RFEF - Group 5sample too small723–0+46.90%
Spanish Tercera División RFEF - Group 18sample too small711–6-82.20%
Spanish Tercera División RFEF - Group 10sample too small412–0+80.40%
Spanish Tercera División RFEF - Group 8sample too small410–0+21.70%
Spanish Tercera División RFEF - Group 7sample too small412–0+45.40%
Spanish Tercera División RFEF - Group 1sample too small410–2-50.00%
Spanish Tercera División RFEF - Group 16sample too small410–4-100.00%
Spanish Tercera División RFEF - Group 2sample too small410–2-71.00%
Spanish Tercera División RFEF - Group 6sample too small310–0-16.70%
Community Shieldsample too small110–1-100.00%
Trophée des Championssample too small111–0+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-10-21). 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+.