The KRUZEY AFL Betting Model: How We Predict Every Game

Michael Kruse
25 May 2026

Most footy tipping comes down to a gut feel, last week’s result, or whoever shouted loudest at the pub on Thursday night. We wanted something we could measure. So we built it.

The KRUZEY AFL betting model is the engine behind every AFL tip we publish. It works through every game of the round, predicts a final score for both teams, and tells us who it expects to win, by how much, and whether the bookmakers have the line in the wrong spot.

This page lifts the bonnet. We are not going to hand over the tuned parameters, because that part is genuinely ours, but if you know your way around a regression model you will recognise the engineering, and if you do not, you will still leave knowing exactly how it thinks.


What the model actually does

The model has one core job: predict a final score for each team in every AFL match. It treats that as two separate regression problems, one model for the home score and one for the away score.

Everything punters care about is then derived from those two numbers. The winner is the higher predicted score. The margin is the difference. The game total is the sum. Model the scoreline well and the head-to-head, line and total markets all fall out of the same engine.

It runs that prediction for all nine games of the round, every round, before a ball is bounced.

The AFL model at a glance

  • Architecture: a stacked ensemble (stacked generalisation) of regularised linear regressors feeding a ridge meta-learner
  • Targets: two separate regressions, home score and away score
  • Loss function: Huber loss, robust to blowout outliers
  • Features: around 47 engineered, pre-game-only inputs
  • Team ratings: a custom Elo system, recalculated chronologically after every match
  • Validation: expanding-window walk-forward backtest across seasons 2016 to 2025
  • Explainability: SHAP values computed for every prediction
  • Benchmarked against: random forest, gradient boosting, XGBoost, LightGBM and a neural network

Built on fifteen years of football

A model is only as good as the data it learns from. Ours is trained on thousands of AFL matches going back to 2011, more than fifteen seasons, with results, team statistics and conditions refreshed after every round.

Out of that history we engineer around 47 features for every game, and one hard rule governs all of them: every feature is computed from pre-game information only. The rolling-window calculations look strictly backwards, so no result can leak into a prediction of itself.

Data leakage is the single most common way a sports model flatters itself in testing and then falls over in the real world, and we engineer it out at the query level.

The features fall into themes. Roughly in order of how much weight they carry in the final prediction:

  • Team strength: the pre-game Elo rating gap between the two sides.
  • Recent scoring form: rolling offensive and defensive ratings over recent matches.
  • Momentum: win-rate and margin trends across a moving window.
  • Schedule and rest: days between games, six-day breaks, byes and rest differential.
  • Travel: distance to the venue and interstate effects.
  • Matchup and context: style mismatches, scoring environment, finals and early-season flags.

Many of these are differential features, framed as home minus away, because what predicts a result is rarely either side in isolation. It is the gap between them.


The rating engine: Elo, rebuilt for footy

The backbone of the feature set is a custom Elo rating system, the same family of maths used to rank chess grandmasters, rebuilt for Australian football. Every club carries a single rating.

After each game, points move from loser to winner through a logistic expectation function: beating a side you were expected to beat nudges your rating slightly, while a genuine upset moves it a long way. A margin-of-victory multiplier means a ten-goal belting shifts the ratings further than a one-point escape, and a home-ground adjustment prices in the value of playing at your own venue.

Between seasons, ratings are regressed toward the mean so last September does not over-define next March. The ratings are recalculated chronologically across the full history every time the data updates, so they are always current and never contaminated by hindsight.


Why linear models, and why stacked

Before settling on an architecture we ran a proper bake-off. The same pre-game feature matrix was fed to tree-based ensembles (random forest, gradient boosting, XGBoost, LightGBM) and to a neural network, then benchmarked against regularised linear approaches (ridge, lasso, elastic net).

For predicting AFL scores, the linear models matched or beat the heavier algorithms on out-of-sample error. Footy scoring is noisy and roughly additive, and that is exactly the terrain where well-regularised linear regression is hard to beat. The flashiest tool is not always the right one.

So the production model is a stacked ensemble. Several robust linear base learners each predict the score, and a ridge-regression meta-learner learns how best to combine them. The meta-learner is trained on out-of-fold predictions, so the stack cannot simply memorise its own training data.

The whole thing is fitted with Huber loss, a robust loss function that down-weights extreme residuals, so a freak hundred-point blowout cannot drag the model’s coefficients around. Winner, margin and total are all derived from the two score outputs rather than modelled separately, which keeps the system internally consistent.


How we know it actually works

Anyone can build a model that looks brilliant in-sample. The real test is out-of-sample performance, on games the model was never trained on. Here is the protocol we hold ours to.

It is an expanding-window walk-forward backtest. We train only on seasons before a target year, predict that entire season cold, then roll the window forward and repeat. We have done this for every season from 2016 to 2025: ten full years of out-of-sample football, more than two thousand games the model graded with no knowledge of the result.

