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