Grand Final Preview

So we enter our final round of the year with a tantalising matchup between the long-suffering Bulldogs and the über consistent Swans. It is fair to say that the two teams have had very different paths to the finals – the Swans finishing minor premiers and being high up in our rankings all year. The Dogs never really climbed much higher than 6th in our rankings all year and have battle both injury and variable form.

The path to glory

How different were these paths? Below, I’ve plotted both teams ELO rating throughout the season. We can clearly see that the Swans have built from about halfway through the year to emerge as the team our ELO model is most impressed with. On the contrary, the Bulldogs 2nd half to the season has been one of constant decline, losing ELO points nearly every week up until finals. What I find interesting is that the two teams were basically even at Round 12, with only 4 rating points separating them!

Also interesting is the sharp uptick for the Bulldogs in September. This clearly shows their performance in finals has been extraordinary and above expectation. It also perhaps suggests that they are hitting form at the right time of year (although our prior expectation is still that they are not as strong as Sydney) 1

# Create tag for the two GF teams
dat <- dat %>%
        mutate(gf = Team %in% c("Sydney", "WB"))

# Create ggplot
gg<-ggplot(filter(dat, !gf & Season == 2016), aes(x = Date, y = ELO_post, group = Team)) +
        geom_step(alpha = 0.5, color = "grey") +
        geom_step(data = filter(dat, gf & Season == 2016), alpha = 1, aes(color = Team)) +
        theme_fivethirtyeight() +
        labs(title = "Diverging seasons", 
             subtitle = "ELO rating of Bulldogs and Swans throughout the season")

# Add plussixonebanner

plot of chunk paths1

We can extend these out a bit to try to look at where these teams have come from over the last few years. Clearly the storyline of the Bulldogs is one that they have risen rapidly up the ranks. What is less apparent is that the Bulldogs (at least according to our ELO model), actually had that rapid rise last year. They in fact started this year more highly rated than they finished it!

# Create ggplot
gg<-ggplot(filter(dat, !gf & Season > 2013), aes(x = Date, y = ELO_post, group = Team)) +
        geom_step(alpha = 0.5, color = "grey") +
        geom_step(data = filter(dat, gf & Season > 2013), alpha = 1, aes(color = Team)) +
        facet_wrap(~Season, scales = "free_x") +
        theme_fivethirtyeight() +
        labs(title = "The path to glory", 
             subtitle = "ELO rating of Bulldogs and Swans throughout the last 3 seasons")

# Add plussixonebanner

plot of chunk paths2

Sydney’s form over those years shows just how strong they have been for such a long time.  Apart from a dip towards the end of last year, which coincided with a slew of injuries and Buddy’s well publicised time away from football, they have consistently hovered near the heights of traditional premiers. Their current rating is their highest in the last 3 years, while they haven’t dropped below average (1500 points) in a long time – more than 6 years to be exact.

dat %>%
        filter(Team == "Sydney" & ELO_post <= 1500) %>%
        arrange(desc(Game)) %>%
        select(Season, Round, Team, ELO_post) %>%
## # A tibble: 5 × 4
##   Season  Round   Team ELO_post
##    <dbl> <fctr>  <chr>    <dbl>
## 1   2010    R18 Sydney     1482
## 2   2010    R17 Sydney     1494
## 3   2010     R1 Sydney     1498
## 4   2009    R22 Sydney     1490
## 5   2009    R21 Sydney     1492

So, where are we now with these two teams? Clearly, Sydney is the higher rated team and is going to be a clear favourite in our system. Below is our rating system as it stands after the prelim, with the Bulldogs still sitting down in 7th spot!

plot of chunk ratings

Onto this weekend – before predicting this game, I wondered if Grand Finals were different beasts to normal games? My model is ‘optimised’ just across all games, with no changes for grand final matches. I haven’t looked out historical Grand Final performance before. How do we go at predicting them specifically?

# Only interested in the home team margin
dat_home <- dat %>%
        filter(TeamStatus == "Home")

