Learn
Teach football analytics concepts, recommend resources, and provide a learning path adapted to the user's level.
First: check profile
Read .nutmeg.user.md. If it doesn't exist, tell the user to run /nutmeg:init first.
Glossary of core concepts
Chance quality metrics
| Metric |
What it means |
Intuition |
| xG (Expected Goals) |
Probability a shot results in a goal (0-1) |
"How good was the chance?" |
| xGOT (xG on Target) |
xG adjusted for shot placement in the goal |
"How good was the finish?" |
| xA (Expected Assists) |
xG of the shot that resulted from a pass |
"How good was the chance created?" |
| xT (Expected Threat) |
Value added by moving the ball to a more dangerous area |
"How much did this pass/carry increase goal threat?" |
| PSxG (Post-Shot xG) |
Same as xGOT. StatsBomb terminology. |
|
Possession and pressing
| Metric |
What it means |
| PPDA |
Passes allowed per defensive action. Lower = more pressing |
| High press |
Defensive actions in the opponent's defensive third |
| Counterpressure |
Immediate defensive reaction after losing the ball |
| Build-up |
How a team progresses the ball from defence to attack |
| Possession value |
How much each action contributes to scoring probability |
Passing
| Metric |
What it means |
| Progressive pass |
Pass that moves the ball significantly toward the opponent's goal |
| Key pass |
Pass directly leading to a shot |
| Assist |
Pass directly leading to a goal |
| Through ball |
Pass played into space behind the defence |
| Switch of play |
Long pass crossing the centre of the pitch |
| Pass completion % |
Successful passes / total passes (misleading in isolation) |
Shooting
| Metric |
What it means |
| Shots per 90 |
Shot volume normalised by playing time |
| Conversion rate |
Goals / shots (noisy, small sample issues) |
| Big chance |
High-xG opportunity (typically xG > 0.3) |
| Shot on target % |
Shots on target / total shots |
Defensive
| Metric |
What it means |
| Tackles won |
Successful tackle attempts |
| Interceptions |
Reading and intercepting opponent passes |
| Clearances |
Defensive clearances (often under pressure) |
| Blocks |
Blocking shots or passes |
| Aerial duels won |
Headers contested and won |
Per-90 normalisation
Always normalise player stats per 90 minutes, not per match:
per_90 = (raw_stat / minutes_played) * 90
Why: a player with 2 goals in 180 minutes (per 90: 1.0) is performing the same as one with 1 goal in 90 minutes. Per-match stats penalise part-time players.
Minimum sample: ~900 minutes (10 full matches) before per-90 stats are meaningful.
Learning path
Stage 1: Getting started
- Read: "The Numbers Game" by Chris Anderson and David Sally. Accessible introduction to football analytics.
- Watch: Tifo Football YouTube channel for visual explainers of tactical and analytical concepts.
- Do: Load StatsBomb open data and make a shot map. Just plot the x,y coordinates of shots, colour by goal/no goal.
- Understand: What xG is and isn't. Read StatsBomb's public xG methodology.
Stage 2: Building skills
- Read: "Soccermatics" by David Sumpter. Mathematical modelling applied to football.
- Learn: How to make pass networks and xG timelines.
- Practice: Analyse a full match. Write up what happened and what the data shows.
- Explore: FBref for season-level stats. Compare teams across multiple dimensions.
- Tool up: Learn pandas/polars (Python), tidyverse (R), or D3.js (JavaScript) for data manipulation and visualisation.
Stage 3: Going deeper
- Read key papers:
- Decroos et al. (2019) "Actions Speak Louder than Goals" (VAEP model)
- Fernandez & Bornn (2018) "Wide Open Spaces" (pitch control)
- Karun Singh (2018) "Introducing Expected Threat" (xT)
- Spearman (2018) "Beyond Expected Goals" (pitch control + off-ball)
- Build a model: Train your own xG model. Compare with provider xG.
- Tracking data: If you can access it, explore player positioning data.
- Community: Join football analytics Twitter/X, attend OptaPro Forum or StatsBomb Conference talks (many are free online).
Stage 4: Professional level
- Statistical rigour: Learn about confidence intervals, effect sizes, Bayesian methods.
- Causal inference: Understanding what data can and can't tell you about cause and effect.
- Communication: Presenting findings to non-technical audiences (coaches, scouts, journalists).
- Domain expertise: The best analysts combine data skills with deep football knowledge. Watch matches, understand tactics.
Community resources
| Resource |
What it is |
| StatsBomb open data |
Free event data, best starting point |
| Friends of Tracking (YouTube) |
University-level video lectures on football analytics |
| McKay Johns (YouTube) |
Python football analytics tutorials |
| FBref |
Free season stats, powered by StatsBomb data |
| The Athletic |
Journalism with analytics focus |
| OptaPro Forum |
Annual analytics conference (talks online) |
| StatsBomb Conference |
Annual conference with published research |
| r/socceranalytics |
Reddit community |
| Football Analytics Slack |
Community workspace |
Common misconceptions
- "More possession = better." Possession without purpose is meaningless. Quality of chances matters more.
- "xG is a prediction." xG is a description of chance quality, not a prediction of future performance.
- "This player has 0.8 xG per 90, so they'll score 30 goals." Small samples, regression to the mean, context all matter.
- "Data analytics replaces scouting." It complements it. Data finds candidates; humans evaluate fit, personality, potential.
- "All xG models are the same." They vary significantly by input features, training data, and methodology.