MoSHBODS 2026 - A Detailed Description

MoSHBODS

A Deep Dive into the AFL Offensive & Defensive Rating System

An explanation of the algorithm behind the MoSHBODS ratings model

Introduction

MoSHBODS is a team rating system for Australian Rules Football (AFL) that separately tracks each team's offensive and defensive strengths. Rather than assigning a single Elo-style number to each club, MoSHBODS maintains two distinct ratings per team — one capturing how well a team scores, and one capturing how well it prevents scoring. The name stands for MatterOfStats Scoring SHot Based Offence Defence System.

The model is built on the insight that scoring and conceding are separable, partially independent dimensions of team quality. A team with a great attack and a leaky defence should look very different from a team that grinds out low-scoring wins through defensive excellence — and MoSHBODS is designed to distinguish between them.

This article walks through every component of the algorithm: how raw scores are standardised, how a Venue Performance Value (VPV) captures ground familiarity, how ratings are updated after each game, and how the system is ultimately used to forecast scores and win probabilities.

1. Data Preparation

1.1 The Scoring Currency: Scoring Shots

AFL scorelines have changed substantially since 1897, making naive comparison of raw totals across eras misleading. MoSHBODS addresses this by working in two parallel scoring currencies:

  • Raw Score — the familiar points total (goals × 6 + behinds × 1)
  • Scoring Shots (SS) — a count of all scoring shots (goals + behinds), i.e. the total number of times a team scored in any form

Using both of these currencies allows MoSHBODS to separately estimate two distinct skills: the ability to generate scoring opportunities, and the ability to convert those opportunities into goals.

1.2 The 2020 COVID Season Adjustment

The 2020 season was played under shortened match conditions due to COVID-19 restrictions. To make these scores comparable to standard-length games, all 2020 scoring figures (raw scores, scoring shots, and margins) are scaled by a factor of 1.25 before being entered into the model:

Adjusted Score2020 = Raw Score2020 × 1.25

Adjusted SS2020 = Raw SS2020 × 1.25

This ensures the 2020 season contributes sensibly to rolling historical averages and rating updates without distorting comparisons with full-length games.

1.3 Score Standardisation

Because scoring levels vary across eras (low-scoring football in the early decades, high-scoring in the 1970–80s, and a gradual compression since), MoSHBODS does not update ratings using raw points. Instead, both raw scores and scoring shots are standardised relative to a rolling historical baseline.

For every game, the system computes a rolling mean and standard deviation of all scores in a window of approximately δ × 3650 days before the game date, where δ is a tuned parameter (Days_To_Average_for_Score). Scores are then z-scored:

zscore = (Score − μwindow) / σwindow

zSS = (SS − μSS,window) / σSS,window

For the very first year in the dataset, fixed baseline statistics from that year are used in place of rolling values.

1.4 The Adjusted Score Blend

After standardisation, the model blends the raw score z-score and scoring shot z-score using a tuned mixing parameter αadj (Adjustment_Factor):

ScoreAdj = αadj × zSS + (1 − αadj) × zscore

This blended quantity is the figure that drives all rating updates. Weighting SS more heavily rewards shot generation and reduces sensitivity to goal-kicking accuracy variance, while the retained raw-score component ensures that conversion rate still counts for something.

2. The Venue Performance Value (VPV)

2.1 What Is VPV?

Home ground advantage in AFL is real, but it is not uniform. Some teams have a dominant record at their traditional venue; others are indifferent to location. Also, teams when playing away perform differently at some venues than at others. The Venue Performance Value (VPV) is the model's way of capturing this ground-specific effect for each team.

For a given team at a given venue on a given date, VPV is computed as the mean excess adjusted margin over what the ratings would have predicted, across all previous visits to that venue within a rolling time window of δVPV × 3650 days.

2.2 Excess Performance Definition

The excess performance in a historical game is:

Excessi = (ScoreAdj,i − OppScoreAdj,i) − (Offi + Defi − Offopp,i − Defopp,i)

That is: how much better (or worse) did the team perform at this ground than their ratings at the time predicted? This residual captures the component of performance explained by the venue rather than the teams' relative strengths.

2.3 Regression to the Mean

Raw excess performance figures are scaled by a mean-regression multiplier λ (Mean_Reg) before averaging, which shrinks estimated VPVs toward zero and prevents overreacting to small samples:

Ave_Excess = λ × mean(Excessi over window)

2.4 The VPV Multiplier (Sample Size Weighting)

