A goalkeeper stretching sideways through the air to reach a shot in front of the goal

Where Expected Goals Breaks Down in a Low-Shot League

A match finishes goalless. The chance-quality totals are published an hour later and one side is credited with a figure a little above one, the other with a figure a little below. Somebody writes that the match was closer than the scoreline suggested, and everyone moves on.

Both numbers were built from nine shots between them, most of which followed a corner, and one of which was a header taken while two defenders occupied the same square metre. The model does not know that. It was shown a location, a body part and a label, and it returned a number that is perfectly reasonable as an average and close to meaningless as a description of what happened.

Shot-quality models are the most useful thing to have arrived in public football analysis and the easiest to misuse. The interesting question is not whether they work. It is where they stop working, and a league with low shot volume and a heavy dead-ball share sits close to that boundary.

The short version

  • What it is. A probability attached to each shot, learned from a large historical sample of shots with similar characteristics.
  • What it is good at. Comparing volume and location profiles across a season, and beating raw goals as an estimate of underlying performance.
  • Where it degrades. Small samples, dead-ball-heavy chance profiles, coarse location data and pitches that differ from the ones the model was trained on.
  • The single worst use. A per-match figure quoted to two decimal places as though it described the match.
  • The cheap fix. Report open play and set pieces separately, strip penalties out, and give a range rather than a point.

Expected goals explained without the model jargon

Take every shot recorded in a large database and label each one scored or not scored. Describe each shot with a handful of features: how far it was from goal, the angle available, whether it was a header or a foot, what kind of pass preceded it, whether it came from open play or a dead ball. Then fit a model that predicts the probability of a goal from those features.

The output for any new shot is a number between zero and one. A close-range shot with the goal open might come back above one half. A speculative effort from distance comes back at a few hundredths. Add them across a match and you have a team total. That is the whole idea, and the standard description of expected goals does not need to be more complicated than that.

The word to hold on to is average. The model does not estimate the chance that this player, in this stadium, on this surface, scores this shot. It estimates the historical frequency with which shots of that description were scored by the population the model was trained on. Every criticism below is a version of that sentence.

What actually goes into the model

Public models differ, but the common feature set is short. Distance from goal and the angle subtended by the posts do most of the work. Body part matters a great deal: headers convert far less often than shots with the foot from the same spot. The preceding action matters: a shot after a through ball is worth more than a shot after a sideways pass, because the defensive shape is different.

The pattern of play flag separates open play, corners, direct free kicks, penalties and counter-attacks. Some models add whether the shot followed a dribble, whether the goalkeeper had come off the line, and a count of defenders between the ball and goal, but those fields depend on data that is not always collected.

The fitting itself is unremarkable. A logistic regression is enough to produce a serviceable model, and most public implementations are variations on that idea with tree-based methods substituted for extra flexibility. Sophistication in the algorithm is not where the differences between models come from; the feature set and the training sample are.

Calibration is a promise about a thousand shots

A well-built model is calibrated, which has a precise meaning: among all shots assigned a value of one tenth, about one in ten was scored. That property is verifiable and most published models satisfy it reasonably well on the data they were trained on.

The promise is statistical, and it is made about a large group. Nothing in it guarantees anything about a single shot, a single match or a small block of matches. A team can be credited with two goals’ worth of chances across three matches and score four, and no rule has been broken. Reasonable variation around a low count is large in relative terms, which is the entire difficulty.

This is why the honest presentation of a match total is a range, and why the useful presentation is cumulative. Plotted across twenty or thirty matches, a chance-quality line describes something real. Printed under a single scoreline, it invites a claim the number cannot support, a point that applies to every derived performance metric and not only to this one.

A low-shot league widens the error band

Shot volume is not constant across competitions. A league in which teams take fewer attempts per match, with a higher share of them from outside the box, produces fewer high-value chances and therefore fewer of the events that carry most of the information.

The arithmetic is unforgiving. If most of a team’s season total comes from a modest number of good chances, then the season total is effectively an estimate built on that modest number, and the noise around it scales accordingly. A league with two-thirds the shot volume of another needs roughly half again as many matches to reach the same confidence.

There is a second effect that is easy to miss. Low volume usually goes with low block heights and congested boxes, and congested boxes are precisely the situation the model handles worst, because the features that would distinguish a clear sight of goal from a blocked one are the features most public feeds do not carry. Volume and quality of the data degrade together.

Set pieces are where the average hides the most

A player standing over the ball at the corner flag with players crowding the penalty area
Kenneth C. Zirkel / CC BY-SA 4.0

A model with a corner flag in its feature set treats all corner-generated shots as members of one large class. Inside that class sit an unmarked header six yards out and a scrambled effort from a crowd of eight players, and they receive values that differ by less than the situations do.

Where dead balls make up a large share of a league’s chances, that flattening is not a rounding error. It moves team totals in a systematic direction: sides that generate many crowded set-piece shots are credited with more than their actual chance of scoring, and sides that generate a few clean ones with less.

Second-phase play compounds it. A shot taken from a cleared corner is usually coded as open play, which loses the fact that the defence is still disorganised and the attacking side has more players forward than it would in a settled possession. Any league where set-piece routines carry a large share of the scoring should expect its chance-quality totals to be noisier than the model’s own error estimates suggest.

Penalties should always be reported separately

A penalty is assigned a fixed value in almost every model, somewhere around three-quarters of a goal. It is the largest single item on any shot list and it has nothing to do with how a team creates chances.

Two penalties in a five-match block will therefore add roughly a goal and a half to a total that might otherwise sit near four, and any comparison against a team that won none is comparing two different things. The fix is trivial and widely ignored: quote the figure with penalties excluded, and mention the penalty count alongside it.

