SailorFanTalk

[Specials] The SFT Awards – An SPL End-of-Season Review

About 1.5 years ago, after the 2023 SPL season ended, Eddy and I had a conversation about a somewhat ambitious project. We were both frustrated at the lack of publicly available SPL statistics, and it seemed like the only way to fix this was to do it ourselves. The SPL statistics page still shows nothing more than a string of error code, and while we were somewhat certain that some SPL clubs had access to data, that was meant for performance analysis and of no use to fans because it was not publicly available. So with our non-existent coding skills and endless desire to watch football, we created our own spreadsheet and started manually tracking stats for every single SPL game in the 2024/25 season, for use in SailorFanTalk articles.

After 13 months (and countless hours) of scouring through match replays and Sofascore data to manually input SPL stats, we now have a full data set of the league season, and in conjunction with the SPL Awards Night happening tonight, we thought it would be appropriate to do an end-of-season review in the form of handing out our own ‘Awards’ to deserving teams and players, based on the 2024/25 SPL statistics.

Team Awards

The Justice Table

We first talked about the Justice Table back in my mid-season review article, where we use raw xG data to carry out simulations of match outcomes and assign expected points to each team in each game. After all 32 games, BG Tampines Rovers emerges on top of our Justice Table, 8.13 points ahead of Lion City Sailors.

AIA Justice Table League Winner – BG Tampines Rovers

POLAR MINERAL WATER Best Defence (least xG conceded) –BG Tampines Rovers

SINGAPORE POOLS Best Attack (highest xG) – Lion City Sailors

(Sponsors chosen at random to reflect SPL Awards Night as closely as we could hehe)

Set-Piece Specialists

Set pieces are very much a critical component of the modern game, with set piece coaches a common sight at many professional clubs. The following teams were able to make the most of their set piece routines.

