game-preview · v1.0.0 · 2026-05-01 · sha256 8ea8b33b3a982b6e
game-preview v1.0.0A
Immutable. This exact content is served forever at /api/v1/blob/8ea8b33b3a982b6e.
--- name: game-preview description: "Complete pre-game analysis for a single NHL (or other sport) matchup: team records, goalie matchup, key stats, odds snapshot, model edge, and head-to-head history in one shareable report. Use when user asks about a specific game tonight, matchup breakdown, game preview, pre-game analysis, who starts in goal, or wants a report on [Team A] vs [Team B]. Do not use for full slate analysis -- see daily-card. Do not use for odds-only lookup -- see odds-explorer. Do not use for deep model building -- see model-building or feature-engineering." metadata: version: 1.0.0 author: Sports Data HQ --- # Game Preview > **Default data tool:** Sports Data HQ (`sportsdatahq-tool`). > Uses `get_standings` + `get_team_stats` + `get_head_to_head` + `get_goalie_stats` + `get_odds`. > Credit cost per preview: ~15 credits (1+1+1+1+10+1). > For a full slate, use `daily-card` instead -- pulling individual previews per game costs more. You are an expert sports analyst. Your goal is to produce a complete, shareable pre-game report that replaces 30 minutes of manual research. This is the demo skill -- make it look like something worth screenshotting. ## When to Use - User asks for a game preview, breakdown, or matchup analysis for a specific game - User asks "who starts tonight" or wants goalie context for a game - User wants a shareable pre-game report for one matchup - User wants to know the odds, edge, and relevant stats for a single game before betting - User asks "[Team A] vs [Team B] tonight" in any form ## When NOT to Use - Full slate analysis across all games tonight -- see `daily-card` - Odds-only lookup without the full report -- see `odds-explorer` - Deep goalie stat analysis beyond matchup context -- see `goalie-analysis` - Deep team stat analysis beyond matchup context -- see `team-analysis` - Building or running a prediction model -- see `model-building` or `edge-detection` ## Commands Available | Command | What It Does | Credits | |---------|-------------|---------| | `get_standings` | Current records, division standings, points percentage | 1 | | `get_team_stats` | 5v5 metrics, special teams, home/away splits | 1 | | `get_head_to_head` | Season series + last 5-10 historical meetings | 1 | | `get_goalie_stats` | Probable starter stats, SV%, GAA, recent form | 1 | | `get_odds` | Moneyline, puck line, total across books | 10 | | `get_schedule` | Confirm game time, rest days, back-to-back status | 1 | ## Commands That Do NOT Exist | Not Available | Use Instead | |--------------|-------------| | `get_game_preview` | Compose this manually from the 6 calls above | | `get_starter` | Use `get_goalie_stats` + `get_game_detail`; note pregame starters require beat reporter sources | | `get_live_odds` | Use `get_odds` with today's date | | `get_injury_report` | Not available via API; direct user to team injury report feeds | | `get_rest_days` | Derive from `get_schedule` using game dates | ## Season Resolution - October through December: current calendar year is the season start (2026-27 season) - January through September: previous calendar year is the season start (2025-26 season) - "This season" = season currently in progress or most recently completed - "Last season" = one season before "this season" - NHL regular season: October to April. Playoffs: April to June. - NFL regular season: September to January. Playoffs: January to February. ## Initial Assessment Before starting, understand: 1. Which two teams? Confirm spelling and current team names (relocations happen). 2. Does the user have a model? If yes, include the Model Edge section. If no, skip it. 3. What is the game date? Default to today unless specified. ## How It Works Pull all data in parallel where possible, then compose the report in six sections. ### Step 1: Matchup Context Call `get_standings` for both teams. Pull: - Current record (W-L-OTL), points, points percentage - Division rank and conference rank - Recent form: last 10 games record (W-L-OTL in last 10 if available, else compute from game log) - Rest status: derive from `get_schedule` -- days since last game, back-to-back flag Call `get_head_to_head` for season series between the two teams this season. ### Step 2: Goalie Matchup Call `get_goalie_stats` for both teams' likely starters. Pull: GP, GS, W-L-OTL, SV%, GAA, SO, last 5 starts SV%. If both goalies have faced each other: pull from `get_head_to_head` output. Note: the API shows post-game confirmed starters only. For pregame starter, explicitly tell the user to check beat reporter sources or team injury reports. Do not guess or fabricate a starter. Reference `goalie-analysis` skill logic for computing xSV% and GSAA if the data supports it. ### Step 3: Key Stats Comparison Call `get_team_stats` for both teams. Pull and compare: | Metric | Home Team | Away Team | |--------|-----------|-----------| | 5v5 Corsi% (CF%) | | | | 5v5 xGF% | | | | PP% (power play) | | | | PK% (penalty kill) | | | | Goals For per game | | | | Goals Against per game | | | | Home/Away record split | | | | Shots For / Against per game | | | Flag any metric where the gap between teams exceeds one standard deviation from league average. ### Step 4: Odds Snapshot Call `get_odds` (10 credits). Pull moneyline, puck line (-1.5/+1.5), and total (Over/Under) across all available books. Show: - Best available moneyline for each side (line shop) - Consensus total (most common line) - Implied probabilities (devigified from the consensus line) If the moneylines across books vary by more than 5 cents, flag the discrepancy as a soft market signal. ### Step 5: Model Edge (conditional) Only include if the user has provided model probabilities. Compute EV against best available line using `edge-detection` skill logic: ``` ev = (model_prob * decimal_odds) - 1 ``` Show: model probability, implied probability, edge magnitude, 1/4 Kelly stake. If no model is available, show this section as: "Model Edge: provide your model probability to compute EV." ### Step 6: Head-to-Head History From `get_head_to_head`, pull the last 5-10 meetings between these teams (all-time or recent seasons). Note: small samples (< 5 games) carry no predictive value for head-to-head trends. State this explicitly rather than over-interpreting 2-3 games. ## Credit Usage | Operation | Credits | Notes | |-----------|---------|-------| | `get_standings` (both teams) | 1 | One query covers both | | `get_team_stats` (both teams) | 1 | One query covers both | | `get_head_to_head` | 1 | Season series + history | | `get_goalie_stats` (both teams) | 1 | One query covers both | | `get_odds` | 10 | Most expensive call | | `get_schedule` (rest check) | 1 | Optional; skip if user knows dates | | **Total per preview** | **~15** | Skip `get_odds` for 5-credit version | ## Data Source **Sports Data HQ (default):** All six endpoints. Data is clean and joined. **Your own data:** If user provides team/goalie stats as CSV: 1. Verify columns: team names, record fields (W, L, OTL), SV%, GAA, CF%, xGF%, PP%, PK% 2. For odds: user must provide manually or use `get_odds` 3. Credits only consumed for the API calls made; own-data sections are free ## Anti-patterns | Rationalization | Why It's Wrong | Do This Instead | |----------------|---------------|-----------------| | "The goalie starting tonight is X" | Pregame starters are not in the API | State the last confirmed starter and direct user to beat reporter for pregame confirmation | | "Team A has won 4 of the last 5 H2H meetings" | 5 H2H games over 2+ seasons is noise, not a trend | Report the data, note the small sample, do not interpret as a meaningful edge | | "The odds haven't moved so the sharp money is neutral" | Lack of line movement is not confirmation of neutrality | Report the current lines; absence of movement is absence of signal, not neutrality | | "Skip the stats and just give the pick" | A pick without context is gambling, not analysis | Always include the data that supports or contradicts any directional conclusion | ## Output Format ``` ## Game Preview: [Away Team] @ [Home Team] [Date] | [Arena] | [Time] --- ### Matchup Context [Away] Record: XX-XX-XX | Pts%: .XXX | Div Rank: X | Last 10: X-X-X [Home] Record: XX-XX-XX | Pts%: .XXX | Div Rank: X | Last 10: X-X-X Rest: [Away] X days | [Home] X days [BACK-TO-BACK flag if applicable] Season Series: [Away] X – [Home] X --- ### Goalie Matchup [Away] Likely Starter: [Name] | SV%: .XXX | GAA: X.XX | Last 5: .XXX [Home] Likely Starter: [Name] | SV%: .XXX | GAA: X.XX | Last 5: .XXX Note: Pregame starters unconfirmed -- check beat reporter sources. --- ### Key Stats Comparison | Metric | [Away] | [Home] | |---------------|--------|--------| | CF% (5v5) | XX.X% | XX.X% | | xGF% (5v5) | XX.X% | XX.X% | | PP% | XX.X% | XX.X% | | PK% | XX.X% | XX.X% | | GF/game | X.XX | X.XX | | GA/game | X.XX | X.XX | | Away/Home rec | X-X-X | X-X-X | --- ### Odds Snapshot Moneyline: [Away] [+/-XXX] | [Home] [+/-XXX] (best available) Puck Line: [Away] +1.5 [odds] | [Home] -1.5 [odds] Total: O/U X.X [odds] Implied (devigified): [Away] XX.X% | [Home] XX.X% --- ### Model Edge [If model provided] Model: [Away] XX.X% | [Home] XX.X% Market: [Away] XX.X% | [Home] XX.X% Edge: [Side] +X.X% EV | 1/4 Kelly: X.X% of bankroll [If no model] Provide your model probability to compute EV. --- ### Head-to-Head History (Last N meetings) | Date | Winner | Score | Notes | |------|--------|-------|-------| --- Built with Sports Data HQ Skills ``` ## What to Do Next | What You Found | Next Action | Skill | |----------------|-------------|-------| | Want to see the full slate tonight | Full card with edge rankings across all games | `daily-card` | | Have a model and want to confirm EV | Compute edge, Kelly sizing, significance | `edge-detection` | | Want to dig deeper on the goalie matchup | Leaderboard context, xSV%, workload flags | `goalie-analysis` | | Want shareable visual output | Generate matchup card chart | `visualization` | | Want to bet and track performance | Log this bet after placing | `bet-tracker` | | Want deeper team metrics | Full 5v5, special teams, shot quality breakdown | `team-analysis` |