The Clinical Finishing Model

Abhishek Amol Mishra
9 min readDec 9, 2020

Looking at finding a way to find, analyze, and evaluate clinical finishers in the beautiful game.

Special thanks to Soumyajit Bose, Robert Hanson, Dmitry, and Stevie Grieve!

Erling Haaland, the Dortmund striker who is the face of the Clinical Finishing Model

Ever since Erling Haaland became a common-place name in football, the analysts have looked at every possible way to analyze him. From movement runs to striking abilities, Erling Haaland has been sliced and stretched in every way possible. One of those manners has been his /clinical finishing/.

In case you forgot or don’t know about how good he is, just watch this video:

A lot of analysis in this area of the field has looked at Haaland’s xG overperformance (the difference between the goals— the goals he scored — and xG — the goals he should’ve scored — ). Generally, it has been thought that people who do better than they were expected to score are /clinical finishers/.

That is certainly the case but is that all that goes into making a striker a clinical?

Something that kept bothering me was that there are an array of factors that influence this. If a person took many shots that were worth 0.1 xG and overperformed on them by 0.05, you’d be /clinical/. On the other hand, if you recorded a shot of 0.50 xG and overperformed by 0.05, people wouldn’t mark that out as /clinical/.

In the first case, you’re overperforming by 50%, the second case by 10%.

However, isn’t the ability to get into good-scoring positions a hall-mark of a clinical striker?

Costa scoring past Stoke City from a tight angle

So a bunch of questions come up: What type of overperformance are we really caring for or should we be blind to it? Does clinical finishing only occur from low-scoring positions or should a striker be rewarded for getting into a high-scoring position as well?

Then there’s the problem that making multiple graphs and scatters for all these questions and then aggregating them into a conclusive answer is rather hard and confusing.

Ay, that’s the rub, can we make something that takes various variables into account and gives you a good answer on how clinical a striker is?

Welcome to the Clinical Finishing Model — a model that does exactly that and gives you an answer that is bound to be inclusive of everything that I do have access to (data-wise).

Before I introduce what it is and the results, some caveats exist. This model is only for shooting — so no headers or free-kicks. It does not take the foot used to score into account and that is an factor in how clinical someone is. It’s a simple model but it attempts quite a few things to improve the standard of how we evaluate /clinic/ in strikers.

So what does it include? Here are it’s inputs:

  • Non-penalty xG per shot
  • Non-penalty goals per shot
  • Touches in the box per 90
  • Shot on target per 90

I know, looks pretty much like every set of variables that someone would use for a scatter — something that I /just/ critiqued. However, the key in this model lies in the usage of these variables.

/If you want to look at the nerdery, read the The Nerdery section. If not, go to the Clinical Finishing section/

The Nerdery

We’re all just Homer Simpsons doing donut math

The variables presented in the section before are separated into three distinct metrics about a striker: xG overperformance per shot, how many shots on target can a striker get for 1 touch in the box and quality of shot (comparison of npxG/shot to the average npxG/shot).

Here are some more explanations of the three metrics:

Overperformance per shot — this is the simple difference between the non-penalty goal per shot and non-penalty xG per shot. Doing an xG overperformance per shot allows us to quantify just this overperformance over one shot — something that is more reproducible and indicative of a striker rather than cumulative xG overperformance. When we think of being clinical, we think of scoring from an insane position which, in statistics, comes to the overperformance of your expected statistics on your one shot. Here’s a simple example of how aggregate overperformance is misleading:

Striker A takes 10 shots — all of them lowly shots worth 0.02 xG. His xG for that game comes out to be 0.20. Let’s say he scores 20 goals over a season — that’s a good striker — in 40 games which puts his goals per 90 at 0.50. Looking at per 90, that over-performance must mean that we have a very clinical striker but in reality, the volume of shots has meant that we’re not really doing /clinical finishing/ as by definition, /clinical finishing/ occurs with less volume of shots.

Pretty sure James Rodriguez broke every xG model with this shot

For this reason, overperformance per shot allows us to control for /volume/ of shots while sticking true to our most important metric for defining clinical finishing. Since by definition, being clinical means converting something low-chance to a goal (a high-chance event), we weight this metric the most — 0.6 to be exact since this is just so important.

Shooting Efficiency — shooting efficiency is a very important aspect of a clinical striker. Making the most of what you’re dealt with is the definition of being clinical. So what does this mean in relation to shooting? Clinicality in shooting means get as many shots on target from the few touches you get in the box.

Jamie Vardy is the peak example of making the most use of one’s touches in the box.

This metric allows you to evalute how efficient a striker can get a shot on target — a very positive event — from the chances she/he has — chances being touches in the box. A simple word to describe this trait would be simply poacher. Since this is an aspect of being clinical and something the striker can control, this is giving the second biggest weighting — 0.25.

Quality of Shot — quality of a shot is an important aspect to think through. A striker that is clinical also has good movement which also means that he/she is going to get into good positions. Are they going to be very high scoring positions? Not necessarily no but they will be in good-scoring positions.

