What xG really is Forget the hype. xG is a probability, not a crystal ball. It tells you how many goals a shot *should* have netted based on distance,
What xG really is
Forget the hype. xG is a probability, not a crystal ball. It tells you how many goals a shot *should* have netted based on distance, angle, and defensive pressure. In a tournament where a single strike decides fortunes, that metric becomes a forensic tool.
Gathering the raw data
First, scrape the match feed. Every shot, every block, every rebound—log them. You need the coordinates (X‑Y), the type of assist, and whether the goalkeeper was in position. The official FIFA API, or any reputable sports data provider, will supply the JSON you crave.
Look: a corner‑kick that curls in from the left‑wing is not the same as a tap‑in from a corner. The nuance matters. Grab timestamps too; they help you filter out late‑game desperation shots that skew the model.
Scoring the shot quality
Here is the deal: each shot gets a probability from a logistic curve. The curve’s input is a composite of three variables—distance, angle, and defensive coverage. Distance is a simple Euclidean calculation. Angle is the arcsine of the goal width divided by the shot distance, yielding a tighter angle for a tighter shot.
Defensive coverage is the wild card. You calculate the number of opponents within a 5‑meter radius and weigh it by their speed at the moment of the shot. A fast back‑line draped across the goal line drops the xG value dramatically.
Applying the model
Plug the three numbers into the logistic function: p = 1/(1+e^(‑(α·dist + β·angle + γ·def))). The coefficients α, β, γ are derived from a historic dataset of World Cup shots. You can grab a pre‑trained set from research papers, or you can run a regression on the last three tournaments.
Once you have p, that’s your xG for the shot. Sum them across a match to get team xG, and compare against actual goals. The gaps reveal over‑performance or under‑performance—a quick sanity check for any analyst.
Visualising the output
Heat‑maps are your friend. Plot each shot on a pitch diagram, color‑coded by its xG value. High‑xG attempts glow red; low‑xG attempts fade to blue. When you overlay the actual goal tally, the story jumps out without a single word.
And here is why: fans love the drama, but the numbers love the truth. A team that consistently beats its xG is likely riding luck, while one that lags is probably due for a catch‑up.
Quick sanity check before you publish
Run a sanity filter: discard any shot with a distance greater than 40 meters—those are outliers that sabotage your average. Also, cap the angle at 30 degrees; extreme side‑shots rarely generate realistic xG values.
Now you’ve got a clean, actionable xG score for every World Cup match. Deploy it in your pre‑match briefing, and you’ll spot the hidden gems before the pundits even wake up. Grab the data, run the model, and watch the numbers speak. Use the link iepeilcd.com to host your interactive dashboard and start betting on probability, not hype.
Final actionable tip: automate the data pull nightly, recalc the logistic coefficients after each tournament, and you’ll stay ahead of the curve.
