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.
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.
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.
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.
| Competition | Bets | Matches | W–L | Return |
|---|---|---|---|---|
| La Liga | 2,238 | 203 | 1076–898 | +17.20% |
| Major League Soccer | 1,936 | 165 | 816–778 | +5.60% |
| Brasileirão Série A | 1,782 | 151 | 767–790 | +12.50% |
| Brasileirão Série B | 1,702 | 183 | 693–667 | +6.30% |
| UEFA Nations League | 1,545 | 86 | 423–690 | -12.70% |
| Saudi Pro League | 1,526 | 115 | 769–523 | +16.70% |
| Serie A | 1,519 | 161 | 704–615 | +13.60% |
| Premier League | 1,484 | 160 | 732–540 | +22.90% |
| FIFA World Cup | 1,442 | 100 | 590–693 | -0.20% |
| Bundesliga | 1,420 | 131 | 637–602 | +25.80% |
| Ligue 1 | 1,342 | 142 | 641–552 | +23.60% |
| Eerste Divisie | 1,285 | 99 | 511–501 | +2.10% |
| Club Friendlies | 1,139 | 146 | 420–447 | -0.90% |
| Liga Profesional Argentina | 1,112 | 120 | 516–322 | +19.40% |
| Eredivisie | 1,095 | 98 | 489–469 | -0.10% |
| USL Championship | 1,087 | 121 | 417–421 | +3.90% |
| Friendlies | 1,081 | 77 | 350–482 | -10.00% |
| Chinese Super League | 1,073 | 75 | 496–441 | +25.40% |
| J1 League | 1,053 | 137 | 442–454 | +2.00% |
| EFL Trophy | 1,004 | 61 | 336–448 | -9.10% |
| Segunda División | 992 | 94 | 435–329 | +11.80% |
| CONCACAF Nations League | 980 | 57 | 258–476 | -21.00% |
| Championship | 947 | 103 | 354–359 | +3.80% |
| Colombian Primera A | 938 | 94 | 362–365 | +2.00% |
| Belgian First Amateur Division | 895 | 108 | 354–384 | -1.80% |
| League One | 884 | 104 | 350–313 | +8.80% |
| League Two | 866 | 115 | 358–347 | +2.20% |
| Primera Nacional | 820 | 84 | 260–331 | -6.00% |
| 2. Bundesliga | 803 | 68 | 364–309 | +10.00% |
| Primeira Liga | 769 | 84 | 332–327 | +12.50% |
| Turkish 1. Lig | 759 | 90 | 342–241 | +14.30% |
| Spanish Primera División RFEF - Group 1 | 759 | 73 | 286–328 | -6.10% |
| Eliteserien | 737 | 54 | 344–242 | +15.50% |
| Tweede Divisie | 734 | 78 | 305–275 | +3.20% |
| Ekstraklasa | 730 | 73 | 289–293 | +2.10% |
| J3 League | 728 | 56 | 261–313 | -3.60% |
| NWSL Women | 723 | 72 | 298–287 | +4.30% |
| Liga I | 723 | 63 | 236–373 | -15.20% |
| Peruvian Primera División | 718 | 67 | 332–240 | +15.60% |
| Africa Cup of Nations - Qualification | 717 | 41 | 274–220 | +9.60% |
| 3. Liga | 715 | 81 | 295–264 | +5.80% |
| J2 League | 713 | 54 | 271–271 | +5.80% |
| Ligue 2 | 710 | 69 | 283–273 | +1.80% |
| Spanish Primera División RFEF - Group 2 | 695 | 72 | 257–260 | +0.60% |
| Torneo Federal A | 687 | 105 | 281–246 | +5.40% |
| Allsvenskan | 684 | 62 | 313–250 | +9.70% |
| UEFA Champions League | 673 | 78 | 358–222 | +20.30% |
| Serie B | 652 | 64 | 256–267 | +2.50% |
| Süper Lig | 646 | 74 | 264–300 | -6.40% |
| Primera División Femenina | 643 | 52 | 292–198 | +18.40% |
| EFL Cup | 632 | 57 | 271–276 | +1.60% |
| Egyptian Premier League | 622 | 64 | 283–215 | +9.60% |
| Ecuadorian Liga Pro | 615 | 64 | 291–233 | +11.70% |
| UEFA Conference League | 611 | 94 | 310–232 | +13.40% |
| Uruguayan Primera División - Apertura | 599 | 76 | 213–195 | +2.90% |
| FA WSL | 578 | 37 | 239–220 | +9.10% |
| Taça de Portugal | 567 | 57 | 223–225 | -2.70% |
| Primera B Metropolitana | 563 | 51 | 150–263 | -19.20% |
| Czech Liga | 558 | 57 | 198–246 | -6.00% |
| Swiss Super League | 549 | 43 | 227–273 | +13.60% |
| Ettan Södra | 540 | 37 | 243–178 | +15.80% |
| Superliga | 535 | 48 | 257–199 | +12.00% |
| Serie C - Girone B | 535 | 45 | 197–177 | +6.50% |
| K League 1 | 533 | 95 | 193–244 | -1.20% |
| Serie C - Girone A | 514 | 47 | 214–194 | +7.10% |
| Austrian Bundesliga | 507 | 43 | 200–241 | -8.00% |
| Belgian Pro League | 505 | 57 | 204–222 | +0.70% |
| K League 2 | 495 | 57 | 152–203 | -8.20% |
| Norwegian First Division | 491 | 39 | 170–228 | -9.80% |
| Ettan Norra | 482 | 40 | 179–204 | -1.50% |
| Liga de Expansión MX | 482 | 32 | 192–200 | -1.30% |
| Serie C - Girone C | 481 | 45 | 137–201 | -12.70% |
| Kazakhstan Premier League | 476 | 54 | 160–227 | -14.60% |
| Thai League 1 | 475 | 35 | 187–154 | +10.60% |
| Superettan | 463 | 64 | 140–189 | -6.70% |
| Paraguayan División Profesional - Clausura | 460 | 56 | 186–171 | +9.50% |
| English FA Cup | 454 | 49 | 199–158 | +26.20% |
| Bolivian Primera División | 446 | 52 | 179–163 | +0.00% |
| Cypriot 1st Division | 443 | 40 | 164–191 | -3.60% |
| Colombian Primera B | 442 | 33 | 142–168 | -4.10% |
| Greek Super League | 441 | 39 | 168–157 | +6.90% |
| NB I | 437 | 39 | 195–159 | +11.00% |
| Chilean Primera División | 425 | 42 | 187–167 | +5.60% |
| Scottish Premiership | 423 | 38 | 170–169 | +2.40% |
| Portuguese Liga Revelação U23 | 423 | 34 | 142–171 | -3.70% |
| CAF Champions League | 417 | 31 | 129–180 | -10.50% |
| Ukrainian Premier League | 415 | 46 | 156–164 | +2.60% |
| Frauen Bundesliga | 415 | 31 | 160–162 | +1.50% |
| Austrian 2. Liga | 399 | 52 | 122–209 | -23.60% |
| Sammarinese Campionato | 397 | 36 | 147–190 | -7.30% |
| South African Premier Soccer League | 394 | 43 | 155–122 | +8.30% |
| Damallsvenskan | 394 | 43 | 129–174 | -13.20% |
| Veikkausliiga | 385 | 43 | 163–119 | +14.10% |
| Thai League 2 | 381 | 36 | 154–141 | +6.80% |
| UEFA Europa Cup - Women | 380 | 23 | 82–211 | -37.20% |
| HNL | 376 | 38 | 166–154 | +10.00% |
| Kvindeliga | 374 | 33 | 144–155 | +1.00% |
| Serbian SuperLiga | 371 | 49 | 176–122 | +15.60% |
| Polish II Liga - East | 371 | 31 | 162–131 | +12.10% |
| Chinese League One | 367 | 29 | 139–160 | -3.80% |
| Liga MX | 366 | 65 | 133–135 | +10.20% |
| Liga Panameña de Fútbol | 358 | 45 | 115–146 | -5.70% |
| CAF Confederation Cup | 357 | 30 | 127–152 | -5.90% |
| Macedonian First League | 354 | 36 | 160–125 | +8.20% |
| Erovnuli Liga | 351 | 43 | 110–158 | -12.60% |
| Liga 1 Indonesia | 345 | 25 | 135–137 | +5.40% |
| Leagues Cup | 344 | 42 | 156–157 | -1.10% |
| Irish Premier Division | 342 | 32 | 114–152 | -5.90% |
| Canadian Premier League | 341 | 38 | 124–136 | -5.50% |
| AFC Champions League Elite | 337 | 25 | 126–151 | -5.40% |
| AFC Champions League Two | 334 | 25 | 120–132 | -2.70% |
| Ykkönen | 321 | 21 | 96–184 | -31.20% |
| Chinese League Two | 313 | 29 | 145–89 | +19.50% |
| French National 1 | 310 | 30 | 106–167 | -11.30% |
| Brazilian Serie C | 309 | 49 | 130–106 | +9.60% |
| UEFA Champions League Women | 302 | 23 | 114–130 | -6.10% |
| Uruguayan Segunda División | 301 | 35 | 121–106 | +5.80% |
| Belarusian Premier League | 300 | 52 | 97–129 | -3.80% |
| Portuguese Segunda Liga | 294 | 47 | 101–123 | -3.60% |
| Slovak Super Liga | 294 | 41 | 90–146 | -17.80% |
| Challenger Pro League | 292 | 42 | 93–138 | -12.20% |
| Bulgarian First League | 286 | 43 | 112–115 | +4.50% |
| Botola Pro | 286 | 26 | 100–111 | -3.80% |
| UAE Pro League | 275 | 31 | 87–113 | -11.20% |
| Ykkösliiga | 271 | 18 | 109–90 | +9.70% |
| Indian Super League | 270 | 24 | 118–138 | +7.20% |
| Welsh Premier League | 265 | 24 | 98–125 | -8.00% |
| Qatar Stars League | 263 | 27 | 88–107 | -6.60% |
| UAE League Cup | 262 | 20 | 69–141 | -30.10% |
| Ligat Ha'al | 256 | 36 | 68–115 | -17.50% |
| England Premier League 2 Division One | 249 | 20 | 122–79 | +18.20% |
| Serie A Women | 248 | 18 | 55–150 | -37.80% |
| Slovenian 1. SNL | 245 | 37 | 107–76 | +11.60% |
| Uzbekistan Super League | 245 | 21 | 77–105 | -11.30% |
| FIFA Asean Cup | 239 | 12 | 93–99 | +1.20% |
| Malawian Super League | 238 | 35 | 67–101 | -15.90% |
| Ecuadorian Serie B | 236 | 19 | 49–114 | -26.90% |
| Polish I Liga | 234 | 26 | 85–87 | +1.40% |
| Venezuelan Primera División | 234 | 20 | 72–111 | -9.80% |
| Czech FNL | 233 | 20 | 95–95 | +0.40% |
| Algerian Ligue 1 | 226 | 20 | 58–101 | -15.80% |
| Omani Professional League | 215 | 25 | 67–77 | -7.50% |
| Danish 1st Division | 214 | 17 | 66–90 | -8.20% |
| Russian Premier League | 213 | 39 | 60–103 | -15.50% |
| CONMEBOL Libertadores | 209 | 22 | 92–70 | +14.40% |
| Meistriliiga | 203 | 18 | 75–80 | -1.00% |
| Scottish Championship | 203 | 21 | 45–58 | -2.30% |
| KNVB Beker | 202 | 24 | 100–75 | +11.60% |
| Virsliga | 198 | 13 | 71–61 | +8.00% |
| Georgian Liga 3 | 194 | 26 | 61–105 | -17.40% |
| Feminine Division 1 | 192 | 18 | 62–73 | -1.40% |
| Ligi kuu Bara | 184 | 34 | 87–59 | +15.80% |
| National League | 184 | 41 | 48–93 | -18.60% |
| Northern Ireland Premiership | 176 | 29 | 80–63 | +10.70% |
| Coppa Italia | 167 | 21 | 70–76 | -4.60% |
| Azerbaijan Premyer Liqa | 166 | 16 | 76–67 | +2.60% |
| Úrvalsdeild | 162 | 16 | 67–75 | +2.40% |
| Maltese Premier League | 161 | 20 | 65–58 | +7.10% |
| Costa Rican Primera División | 158 | 15 | 70–43 | +13.40% |
| Spanish Tercera División RFEF - Group 15 | 154 | 19 | 42–69 | -14.40% |
| CONMEBOL Sudamericana | 151 | 17 | 49–53 | -2.30% |
| Scottish League One | 151 | 18 | 25–88 | -41.50% |
| Russian First League | 146 | 41 | 64–45 | +30.30% |
| Scottish League Two | 143 | 20 | 49–61 | -8.80% |
| Armenian Premier League | 142 | 15 | 58–61 | +4.20% |
| Malaysian FA Cup | 141 | 15 | 54–66 | +0.10% |
| Greek Cup | 136 | 20 | 39–67 | -19.90% |
| Croatian Cup | 134 | 15 | 69–38 | +24.80% |
| World Cup - U20 - Women | 129 | 8 | 34–53 | -7.70% |
| UEFA Europa League | 126 | 30 | 66–49 | -24.30% |
| DFB-Pokal | 126 | 13 | 54–65 | -5.20% |
| Bosnian Premijer Liga | 124 | 13 | 32–53 | -14.80% |
| Asian Games | 122 | 8 | 37–55 | -18.10% |
| Türkiye Kupası | 104 | 7 | 31–58 | -25.10% |
| Russian Cup | 103 | 18 | 39–46 | -3.20% |
| Myanmar National League | 103 | 11 | 40–39 | +6.00% |
| Albanian Superliga | 101 | 12 | 44–43 | +10.60% |
| Lithuanian A Lyga | 90 | 9 | 24–51 | -34.80% |
| Ethiopian Premier League | 81 | 14 | 24–27 | -3.40% |
| Copa Do Brasil | 73 | 10 | 37–29 | +7.10% |
| Challenge League | 65 | 6 | 22–32 | -8.20% |
| Copa Rio | 64 | 6 | 30–28 | +1.10% |
| Polish Cup | 58 | 28 | 32–17 | +30.40% |
| A-League Mensample too small | 46 | 5 | 16–21 | -13.90% |
| Scottish League Cupsample too small | 43 | 10 | 12–26 | -29.30% |
| Spanish Tercera División RFEF - Group 11sample too small | 42 | 7 | 18–13 | +28.20% |
| World Cup - Women - Qualification Europesample too small | 38 | 4 | 10–21 | -31.90% |
| Peruvian Copa De La Ligasample too small | 33 | 5 | 8–23 | -46.90% |
| WE Leaguesample too small | 24 | 3 | 12–6 | +25.00% |
| Spanish Tercera División RFEF - Group 4sample too small | 18 | 3 | 3–9 | -11.70% |
| Copa del Reysample too small | 18 | 2 | 8–4 | -4.40% |
| Spanish Tercera División RFEF - Group 12sample too small | 15 | 4 | 5–8 | -42.50% |
| Spanish Tercera División RFEF - Group 3sample too small | 15 | 2 | 1–10 | -18.20% |
| Saudi King's Cupsample too small | 14 | 10 | 7–6 | +5.20% |
| Asian Games Womensample too small | 12 | 1 | 10–0 | +80.40% |
| Kirin Cupsample too small | 12 | 1 | 3–7 | -46.50% |
| FIFA Intercontinental Cupsample too small | 9 | 1 | 0–2 | -14.60% |
| Icelandic 1. deildsample too small | 8 | 1 | 0–7 | -86.30% |
| Spanish Tercera División RFEF - Group 5sample too small | 7 | 2 | 3–0 | +46.90% |
| Spanish Tercera División RFEF - Group 18sample too small | 7 | 1 | 1–6 | -82.20% |
| Spanish Tercera División RFEF - Group 10sample too small | 4 | 1 | 2–0 | +80.40% |
| Spanish Tercera División RFEF - Group 8sample too small | 4 | 1 | 0–0 | +21.70% |
| Spanish Tercera División RFEF - Group 7sample too small | 4 | 1 | 2–0 | +45.40% |
| Spanish Tercera División RFEF - Group 1sample too small | 4 | 1 | 0–2 | -50.00% |
| Spanish Tercera División RFEF - Group 16sample too small | 4 | 1 | 0–4 | -100.00% |
| Spanish Tercera División RFEF - Group 2sample too small | 4 | 1 | 0–2 | -71.00% |
| Spanish Tercera División RFEF - Group 6sample too small | 3 | 1 | 0–0 | -16.70% |
| Community Shieldsample too small | 1 | 1 | 0–1 | -100.00% |
| Trophée des Championssample too small | 1 | 1 | 1–0 | +80.00% |
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.
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.
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.
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.
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.
Stated here so that anyone quoting this record is not caught out by them later.
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.
This page is the archive. The running record, updated after each match, is here.