Edison Cavani is someone who’s famous for showcasing excellent movement to get into good positions

We can’t just discard this. Let’s take a simple example why — the case I talked earlier in the article:

Let’s have Striker A take a shot worth 0.1 xG and then he overperforms on it by 0.05. Then we have Striker B who takes a worth 0.5 xG and then he overperforms on it by 0.05 — the same amount. In the first case, there is a 50% overperformance and in the second, there is a 10% overperformance.

Is Hazard’s long-shot screamer clinical or Aguero’s close-range shot clinical? How much should we value the over-performance?

Looking at /just/ overperformances, we’re leaving ourselves flawed to these scenarios because without taking the quality of shot into account, this model would call Striker A better than Striker B when that might not be the case. While quality of shot is something that is reliant on various factors, it is still a factor that we need to somehow account for. We account this by weighting it the least — 0.15.

These three metrics allow us to account for xG overperformance, takes into account how good a striker is shooting — volume — efficiently and account for the ability of a striker to get into good positions by measuring his xG on one shot. All these metrics are then compared to the sample striker population’s metrics through means and standard deviations.

Finally, all these three variables — multiplied by the weighting — are added in a linear combination which yields us our Clinical Finishing metric.

The Clinical Finishing Metric

Haaland hunting down clinical finishers better than him

Ok, regardless if you read the The Nerdery section, let’s get into the brass tacks, and let’s see the actual model!

Here’s the live Tableau Dashboard that you can play around with the model’s variables, see what players pop out, and just have fun

(Here’s the link in long form if the embed doesn’t work:!/vizhome/ClinicalFinishingModel/CFDashboard)

This is what the dashboard looks like — nicely colored from cold finishing to hot finishing with the appropriate colors. (Changing filters will change the coloring — I hate Tableau for that but oh well…)

This model on Tableau has these features:

  • Strikers that have played more than 1000 minutes
  • Age pool: 16–25
  • Data’s time period: Previous Season

Let’s get into a few things you need to know about how to interpret the CF metric :

  • <0: You are severely underperforming on your expected and should do better
  • 0–0.5: You are bang average in your ability to be clinical
  • 0.5–1: You are above-average in your ability to be clinical
  • 1–1.5: You are very good at being clinical
  • 1.5–2: You are extremely good at being clinical but you might be prone to regression
  • 2+: Unstable levels of being a clinical striker — you will fall down to the averages.

You might also see that the model has some strikers that scored like 4 goals in the 1–1.5 section. Should they be there? Largely speaking, no! Scoring 4 goals doesn’t make you a clinical finisher by any means!

So why are they there? They are there to provide you with the most freedom in your interaction. In some bad teams, 4–8 goals is good and you might want to analyze some strikers in that range! If you want to say something solid about someone, make sure they’ve scored more than 8/9/10 goals!

There is also something else you should know: Sustainable Clinical Finishers.

Sustainable Clinical Finishers are clinical finishers that are expected to be sustainable in this trait. Here are the criteria:

  • Played more than 1000 minutes
  • Scored more than 10+ non-penalty goals
  • Has a CF metric between 1–2 — ideal range is 1–1.5 and between 1.5–2 means they will have some regression with the further out you go to 2, the more the regression

You can see why Erling Haaland is the face of this model. Having among the highest clinical finishing scores, he’s a freak of nature in what he’s able to do. Definitely expect some regression from him but even with that, he’ll still be in the 1.5–2 range.

Kylian Mbappe is between 0–0.5. At first, that’s surprising but when you consider the fact that he plays in a PSG team that creates a) many chances from him to shoot b) the chances are very high-scoring chances c)chances are created frequently over many games, it makes sense why he’d score low here.

Remember, CF is measuring a striker’s abilities to make the most of nothing — turn shit into sugar — and nothing else.

Now does this score for Mbappe mean that he’s bad at finishing? Not at all! What this means that in the current surroundings, he’s a player that thrives from many chances. If we did this during his Monaco years, I’m sure he’d come up very high like Haaland!

We also see Timo Werner in the same range as Mbappe and this explains — to some degree — what we’re seeing with Werner at Chelsea. News media made out to be that Werner as /clinical/ but as this model shows, he’s pretty bang average at turning few chances into gold. What Werner is, is a striker who thrives off many chances and he’s bound to “miss” quite an amount that is larger than what you’d expect from a /clinical/ striker.

We see Diogo Jota is borderline 1 on the metric score. That means he’s above average at turning goals from the few chances he might get — something that people have been seeing from him at Liverpool with some being *surprised*.

For this metric to be made something as a predictive tool, this will have to be stretched across years to build a robust database but this — this a start that I very much like and has merits.

If you have any questions, contact me at @MishraAbhiA on Twitter. Thanks for reading!



Abhishek Amol Mishra

Writer. Aspiring Computer & Data Scientist. “We’re made of star stuff. We are a way for the cosmos to know itself “ — Carl Sagan