Fremantle vs Brisbane Grand Final Prediction
Brisbane by four. That is my number for the Grand…
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.
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
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:
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 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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.