To reflect uncertainty when few games have been played at a venue, the average excess performance is multiplied by a weight that increases with sample size, capped at a reference value Gref (Games_Before_Average × 100):

w = min(n, Gref) / Gref

where n = number of historical games at venue in window

When n → 0, the weight collapses to zero and the default VPV takes over. When n ≥ Gref, the sample is considered sufficient and the weight plateaus at 1.

2.5 Home Region vs. Away Region

Teams are assigned a home region (e.g. Greater Melbourne, Queensland, West Australia, Adelaide, Sydney). Venues are similarly tagged.

  • If the team's region matches the venue's region: VPV = w × Ave_Excess
  • If they are in different regions (neutral or away venue): VPV = w × Ave_Excess + (1 − w) × VPVdefault

The out-of-region default VPVdefault (Out_Of_Region_Default_VPV) is a negative constant, reflecting the fact that teams unfamiliar with a ground in a foreign region typically underperform their rating.

2.6 Finals Adjustments

VPVs are moderated during finals to reflect the reduced home-ground effect that typically applies in knockout games, where crowd and travel factors are partially equalised. Separate scaling fractions are applied depending on whether the game is a non-Grand Final final or the Grand Final, and whether the team is playing in its home region or not:

VPVfinal = ffinal,same × VPV   (non-GF, same region)

VPVfinal = ffinal,diff × VPV   (non-GF, different region)

VPVGF   = fGF,same × VPV    (Grand Final, same region)

VPVGF   = fGF,diff × VPV    (Grand Final, different region)

The parameters ffinal,same, ffinal,diff, fGF,same, fGF,diff are all tuned during optimisation.

2.7 Net VPV

For each game, both teams have their own VPV calculated independently. The net venue effect used in all game calculations is:

VPVnet = VPVown − VPVopp

3. Rating Mechanics

3.1 Two Ratings, Two Margins

Each team carries two independent ratings: an offensive rating (Off) and a defensive rating (Def). Both start at zero and evolve over time. The expected margin from a team's perspective is computed in two ways:

Expected_MarginOff = (Offown − Defopp) + VPVnet / 2

Expected_MarginDef = (Defown − Offopp) + VPVnet / 2

These two expected margins represent the "offensive" prediction (how well should I score vs. their defence?) and the "defensive" prediction (how well should I defend vs. their attack?). They are used to update the offensive and defensive ratings respectively.

3.2 Actual Margins for Rating Updates

The actual analogues for the rating update use the blended adjusted scores and a notional expected score of zero (since everything is already in standardised space):

Actual_MarginOff = ScoreAdj,own − 0 = ScoreAdj,own

Actual_MarginDef = 0 − ScoreAdj,opp = −ScoreAdj,opp

The offensive rating is updated based on how much the team's own adjusted score exceeded the offensive expectation; the defensive rating is updated based on how much the team suppressed the opponent relative to the defensive expectation.

3.3 The Learning Rate (Alpha)

