0/70 completed
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

Spread (- = favorite) -7
-15 15
Total O/U 224
200 250
Favorite Implied 115.5 pts
Underdog Implied 108.5 pts

Live Game State

Minutes Remaining 48
0 48
Score Diff (+ = fav leads) 0
-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 TypeBase MinClose GameBlowoutExpected
Star Starter36402733.2
Role Player28282526.6
Bench Player12101713.3
Garbage Time Only52105.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

Pricing Models & Frameworks Tutorial

Built for mastery ยท Interactive learning