Live record since 1 September 2026. Latest graded match: 12 September 2026. 148 predictions are waiting for official match results. 50 are settled as a push or cannot be scored, so they are excluded from the record rather than counted either way. Results are graded automatically when our verified football data provider publishes the final scores.

Track record — nothing hidden

Every pick we've published, with its actual outcome. Wins and losses. Numbers refresh as new matches finish. Below you can verify tomorrow's picks are committed to before kickoff.

Overall record

All published predictions. Not filtered.
Published
1,534
1,336 graded
Settled
1,336
198 awaiting result
Win rate
74.0%of 500
ROI per bet
4.6%of 500
flat 1u stake
Profit / loss
22.77ufrom 500

Past performance does not predict future results. Figures are statistical model outputs, not advice or a guarantee of any outcome.

Filter
Hit rate (filtered)
74.0%
370 of 500 correct
Total P&L
-22.77u
ROI -4.6% per bet · 1u flat stake
Current streak
12W
consecutive wins
Average odds
1.32
Best streak: 15W · worst: 5L
What do "units", "ROI", and "hit rate" mean?
Hit rate
What % of our published picks won. A hit rate of 65% means 65 out of every 100 picks turned out to be correct. Sanity check: for a typical 1X2 pick a coin-flip baseline is ~33% (three outcomes).
Units (u)
A unit is your standard stake — whatever amount you're comfortable betting per pick (₦500, ₦1,000, ₦5,000, etc). "+3.20u" means the model finished 3.20 stakes ahead. If your unit is ₦1,000, that's ₦3,200 profit.
ROI per bet
Return on investment averaged across every pick. ROI of +5% means that on average, every 1u staked came back 1.05u. Even a small positive ROI is strong long-term — most punters are negative.

Historical performance

Cumulative P&L
-22.77u
Over 500 scored picks
Peak 7.3u · trough -24.9u
2026-09-012026-09-12
Rolling hit rate (20-pick window)
90%
Average across sample: 74%
Green ≥ 60% · Amber 50-60% · Red < 50%
OlderRecent →

Monthly performance

Hit rate and returns per calendar month, from graded picks only. The live record starts 1 September 2026, so months before that are absent rather than empty. A rolling 12 months is shown; use the range filter above for older periods.

Hit rate by monthDashed line = 60% target
74.0%
Sept
’26

Hit rate by month: September 2026: 74.0 percent from 500 picks.

Profit / loss by monthUnits, 1u flat stake
22.77u
Sept
’26

Profit and loss by month, in units: September 2026: minus 22.77 units.

Month by month

September 2026

Hit rate
74.0%
Profit / loss
−22.77u
ROI
−4.6%
Graded picks
500
Wins
370
Losses
130
Avg odds
1.32

Rolling hit rate — time windows

Last 7 days
72.9%
172/236
-6.25u · ROI -2.6%
Last 30 days
74.0%
370/500
-22.77u · ROI -4.6%
Last 90 days
74.0%
370/500
-22.77u · ROI -4.6%
Silver+ guarantee

If our verified hit rate drops below 55% in any calendar month, all Silver, Gold and Diamond subscribers get the following week free — no ticket, no questions. This page is the source of truth for that number.

Tomorrow's picks — published before kickoff

Picks are written to the record before the matches kick off, and this site serves that stored slate rather than re-ranking on each visit. So a pick you see here is the same pick that gets graded afterwards — win or lose, it stays on the record.

The fingerprint below is a SHA-256 of the slate exactly as the API is serving it now. You can recompute it yourself and confirm this page is not showing you something different from the model's output. What it is not: we do not yet store past fingerprints, so it cannot prove the slate is unchanged since yesterday. Retaining a daily hash is the next step, and until it ships we will not claim it.

Computed at
Slate for 2026-09-13 + upcoming
computing…
Covers 0 picks. Recompute it from the public API with the commands below — it should match exactly.
How to verify (click)
# 1. Grab the same slate this page hashed, straight from the model
curl "https://bankerai-production.up.railway.app/picks?mode=upcoming&n=25" \
  | python3 -c "import sys,json; json.dump(json.load(sys.stdin)['picks'], open('picks.json','w'))"

# 2. Recompute the commitment hash (Python)
python3 -c "
import hashlib, json
with open('picks.json') as f: picks = json.load(f)
rows = [f\"{p['date']}|{p['league']}|{p['home']}|{p['away']}|{p['pick_team']}|{p['pick_prob']:.4f}|{p['fair_odds']:.2f}\"
        for p in picks]
print(hashlib.sha256(('\n'.join(rows)).encode()).hexdigest())
"

