What I'd Build Next
- A natural-language layer on top of all of this — packaging the computed stats into a prompt and returning an analyst-style summary, deliberately scoped last since it's only as good as the analytics underneath it.
- Crediting turnovers with a real negative value, based on the opponent's own threat from wherever the ball was actually lost, rather than treating every turnover as equally costless.
- Per-team xT surfaces, to capture actual tactical identity rather than one blended league average.
- Defender positions as an xG feature, using the freeze-frame data StatsBomb provides for shots specifically.
- A geometric tie-breaker for surprisal, so genuinely rare actions rank by how unusual they actually were, not only by how rarely they occurred.
Data & attribution#
Match event data provided free by StatsBomb via their open data repository. Analysis and models are original work built on top of that data.