Which Stats Actually Predict Wins for the Chelsea Women's Soccer Team
Testing whether underlying performance metrics explain Chelsea Women's Football Club results (Chelsea FCW), and flagging games where they overperformed or underperformed those numbers.
What I'm digging into
Match results don't always reflect how a team actually played. This project asks which underlying metrics, xG, xG differential, shot quality, best explain Chelsea FCW's wins, draws, and losses across their 2023/24 WSL title-winning season. It also identifies specific matches where the results diverged sharply from the underlying numbers.
Where the numbers come from
StatsBomb's free open-data release for Chelsea Women's 2023/24 WSL title-winning season, pulled via the statsbombpy package. This is rich, event-level data (over 3,000 tracked actions per match) where each individual shot carries an xG value from StatsBomb's own model. It's a higher-quality data source than most publicly available soccer stats.
This file is event-level data that has to be aggregated up to match-level summaries, which is itself a realistic analyst skill, rolling up granular transactional data into the shape an analysis actually needs.
Limitations: The free release currently covers select WSL seasons only, so this analysis focuses on the 2023/24 season. Sample size is limited to one team's matches in one season.
How it works
- 1
Pull match list and event-level data via statsbombpy for Chelsea's 2023/24 season
- 2
Aggregate shot-level events into a match-level table, result as Win/Draw/Loss, xG for, xG against, xG differential, shot quality metrics
- 3
Profile and resolve data quality issues: team name inconsistencies, missing/null values in specific event fields, aggregation edge cases (own goals, penalties)
- 4
Load into a SQL database and use joins, CTEs, and window functions to build match-by-match and rolling-form analytical tables
- 5
Test which metrics correlate most strongly with match outcome across all three outcome classes (W/D/L), not just win/loss
- 6
Compare actual goals scored vs. xG per match to flag specific games where Chelsea overperformed or underperformed their underlying numbers
- 7
Build a Power BI dashboard showing xG differential vs. actual result over the season, with over/underperforming matches highlighted
Dashboard preview
Power BI dashboard — xG differential vs. actual result over time, with over/underperforming matches flagged. Coming soon.
What the data says
Findings in progress. This section will report how often xG differential correctly predicted the match outcome, and name the specific season or match where Chelsea's results diverged most from their underlying numbers.
The bigger picture
Demonstrates the full analyst workflow for an exploratory data analysis project. Sourcing data that isn't handed to you in a clean API, validating, and cleaning it, modeling it in SQL, and communicating a stakeholder-ready insight. This is applied to a compelling, personal case study rather than a canned dataset.
Where things stand
Data sourcing and quality-checking in progress. SQL modeling, statistical validation, and the Power BI dashboard are coming next.