Sports Model Interactive
Game Script Modeling
Predict how game flow affects player usage and stats. Blowouts reduce star minutes, close games increase late-game usage.
๐ What is Game Script?
Close Game
Stars play heavy minutes, bench limited. High-leverage situations.
- โข Star minutes: 36-40
- โข Usage rate: High
- โข Pace: Normal/Higher
Moderate Lead
Normal rotation, slight reduction in star usage late if comfortable.
- โข Star minutes: 32-36
- โข Usage rate: Normal
- โข Pace: Normal
Blowout
Stars pulled early, bench gets garbage time. Lower pace.
- โข Star minutes: 24-30
- โข Usage rate: Low
- โข Pace: Lower
Vegas Lines
-15 15
200 250
Favorite Implied 115.5 pts
Underdog Implied 108.5 pts
Live Game State
0 48
-30 30
๐ Current Script
Game Script Close Game
Expected Diff 0.0
Actual vs Expected 0.0
Star Proj Minutes 36
Game Script Probabilities
Close Game Prob
49%
Blowout Prob
51%
Based on spread of -7. Larger spreads = higher blowout probability.
Player Minutes by Script
| Player Type | Base Min | Close Game | Blowout | Expected |
|---|---|---|---|---|
| Star Starter | 36 | 40 | 27 | 33.2 |
| Role Player | 28 | 28 | 25 | 26.6 |
| Bench Player | 12 | 10 | 17 | 13.3 |
| Garbage Time Only | 5 | 2 | 10 | 5.8 |
Simulated Game Trajectory
๐ฐ Pricing Implications
Adjust Player Projections
- โ Reduce star projections in predicted blowouts
- โ Boost bench players when spread is large
- โ Factor pace adjustments into totals
- โ Use expected minutes, not season average
Live Betting Adjustments
- โ Real-time script detection from live scores
- โ Adjust remaining projections as game unfolds
- โ Close player props when script shifts dramatically
- โ Price garbage time stat padding
R Code Equivalent
# Game script adjustments
calculate_game_script_adjustment <- function(spread, total) {
# Estimate blowout probability
blowout_prob <- pmin(0.9, pmax(0.1, 0.3 + abs(spread) * 0.03))
close_prob <- 1 - blowout_prob
# Star player minutes adjustment
star_minutes <- 36 * (close_prob * 1.1 + blowout_prob * 0.75)
bench_minutes <- 12 * (close_prob * 0.8 + blowout_prob * 1.4)
return(list(
blowout_prob = blowout_prob,
star_minutes = star_minutes,
bench_minutes = bench_minutes
))
}
# Apply to player projection
adjust_projection <- function(base_proj, minutes_played, base_minutes, script_adj) {
minutes_ratio <- script_adj$star_minutes / base_minutes
adjusted <- base_proj * minutes_ratio
return(adjusted)
}
# Example
script <- calculate_game_script_adjustment(-7, 224)
cat(sprintf("Blowout prob: %.0f%%\n", script$blowout_prob * 100))
cat(sprintf("Expected star minutes: %.1f\n", script$star_minutes))โ Key Takeaways
- โข Spread size predicts blowout probability
- โข Stars play ~20% fewer minutes in blowouts
- โข Bench gets 40%+ more run in garbage time
- โข Weight projections by game script probability
- โข Live update projections as game unfolds
- โข Vegas lines encode valuable script information