Reviews and stress-tests any NBA bet slip or parlay a user shares. Invoke this skill any time the user pastes picks, a parlay, or a list of player props — even casually phrased. Examples: "check this", "is this good?", "rate my slip", "review my parlay", "should I bet this?", "Jokic 10 reb / SGA 25 pts / Wemby 3 blk", "kawhi 20 pts + brunson 5 ast", or any message where a user lists player names alongside stat types and numbers. Also trigger when the user describes a bet they're considering.
Stress-test every leg in the user's slip using that player's actual season data. Only fetch data for the players in the slip — no one else. Work fast and focused.
The most valuable thing you can do: give the honest combined probability. A slip where every leg looks "fine" can still be a 30% combined hit. Show the user the math.
If the user attaches a file starting with:
# NBA DATA CONTEXT — YYYY-MM-DD
# Generated by Python scrapers. Do NOT re-fetch web pages — use this data.
Skip all web fetching. Use the player profiles and hit rates from that file directly. Go straight to Step 2 (Grade Each Leg).
When pre-scraped data is available, also read these additional sections for each leg:
## TEAM GAME CONTEXT — check blowout_risk and total for player's game## OPPONENT MATCHUP PANEL — surface the opponent's def_rank for pts/ast/reb props## FILTER SPLITS — show L15 hit rate and home/away/B2B breakdown per legParse each leg from whatever format the user provides:
Then for each player in the slip, fetch only:
A. Is this player active tonight?
Check in one search: "[player name] playing tonight [date] NBA injury status"
B. Season stats vs the user's line
Search: "[player name] game log 2025-26 stats season"
Or: https://www.statmuse.com/nba/ask?q=[player]+stats+every+game+2025-26
From the game log, extract the relevant stat for the user's line type (points, reb, ast, etc.):
Calculate only what's needed:
This is the core check: the user's line vs real hit rate from real games.
Do not fetch: team defensive stats, pace data, or any info unrelated to this specific player and line. Keep it tight.
For each leg output:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[PLAYER] — [Stat] [OVER/UNDER] [Line]
Verdict: ✅ STRONG / ✅ GOOD / ⚠️ RISKY / ❌ AVOID
Season hit rate: XX/XX games = XX%
Last 15 games hit rate: X/15 = XX%
Last 5 actual values: [val, val, val, val, val] → [Hot 🔥 / Steady — / Cold 🥶]
Home: XX% | Away: XX% | B2B: XX%
vs tonight's opponent: XX% (X games this season)
Opp def rank: #XX (affects pts/ast props)
Recent form: [⚠️ Missed in last 2 games — caution / ⚠️ Missed last game / Hit both last 2]
Game context: Spread=[X] Total=[X] [⚠️ blowout risk if applicable]
Health: [Status + any B2B or return-from-injury flag]
Assessment: [2 sentences — why keep or drop this leg, referencing the numbers]
Verdict thresholds (calibrated for parlay use):
| Verdict | Hit rate at user's line |
|---|---|
| ✅ STRONG | ≥ 75% season AND ≥ 70% L10 AND active |
| ✅ GOOD | 65–74% season AND no OUT/Questionable AND not on a cold streak L10 |
| ⚠️ RISKY | 50–64% OR health flag OR L10 rate is dropping fast |
| ❌ AVOID | < 50% OR OUT/Questionable OR no game tonight |
Note: these thresholds are higher than single-game standards because every leg must hit in a parlay. A 65% leg is a liability in a 4-leg parlay (combined probability drops sharply).
If verdict is ⚠️ RISKY or ❌ AVOID, suggest a better line:
Better alternative: [Player] [same stat] OVER [lower line] (~XX% hit rate)
Why: [1 sentence — at this line the hit rate improves to acceptable]
A lower line on the same player is the first option. Only suggest a different player if the lower-line version still doesn't reach 65%+.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SLIP SUMMARY — [date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Legs: X total
✅ Strong/Good: [list]
⚠️ Risky: [list]
❌ Avoid: [list]
Parlay Health: ✅ X clear | ⚠️ X GTD | ❌ X OUT
Correlations: [None / list with type and severity]
Combined probability (as-is):
[hit rate 1] × [hit rate 2] × ... = ~XX%
If you swap [weak leg] → [suggested alternative]:
Combined improves to: ~XX%
Strongest leg: [player + reason — highest hit rate]
Weakest leg: [player + reason — lowest hit rate or flag]
Slip Confidence: XX/100
Verdict: [Keep as-is / Swap [leg] for [alternative] / Walk away]
[2 sentences of plain-language advice]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Show the combined probability math explicitly every time. This is the number that matters most — the user needs to know their real odds of the slip hitting.