How Is xG Calculated for Each Shot?

Andy
August 27, 2026
1 Views
How Is xG Calculated for Each Shot?
A Number, Not a Verdict

A striker shoots from eight yards and the match graphic flashes 0.42 xG. To one viewer, it looked almost impossible to miss; to another, a defender’s pressure made it a difficult chance. The decimal appears to settle the argument—but it does not come directly from the laws of football.

Our Top Sportsbook Bonuses for August 2026

Use Code: BTCSWB750

Bovada Welcome Offer

5/5
Up To $750 Bonus
18+ only. Full terms apply.
Use Code ACES250

Vegas Aces Casino Welcome Offer

5/5
250% Up To $1,000 Deposit Bonus
18+ only. Full terms apply.
Use Code WELCOME1

Slots of Paradise Welcome Offer

5/5
250% Up To $2,500
18+ only. Full terms apply.
Load More - Link

An xG value is a model’s estimate, based on how often similar shots became goals in its historical data. Providers may define “similar” differently, use different datasets, or include different details: goalkeeper position, defensive pressure, shot height, body part, and the type of preceding pass. The same attempt might therefore receive 0.35 from one model and 0.47 from another. That variation is not necessarily an error. xG is objective in calculation, but conditional on subjective modelling choices.

What a single-shot xG value means

A shot’s expected goals (xG) value is an estimate of the probability that the attempt will become a goal, based on similar shots in the model’s data. A value of 0.20 xG means a 20% scoring chance—or, in everyday terms, roughly one goal from every five comparable attempts over many repetitions. The broader idea behind expected goals uses this probability-based view rather than judging chances only by whether they went in.

That does not mean every fifth 0.20 xG shot must score. Any individual attempt has a binary result: goal or no goal. A goalkeeper’s save, a deflection, or a slight finishing error can decide the outcome without changing how promising the chance was beforehand.

The probabilities become more informative when combined. If a team takes shots worth 0.05, 0.20, and 0.35 xG, its match total is 0.60 xG. Adding shot values across matches produces season-level xG, which can reveal how consistently a team creates or concedes quality chances—even when short-term results are noisy.

Training data

How the model learns from past shots

Historical outcomes turn shot context into an estimated scoring probability.

An xG model begins with a large dataset of previous shots. Each attempt is labeled with its actual outcome—goal or no goal—and described by variables such as location, angle, body part, assist type, defensive pressure, and whether it was a header or one-on-one.

The model then looks for repeated relationships between those variables and scoring outcomes. If shots from a particular area, angle, and situation have historically produced goals 12% of the time, a similar new attempt may receive a value near 0.12 xG. The exact calculation depends on the provider and modelling method; logistic regression and machine-learning algorithms can identify different combinations of patterns.

This means an analyst does not watch every shot and assign a value by personal judgment. Once trained, the model applies its learned relationships to the recorded details of each new attempt. Human decisions still matter when selecting variables, defining events, and cleaning the data, but the shot value itself is generated from observed scoring patterns across many comparable attempts rather than a visual verdict on one moment.

What information describes a shot?

Models combine basic event details with the surrounding match context.

The strongest input is usually shot location. Coordinates establish the distance from goal and the angle available between the posts: central, close-range attempts generally offer a larger target than shots from tight positions. The relationship is not linear, however, as explained in more detail by how distance and shooting angle shape xG.

A model may also consider:

  • Body part: headers and weaker-foot attempts behave differently from shots struck with the preferred foot.
  • Assist type: through balls, crosses, cutbacks and rebounds create distinct kinds of chances.
  • Phase of play: open play, corners, free kicks and penalties are usually treated separately.
  • Shot technique: volleys, first-time finishes and one-on-ones may carry useful context.
  • Game state: some providers include score, time or whether the attacking team is short-handed.

These features interact rather than adding fixed bonuses or penalties. A header is not automatically worth a set amount less than a footed shot: a header from two metres after a precise cross may remain an excellent chance. Likewise, a central shot can be poor if it comes from long range or under heavy pressure.

Event data and tracking data

Standard event data records what happened and where: the shot coordinates, body part, assist, play type and preceding action. Richer tracking data adds where players were at that moment. It can reveal nearby defenders, blocked sightlines, defensive pressure, goalkeeper position and how much of the goal was exposed.

Consequently, two attempts from the same coordinates may receive different estimates in a tracking-based model, while an event-only model may treat them as nearly identical.

From data to probability

How a model turns shot details into xG

  1. Encode the shot

    Location, body part, assist type, game state, pressure, and other recorded details are converted into numerical inputs. Categories such as “header” or “through ball” are represented in a form the model can process.

  2. Apply learned patterns

    In logistic regression, each input has a weight learned from historical shots. Factors associated with more goals push the internal score upward; factors associated with fewer goals pull it downward.

  3. Combine the effects

    The model starts from a baseline and combines all relevant adjustments. A central footed attempt might gain value, while a sharp angle or heavy pressure reduces it.

  4. Map the score to 0–1

    A logistic curve converts the internal score into a probability. The result might be 0.08, 0.35, or 0.76 rather than an unrestricted number.

  5. Check the probabilities

    Models are tested and often calibrated on separate data. Among well-calibrated shots rated near 0.20, roughly one in five should result in a goal over a large sample.

  6. Use other model types

    Decision trees, boosted trees, neural networks, and related methods can learn more complicated relationships. They still produce the same kind of final output: an estimated scoring probability between 0 and 1.

