Skip to main content

How Alphr's AFL Model Works, Evidence, Validation & Track Record

A high-level architecture overview lives on How AFL predictions work. This page is the evidence layer, how the model is validated, why historical numbers can be trusted, how we measure closing line value, and the public proof points that separate Alphr from a self-reported tipping service.

12
Training seasons
2012 – 2023
2024
Validation season
early-stopping only
2025
Blind test season
held-out, unseen
≥7%
Edge filter
published-tip threshold

1. Temporal train / val / test split

Sports betting models are notoriously easy to overfit. A random train/test split would let the model peek at future matches when computing ELO and rolling form. Alphr uses a strict temporal split that mirrors how the model is used in production:

Phase
Used for
Seasons
Train
Model fitting (XGBoost ensembles)
2012 – 2023
Validate
Early stopping, hyperparameter tuning
2024
Blind test
Final performance measurement (unseen)
2025

The 2025 AFL season was never seen during training or tuning. Every accuracy number on the accuracy page for 2025 is a true out-of-sample result.

2. Anti-leakage feature engineering

Every one of the 159 features is computed with point-in-time logic, the model is only ever shown information that physically existed before the first bounce. Concretely:

  • Team and positional player ELO ratings are snapshotted before the match is added to the database.
  • Rolling form (last 5/10) uses SQL window functions with ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING , strict prior-only.
  • Weather, match-day lineups, rest days and venue stats use only data published before the match started.
  • Sportsbet odds are stored at lock-in, not at settlement, so the model never sees the closing line during training.

3. The ≥ 7% edge filter, why most matches aren't tipped

Predicting AFL winners is the easy part, Sportsbet's opening line is already a sharp prediction. The hard part is finding bets where the model disagrees enough with the market to overcome the vig. Alphr only publishes a tip when:

edge = model_prob − (1 / odds)
if edge ≥ 0.07 → publish tip

This is why some rounds carry more tips than others, the filter is ruthless. See the highest-edge picks of the current round on AFL Best Bets.

4. Closing line value (CLV), the gold standard

Strike rate is volatile in small samples. CLV, the difference between the odds you took and the odds the market settled at, is the long-run signal that distinguishes a real model from a lucky one. Each tip on Alphr records the Sportsbet price at publication. When the market closes on the price below what we tipped at, that's positive CLV, evidence the model genuinely beat the market on that pick.

Most paid tipping services don't publish CLV because it's the one metric they can't fake.

5. 2025 AFL blind-test performance

81.9%
H2H strike rate
177 / 216 matches
76.9%
Margin direction
166 / 216
60.2%
Over/Under SR
130 / 216
0.8808
H2H ROC-AUC
discrimination
73.0%
Combined SR
648 published tips
100%
Public log
every tip on /afl/accuracy

Full round-by-round numbers update automatically on the AFL accuracy tracker. Every settled tip is one click from this page, nothing is hidden.

6. The stack, built in the open

  • Language: Python 3.11 (model worker), TypeScript / Next.js (this site).
  • Models: XGBoost for win classification + margin regression + dual-score regression (4-model ensemble).
  • Ratings: custom AFL team ELO with margin-adjusted K and 40% season regression; dual-track positional player ELO for midfielders, forwards, defenders and rucks aggregated across the match-day 22.
  • Data: Supabase Postgres, sports_afl_matches + sports_tips tables, refreshed nightly.
  • Deployment: Railway-hosted Python worker, Vercel ISR front-end (1-hour revalidation on match pages).

7. What the model can't do

Honest disclosure matters. The model has known weaknesses:

  • Round 1 of any season is noisy, ELO has just regressed 40% toward 1500 and rolling form is from the prior year.
  • Late changes (lineup omissions < 2 hours pre-match) are partially captured but not perfectly, Alphr locks in tips at publication time.
  • Edge-betting variance is real. An 80% head-to-head strike rate still loses multiple bets in a row at times. Totals (60.2%) are noisier still. Bankroll management matters more than any single tip.
See live accuracy
Every settled AFL tip with W/L status →

Latest AFL Tips

See all AFL tips →

More AFL Resources

All AFL tips →