# Points Per Touch (PPT): Running Backs

3**Overview**

American writer Lewis Grizzard once said that “*The game of life is a lot like football. You have to tackle your problems, block your fears, and score your points when you get the opportunity.*”** When. You. Get. The. Opportunity.**

Fantasy football, and more importantly, winning fantasy football head-to-head games at the weekly or daily levels capitalizes on the ability of a fantasy manager to utilize their expectations of player performance to assemble a team capable of scoring more points than their opponent.

One of the key variables then to forecasting player performance is opportunities. Players who touch the football more times are more likely to be higher scoring fantasy players (i.e. more rushes, passes, catches, kick returns, punt returns). However, highest scoring may not be the most productive – and in fantasy football productivity is key if opportunities also increase (e.g. Joique Bell in 2013).

**Points Per Touch**

For fantasy sports one of the key metrics of success is correctly identifying the next breakout player. In order to evaluate potential fantasy breakout candidates a new metric of player performance has been created, and is presented here for the first time. This new measure is called: **Points Per Touch** (PPT). The concept is simple: (i) using a points-per-reception (PPR) and non-PPR fantasy football scoring algorithm total points for each player are estimated using game-level statistics (e.g. Fantasy Football Analytics July 20, 2014) ; (ii) for each game total “touches” are given by the total receptions (targets could also be used), rushes, and passes thrown by each player; (iii) finally the ratio of fantasy points to touches is calculated to determine the PPT. Finally, the descriptive statistics on PPT are estimated to determine the relative risk of players with high PPT (i.e. standard deviation and coefficient of variation). *For this analysis receptions, and not targets, were used to measure PPT. Using receptions and not targets is at the discretion of the modeler and was done due to data constraints on* www.profootballreference.com.

PPT statistics are a function of the scoring settings. For example, PPT for Jamaal Charles is likely to be higher under a point per reception (PPR) framework than a non-PPR framework. PPT statistics can be estimated for all offensive and defensive players. The focus of this article is specifically the running back position. Offensive players with high PPT but low usage have the potential to be breakout stars if their role is expected to increase (e.g. A. Ellington or T. Gerhart).

In today’s post I will provide the R script to gather and compute PPT statistics for running backs using both a PPR and non-PPR scoring algorithm. The basic scoring algorithm is 6 points for each touchdown, 0.10 points for each rushing/reception yard, 0.50 for each reception, and -2 for each fumble lost.

The results of this analysis can be used to evaluate individual player performance at a micro-performance level. After reading this post you will see why some players are low-volume but high risk-reward players (i.e. low touch, high PPT, and high coefficient of variation for the PPT statistic). The information in this post can be utilized to identify potential breakout candidates for the 2014 fantasy football season.

**Select Model Results**

Results of the PPT analysis identify several players capable of having “breakout” 2014 seasons if given more opportunities. Let’s start first by reviewing several key running backs:

*Benchmark Players:*

- During 2013, and using 0.5 PPR, top-tier running backs Lesean McCoy (average draft position 1.6) and Jamaal Charles (average draft position 2.2) had an average PPT of 0.85 (23 touches/game) and 1.11 (22 touches/game), respectively.
- A. Peterson (average draft position of 2.2) had a PPT of 0.71 (22 touches/game) during 2013.
- LeVeon Bell (average draft position 10.0) had an average PPT of 0.68 (22 touches/game).

*Breakout Potential:*

- Shane Vereen (average draft position 24.8) had an average PPT of 1.43 (11 touches/game) during 2013. While Vereen has significant competition in the Patriots backfield, and likely will have limited opportunities as a feature back, grabbing him late as a bye-week filler is something managers may wish to consider.
- Toby Gerhart (average draft position 20.0) – albeit running behind a Vikings offensive line — was less used during 2013; however his PPT of 1.16 (4 touches/game) suggests he could be a valuable player in 2014 if given a larger workload, he remains healthy, and the Jaguars create space in the running game. Gerhart has great hands out of the backfield and is a must own player to target.
- Andre Ellington (average draft position 15.4) was less used during 2013; however based on his PPT of 1.008 (10 touches/game) could be just as strong a fantasy player if given a larger workload and he remains healthy. 20 touches a game have been rumored, and at that usage Ellington could provide 20+ points per week for fantasy owners — in line with studs like McCoy and Charles. Ellington could be a steal if available in the 3
^{rd}or 4^{th}round (depending on league size). - Giovani Bernard (average draft position 10.6) had an average PPT of 0.89 (14 touches/game) during 2013, higher than Lesean but lower than both Charles and Ellington. If Gio can get 6-8 additional touches a game he could be a stud this season. Are 6-8 touches possible? During 2013 Green-Ellis was responsible for 220 totes and 4 catches for an average of 14 touches per game. If Gio can grab 50% of those touches this season he could be a top ten player in 2014. His average draft position reflects an anticipated higher usage, but at 10.6 he may be undervalued. This breakdown would give Gio approximately 20 touches per game and leave 6 touches for Hill.

Similar evaluations of the data can be performed to identify players who may be under- or over-valued relative to their average draft position. Going back to LeVeon, he currently has an average draft position as many as ten spots above of PPT analysis studs Gerhart and Ellington. Given that LeVeon has a mediocre PPT of 0.68, potential suspension, AND Blount is likely to reduce Bell’s workload I would flag him as a player to potentially avoid unless he’s available deep in your draft. Given a reduced workload, his PPT does not warrant a top ten average draft position.

**Figure 1. Points Per Touch, 2013 Season (>100 Touches)
**

**Figure 2. PPT Coefficient of Variation, 2013 Season (>100 Touches)**

