Track record — nothing hidden
Every settled pick we published before kickoff, with its actual outcome. Wins and losses. Numbers refresh as new matches finish. Below you can recompute the current upcoming-slate fingerprint.
Overall record
All published predictions. Not filtered.Past performance does not predict future results. Figures are statistical model outputs, not advice or a guarantee of any outcome.
How should I read this record?▾
Historical performance
Green ≥ 60% · Amber 50-60% · Red < 50%
Monthly performance
Hit rate per calendar month, from graded picks only. The live record starts 23 October 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 month: October 2026: 71.6 percent from 500 picks.
Rolling hit rate — time windows
Upcoming 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 three-pick anonymous slate exactly as BankerAI is serving it now. It never includes subscriber-only selections. You can recompute it through BankerAI's public domain and confirm this page is not showing something different from the public model 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.
How to verify (click)
# 1. Grab the same slate this page hashed, straight from the model
curl "https://bankerai.ng/api/commitment" \
| 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-10-27. 272 newer picks are still awaiting results. Outcomes come from our results data feed, which publishes a few days after kickoff — nothing is held back, and nothing is graded by hand.
| Date | Match | Pick | Estimated chance | Fair odds | Actual | Result |
|---|---|---|---|---|---|---|
| 2026-10-27 | 🏴 Milton Keynes Dons vs Bromley | Milton Keynes Dons — stake returned on drawDraw no bet (DNB / 2Way) | 51%·Moderate | 1.94* | 4–1 | Won |
| 2026-10-27 | 🏴 Milton Keynes Dons vs Bromley | Under 3.5 goalsTotal goals (Over/Under) | 67%·Strong | 1.49* | 4–1 | Lost |
| 2026-10-27 | 🏴 Oxford vs Stockport | Oxford (+0.5)Asian handicap | 65%·Moderate | 1.55* | 1–0 | Won |
| 2026-10-27 | 🏴 Luton vs Doncaster | Luton (+0.5)Asian handicap | 71%·Strong | 1.4* | 3–1 | Won |
| 2026-10-27 | 🏴 Luton vs Doncaster | Under 2.5 goalsTotal goals (Over/Under) | 52%·Moderate | 1.91* | 3–1 | Lost |
| 2026-10-27 | 🏴 Stenhousemuir vs Dunfermline | Under 3.5 goalsTotal goals (Over/Under) | 69%·Strong | 1.45* | 0–1 | Won |
| 2026-10-27 | 🏴 Halifax vs Barrow | Yes (GG)Both teams to score (BTTS / GG–NG) | 52%·Moderate | 1.91* | 2–3 | Won |
| 2026-10-27 | 🏴 Fylde vs Hartlepool | Fylde (+0.5)Asian handicap | 66%·Strong | 1.52* | 3–1 | Won |
| 2026-10-27 | 🏴 Halifax vs Barrow | Under 2.5 goalsTotal goals (Over/Under) | 52%·Moderate | 1.91* | 2–3 | Lost |
| 2026-10-27 | 🏴 Barnet vs York | Barnet (+0.5)Asian handicap | 75%·Strong | 1.33* | 3–1 | Won |
| 2026-10-27 | 🏴 Fylde vs Hartlepool | Under 2.5 goalsTotal goals (Over/Under) | 53%·Moderate | 1.9* | 3–1 | Lost |
| 2026-10-27 | 🇸🇪 AIK vs Elfsborg | Elfsborg (+0.5)Asian handicap | 66%·Strong | 1.51* | 2–2 | Won |
| 2026-10-27 | 🏴 Tamworth vs Scunthorpe | Scunthorpe to win (2)Full-time result (1X2) | 51%·Moderate | 1.98* | 4–1 | Lost |
| 2026-10-27 | 🇸🇪 AIK vs Elfsborg | Under 2.5 goalsTotal goals (Over/Under) | 53%·Moderate | 1.89* | 2–2 | Lost |
| 2026-10-27 | 🏴 Leicester vs Wigan | Leicester (+0.5)Asian handicap | 66%·Strong | 1.51* | 3–0 | Won |
| 2026-10-27 | 🏴 Altrincham vs Kidderminster | Yes (GG)Both teams to score (BTTS / GG–NG) | 53%·Moderate | 1.89* | 0–0 | Lost |
| 2026-10-27 | 🏴 Barnet vs York | Barnet — stake returned on drawDraw no bet (DNB / 2Way) | 67%·Strong | 1.5* | 3–1 | Won |
| 2026-10-27 | 🏴 Stenhousemuir vs Dunfermline | Over 2.5 goalsTotal goals (Over/Under) | 53%·Moderate | 1.88* | 0–1 | Lost |
| 2026-10-27 | 🇮🇹 Virtus Entella vs Avellino | Under 2.5 goalsTotal goals (Over/Under) | 64%·Moderate | 1.55* | 1–1 | Won |
| 2026-10-27 | 🏴 Woking vs Boreham Wood | Boreham Wood to win (2)Full-time result (1X2) | 51%·Moderate | 1.96* | 1–2 | Won |
| 2026-10-27 | 🇮🇹 Sassuolo vs Lazio | Lazio — stake returned on drawDraw no bet (DNB / 2Way) | 74%·Strong | 1.35* | 2–6 | Won |
| 2026-10-27 | 🇸🇪 AIK vs Elfsborg | Under 3.5 goalsTotal goals (Over/Under) | 75%·Strong | 1.34* | 2–2 | Lost |
| 2026-10-27 | 🏴 Oxford vs Stockport | Over 1.5 goalsTotal goals (Over/Under) | 75%·Strong | 1.34* | 1–0 | Lost |
| 2026-10-27 | 🏴 Luton vs Doncaster | No draw — either team wins (12)Double chance (1X / 12 / X2) | 75%·Strong | 1.34* | 3–1 | Won |
| 2026-10-27 | 🏴 Barnet vs York | Barnet or Draw (1X)Double chance (1X / 12 / X2) | 75%·Strong | 1.33* | 3–1 | Won |
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. ROI and profit are therefore not published here.
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 match results become available from our data provider.
- Different competitions 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.