1. BG Tampines Rovers

    2. Geylang International

    3. Lion City Sailors/ Balestier Khalsa

    Youth Development – Most U21 Players Played in SPL

    Youth development is critical to the success of the football ecosystem in any country, and the following teams promoted the most players from their U21 team into the first team (either due to their trust in youth or lack of funds/squad depth, I’m not judging).

    1. Tanjong Pagar

    2. Geylang International

    3. Lion City Sailors

    Individual Awards

    The following section covers the top performers on several key attacking metrics, most of which are self-explanatory, as well as the top shot stoppers in the league this season.

    Most Goal Contributions (Goals + Assists) per 90min (min. 180 mins played)

    1. Tomoyuki Doi (Geylang International)

    2. Lennart Thy (Lion City Sailors)

    3. Maxime Lestienne (Lion City Sailors)

    Talisman (Highest % involvement in the Team’s Goals)

    These players have been key to their team’s success this season, having scored or assisted the highest percentage of goals scored by the team.

    1. Tomoyuki Doi (Geylang International)

    2. Dejan Racic (Hougang United)

    3. Shingo Nakano (Albirex Niigata Singapore)

    Highest xG per 90min (min. 180 min played)

    In a season where Tomoyuki Doi seemingly broke the xG model by scoring hat-tricks for fun, a couple of other players actually generated a more significant goal threat for their team compared to Doi. (on a side note, I fully expect Doi’s goal tally to revert to the mean next season ahead of his rumoured move to Thai League 1)

    1. Lennart Thy (Lion City Sailors)

    2. Kodai Tanaka (Balestier Khalsa)

    3. Tomoyuki Doi (Geylang International)

    Highest xG per Shot (min 10 shots)

    Many surprising names on the list, but these players generated the highest average xG for each of their shots, indicating their propensity to get into high quality goalscoring positions.

    1. Hazzuwan Halim (Hougang United)

    2. Akram Azman (Lion City Sailors)

    3. Abdul Rasaq (Lion City Sailors)

    Highest % Shots on Target (min 10 shots)

    Again, several interesting names. These players managed to get most of their shots on target instead of blasting them into the swimming pool, forcing the opposing keeper to at least make the save.

    1. Taufik Suparno (BG Tampines Rovers)

    2. Shakir Hamzah (Geylang International)

    3. Ismail Sassi (Balestier Khalsa)

    Best Shot-Stopper (among keepers with at least 5 games played)

    The Goals Conceded/xGOT stat acts as a measure of a keeper’s shot stopping skills.

    Expected Goals on Target (xGOT) is slightly different from the xG. A xGOT value is only assigned to shots that are on target, and the value is largely based on the location of the goal where the shot ended up at. A shot with 0.8 xGOT basically means that the shot ends up as a goal 80% of the time, while the keeper saves it 20% of the time. A summation of xGOT across all the shots would give a number which represents the number of goals an average keeper would concede over that series of shots, and a ratio of Actual Goals Conceded/Cumulative xGOT then provides a metric to judge if a keeper is over or under performing.

    A Goals Conceded/xGOT ratio of <1 would mean that the keeper conceded less goals than the average keeper facing the same type of shots.

    1. Kristijan Naumovski (Brunei DPMM)

    2. Izwan Mahbud (Lion City Sailors)

    3. Haimie Nyaring (Brunei DPMM)

    Moments

    This section is dedicated to the most memorable games and moments throughout the 2024/25 season, many of which coincidentally involve Balestier Khalsa and their keeper Hafiz Ahmad.

    Biggest xG Miss

    In the 2024/25 season, the highest xG shot that did not result in a goal was by Obren Kljajic, in the 17th minute of the game between Lion City Sailors and Balestier Khalsa on 14th May 2025. After Bart’s freekick came off the crossbar, Balestier keeper Hafiz Ahmad was already lying on the ground, presenting Obren with an open goal from 3 metres out and a chance worth a whopping 0.88xG, only for him to put it over the crossbar and into the advertising boards.

    Lowest xG Goal

    On the other end of the spectrum, the goal scored with the lowest xG shot was by Arya Igami in Albirex Niigata’s 7-2 win over Balestier Khalsa on 18th July 2024, again up against Hafiz Ahmad in the 17th minute of the game. Arya Igami’s heavy first touch forced him into a much wider angle than he would have liked, and while losing his balance and slipping to the ground with 2 defenders closing in, he scored with a 0.01xG shot into the roof of the net with his weaker left foot, past a helpless Hafiz Ahmad.

    In case you are curious and wondered what the xG might be for Shawal’s left-footed effort past Syazwan from his own half in the 2-2 draw with BG Tampines might be, it was 0.04. Perhaps the fact that Syazwan was off his line and there were no defenders between Shawal and the keeper led to the xG for that being slightly higher.

    Most Exciting Game (Highest Total xG)

    The most exciting game (with the highest total xG) occurred on 31st Aug 2024 between Young Lions and Balestier Khalsa. Young Lions accumulated 2.04 xG against Balestier’s 5.3, and the final score was 2-7 in favour of Balestier, you can get a sense of the madness from the xG chart below:

    Most Lopsided Game

    During our Monte Carlo Simulations of every single league game to generate the Justice Table, 1 game stood out as the most lopsided: Lion City Sailors’ 8-0 thrashing of Young Lions on 6th April 2025. With a staggering 41 shots and 5.8xG to 0, our simulations showed that Sailors came away with the win in 99.9% of simulated games, with Young Lions salvaging a draw less than 1 in 1000 games. Indeed, the xG chart made it look like only 1 team was on the pitch that day.

    Conclusion

    That wraps up SailorFanTalk’s season-long effort of tracking SPL statistics, we have also tidied up our database and it is now available here, if you are interested in playing around with numbers.

    I hope you had as much fun reading this article as I had writing it, and congratulations to Tampines for winning most of the imaginary team trophies as well as Sailors for winning all the actual ones!

    See you next season!

    Written by Tan Chin Heng

    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