**Figure 3. Touches, 2013 Season (>100 Touches)**

**Testing the Ex-Ante Accuracy**

The important question is “*Does any of this work?*” An ex-ante analysis of PPT statistics using the 2012 season as a sample was performed. Using the 2012 data three players were singled out as potential breakout/bust candidates:

*2013 Breakout Players using 2012 data:*

- Danny Woodhead had a PPT of 1.48 (8 touches/game) based on 2012 statistics.
**For 2013, Woodhead averaged 11 touches and finished 16th among RB using this scoring algorithm.** - Joique Bell had a PPT of 1.31 (8 touches/game) based on 2012 statistics.
**For 2013, Bell averaged 14 touches and finished 15th among RB using this scoring algorithm.** - Shane Vereen had a PPT of 1.27 based on 2012 statistics (played in only 8 games).

*2013 Bust Candidates using 2012 data:*

- Stevan Ridley had a pedestrian PPT of 0.66 (19 touches/game). Given that Vereen was expected to eat into his workload the top ten average draft position was suspect.
- Maurice Jones-Drew had a subpar PPT of 0.62 (16 touches/game) based on 2012 statistics. At his age his PPT was ripe to decrease and his touches per game were unlikely to increase as the Jags perpetually played from a deficit.
- David Wilson had a stellar PPT of 0.99 (6 touches/game); however, warning sirens go off when the relative risk level is considered. David Wilson was a true boom or bust player and had the highest coefficient of variation among all running backs of 1.47 (for comparative purposes most RB had a CV around 0.50, figure 5).

**Figure 4. Points Per Touch, 2012 Season (>100 Touches)**

**Figure 5. PPT Coefficient of Variation, 2012 Season (>100 Touches)**

**Figure 6. Touches, 2012 Season (>100 Touches)**

While not a perfect indicator of player performance for an entire 16 game season the PPT statistic can help to evaluate players at a micro-performance-level. Players with high volume scoring per touch and who are expected to be placed in more prominent offensive positions are players to target in head-to-head daily or weekly fantasy match-ups. Similar analysis of performance can be conducted for the wide receiver, tight end, quarterback and individual defensive player positions. Look for those analysis in upcoming *Fantasy Football Analytics* posts.

**Conclusion**

The key takeaway of this analysis is that points per touch in addition to expected workload must be considered when selecting players to start. Fantasy players who are extremely efficient when given touches AND who are expected to increase their share of the total offense are players to target for your fantasy matchup — especially if they can be selected late in your draft. Players with lower PPT but with high usage (e.g. Petersen, Lacy, and Lynch) will continue to be must own fantasy players. There are a variety of other factors that could be considered. For example, conditioning information on strength of schedule could also be used to identify players whose expected scoring opportunities may be, at least theoretically, easier than others as a function of their softer schedule (i.e. players with tougher schedules may be more likely to under-perform at a micro-level relative to players with softer schedules).

In this post I’ve introduced a new fantasy football statistic, points per touch, to help identify the productivity per touch under alternative fantasy football scoring algorithms. The R code to duplicate the results on your end are presented. In future posts I will present methods to use the PPT statistics combined with a distribution of expected touches to forecast game-level statistics (updated weekly using 2014 data). Users can build their own forecasts of player performance using the provided R script and by employing their own distributional assumptions on PPT/touches:

*simtouch<-rnorm(1000,Mean Touches for Player i,Standard Deviation Touches**for Player i*)*simppt<-rnorm(1000, Mean PPT**for Player i*,Standard Deviation PPT*for Player i*)*simpoint<-simtouch*simppt*

More advanced techniques such as using correlated Monte Carlo simulations of rushes, receptions, productivity per touch, and touchdowns are in development. This type of simulation model can be used to simulate game-level player performance. However, when doing this type of simulation is important to maintain the correlation structure among the player metrics. Not accounting for the correlation could lead to erroneous – and unlikely – simulation results.

**The R Script for the PPT is below:**

```
weeklyData<- transform(weeklyData,
Value = (rec*Rec.point+rushYds*Yds.point+ rushTds*TD.point+recYds*Yds.point+recTds*TD.point),
PPT = (rec*Rec.point+rushYds*Yds.point+ rushTds*TD.point+recYds*Yds.point+recTds*TD.point)/(rushAtt+rec),
Touches = (rushAtt+rec)
)
#Subset Data
weeklyData <- weeklyData[,c("name","year","week","rushAtt","rushYds","rushTds","rec","recYds","recTds","Value", "PPT","Touches")]
weeklyData <- weeklyData[order(weeklyData$year, weeklyData$week, weeklyData$name),]
datasummary <- ddply(weeklyData, c("name"), summarise,
Value = sum(Value),
Games = length(PPT),
Touch=sum(Touches),
muPPT = mean(PPT),
muTouch = mean(Touches),
sdPPT = sd(PPT),
sdTouch = sd(Touches),
cvPPT = sd(PPT)/mean(PPT))
```

**The R Script for entire analysis is below:**

https://github.com/New10/RCode/blob/master/PPT_RB.R

nameMerge(qbDF$player)

This function is giving me a “could not find function” error. I can’t find any documentation on it and I loaded all the libraries in your code. Any help would be appreciated.

The nameMerge() function is located in the Functions.R script located here:

https://github.com/isaactpetersen/FantasyFootballAnalyticsR/blob/master/R%20Scripts/Functions/Functions.R

It should be loaded at the top of the script with the following line (assuming the whole github directory is downloaded and your working directory is set correctly):

source(paste(getwd(),”/R Scripts/Functions/Functions.R”, sep=””))

Hope that helps!

-Isaac

Great success!

Thanks for the follow up. Love the blog!