gg <- ggplot(filter(dat_home, Round != "GF"), aes(x = PredMarg, y = Margin)) +
        geom_point(alpha = 0.6, color = "grey") +
        geom_point(data = filter(dat_home, Round == "GF"), alpha = 0.9, color = "#66999A") +

gg <- addBanner(gg)

plot of chunk gf

Pretty good actually! We have correctly tipped more than 85% of Grand Finals, which is above our long-term average of 69%. We have a mean absolute prediction error (MAPE) of 22.6, which again is much better than our long-term MAPE of 26.8. We also clearly have less ‘blowout’ games in Grand Finals, likely due to the fact that we are more likely to have two ‘relatively’ event matched teams than in a normal game.


Finally – onto our all important prediction. How do we rate the chances for the weekend? Based on these ELO ratings, a team with that big a lead and a nominal home ground advantage 2, we expect Sydney to comfortably get up. Considering we have a pretty good record in tipping Grand Finals, I’d like to be pretty confident in that tip. But the Bulldogs are, if nothing else, a pretty tantalising story to follow. My head says follow the model, my heart barks like a Dog!



  1. as a side note, I’ve decided to include my R code for those following along. It isn’t ‘reproducible’ as such as I’ve got a few custom functions that I’m calling but I’m hoping to get to that point by creating an AFL package that I can share!
  2. I should really call this home team advantage

2 thoughts on “Grand Final Preview”

  1. Hey James,

    Glad I came across your blog. Interesting note re: the 2015 Swans trough in relation with Buddy going down. Granted there may have been other factors(from memory there were a few other injuries)…but it’s a great visualisation as to how much a single player could potentially influence team performance (taking into account he’s not your average joe filling in at Full Forward).

    I thought the continuity of ELO growth between seasons for the Doggies is quite impressive. Fair to say most clubs who are trying to “build” towards a premiership(not your rebuilding teams i.e Lions, Carlton etc.) probably want to start each season playing at a level where they left off and improve off of that…

    At the same time the Swans have “flat lined” from end of 2014 – mid 2016. Whilst the late 2015 trough may be due to buddy’s absence, Could it be that the 18 month stall or flat line better reflects the true time period that Buddy was suffering and needed to overcome his mental hurdles? (Hard for anyone to really say so apart from Buddy himself, but just an interesting thought I had)

    There’s also great potential to see the ELO trends (delta ELO over the 4-5 games leading to the GF?) of eventual GF winners vs GF Losers. I wonder if it’s common for teams to peak in a SF or Prelims and then perform worse in the GF due to the importance of occasion or quality of opposition – might tie in with the common ideology that it’s preferred to compete in a scrappy prelim (and win) rather than a comfortable blowout?…And how many teams have managed to win the GF despite under performing compared to their ELO determined after their Prelim win?

    Just some erratic ideas and thoughts… Look forward to a response!

    1. Hi Brendan,

      Sorry for not replying to this sooner! I had long planned to reply with some graphs and maybe a companion piece but life got the better of me after the Grand Final and so haven’t had a chance to write anything.

      I’m back into it now so will be writing some more content in the coming weeks and getting the predictions going again.

      In response to your specific comment – delta ELO trend is something I hadn’t considered and would be interesting. I certainly think we’d be able to perhaps at least clarify some ‘types’ of grand final winners (i.e. ‘The best team’, ‘The rising force’, ‘The lucky ones’). I had a loose plan last year to explore the ‘anatomy’ of a premier in terms of their long term and short term progression to the grand final. Again, along similar lines I suspect we’d be able to group teams into broad categories such as Dynasties, One hit wonders, rapid risers etc etc. Would then be interesting to compare, say the Bulldogs progression, to historical teams and see which category they fall in and, more interestingly, what generally happens to teams from that category!

      I’ll add it to my ever-growing list of ideas for this seas. Glad you’ve enjoyed the blog and hopefully you continue to get something out of it!

Leave a Reply