The same logic applies to any other fixed-value event a model treats as a special case, and to own goals, which most models exclude entirely and most published summaries forget to mention.

What the event feed cannot see

A standard event feed records what happened to the ball. It does not record where the other twenty-one players were standing. That gap is the source of most of the remaining error.

The goalkeeper’s starting position is absent, so a shot into an empty net and a shot at a well-set keeper from the same spot receive the same value. Defensive pressure is absent or reduced to a crude proxy. The number of bodies in the shooting lane is absent, which is why blocked shots are a persistent problem: a shot blocked a yard after it left the foot was never a scoring chance at all.

Where tracking data exists, models can add these fields and the improvement is real and measurable. Coverage is the obstacle. In leagues where tracking and wearable systems are installed at some grounds and not others, the resulting dataset has a gap that correlates with club budget, which means the missing matches are not missing at random.

The pitch is a variable the model treats as a constant

Most public models are trained predominantly on data from a handful of well-covered European competitions, played on heavily maintained surfaces in temperate conditions. The learned relationship between shot location and goal probability carries all of that with it.

Transfer that model to matches played on a worn surface in August heat and it is answering a question about a different population. A ball that skips off a dry patch, a first touch that runs two yards long, an approach at the end of a match in which both teams have run less than they will in December: none of these appear in the feature set and all of them affect conversion.

The direction of the bias is not always predictable, which is worse than a known offset. A model that reliably overestimated by a fixed proportion could simply be rescaled. A model whose error depends on venue, month and surface condition cannot be, at least not without local data to fit against, and the domestic competition record is the only source of that.

Two supplements that cost nothing to compute

A football pitch seen from above showing the penalty areas and the centre circle
Stephen Kennard / CC BY-SA 3.0

The first is box entries with the ball under control, counted per possession. It is a count rather than a rate, it accumulates quickly, and it measures the part of attacking play that a low-shot team is either doing or not doing. A side that reaches the box regularly and shoots rarely has a finishing-phase problem; a side that never reaches it has a build-up problem. The chance-quality total conflates the two.

The second is a clean split of shots into open play, first-phase set piece and second-phase set piece, reported as three separate counts with their locations. It requires nothing beyond a match feed and half an hour of coding, and it recovers most of the information the single aggregated figure destroys.

Neither replaces the model. Both are stable enough to be quoted after five matches, which the model total is not, and both are legible to a coach in a way that a decimal number is not. That combination is usually what an analyst is actually being asked for.

Failure modes, and where the model still earns its place

The table sets out where the estimate degrades and the cheapest available correction. None of the fixes require a new model; most require reporting the number differently.

Failure mode Why it happens Practical correction
Per-match total treated as a verdict Calibration is a large-sample property Quote a range; use cumulative plots across the season
Set-piece chances over-credited One coarse class covers very different situations Split first phase, second phase and open play
Penalties dominating a short block Fixed high value on a rare, unrelated event Report the figure without penalties and state the count
Blocked shots inflating the total Shooting lane not recorded in the feed Report shots on target and blocked shots separately
Cross-league comparison Model trained on a different population and surface Compare within the league only, or refit locally
Low shot volume Fewer events, wider relative error Extend the window; lead with box entries instead
Provider disagreement on location Manual coding of coordinates and body part Fix one supplier and never mix sources in one comparison

None of this argues for going back to counting goals. Goals are a smaller sample than shots by a wide margin, and judging an attack on them is a worse error than any listed above. Across a full season, a chance-quality total is a better description of how a side created than the scoreline is.

The model is also the right tool for a specific and common question: has a team’s chance profile changed. Compare the first half of a season with the second, or the period before a coaching change with the period after, and the aggregate does what it was designed to do.

Frequently Asked Questions

Is a low chance-quality total evidence that a team is badly coached?

Not on its own. It is evidence that the team is not generating shots from good positions, which has several possible causes: a deliberately conservative approach, a squad without a penalty-box forward, a surface that discourages combination play, or a genuine structural problem. The number identifies the symptom and says nothing about the cause.

Why do two sources publish different figures for the same match?

Because they use different models and often different underlying event data. Shot coordinates are recorded by human operators and disagreement of a metre or two is normal, which moves a value materially near the box. Comparing figures from two providers is not a comparison of teams.

How many matches before a season total means something?

More than most people assume, and more in a low-shot league than in a high-shot one. A third of a season is a reasonable floor for treating the difference between created and conceded as informative, and the full season is better. Anything quoted in September describes a handful of chances.

Does the model account for who took the shot?

Standard implementations deliberately do not. The value describes the chance, not the finisher, which is what makes it useful for comparing chance creation. Separate models exist that adjust for shooter skill, and they need a very large per-player sample before they say anything a coach did not already know.

Is post-shot chance quality a better measure?

It answers a different question. Post-shot models add where the ball ended up in the goal frame, so they measure the quality of the strike rather than the quality of the chance. That makes them useful for judging finishing and goalkeeping, and useless for judging chance creation, because a shot has to be on target to have a value at all.

Can a club build its own model without a data budget?

It can build something workable from its own coded matches, provided it accepts a small training sample and a simple feature set. The result will be less accurate than a commercial model and better matched to the conditions it will be used in, which is a trade many analysts would take.

The number is a summary of a population applied to a single event, and everything difficult about it follows from that. Treat it as a description of how a team creates over months, report it with the penalties and the dead balls pulled out, and it will do more work than any figure printed under a scoreline ever could.

More From Author

An indoor volleyball court with the net strung across the centre and empty seating behind

September to December, Code by Code