SailorFanTalk

[Specials] The Justice Table – an SPL Mid-Season Review by Chin Heng

Just as we are about to embark on the 2nd half of the 2024/25 SPL season, I thought it would be a good opportunity to do a mid-season statistical review of Sailors’ performances so far, and attempt to provide some insights into what we can expect in the 2nd half of the season.

If you have read recent SFT articles, you would have realized that Eddy and I have been manually tracking SPL stats from this season (because nobody else seems to be doing it). Now that we have half a season worth of data, we can attempt to draw some meaningful conclusions from this data set through developing a ‘Justice Table’.

(Editor’s note: Please note also that xG stats are taken from sofascore.com – Chin Heng painstakingly tracks them every game to come up with this table)

Justice Table – Simi Lai Eh?

Football is a low-scoring, high-variance game where the better team doesn’t always win. There is a lot of luck involved in each game, so the actual SPL table contains plenty of ‘noise’. Unlucky finishing, a bad offside call, or an unfortunate deflection all have an impact on the actual result of a game. What we attempt to do with the Justice Table is to remove such variance from the equation and find out what the league table would look like in a world where teams were ranked based on their performances alone.

Methodology

As we demonstrated in earlier articles, it is possible to do a Monte Carlo Simulation of each match using raw xG data of each shot that occurred in the game. In order to generate a Justice Table from xG data:

  1. We first independently simulate whether each shot is scored using a random number generator (i.e. a shot with 0.25xG is scored 25% of the time), and sum up the results of every shot for both teams to get a simulated match result.
  2. Each match is simulated an arbitrarily large number of times (I used 50,000 times for our case) and we calculate the number of wins/losses/draws that occurred in the sample to calculate the expected points for each team in a particular game. For example, if we simulate Sailors vs Young Lions 50,000 times and find that Sailors win 70% of the simulations, 20% end in a draw, and Young Lions win 10% of the time, Sailors’ expected points for that game would be (70% x 3pts + 20% x 1pt + 10% x 0pts) = 2.3 points while expected points for Young Lions would be (10% x 3pts + 20% x 1pt + 70% x 0pts) = 0.5 points. (Note that expected points for both teams do not sum up to 3 points)
  3. We repeat this for every match in the league and sum up the expected points for each team to form a league table using expected points – the Justice Table.

What is xG?

xG is essentially just the probability of a goal being scored from a particular shot, hence using xG to generate a league table removes the element of luck from a result. In our last game against Tampines, Shawal scored from 2 chances of 0.04 and 0.12 xG respectively, allowing us to escape with a point. However, simulations showed that we were extremely lucky to get anything from the game, with Tampines winning 87.3% of simulations and a draw occurring only 10.2% of the time. On another day, those 2 Shawal chances could have gone wide or be saved by the keeper and we would now be level on points with Tampines.

Note that there are some flaws in the xG metric, most notably that it ignores the game state. A team that scores a goal early on may choose to sit back and defend that lead, inevitably generating less xG for the rest of the game and conceding more xG, making the game appear closer than it actually was.

The xG concept also assumes that all players have roughly the same finishing ability, and what differentiates a good striker from an average one is their ability to get themselves into positions of good xG quality in the first place.

However, this model still passes the ‘eye test’ as we often expect to see better teams dominating a game by generating more and better-quality chances, which in turn accumulates higher xG and expected points to quantify their dominance.

Results

With the methodology outlined above, the 2024/25 mid-season Justice table looks like this:

Some observations:

  • Sailors have outperformed our expected points tally, suggesting we are quite lucky to be at the top of the table right now. You can probably recall a handful of games where we were far from our best but were able to get all 3 points, many of these games had close xG scorelines and actual results could have gone the other way on a different day.
  • Tampines have proven to be very hard to beat, scoring the higher expected points in 14 of their 16 league matches so far (vs 11/16 for Sailors) including a xG thumping of Tanjong Pagar on 16th June with 2.94 expected points and a 97% win percentage. Interestingly, the only 2 games where they ‘lost’ on expected points were both against Balestier, which brings me to my next point…
  • Balestier are playing very, very good football. Perhaps they have been extremely unlucky to still be 4th in the table at this point, or perhaps Peter de Roo’s attacking brand of football simply gives them an advantage in the xG model, but either way Balestier are not opponents that anyone should be taking lightly.
  • Despite Tomoyuki Doi seemingly invalidating the xG model by scoring 25 goals from just 16.37 xG, we find that Geylang is right about where you would expect them to be, with 26.31 expected points vs 28 actual points. I believe reversion to the mean eventually occurs with large enough sample sizes, and in the long run teams will end up very close to where they are expected to be in the statistical model.
  • Based on expected points, the teams are quite clearly split into 2 groups, the top 4 teams (LCS, Balestier, Geylang, Tampines) possibly challenging for the title, and the other 5 teams which are very close in quality, with only 3.17 expected points separating the bottom 5.

Conclusion

I think we can expect the title race to go all the way to the last few games of the season, with Tampines unfortunately being slight favourites despite being 2nd in the league right now.

However, there are still a number of variables that could alter the equation for the 2nd half of the season: fatigue from continental games and the AFF championship, mid-season transfers, and squad depth could all play an important role in how the rest of the season shapes up.

(Editor’s Note: An interesting point to note also is how Tampines makes use of the extra foreigner slot when Kyoga becomes Singaporean and thus frees up a slot. If they have the budget to get someone with true quality, things might be interesting)

Hopefully, when 24th May 2025 rolls around, it will be the team in blue lifting the SPL trophy!

(Editor’s Note: EH OH EH OH)

Written by Tan Chin Heng

Edited by Eddy Hirono

If you’d like to support the work we do here at SailorFanTalk, you may want to visit https://ko-fi.com/sailorfantalk and leave us a tip!

Share This:

Facebook
WhatsApp
Twitter
Email

Leave a Comment