The following analysis looks at the goals (G), assists (A), expected goals (xG), and expected assisted goals (xAG) to better understand the varying attacking profiles of premier league players in the 2022-2023 season.
To focus on key attacking players, I filter the dataset down to the 190 players who have more than 3 attacking contributions (goals + assists). Additionally, statistics are calculated by player AND club, making it possible for some players to have two separate set of metrics. For example, January transfer Leandro Trossard has an xG for his performance at Brighton and at Arsenal.
Before we begin, lets quickly discuss the last two metrics.
xG, or expected assists, is the probability that a shot will result in a goal based on the characteristics of that shot and the events leading up to it. Some of these characteristics/variables include:
Location of shooter: How far was it from the goal and at what angle on the pitch?
Body part: Was it a header or off the shooter's foot?
Type of pass: Was it from a through ball, cross, set piece, etc?
Type of attack: Was it from an established possession? Was it off a rebound? Did the defense have time to get in position? Did it follow a dribble?
xG is a valuable tool that enables us to discern variations in the quality of goalscoring chances. While a tap-in goal and a long-range volley goal will appear the same on the scoresheet, their respective xG will differ significantly.
To exclude penalties, some analysts may use npxG instead. Penalties have an xG of 0.79.
xA, or expected assists, is the likelihood that a given completed pass will become a goal assist. This statistic assigns a probability to all passes based on the type of the pass, the location on the pitch, the phase of play, and the distance covered. Players receive xA for every completed pass regardless of whether a shot occurred or not.
In order to just isolate the xG on passes that assist a shot, there's expected assisted goals (xAG). Players receive xAG only when a shot is taken after a completed pass.
xAG is a good indication of a player's ability to set up scoring chances without having to rely on the actual result of the shot or the shooter's luck/ability. For our purposes of analysing direct goal contributions, I prefer xAG over xA.
xG and xAG, when considered together, serve as a valuable measure of a player's total attacking contribution, encompassing both their goal-scoring prowess and their ability to create scoring opportunities for their teammates.
High xG players on the bottom right consistently gets into favorable positions to score goals during matches. Here we find many top forwards such as Haaland, Kane, Salah, and Toney. Joining that group this season are Watkins and Wilson, who have embraced an upswing in individual form and team competitiveness.
High xAG players on the top left consistently provide quality passes, crosses, or setups that have a higher probability of resulting in goals. Here we find playmakers like KDB. We also see the cross merchants TAA and Trippier.
High xG and xAG players on the top right consistently do it all. They are influential players who excel in both aspects of offensive play, creating and converting a significant number of goal-scoring chances. Here we find a couple players in great form.
James Maddison (8.7,9.3): Man, if this guy just stayed fit he would probably be right up there this season. With 8.7 xG and 9.3, James Maddison fought hard to keep Leicester out of relegation; too bad none of his other teammates seem to care though. A quality player that definitely will get pick up by another team this summer.
Solly March (8.1,8.4) & Karou Mitoma (8.1,6.4): These two were on fire this season, playing a large part in Brighton reaching their highest ever table position and earning European football. If Mitoma had a better start to the season pre World Cup, his numbers could be even higher.
Bruno Fernandes (9.3,16.7): An absolute nutty season by Bruno Fernandes sees him with 16.7 xAG, more than everybody in the league, even KDB. This is both surprising and unsurprising. Just from watching some United games, it is clear how much of the team's energy and offense center around Fernandes. He is still a moany bastard though.
Bukayo Saka (11.2,8.5), Martin Odegaard (10,8.1), Gabriel Martinelli (9.3,9.1): Under Mikel Arteta, the young gunners have found another gear this season and led Arsenal to a title challenge. Great form combined with an all-round quality squad meant that these three found many goal scoring or chance creating oppportunities.
Heung-min Son (10.1,6.5): Despite having one of his most underwhelming seasons in Tottenham, Son still put in some solid performances to end the season with 10.1 xG and 6.5 xAG. While not much compared to the 15.9 xG and 7.5 xAG from his golden boot season last year, his attacking threat is still a fair bit higher than many others.
xGp90 and xAGp90 are standardised rate-based metrics that measure the expected goals a player is expected to score or assist per 90 minutes of play. They are calculated by dividing the total xG or xAG by the total minutes played and then multiplying it by 90.
xGp90 and xAGp90 gives us insight into the efficiency or consistency of a player's attacking contribution and allows for fair comparisons between players who may have played different amounts of minutes.
Conclusions are not too different from the previous xG vs xAG plot. Top players like Haaland and KDB are still a cut above the rest. However, it does highlight some players who perform well given limited playtime.
Eddie Nketiah (0.68,0.11), Leandro Trossard (0.18,0.46), Fabio Viera (0.15,0.44): Two great signings that scored or created chances whenever called upon. Nketiah's goals and Trossard's linkup play during Gabriel Jesus's absence definitely kept Arsenal in the title contention.
Reiss Nelson (0.46,0.58): Despite playing just 212 minutes, Nelson was an efficient impact sub that drastically improved Arsenal's offense, averaging an 0.46 xG and 0.58 xAG per 90 minutes. He is just shy from scoring 1 goal AND 1 assist every 2 games! His impressive late-game performance and 97th minute screamer that led to a 3-2 comeback against Bournemouth immediately comes to mind.
Callum Wilson (0.84,0.13): Wilson is the closest to Haaland in being a consistent scoring threat. With 0.84 xG per 90 minutes, he is expected to score almost a goal per match.
While expected goals provide valuable insights into the quality of scoring opportunities, actual goals are the tangible output that directly impacts match results. If a high xG striker consistently finds himself in goal scoring positions but misses half the shots, is he still still a good striker? Probably not. A comparison of xG and G build a more complete picture of an individual's goal scoring ability.
G > xG (illustrated by a datapoint above the linear trend line) means a player has been efficient in converting their chances and outperforming the statistical predictions of goal-scoring based on the quality of chances created.
On the other hand, G < xG (illustrated by a datapoint below the linear trend line) means a player is underperforming statistical predictions due to poor finishing or decision-making in key moments.
Of course, strong goalkeeper performances and sheer luck can play a role, but in a result-driven environment over the course of of a season, that is rarely a convincing excuse.
Below the plot, I analyse several key players to see if they have over or underperformed.
Erling Haaland (28.4,36): There is not much to say that have not been said already about Haaland. The robot not only puts himself in an absurd number of goal-scoring positions but also converts them frequently. With 36 G to 28.4 xG, Haaland has scored 7.6 goals more than expected. More terrifyingly, this is just his first (and hopefully best) season in the Premier League.
Harry Kane (21.5,30): The only player that has outperformed more than Haaland is Harry Kane, who scored 8.5 goals more than expected. Year after year, Harry Kane keeps Spurs from being a mid-bottom table team; he should get a trophy for that.
Ivan Toney (18.7,20): A decent number 9 who has capitalised on chances well. Considering the scarce striker market right now, he could have had a big move this summer if not for the suspension. What a shame.
Mohamed Salah (21.7,19): A much quieter season for last years golden boot winners. Salah still scored many goals (especially compared to Son) but was less clinical in his finishes. Given his 21.7 xG, he should have at least 2 more goals.
Darwin Nuńez (12.1,9): I always thought the memes about his end product is somewhat unjustified. Firstly, there are plenty of people who were more underwhelming like Havertz. Secondly, at least Nuńez is getting himself into a decent number of goal scoring positions as reflected by his 12.1 xG. He has already shown great improvement and will only get better. Him missing left right and center earlier this season was pretty hilarious though.
Gabriel Jesus (14,11): Because of his involvement in build up play, Jesus is often not in the box for key goal-scoring moments. And when he does find his way there, he is not as clinical as others strikers. Although Jesus brings a lot to the team through linkup play, ball-carrying ability, and overall creativity, Arteta should definitely look elsewhere for a more traditional goal-scoring number 9.
Expected assisted goals do not always lead to actual assists. Once a player makes the final pass, he relies on his teammate to convert that opportunity. A comparison of actual assists to expected assisted goals (xAG) allows us to see who has been lucky and who has not.
A > xAG (illustrated by a datapoint above the linear trend line) imply greater luck. Thanks to great finishing ability from teammates, a player achieved more assists than expected based on the quality of his passes.
On the other hand A < xAG (illustrated by a datapoint below the linear trend line) imply poorer luck. A player can supply great chances for assists but ultimately not get them because of his teammate inability to finish the job and convert.
Kevin De Bruyne (13.7,16): Surrounded by a team full of high quality players (which now includes superhuman Erling Haaland), it is not too surprising that KDB enjoyed more assists than expected.
Bruno Fernandes (16.7,8): With 16.7 xAG but just 8 assists, it is ridiculous how unlucky Fernandes has been this season. Had his teammates been more precise in the box, he could have had more than double the assists. Man U needs a striker.
Trent Alexander Arnold (11.5,9), Kieran Trippier (12.4,7): As fullbacks responsible for crosses and corner kicks, both naturally have high xAG's. However, below average finishes by teammates means both did not get as many assists as they should (Trippier a bit unluckier).
Mohammed Salah (7.7,12): Although Salah has not been as clinical in putting ball in net this season, his teammates are.
Leandro Trossard (4.7,10): Like KDB, Trossard has strong teammates capable of turning his passes into goals. Because of players like Saka, Martinelli, and Odegaard, Trossard ended the campaign with over double the assists than expected.
This a a good place to pause. Hopefully you found it somewhat interesting and now see how much a couple metrics (G, A, xG, xAG) can tell us about nuances in attacking productivity. I have done some team-specific analysis but will share that in a separate document. Thanks for reading and let me know what you think!
All data is sourced from FNREF. I scraped content from the player statistics tables of the 20 Premier League clubs, performed necesssary data transformations, and visualised key metrics into interactive plotly charts. Everything done in Python and by me.