There is no universal hand calculation

An xG value cannot usually be reconstructed from distance and angle alone. The exact result depends on the provider’s variables, training data, model design, and calibration choices—even when two shots look identical on screen.

Worked example

Following one shot through the model

How small changes in the same chance can alter its estimate

Consider a right-footed shot taken from the centre of the penalty area, about 12 metres from goal. The ball arrives from the byline after an open-play cutback, and the attacker strikes it first time.

The model converts those details into features: coordinates, distance, shooting angle, body part, assist type, phase of play and any other context the provider records. It then compares the attempt with patterns learned from similar historical shots. Suppose the resulting estimate is 0.25 xG.

That means comparable attempts are expected to produce a goal about 25% of the time—roughly one goal per four such shots over a large sample. It does not mean this particular attempt is one-quarter of a goal, nor that four repetitions would guarantee one.

Changing one detail at a time

The estimate can move when the description changes:

  • Wider location: Moving the shot several metres toward the side of the box narrows the available angle. All else equal, that will often reduce the estimate.
  • Different body part: Replacing the footed strike with a header changes the comparison group. Headers and footed shots have different historical scoring patterns, even from similar coordinates.
  • Rebound: Marking the attempt as a rebound may capture a displaced goalkeeper or unsettled defence. Its effect is not fixed, because rebound definitions and surrounding circumstances vary.

There is no dependable rule such as “subtract a set amount for a header.” Each feature interacts with the others, and whether defensive pressure is included in the xG model can further change the result.

Why providers disagree

One provider might report 0.25, another 0.24, and another 0.18 without any calculation being obviously wrong. They may train on different competitions and seasons, define cutbacks or rebounds differently, record coordinates on slightly different pitch scales, or include different contextual variables. Their modelling methods, treatment of blocked shots and data-cleaning choices can also produce reasonable disagreement.

Quick questions

Reading the example correctly

Is 0.25 xG an exact probability?

No. It is a model estimate based on past attempts judged comparable. Unrecorded details can still matter.

Does a central shot always receive high xG?

Not necessarily. Distance, body part, pass type, pressure and goalkeeper position may all qualify the advantage of a central location.

Can rebound status increase or decrease xG?

Either is possible depending on the full situation and model. A rebound may expose the goal, but it can also leave a difficult angle or awkward body position.

Which provider’s number should be used?

Consistency matters more than choosing the largest value. Comparisons are clearest when every shot comes from the same provider and model version.

Special case

Why penalties receive a standard xG value

Penalties are usually separated from open-play shots because their starting conditions are unusually consistent: the ball is on the spot, the goal is unobstructed, and only the goalkeeper may defend. Providers can therefore estimate scoring probability from a large historical sample of penalties rather than rebuilding the chance from location and angle.

That produces a fairly stable value, often around 0.75 to 0.80 xG, though the exact figure depends on the dataset and rules used. Some providers apply one fixed number; others adjust the xG value assigned to penalties for selected circumstances.

Ordinary models may miss or only partly represent factors such as:

  • the taker’s and goalkeeper’s individual ability;
  • fatigue, injury, or psychological pressure;
  • familiarity between the players;
  • match situation and crowd effects;
  • the eventual placement, pace, or disguise of the kick.

Several of these details are difficult to measure reliably. Others, especially placement and power, describe how the penalty was executed and may only become known after the shot, making them unsuitable for a pre-shot estimate.

Probability is not a verdict

A penalty worth 0.78 xG still misses roughly 22 times in 100 comparable attempts. The figure describes the average outcome of similar chances—not the quality of the strike, the tactical importance of winning the penalty, or certainty that this attempt will score.

Quick check

How to assess a displayed xG value

  • Check the location

    Shots closer to goal usually receive more xG, especially from central areas.

  • Consider the angle

    A tight angle leaves less visible goal and typically lowers the estimate.

  • Note the body part

    Headers and weak-foot attempts may convert differently from comparable strong-foot shots.

  • Identify the chance type

    One-on-ones, rebounds, set pieces and open-play attempts belong to meaningfully different comparison groups.

  • Look at the preceding action

    A through ball, cross, cutback or defensive error can change how much time and space the shooter had.

  • Check the provider’s context

    Some models know only event data; others include goalkeeper position, defensive pressure or player tracking. Extra context can explain apparently surprising values.

Small differences between providers are normal because their data and model choices differ.

Conclusion

xG is best read as an estimated probability, not a verdict on finishing. A trained model compares the shot’s encoded circumstances with historical attempts, producing a value that is most useful for comparing chances and patterns over time.

Author Andy

Hi I'm Andy and I love to report on the latest football scores and Tables. I also like to have a bet on the football and occasionaly on the horses. On this website I have new bookmaker offers listed that will give you free bets and bonuses to help you beat the bookies. Enjoy your stay.

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Oldest
Newest Most Voted