Exercises: Rushing Analytics
Difficulty Levels
- Level 1 (Foundational): Basic rushing metric calculations
- Level 2 (Applied): Standard rushing analysis with NFL data
- Level 3 (Intermediate): Multi-dimensional evaluation
- Level 4 (Advanced): Context adjustments and modeling
- Level 5 (Expert): Research-level rushing analysis
Section 1: Basic Rushing Metrics (Level 1-2)
Exercise 1.1: EPA vs YPC
Level 1 | Metric Comparison
For the 2023 season: 1. Calculate yards per carry and EPA per carry for all RBs with 100+ carries 2. What is the correlation between YPC and EPA/carry? 3. Identify RBs who rank very differently on each metric 4. Which metric better predicts next-game performance?
# Your code here
Exercise 1.2: Success Rate Calculation
Level 1 | Success Rate
Calculate success rate for qualified RBs: 1. Using EPA > 0 as the definition 2. Using the traditional definition (40%/50%/100% of needed yards) 3. Compare the two definitions—which is stricter? 4. Which definition correlates more with EPA?
# Your code here
Exercise 1.3: Rushing Distribution Analysis
Level 2 | Distribution
Analyze the distribution of rushing outcomes: 1. Create a histogram of yards gained on rushes (limit to -5 to 30) 2. What percentage of rushes go for 0 or negative yards? 3. What percentage go for 10+ yards? 4. Compare distributions for 3 different RBs
# Your code here
Exercise 1.4: Rushing Rankings
Level 2 | Rankings
Create comprehensive rushing rankings: 1. Rank RBs by YPC, EPA/carry, success rate, and total yards 2. Calculate composite rank (average of all ranks) 3. Which RBs have the most consistent rankings across metrics? 4. Which have the most variable rankings?
# Your code here
Exercise 1.5: Explosiveness Metrics
Level 2 | Big Plays
Analyze explosive plays: 1. Calculate the percentage of runs gaining 10+ yards per RB 2. Calculate the percentage gaining 20+ yards 3. Is there a trade-off between explosiveness and consistency? 4. Which RBs are "home run hitters" vs "grinders"?
# Your code here
Section 2: Game Script and Context (Level 2-3)
Exercise 2.1: Score Differential Effects
Level 2 | Game Script
Analyze rushing by game state: 1. Calculate rush EPA when leading by 7+, close game (±7), behind by 7+ 2. How does rush volume change across these states? 3. Which RBs maintain efficiency regardless of game state? 4. What explains the differences?
# Your code here
Exercise 2.2: Quarter-by-Quarter Analysis
Level 3 | Temporal
Analyze rushing performance by quarter: 1. Calculate EPA by quarter for top 10 RBs by volume 2. Do RBs get more or less efficient as games progress? 3. Is there evidence of fatigue (declining EPA)? 4. Consider game script confounding factors
# Your code here
Exercise 2.3: Garbage Time Filter
Level 3 | Filtering
Create a garbage time filter: 1. Define garbage time (e.g., 4th quarter, down by 21+) 2. Calculate what percentage of each RB's carries come in garbage time 3. Recalculate EPA excluding garbage time 4. Which RBs look different after filtering?
# Your code here
Exercise 2.4: First Half vs Second Half
Level 3 | Split Analysis
Compare first and second half performance: 1. Calculate EPA in 1st/2nd half for qualified RBs 2. Is first-half performance predictive of second-half? 3. Which RBs show the biggest splits? 4. What factors might explain the differences?
# Your code here
Exercise 2.5: Red Zone Rushing
Level 3 | Situational
Analyze red zone rushing (inside 20): 1. Calculate red zone carries, yards, and TDs per RB 2. Compare red zone efficiency to overall efficiency 3. Who are the best goal-line rushers? 4. Is red zone rushing a consistent skill?
# Your code here
Section 3: Offensive Line and Scheme (Level 3-4)
Exercise 3.1: Team Rush Blocking
Level 3 | Team Analysis
Evaluate team rush blocking quality: 1. Calculate team-level rush EPA, success rate, and stuff rate 2. Rank teams by rushing efficiency 3. Do teams with good rushing have good passing, or vice versa? 4. Identify the best and worst run-blocking teams
# Your code here
Exercise 3.2: Backfield Comparison
Level 3 | Within-Team
Compare running backs on the same team: 1. Pick 3 teams with multiple RBs (30+ carries each) 2. Compare the RBs on each team using EPA metrics 3. Are differences attributable to RB skill or role? 4. What can we learn from same-system comparisons?
# Your code here
Exercise 3.3: Rush Direction Analysis
Level 4 | Direction
Analyze rushing by direction/gap (if available): 1. Calculate EPA by run direction (left, middle, right) 2. Are some directions more efficient league-wide? 3. Which teams/RBs have directional strengths? 4. What might explain directional differences?
# Your code here
Exercise 3.4: Yards Before Contact
Level 4 | Decomposition
If YBC data is available: 1. Calculate yards before contact (YBC) per carry by RB 2. Calculate yards after contact (YAC) per carry 3. Which RBs create vs are given yards? 4. How does YAC correlate with EPA?
# Your code here
Exercise 3.5: Box Count Impact
Level 4 | Defensive Alignment
If defender box count data is available: 1. Calculate EPA against light (6-) and stacked (8+) boxes 2. Which RBs handle stacked boxes best? 3. Does stacked box frequency vary by team? 4. Is stacked box performance a stable skill?
# Your code here
Section 4: Receiving and Dual-Threat Value (Level 3-4)
Exercise 4.1: RB Target Analysis
Level 3 | Targets
Analyze RB receiving: 1. Calculate targets, receptions, and receiving yards for RBs 2. What is the average receiving EPA for RB targets? 3. Compare to rushing EPA—which is higher? 4. Rank RBs by receiving contribution
# Your code here
Exercise 4.2: Total Touch Evaluation
Level 3 | Combined Value
Create combined rushing + receiving evaluation: 1. Calculate total touches (carries + targets) 2. Calculate total EPA from all touches 3. EPA per touch (combined) 4. Who are the most valuable total RBs?
# Your code here
Exercise 4.3: Catch Rate and Drop Rate
Level 4 | Receiving Skills
Analyze RB pass-catching skills: 1. Calculate catch rate per RB 2. If available, calculate drop rate 3. Compare catch rate to target depth 4. Is RB catch rate predictive?
# Your code here
Exercise 4.4: Route Participation
Level 4 | Usage Patterns
Analyze how often RBs run routes: 1. Calculate pass-play participation rate (on field for passes) 2. Calculate route participation rate (runs route vs blocks) 3. Which RBs are most involved in the passing game? 4. Does passing game involvement correlate with value?
# Your code here
Exercise 4.5: Third-Down Back Analysis
Level 4 | Situational Usage
Identify third-down specialists: 1. Calculate third-down snap share per RB 2. Compare third-down efficiency to overall 3. Who are the best third-down backs? 4. Is "third-down back" a real role?
# Your code here
Section 5: Efficiency and Value (Level 4-5)
Exercise 5.1: Rushing Efficiency Stability
Level 4 | Stability
Test how stable rushing efficiency is: 1. Split the season into first and second halves 2. Calculate EPA for each half per RB 3. What is the half-to-half correlation? 4. How many carries are needed for stable estimates?
# Your code here
Exercise 5.2: Expected Rushing Yards
Level 4 | Modeling
Build an expected rushing yards model: 1. Use down, distance, and field position as features 2. Predict expected yards 3. Calculate Rushing Yards Over Expected (RYOE) 4. Who gains more/fewer yards than expected?
# Your code here
Exercise 5.3: Opponent Adjustment
Level 4 | Adjustment
Adjust rushing for opponent strength: 1. Calculate rush defense EPA allowed by team 2. Adjust each RB's EPA for opponents faced 3. Which RBs move up/down after adjustment? 4. How much does opponent matter?
# Your code here
Exercise 5.4: Fumble Analysis
Level 4 | Ball Security
Analyze fumble risk: 1. Calculate fumble rate (fumbles per touch) by RB 2. Is fumble rate stable year-to-year? 3. How much do fumbles cost in EPA? 4. Factor fumble risk into RB evaluation
# Your code here
Exercise 5.5: Rushing Value Over Replacement
Level 5 | Value Metrics
Calculate RB value over replacement: 1. Define replacement level (e.g., 10th percentile EPA/carry) 2. Calculate each RB's EPA vs. replacement 3. Convert to estimated win contribution 4. Which RBs provide the most value over replacement?
# Your code here
Section 6: Comprehensive Evaluation (Level 4-5)
Exercise 6.1: Build an RB Index
Level 4 | Composite Metric
Create a composite RB rating: 1. Select 5+ metrics to include 2. Standardize each metric 3. Weight and combine into a single score 4. Validate against team success
# Your code here
Exercise 6.2: RB Comparison Tool
Level 4 | Application
Build a reusable RB comparison tool: 1. Allow input of RB names 2. Calculate all relevant metrics 3. Generate side-by-side comparison 4. Include visualizations
class RBComparison:
def __init__(self, pbp):
pass
def compare(self, rb_list):
pass
def generate_report(self):
pass
Exercise 6.3: Career Arc Analysis
Level 5 | Multi-Year
Analyze RB career trajectories: 1. Load multiple seasons of data 2. Track EPA trends across seasons for individual RBs 3. Identify typical career arcs 4. At what age do RBs typically decline?
# Your code here
Exercise 6.4: Predictive Model
Level 5 | Prediction
Build a model to predict next-season RB performance: 1. Use current season metrics as features 2. Include age and career carries 3. Predict next season's EPA 4. What predicts future performance?
# Your code here
Exercise 6.5: Complete RB Scouting Report
Level 5 | Capstone
Generate a comprehensive scouting report: 1. Select an RB to analyze deeply 2. Include all metric categories 3. Add situational breakdowns 4. Provide visualizations 5. Write a narrative summary
# Your code here
Submission Guidelines
For each exercise: 1. Include all code with comments 2. Provide visualizations where appropriate 3. Interpret findings in football context 4. Acknowledge limitations
Grading Rubric
| Level | Points | Focus |
|---|---|---|
| 1 | 2 each | Correct calculation |
| 2 | 3 each | Calculation + interpretation |
| 3 | 4 each | Multi-metric analysis |
| 4 | 5 each | Context and adjustment |
| 5 | 6 each | Comprehensive evaluation |