{"id":71883,"plugin_id":"plugin_asdk_app_6ad146628be48191826f84406ff2c4c1","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-30T00:06:19.891Z","digest":"df604c9279221c8d467367394d9138171c59274203bff2432f454c6d4aca2ccb","against":null,"payload":{"description":"Analyzes clubs: league table, points per game, home and away splits, form, goals and xG for and against, possession and discipline, head to head, and strength relative to the league. Use when the user asks how a club is doing, wants the table, compares two clubs, or asks whether a club is over- or under-performing. Do not use for a single match, see match-lookup. Do not use for player-level stats, see player-scouting. Do not use for building ratings, see elo-ratings.","included_files":[],"name":"team-analysis","skill_md_contents":"---\nname: team-analysis\ndescription: \"Analyzes clubs: league table, points per game, home and away splits, form, goals and xG for and against, possession and discipline, head to head, and strength relative to the league. Use when the user asks how a club is doing, wants the table, compares two clubs, or asks whether a club is over- or under-performing. Do not use for a single match, see match-lookup. Do not use for player-level stats, see player-scouting. Do not use for building ratings, see elo-ratings.\"\nmetadata:\n  version: 1.0.0\n  author: StrikerAPI\n---\n\n# Team Analysis\n\n> **Default data tool:** StrikerAPI (`strikerapi-tool`).\n> `get_standings` (2 credits) for the table. `get_team_stats` (5) for per-match averages including xG, and it returns the whole league in one call when `team` is omitted. `get_head_to_head` (2) for meetings. `get_ratings` (2) for Elo.\n\nYou turn a table and a block of averages into a view of how good a club actually is, separating what the points say from what the underlying numbers say.\n\n## When to Use\n\n- \"How is Chelsea doing?\" / \"Show me the Bundesliga table\"\n- \"Is this club lucky?\" (points versus xG)\n- Home and away splits, recent form\n- Comparing two clubs on attack and defence\n- Strength of schedule context before a preview\n\n## When NOT to Use\n\n- One match in detail: `match-lookup`\n- Shot locations and finishing: `xg-analysis`\n- A named player: `player-scouting`\n- Producing win probabilities from ratings: `elo-ratings`\n\n## Commands Available\n\n| Command | What It Does | Credits |\n|---------|-------------|---------|\n| `list_teams` | Club ids and abbreviations for a season | 1 |\n| `get_standings` | Rank, played, W/D/L, goals for and against, points, deductions, qualification note, home and away records, form | 2 |\n| `get_team_stats` | Per-match averages for and against: goals, `xg_for`, `xg_against`, shots, shots on target, possession, pass accuracy, corners, fouls, cards, tackles, clean sheets | 5 |\n| `get_head_to_head` | Meetings in this competition: wins, draws, goals, first meeting, results newest first | 2 |\n| `get_ratings` | Elo ratings, strongest first | 2 |\n\n## Commands That Do NOT Exist\n\n| Not Available | Use Instead |\n|--------------|-------------|\n| `get_table`, `get_league_table` | `get_standings` |\n| `get_team` | `get_team_stats` with `team` set |\n| `get_form` | The `form` field in `get_standings` (last results as letters), or `list_games` with `team` |\n| `get_xg_table` | Build it from `get_team_stats`, see `xg-analysis` |\n| `get_injuries` | Not available |\n\n## How It Works\n\n**Step 1: Resolve the competition and season.** Default is the Premier League, latest season. `get_standings` accepts every league except `ligamx` and `argentina`. In the Champions League it returns one table per group or the league phase.\n\n**Step 2: Pull the table and the averages.**\n\n```\nget_standings {\"season\": 2025}\nget_team_stats {\"season\": 2025}\n```\n\nOmit `team` in `get_team_stats` to get all clubs for 5 credits. One call per club would cost 5 each.\n\n**Step 3: Compute the gaps.** From `get_team_stats`:\n\n```\nxGD per match   = xg_for - xg_against\ngoal diff/match = goals_for - goals_against\nluck gap        = goal diff/match - xGD per match      (positive = outperforming)\n```\n\nFrom `get_standings`: points per game = `points / played`, and home and away records parse from strings like `\"3-0-0\"` (wins-draws-losses).\n\n**Step 4: Judge sustainability.** Over a full 38-match season, goal difference tracks xG difference closely and, as a rule of thumb, a gap above about 0.3 goals per match is unusual. Over 5 or 6 matches, a gap of 0.5 is noise. Do not call a club lucky or unlucky on fewer than about 10 matches.\n\n**Step 5: Add context.** Home and away splits (a club with 5 wins from 5 at home has played a different schedule than one with 3 and 2). `get_head_to_head` for the specific pairing, but it counts every meeting in this competition since the first, so recent meetings matter more than the lifetime record.\n\n## Worked Example\n\n2025-26 Premier League, `get_team_stats {\"season\": 2025}`, sorted by xG difference per match (38 matches each):\n\n```\nclub  goals_for goals_against xg_for xg_against  xGD/match\nARS     1.87      0.71        1.90     0.83       +1.07\nMNC     2.03      0.92        1.95     1.22       +0.73\nMAN     1.82      1.32        1.76     1.32       +0.44\nCHE     1.53      1.37        1.73     1.36       +0.37\n...\nBUR     1.00      1.97        0.94     2.12       -1.18\n```\n\nRead: Arsenal's goal difference per match (+1.16) sits just above its xG difference (+1.07), so the table position is earned, and the defence is the story: 0.83 xG conceded per match is the best in the league. Manchester City scored more than Arsenal but conceded more. Burnley's -1.18 xGD is the worst by 0.6, so its position is not bad luck.\n\nThe early-season table is a different read: `get_standings` with no season (2026-27) after 5 or 6 matches shows Manchester City and Arsenal level on 15 points, Brighton with the best goal difference (+13 from 6). That is six matches. Treat it as a starting point and pull `get_team_stats` before concluding anything.\n\n## Interpreting Fields\n\n| Field | Note |\n|-------|------|\n| `deductions` | Official points deductions are applied to `points`. Mention them |\n| `note` | Qualification or relegation note from the table, null mid-table |\n| `form` | Most recent results as letters, e.g. `WLWWW` |\n| `possession_pct`, `pass_accuracy_pct` | Style descriptors, weakly related to results. Do not rank clubs by them |\n| `red_cards_total` | Total red cards, not a per-match rate |\n| any stat `null` | ESPN did not chart it. It is not 0 |\n\n`get_team_stats` averages cover every final match in the season for the competition you query, \"league and cup stages alike\". In the Champions League that means group and knockout matches together. Other competitions are not included: a club's Premier League numbers do not contain its Champions League matches.\n\n## Anti-patterns\n\n| Rationalization | Why It's Wrong | Do This Instead |\n|----------------|---------------|-----------------|\n| \"They are top, so they are best\" | Six matches is noise | Show xGD and the sample size together |\n| \"Possession leaders are better\" | Possession and results correlate weakly | Lead with xG for and against |\n| \"Lifetime head to head decides the preview\" | Squads and managers change | Weight the last few meetings, state the count |\n| \"Call `get_team_stats` per club\" | 5 credits x 20 clubs | One call without `team` |\n| \"Compare Elo across leagues\" | Ratings move only on one competition's matches | Compare within a competition only |\n\n## Output Format\n\n```\n[Competition] [season] after [N] matches\n\nTable: [rank] [club] [pts] ([W-D-L], GD [x])  form [WWDLW]\nUnderlying: xG for [x.xx] / against [x.xx] per match, xGD [+x.xx]\nLuck gap: [goal diff/match] vs [xGD/match]  -> [outperforming / in line / underperforming]\nHome: [W-D-L]   Away: [W-D-L]\nCaveat: [sample size, deductions, schedule]\n```\n\n## What to Do Next\n\n| What You Found | Next Action | Skill |\n|----------------|-------------|-------|\n| Big goals-versus-xG gap | Where are the shots coming from | `xg-analysis` |\n| Want win probabilities from strength | Convert ratings | `elo-ratings` |\n| Comparing two clubs for a fixture | Full preview | `match-preview` |\n| Want to model the league | Poisson team strengths | `poisson-score-models` |\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}