Earlier in development, hyperparameters were tuned with grid search under time-series cross-validation, using five chronological splits rather than a random k-fold shuffle, because shuffling match data across time is itself a form of leakage. More than seventy model configurations went through that walk-forward gauntlet before one was promoted to production.

Think of it as never letting the model mark its own exam with the answers in front of it. Across that decade of unseen seasons, more than 2,000 out-of-sample games in total, it picks the winner about 67% of the time, with a score error averaging around 18 points per team. That is a real, measured edge over a coin toss, and these are the figures we trust precisely because the model never saw those games coming.


Reading the why: SHAP and the market check

A prediction you cannot interrogate is just a number. For every game, we compute SHAP values (Shapley additive explanations), a technique borrowed from game theory that splits a prediction into the exact contribution of each input.

SHAP is what lets us say, in plain language, that a tip leans the way it does because the rating gap and a rest advantage outweighed a heavy travel penalty. The model shows its working, feature by feature.

That prediction only becomes a betting view when it meets the market. Each round we compare the model’s projected margin and total against the bookmakers’ lines. Agreement means there is no edge worth chasing, and we say so. A gap is where a tip gets interesting.

We are disciplined about this: a disagreement with the market is a hypothesis, not a windfall, because betting markets are sharp and price most games efficiently. A human stays in the loop throughout. Odds are entered by hand, results are reconciled every round, and the pipeline aborts rather than publish tips on stale data.


What the model cannot do

The fastest way to lose your trust is to oversell, so here is the honest list.

It is team-level, not player-level.

There is no injury or team-selection input. A late out or a reshuffled forward line is not something the model sees.

Variance is real.

Two-in-three across a decade still means meaningful season-to-season swing. A score error averaging around 18 points per team is honest about how much noise sits inside a final margin.

Early rounds are harder.

Rolling-form features need a few games of fresh data, so the opening month carries wider error bars than the run home.

Finals behave differently.

Pressure and intensity shift, and finals are deliberately handled with extra caution.

Weather is a minor adjustment, not magic.

Conditions get a modest post-model correction for wind and rain on outdoor games, nothing more.

It is static between retrains.

The score model is a saved artefact, refreshed deliberately rather than continuously, so it can lag a genuine structural shift until the next retrain.

It is not a money-printing machine.

No model is. It is built to find an edge, not to guarantee a profit.


The bottom line

The KRUZEY AFL betting model will not win you every multi.

What it is: a stacked, regularised, leakage-controlled regression system, validated walk-forward across ten unseen seasons and explained game by game with SHAP.

What it is not: a guarantee. Treat it as one rigorously-built input into your own thinking, never the whole story.

Our latest AFL tips - Afl tips are published every round, and you can line them up against the odds at the bookmakers we rate on our AFL betting sites - Afl betting sites page.

A note on betting responsibly. Our tips are predictions and opinion, not financial or betting advice. A model can shift the odds in your favour, but it cannot remove the risk. Set a budget, stick to it, and only ever bet what you can afford to lose. You must be 18 or older to bet in Australia. For free and confidential support, call Gambler’s Help on 1800 858 858 or visit gamblinghelponline.org.au.


AFL betting model FAQs

How do AFL betting models work?

An AFL betting model predicts a final score for each team in every game, then derives the winner, margin and total from those two numbers. The KRUZEY model does this with a stacked regression ensemble that reads team ratings, recent form, rest, travel and conditions, then compares the result against the bookmakers’ line.

What data does the KRUZEY AFL model use?

It learns from thousands of AFL matches since 2011, drawing on results, venues, team-strength ratings, recent attacking and defending form, rest, travel and conditions. It does not use team selections, injuries or any player-level data.

How accurate is it, and how was it tested?

Across ten unseen seasons from 2016 to 2025 (more than 2,000 out-of-sample games), the KRUZEY AFL model picks the winner about 67% of the time, with a score error averaging around 18 points per team. It is validated with expanding-window walk-forward backtesting, and season-to-season swings in accuracy are expected for a sport this variable.

Is the model based on AI or machine learning?

Yes and no. The model uses machine-learning techniques such as regularised regression, stacked ensembles and SHAP feature attribution, but it is not a black-box AI. It is a disciplined statistical system, deliberately built so every prediction can be decomposed and explained.

Can a betting model guarantee winning bets?

No, and anyone who tells you otherwise is selling something. A good model tilts the odds in your favour over the long run, but AFL carries real week-to-week randomness and no system can promise a profit on any single game or round.

Author Michael Kruse

Michael founded KRUZEY after 15+ years betting on Australian racing - most of it learning expensive lessons the hard way. He's obsessive about form analysis and has a soft spot for finding value in the quaddie markets everyone else ignores. At KRUZEY, Michael covers racing tips, bookmaker reviews, and anything involving crunching numbers to find an edge. He's up before dawn most race days studying the fields, and reckons a well-constructed quaddie is one of life's simple pleasures. Connect on LinkedIn Email Contact