## Going Deeper Than Match-Level Statistics
Most models operate at the match level: aggregate statistics per match (xG total, possession percentage, shots). Event-level modelling uses individual shot or pass events — producing much richer feature sets.
## What Event-Level Data Contains
Each shot event includes:
- x/y coordinates on the pitch
- Shot type (foot, head, direct free kick)
- Assist type (through ball, cross, none)
- Situation (open play, set piece, counter-attack)
- Whether the goalkeeper was in position
- Distance to goal, angle to goal
From these raw events, custom features can be constructed:
- Shot quality distribution (not just total xG, but how it is concentrated)
- High-danger chance rate (shots from zones with >25% conversion)
- Set piece xG contribution (separate from open play)
- Transition speed (time from defensive action to shot)
## Building an xG Model From Events
A custom xG model assigns a probability of scoring to each shot event, based on its characteristics. Fitting this on historical event data (tens of thousands of shots per season) produces highly granular probability estimates.
Advantages over public xG:
- Tailored to your target leagues and time period
- Incorporates features not in public models
- Can be updated in near-real-time from live event feeds
## The Data Requirement
Event-level data requires either:
- Paid commercial data feeds (StatsBomb, Opta, Wyscout)
- Open StatsBomb (free for research purposes, limited scope)
- Web scraping detailed match logs from sources like Understat (partial event data)
## The Analytical Advantage
Bettors using event-level models often find edge in markets that aggregate-level models miss: player-specific props, half-time markets, and in-play opportunities that depend on granular game-state information.
Create a free account to track your progress and save bookmarks.