01 · Volume and quality
Volume and chance quality are not the same thing.
Each crest shows how often a team shot and how good those shots were on average. The dashed lines mark the league average, so the top-right corner holds teams that shot more often and from better positions.
02 · Attacking profiles
Where do teams' chances come from?
Every shot gets one label. Set pieces come first, then counter-attacks, then the type of final pass. Bars show the selected team's mix and the line shows the league average.
03 · Shot locations
Explore the shot locations.
Each point is a shot, attacking left to right. Point size is the shot's xG, and gold points are goals.
04 · The xG gap
Liga F scores more than xG expects.
Bars to the right of the line mean more goals than StatsBomb's xG expected. Dark bars are gaps too large to be chance (z ≥ 2).
05 · A Liga F xG model
Is StatsBomb's model wrong, or just mis-scaled?
I trained an xG model on this season's shots, using location, body part, technique, assist type and freeze-frame features such as how many defenders blocked the goal. Every model is scored only on matches it never saw. The chart compares predicted and actual scoring rates; a perfectly calibrated model sits on the dotted line.
| Model | ROC AUC ↑ | Log loss ↓ | Skill vs league average ↑ | Predicted / actual goals |
|---|
06 · What makes a shot go in
What drives the Liga F model?
These are standardised effects from the logistic version of the model. Blue features raise the chance of scoring and red ones lower it, holding everything else constant. Distance and angle dominate, as in any xG model, but the freeze-frame features add real information: the number of defenders in the shooting lane matters almost as much as whether the shot is a header.
07 · Who really finished well?
Most "overperformance" was the league, not the team.
Red circles compare each team's goals with StatsBomb xG and blue diamonds with the Liga F model. Once xG is calibrated to the league, most teams' apparent finishing edge shrinks towards zero.
| Player | Shots | Goals | Liga F xG | Difference |
|---|
| Goalkeeper | Shots | Goals | Liga F xG | Difference |
|---|
Goalkeeper figures use pre-shot xG, so they reflect both shot-stopping and the quality of shots on target faced. Post-shot xG is not in the open data.
08 · Team styles
Which teams look similar?
Principal component analysis (PCA) condenses seven standardised attacking, progression and defensive measures into a two-dimensional map. Colours are K-means groups fitted on the same seven measures. They describe similar profiles, not fixed tactical labels.
How to read the map
What the two axes measure.
All seven measures are standardised before fitting, so a high-volume measure such as completed passes cannot dominate just because of its scale. Axis directions are fixed so that moving right always means more points per match.
What the colours mean
The groups are performance levels, not attacking identities.
09 · Passing style
Progression is more than possession.
This compares completed passing volume with open-play progressive passes, meaning completed passes that move the ball at least 10 yards closer to the opponent's goal. Restarts such as goal kicks are excluded from progression.
10 · Passing network
Who connects with whom?
This shows each team's eleven most frequent starters across the season. Dots sit at each player's average position when passing or receiving, and lines show pairs who completed at least ten passes to each other. Thicker lines mean more passes.
11 · Defensive context
What do teams allow, and where do they win the ball back?
High regains are successful ball recoveries and interceptions in the attacking third. Lower xG conceded means a team allowed fewer and worse chances. The best defensive profiles sit in the bottom right.
12 · Chance creators
The final pass: quality and outcome.
Derived xA adds up the non-penalty xG of every shot a player set up directly. Goal assists show what actually happened after those passes.
| Player | Team | Minutes | Created shots | Derived xA | xA per 90 | xT per 90 | Goal assists |
|---|
13 · Expected threat
Every pass and carry counts.
Derived xA only rewards the last pass before a shot. Expected threat (xT) values every area of the pitch by how likely possession there is to become a goal, so any completed pass or carry that moves the ball somewhere more dangerous earns credit. The map shows those values, fitted on this season's open play.
14 · Hidden creators
The players assists can't see.
15 · Similar players
Find players with a similar statistical profile.
Pick an outfield player with at least 600 minutes. Similarity compares twelve per-90 measures covering shooting, creating, progressing and defending, after putting each on the same scale. It describes statistical output, not quality or playing style.
Methodology
Transparent measures before complex modelling.
Every number on this page comes from one reproducible Python pipeline. The pipeline stops if goals, shots or minutes fail to reconcile with the match records.