What shapes a match

How each team plays

Summary + sample · full document is 961 words

Summary

Is a team high-pressing or deep-defending? Do they build up patiently or play direct? This dataset captures each WC 2026 team's tactical fingerprint across 12 playing-style dimensions.

The dataset lives at data/wc2026/team_style_vectors.csv, one row per participant (48 total — including placeholder rows for teams with zero coverage). It is produced by scripts/build_team_style_vectors.py from the StatsBomb open dataset; per-match feature tables cache to data/raw/statsbomb_features/ (gitignored) so re-runs against the same fixture list are cheap. Teams with no StatsBomb coverage are backf…

Sample

What each row carries

ColumnDefinition
possession_shareFraction of total possessions the team had.
ppdaPasses per defensive action — a press-intensity proxy (lower = higher press).
directness_indexA measure of how directly the team moves the ball goalward; higher = more direct.
build_up_passes_per_attackAverage number of build-up passes per attacking sequence.
crossing_rateCrosses per 90.
long_ball_rateLong passes per 90.
set_piece_routine_varietyDistinct corner / FK routine signatures observed.
final_third_entries_per_90Entries into the attacking third per 90.
shots_per_90Self-explanatory.
xg_per_shotMean xG quality per shot.
matches_used, tournaments_usedSample size, plus the tournament labels the rows came from.
data_freshnessMost recent match date used.
style_sourceWhich source the row's style read comes from: statsbomb (≥3 StatsBomb matches), statsbomb_thin (1–2), fotmob (no StatsBomb coverage — FotMob season stats used), or none.

Full document

Pro Pass

Want the full document?

How each team plays runs 961 words. The Pass unlocks this document and every research note in full, plus per-fixture probabilities, the four-model comparison, and per-fixture tactical analysis.

View pricing

24h self-service refund·No subscription, no auto-renewal·Access through 31 Dec 2026. See refund policy.