acquire
Fetch, scrape, or download football data from any source. Also handles API key setup and credential management. Use when the user wants to get data from…
Transform, filter, reshape, join, and manipulate football data. Use when the user needs to clean data, merge datasets, convert between formats, handle missing values, work with large datasets, or do any data manipulation task on football data.
$ npx -y skills add withqwerty/nutmeg --skill wrangle --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wrangleContext preview
The summary Claude sees to decide when to auto-load this skill.
Transform, filter, reshape, join, and manipulate football data. Use when the user needs to clean data, merge datasets, convert between formats, handle missing values, work with large datasets, or do any data manipulation task on football data.
name: nutmeg-wrangle description: "Transform, filter, reshape, join, and manipulate football data. Use when the user needs to clean data, merge datasets, convert between formats, handle missing values, work with large datasets, or do any data manipulation task on football data." argument-hint: "[what to do with the data]" allowed-tools: ["Read", "Write", "Bash", "Glob", "Grep", "Agent", "mcp__football-docs__search_docs"]
Help the user manipulate football data effectively. This skill is about the mechanics of working with data, adapted to the user's language and tools.
Read and follow `docs/accuracy-guardrail.md` before answering any question about provider-specific facts (IDs, endpoints, schemas, coordinates, rate limits). Always use `search_docs` — never guess from training data.
Read `.nutmeg.user.md`. If it doesn't exist, tell the user to run `/nutmeg` first. Use their profile for language preference and stack.
Football data coordinates vary by provider. Always verify and convert before combining data.
Use `search_docs(query="coordinate system", provider="[provider]")` to look up the specific system. Key conversions:
Common filtering patterns for football event data:
**By event type:**
**By match state:**
**By zone:**
Common joins in football data:
| Join | Key | Notes | |------|-----|-------| | Events + lineups | player_id + match_id | Get player names/positions for each event | | Events + xG | match_id + event sequence | Match xG to specific shots | | Multiple providers | match date + team names | Fuzzy matching often needed | | Season data + Elo | date | Join Elo rating at time of match |
**Fuzzy team name matching** is a constant pain. Build a mapping table:
TEAM_MAP = {
'Man City': 'Manchester City',
'Man United': 'Manchester United',
'Spurs': 'Tottenham Hotspur',
'Wolves': 'Wolverhampton Wanderers',
# ...
}Common reshaping operations:
Full event data for a PL season is ~500MB+ (380 matches x ~1700 events). Strategies:
**Python:**
**JavaScript/TypeScript:**
**R:**
Always validate after wrangling:
| Check | What to look for | |-------|-----------------| | Event counts | ~1500-2000 events per PL match. Much less = data issue | | Coordinate range | Should be within provider's expected range | | Missing player IDs | Some events lack player attribution (ball out, etc.) | | Duplicate events | Same event_id appearing twice | | Time gaps | Large gaps in event timestamps within a match | | Team attribution | Verify home/away assignment is consistent |
| From | To | Tool/method | |------|-----|------------| | JSON events | DataFrame | pandas/polars `read_json` or manual parsing | | CSV | Parquet | `df.write_parquet()` (polars) or `df.to_parquet()` (pandas) | | Provider format | kloppy model | `kloppy.load_{provider}()` in Python | | kloppy model | DataFrame | `dataset.to_df()` | | Any | SQLite | Load into SQLite for ad-hoc queries |
A Claude Code plugin that makes Claude an expert at football data analytics. Who it's for: Anyone who works with football data — analysts, developers, journalists, researchers, hobbyists.
Fetch, scrape, or download football data from any source. Also handles API key setup and credential management. Use when the user wants to get data from…
Explore, interpret, and draw conclusions from football data. Use when the user wants to analyse match events, compare teams or players, understand tactical…
Brainstorm football data visualisations and chart designs. Use when the user wants ideas for how to visualise football data, needs inspiration for chart types,…
Calculate derived football metrics and models. Use when the user wants to compute xG, xGOT, PPDA, passing networks, expected threat, possession value, pressing…
Fix broken data scrapers and pipelines. Use when data acquisition fails, a scraper breaks, an API returns errors, or data format has changed. Also handles…