# 3. Compare with the fingerprint shown above ↑
#    Matching means this page is serving the model's real output, unedited.

Every pick in the current filter

Graded up to 2026-09-12. 198 newer picks are still awaiting results. Outcomes come from the official results feed, which publishes a few days after kickoff — nothing is held back, and nothing is graded by hand.

DateMatchPickConfidenceFair oddsActualResult
2026-09-12🏴󠁧󠁢󠁥󠁮󠁧󠁿 Chelsea vs HullOver 2.5Total goals54%·Moderate1.85*2–2Won
2026-09-12🏴󠁧󠁢󠁥󠁮󠁧󠁿 Middlesbrough vs NorwichUnder 2.5Total goals54%·Moderate1.85*4–3Lost
2026-09-12🇸🇪 AIK vs Vasteras SKAIKDraw no bet69%·Strong1.45*1–4Lost
2026-09-12🏴󠁧󠁢󠁥󠁮󠁧󠁿 Harrogate vs TamworthYesBoth teams to score54%·Moderate1.85*3–1Won
2026-09-12🇪🇸 Real Madrid vs VallecanoReal MadridDraw no bet81%·High1.23*4–1Won
2026-09-12🇮🇹 Catanzaro vs CarrareseNoBoth teams to score54%·Moderate1.85*1–0Won
2026-09-12🇳🇴 Rosenborg vs TromsoRosenborg +0.5Asian handicap69%·Strong1.45*5–3Won
2026-09-12🏴󠁧󠁢󠁥󠁮󠁧󠁿 Sheffield Weds vs WiganYesBoth teams to score54%·Moderate1.85*0–0Lost
2026-09-12🇧🇷 Gremio vs VascoGremio +0.5Asian handicap83%·High1.21*1–2Lost
2026-09-12🇷🇺 Fakel Voronezh vs BaltikaYesBoth teams to score54%·Moderate1.85*2–2Won
2026-09-12🏴󠁧󠁢󠁥󠁮󠁧󠁿 Swansea vs BurnleyBurnley +0.5Asian handicap83%·High1.21*3–1Lost
2026-09-12🏴󠁧󠁢󠁥󠁮󠁧󠁿 Watford vs StokeWatford +0.5Asian handicap69%·Strong1.45*1–2Lost
2026-09-12🇺🇸 Columbus Crew vs New York Red BullsColumbus CrewMatch result52%·Moderate1.92*0–1Lost
2026-09-12🏴󠁧󠁢󠁥󠁮󠁧󠁿 Charlton vs PortsmouthYesBoth teams to score66%·Strong1.51*0–0Lost
2026-09-12🏴󠁧󠁢󠁳󠁣󠁴󠁿 Ayr vs Inverness CDrawMatch result52%·Moderate1.91*1–3Lost
2026-09-12🇵🇹 Casa Pia vs PortoPorto +0.5Asian handicap83%·High1.2*1–4Won
2026-09-12🇹🇷 Eyupspor vs RizesporRizesporMatch result53%·Moderate1.9*0–2Won
2026-09-12🇺🇸 FC Cincinnati vs CharlotteOver 2.5Total goals67%·Strong1.5*3–3Won
2026-09-12🇸🇪 AIK vs Vasteras SKAIKMatch result53%·Moderate1.9*1–4Lost
2026-09-12🇲🇽 Toluca vs AtlasTolucaMatch result64%·Moderate1.56*5–2Won
2026-09-12🇵🇹 Casa Pia vs PortoPortoMatch result64%·Moderate1.56*1–4Won
2026-09-12🇺🇸 DC United vs Atlanta UtdDC UnitedMatch result53%·Moderate1.87*0–0Lost
2026-09-12🇳🇱 For Sittard vs AjaxAjax +0.5Asian handicap84%·High1.18*1–5Won
2026-09-12🇳🇱 Cambuur vs NijmegenOver 2.5Total goals68%·Strong1.48*3–0Won
2026-09-12🇮🇹 Atalanta vs CagliariAtalanta +0.5Asian handicap85%·High1.18*1–2Lost

Fair odds are the model's own price (1 ÷ its probability), not a bookmaker quote. Leagues whose results feed carries no market — currently all of them — have no bookmaker price to compare against, so returns shown here are modelled, not achieved.

How grading works

  • Predictions are saved immediately, before kickoff, and the site serves that stored slate — so the pick you saw is the pick that gets graded.
  • Win/loss grading happens only after official match results become available from our data provider.
  • Different leagues publish at different times, so some settle days before others.
  • A missing recent result means the score isn't published yet — not that a prediction was deleted or hidden. Losses are counted the same way wins are.

Showing 25 of 500 picks in this filter.