Click the pitch to log a shot, pick its details, and get an instant Expected Goals (xG) estimate. Watch the cumulative xG race build up as the match goes on. Everything runs in your browser.
This is a simplified, educational Expected Goals model — not a professional Opta/StatsBomb-grade model (those are trained on hundreds of thousands of shots with defender positions, shot speed, assist type, etc.). It uses just two geometric inputs, which is the classic textbook starting point for xG:
Formula: xG = 1 / (1 + exp(-(b0 + b1·distance + b2·angle))) with b0 = -2.65, b1 = -0.0625 (per metre), b2 = 2.65 (per radian). These were hand-tuned so a close, central shot (~6m, wide open angle) lands around 0.40–0.50 xG, a 30m strike lands around 0.02–0.05 xG, and a shot from just as close but hit from a near-zero angle (tight to the byline) drops back under 0.08 — in the right ballpark of published simple xG models, and a concrete illustration that angle matters as much as raw distance.
Adjustments on top of the geometric estimate:
Treat the numbers as illustrative, not a betting model.