Expected goals (xG) turns a shot into a probability of scoring, so a tap-in and a 30-yard screamer are judged by the chance they really were. This tool uses a transparent logistic model to score a single shot and to tally a full match, and the sections below explain the formula, the inputs, and where it should and should not be trusted.
How the model scores a shot
The calculator combines four factors into a single log-odds score: distance to the centre of goal, the angle the goal mouth subtends, how the shot was struck, and how much pressure the shooter faced. That score is passed through the logistic function to produce a probability between 0 and 1.
Distance carries the most weight — each metre lowers the odds — while a wider angle and an open lane raise them. Penalties skip the model entirely and use the historical 0.76 conversion rate.
The inputs and what moves the number
Distance (1–40 m) and angle (0–90°) describe location and are the biggest levers. Shot execution applies a fixed adjustment: a header is harder than a foot shot from the same spot, and a weak-foot shot sits between them. Pressure ranges from an open shot that helps to heavy contesting that hurts.
Because location dominates, two shots from identical spots can have very different xG only when execution or pressure differ markedly.
Limits and honest caveats
This is a simplified, illustrative model, not a club-grade engine trained on millions of shots. It ignores goalkeeper position, the number of defenders in the lane, assist type, and whether the chance was a fast break or a set piece.
Use it to build intuition and to compare chances on a like-for-like basis, but treat single-shot values as estimates and lean on the cumulative match total for the more reliable story.