The speed at which ratings update after each game is governed by α. For regular-season games, α decays exponentially as the season progresses, reflecting the principle that early-season results should carry more updating weight (larger sample uncertainty) than late-season results (where the team's quality is already well-estimated):

αround = α2 + α1 × exp(α3 × r / R)

where r = current round number, R = season's maximum round

The three parameters α1, α2, α3 are all optimised. In practice, α3 is negative, causing α to decrease over the season. For finals, a fixed rate αfinals is used instead.

3.4 The Rating Update Equations

Armed with the expected and actual margins and the learning rate, the new ratings are:

Offnew = Offold + α × (Actual_MarginOff − Expected_MarginOff)

Defnew = Defold + α × (Actual_MarginDef − Expected_MarginDef)

If the team scored better than expected offensively, the offensive rating rises. If the opponent scored less than expected against the team's defence, the defensive rating rises. The two dimensions update independently, so a team can improve its offensive rating without any change to its defensive rating in the same game.

3.5 Season-Start Carryover

At the start of each new season, ratings are not simply carried forward in full. Instead, a carryover fraction γ (Carryover) blends the end-of-previous-season rating with an initial rating of zero:

Offseason start = γ × Offend of last season + (1 − γ) × 0

Defseason start = γ × Defend of last season + (1 − γ) × 0

This shrinks all teams toward zero at the start of each year, acknowledging that rosters change over the off-season and that past form is an imperfect guide to future performance. A brand new team (its very first ever game) always starts at zero.

3.6 Cross-Season Rating Normalisation

To prevent the aggregate of all ratings from drifting away from zero, the system normalises ratings at the start of each season. Before the first game of a new year, it computes the sum of all offensive and defensive ratings across all competing teams and subtracts the average from each team:

Offset = ∑(Offi + Defi) / (2N)

Offi ← Offi − Offset,   Defi ← Defi − Offset

This ensures the rating system remains a zero-sum measure: if one team goes up, another has implicitly gone down, which is the correct interpretation of relative team strength.

4. Converting Ratings to Expected Scores

4.1 Raw Expected Margins in Standardised Space

From the ratings and VPVs, the system computes expected scores for each team in standardised (z-score) space:

E[zown] = Offown − Defopp + (VPVown − VPVopp) / 2

E[zopp] = Offopp − Defown + (VPVopp − VPVown) / 2

The net margin expectation is E[zown] − E[zopp], which equals VPVnet + (Offown − Defopp) − (Offopp − Defown). This is the core prediction of the model expressed in a scale-invariant unit.

4.2 Total Score Multiplier

The expected z-scores are then adjusted by a total score multiplier φ that rescales the combined total up or down. Separate multipliers are used for home-and-away games and for finals:

E[zown]adj = E[zown] + 0.5 × (φ − 1) × E[ztotal]

E[zopp]adj = E[zopp] + 0.5 × (φ − 1) × E[ztotal]

where E[ztotal] = E[zown] + E[zopp]

This operation preserves the expected margin (since both scores are shifted by the same amount) while scaling the expected total. The home-and-away multiplier φHA is tuned to be less than 1 in the current parameterisation, pulling total scores slightly lower than the raw rating sum would suggest.

4.3 Back-Transforming to Real Points

The final expected scores in actual points are recovered by reversing the standardisation:

E[Scoreown] = μwindow + E[zown]adj × σwindow

E[Scoreopp] = μwindow + E[zopp]adj × σwindow

where μwindow and σwindow are the rolling league-wide mean and standard deviation of scores in the look-back window. This produces predicted point totals that are directly comparable to the actual scoreboard.

For 2020 games, the expected scores are divided by 1.25 to convert back to the compressed match-length scale before output.

5. Expected Conversion Rate and Implied Scoring Shots

5.1 Historical Conversion Rate

The expected score in points can be decomposed into scoring shots and a conversion rate (the proportion of scoring shots that become goals). For each upcoming game, the system looks back over a rolling window and computes a league-wide expected conversion rate for home and away teams separately:

Exp_Conv = ∑(Score − SS) / 5 / ∑(SS)   over window

This formula expresses the expected number of goals per scoring shot: each goal contributes 5 extra points above a behind, so dividing the excess points by 5 gives the expected number of goals, and dividing by total SS gives the conversion rate.

5.2 Implied Expected Scoring Shots

Given the expected points total E[S] and the expected conversion rate c, the implied expected scoring shots E[SS] is derived by solving the score equation:

E[Score] = E[SS] × (c × 6 + (1 − c) × 1) = E[SS] × (5c + 1)

⇒ E[SS] = E[Score] / (5c + 1)

This decomposition is used downstream in the score simulation engine.

6. Score Simulation and Win Probability

6.1 The Two-Stage Scoring Model

To estimate win probabilities and score distributions, MoSHBODS uses a Monte Carlo simulation that models each game as a two-stage process:

  • Stage 1: Simulate scoring shots. The home and away scoring shots are drawn from Generalised Poisson distributions with a bivariate correlation structure, reflecting the reality that high-scoring games tend to be high-scoring for both teams.
  • Stage 2: Simulate conversion (goals vs behinds). Given the simulated number of scoring shots, each shot is converted to a goal or behind through a Beta-Binomial draw, capturing the extra-binomial variability in kicking accuracy.

6.2 Generalised Poisson Scoring Shots

For each team, the scoring shots SS is modelled as a Generalised Poisson variable with mean λ (the expected SS from Section 5) and an overdispersion parameter ω. The dispersion is set so that the standard deviation of the distribution matches an empirically estimated value σSS:

ω = 1 − √λ / σSS

The standard deviation σSS is itself a step function of the expected SS level, reflecting how variability in shot generation increases with expected volume.

6.3 Bivariate Correlation via Gaussian Copula

The home and away scoring shot draws are not independent — weather, ground conditions, and game pace affect both teams simultaneously. A Gaussian copula is used to induce the desired bivariate correlation ρ = −0.11 between them:

1. Draw (U1, U2) from a bivariate normal with correlation matrix [[1, ρ], [ρ, 1]]

2. Transform to uniform: (V1, V2) = (Φ(U1), Φ(U2))

3. Apply the inverse CDF of each team's GP distribution to get SS1, SS2

The negative correlation (ρ ≈ −0.11) reflects the slight tendency for games to be more one-sided than models assuming independent scoring would predict: when one team generates many scoring shots, the other tends to generate slightly fewer.

6.4 Beta-Binomial Conversion

Given SS scoring shots, the number of goals G is drawn from a Beta-Binomial distribution:

G | SS ~ BetaBinomial(n = SS, prob = c, θ)

The concentration parameter θ controls the extra-binomial variance in conversion. Separate values are used for home (θhome) and away (θaway) teams, reflecting the greater consistency of home team kicking. The final score is then:

Score = G × 6 + (SS − G) × 1

6.5 Win Probability Estimation

After simulating n = 10,000 game instances, the home team win probability is estimated as:

P(Home Win) = [#{scorehome > scoreaway} + 0.5 × #{scorehome = scoreaway}] / n

The simulation also produces estimates of the standard deviation of the margin and total, which are used for line and total betting analysis.

6.6 Analytic Approximation (Normal Model)

As a cross-check, the model also computes an analytic win probability using a normal approximation to the margin distribution. The margin variance is approximated as:

Var(Margin) ≈ a × E[Sown]b + c × E[Sopp]d + e × E[Sown]b/2 × E[Sopp]d/2

The win probability is then P(Home Win) = Φ( (E[Sown] − E[Sopp]) / √Var(Margin) ). The model also uses an analogous equation to estimate the variance of the total score. This analytic path serves as a computationally cheap sanity check against the full simulation.

7. Parameter Summary

The table below summarises the key parameters of the MoSHBODS system and their roles. Actual values are omitted here; they are determined by optimisation against historical data.

Parameter Symbol Role
Alpha_P1α1Determine the shape of the adjustment factors used as the season progresses
Alpha_P2α2
Alpha_P3α3
Alpha_FinalsαfinalsFixed learning rate for finals games
Adjustment_FactorαadjWeight of SS vs. raw score in blended adjusted score
CarryoverγFraction of end-of-season rating carried to next year
Mean_RegλRegression multiplier for VPV average
Games_Before_AverageGref / 100Reference game count for VPV sample-size weight
Days_To_Average_for_VPVδVPVVPV rolling window (in units of ~10 years)
Days_To_Average_for_ScoreδscoreScore standardisation rolling window
Out_Of_Region_Default_VPVVPVdefaultDefault VPV for away-region venues
Total_Multiplier_HAφHATotal score scalar for regular season
Total_Multiplier_FinalφfinalTotal score scalar for finals
Final_VPV_Fraction_Same_Stateffinal,sameVPV scaling for finals (home region)
Final_VPV_Fraction_Diff_Stateffinal,diffVPV scaling for finals (away region)
Grand_Final_VPV_Fraction_Same_StatefGF,sameVPV scaling for the Grand Final (home region)
Grand_Final_VPV_Fraction_Diff_StatefGF,diffVPV scaling for the Grand Final (away region)

8. Outputs

For each game in the current round, MoSHBODS produces the following outputs:

  • Offensive and defensive ratings for both teams entering the game
  • Net Venue Performance Value (VPVown − VPVopp)
  • Expected score for each team (in actual points)
  • Expected margin and expected total (also in actual points)
  • Home team win probability (simulation-based and analytic)
  • Standard deviation of the margin and total (simulation-based and analytic)

After each completed game, the ratings for both teams are updated and stored. At the end of the season, each team's latest offensive and defensive ratings — and their combined sum — provide a final season snapshot.

Conclusion

MoSHBODS is a layered but coherent system. Its core insight is that offensive and defensive quality are separable, and that tracking them independently produces more nuanced and predictively powerful team ratings than a single composite number.

The system's handling of era-normalisation (through rolling z-scoring), ground effects (through VPV), and intra-season dynamics (through a decaying learning rate) makes it robust across the full 130-year span of VFL/AFL football. The two-stage simulation engine ensures that win probabilities properly reflect the fat-tailed, correlated nature of AFL scoring rather than relying on a simple normal approximation.

The combination of principled structure and empirically tuned parameters gives MoSHBODS both interpretability and accuracy — a rare combination in sports modelling.


ChatGPT and MoSHBODS: Part 2

In the previous blog post here we gave ChatGPT a very broad commission, allowing it to comment on the entire history of the men’s V/AFL competition and MoSHBODS’ performance across that whole period.

That provided some useful and interesting content but today I want to apply a much narrower focus and have ChatGPT review MoSHBODS’ performance only for the period since 2015, which contains all of the years on which the current version of MoSHBODS was trained.

Read More

An Analysis of Strength of Schedule for the Men's 2026 AFL Season

The men’s AFL fixture for 2026 was released this last* week and, as is tradition, we’ll analyse it to see which teams we think have done better or worse than others.

In particular, we’ll look for answers to two questions:

  1. Which teams fared best and which worst in terms of the overall difficultly of the teams they face in their schedule (the Strength of Schedule analysis) before and after adjusting for venue effects? Our measure here will be the MoSHBODS Combined Ratings of a teams’ opponents, which we’ll adjust for venue effects for the supplementary analysis

  2. Which teams fared best and which worst in terms of the matchups they missed out on given that only 23 games out of a possible 34 all-plays-all fixture are played (the Impact of Missing Schedule analysis)? Our measure here will be how much more or less likely would each team be to finish in the Top 10 ladder positions were the missing parts of the fixture actually played.

(* the final set of simulations took days to run - I won’t get into why)

Read More

Building Your Own Men's AFL Game Score Progression Simulator

In this (long) blog I’ll walk you through the concepts and R code behind the creation of a fairly simple score progression simulator.

(There’s a link for you to download the entire code yourself at the end of the blog.)

All we’ll be interested in are “events” - period starts, period ends, goals and behinds - and the algorithm will determine for us, given the event that’s just occurred, what the next event is, and how far away in time it will take place.

To be able to do that, the first thing we’re going to need is some data about the typical time between events based on historical games, which we can obtain using the Swiss Army knife of footy data, the fitzRoy() R package.

Read More

How Many Disposals Do You Need to Get the Coaches' Attention?

In the previous blog we investigated the differences between coaches and umpires in the player statistics they appear to take most notice of when casting their respective player-related votes.

We found some similarities (both are very influenced by disposal counts), and some differences (coaches are more influenced by whether the player is on the winning or losing team), but one thing we didn’t investigate was the specific nature of the relationships between individual player metrics and voting behaviour. For example, we know that disposals are an important metric in determining Brownlow and Coaches’ votes, but we don’t know exactly how the number of votes that a player receives varies as the disposal count changes.

Read More

Do Umpires and Coaches Notice Different Things In Assigning Player Votes?

At the conclusion of each game in the men’s AFL home and away season, umpires and coaches are asked to vote on who they saw as the best players in the game. Umpires assign 3 votes to the player they rate as best, 2 votes to the next best, 1 vote to the third best, and (implicitly) 0 votes to every other player. It is these votes that are used to award the Brownlow Medal at the end of the season.

Similarly, the coaches of both teams are asked to independently cast 5-4-3-2-1 votes for the players they see as the five best, meaning that each player can end up with anywhere between 0 and 10 Coaches’ votes.

The question for today is: to what extent can available player game statistics data tell us whether and how coaches and umpires differ in how they arrive at their votes.

(Note that we’ll not be getting into the issue of individual umpire or coach quirks, snubs, or biases, and instead be looking at the data across all voting umpires and coaches.)

Read More

Measuring Strength of Schedule in Terms of Expected Wins

A few weeks back I analysed the men’s 2025 AFL schedule with a view to determining which teams had secured relatively easier overall fixtures, and which had secured relatively more difficult overall fixtures.

We investigated various approaches there and reached some conclusions about relative team fixture difficulty, but none of the methods provided an intuitive way to interpret the outputs.

On a related note, this week I had a kind email from a reader who suggested that there might be an opportunity to continuously update teams’ ‘fixture difficulty rating’ (which is just another term for strength of schedule) during the season, as this service was frequently provided by various fantasy leagues for English Football and other sports.

All of which got me to revisiting my strength of schedule methodology.

Read More

Simulation Replicates and Returns to a Perfect Model

The Situation

We’ve built a model designed to estimate the probability of a binary event (say, for example, the probability that the home team wins on the line market in the AFL).

It’s a good model - very good, in fact, because it is perfectly calibrated. In other words, when the true probability of an event is X% it’s average estimate of the probability of that event is X%.

Those probability estimates, however, are the result of running some simulation replicates with a stochastic element, which means that those estimates will diverge from X% to an extent determined by how many replicates we run.

Read More

We Need to Talk About MoSHBODS ...

Last year’s men’s seasons results for MoSHBODS and MoSSBODS - as forecasters and as opinion-sources for wagering - were at odds with what had gone before.

Other analyses have suggested that the MoS twins might have been a bit unlucky in the extent to which 2024 was different from bookmaker expectations, and I’ve never been one for knee-jerk reactions to single events, but the performance has nonetheless made me think more deeply about the algorithms underpinning the two Rating Systems, more details on which were provided in this blog from 2020, and from the blogs to which it links.

Read More

What if Squiggle Used xScore?

Over the past few blogs (here and here) I’ve been investigating different methods for untangling skill from luck in forecasting game margins and, in this blog, we’ll try another approach, this time using what are called xScores.

One source of randomness in the AFL is how well a team converts the scoring opportunities it creates into goals versus behinds. Given enough data, analysts far cleverer than I can estimate how often a shot of a particular type taken from a particular point of the field under particular conditions should result in a goal, a behind, or no score at all.

So, we can adjust for that randomness in conversion by replacing the result of every scoring opportunity by the average score that we would expect an average player to generate from that opportunity given its specific characteristics. By summing the expected score associated with every scoring opportunity for a team in a given game we can come up with an expected score, or xScore, for that team.

For this blog, I’ll be using the xScores created by Twitter’s @AFLxScore for the years 2017 to 2020, and those created by Twitter’s @WheeloRatings for the years 2021 to 2024.

Let’s look firstly at the season-by-season Squiggle results of using, as a game’s margin, the xScore margin instead of the actual margin.

Read More

Squiggle Performances Revisited: Alternative Sources of Truth

In the previous blog, I compared Squiggle forecasters’ actual margin prediction MAE results with a distribution of potential MAE outcomes from the same forecasts across 10,000 simulated 2024 season as one way of untangling the skill and luck portions of those actual results.

Those simulations require us to select “ground truth” for the underlying expected margin in each game. In the previous blog we used bookmaker data with an added random component of a Normal variable with mean 0 and standard deviation 8 as that ground truth.

Read More

Eight Years of Squiggle Performance

The Squiggle website is a place where forecasters can post their forecasts for the winning team and winning margin, and provide probability estimates for upcoming games of men’s AFL football, and see how well or otherwise they perform relative to other forecasters. The only criteria for posting there is that the forecasters must have a history of performing “reasonably” well, and must not include any human-related inputs such as bookmaker prices in their models.

It’s been running since 2017 and, since 2018, has included a derived forecater, named s10, which is a weighted average of the 10 best Squiggle models, based on mean absolute margin error, from the previous season. The MoS model had been included in s10 in every year from 2018 to 2024, but will be absent in 2025 due to a relatively lowly 22nd place finish.

In this blog, among other things, I want to get a sense of the extent to which that apparently below-average performance might be attributed to skill versus luck.

Read More

Is Favourite-Longshot Bias Evident in Bookmaker Data for the AFL?

More than once here on the MoS website we’ve looked at the topic of favourite-longshot bias (FLB), which asserts that bookmakers apply a higher profit margin to the prices of underdogs than they do to favourites. In one MoS piece (15 years ago!) I had more of a cursory look and found some evidence for FLB using 2006 to 2008 data, and, in another piece, a few years later I had a more detailed look and found only weak to moderate evidence using opening TAB data from 2006 to 2010.

At this point I think it’s fair to say that the jury is still out on FLB’s existence, and waiting for more convincing evidence either way (and very unhappy at having been sequestered for 13 years in the meantime).

Read More

The Relationship Between Expected Victory Margins and Estimated Win Probabilities

There are no doubt a number of viable ways of doing this, but one obvious approach is to fit a logistic equation of the form shown at right.

This provides an S-shaped mapping where estimated win probabilities respond most to changes in expected margins when those margins are near zero. It also ensures that all estimated probabilities lie between 0 and 1, which they must.

I’ve used this form of mapping for many years with values of k in the 0.04 to 0.05 range, and have found it to be very serviceable. I’ve also previously fitted it to bookmaker data and found that it generally provides an excellent fit.

Read More

Are V/AFL Scores (Still) Like Snowflakes?

Almost 10 years ago I wrote a blog that, among other things, noted that the score progressions - the goals.behinds numbers at the end of each quarter for both teams - were unique for every game ever played, regardless of the order in which you considered the two teams’ score progressions, home first then away, or away first and then home, choosing at random for every game. At that point, the statement was true for 14,490 games.

It seemed pretty startling then but, as of the end of 2024’s Round 9, the statement is STILL true, and that’s now for 16,487 games. V/AFL games remain as snowflake-like as ever.

Read More