Breaking down the Titans' preseason play-by-play

I am a long time Titans fan, but relatively new to the site. With this post and potentially more in the future, I want to share some work I have done analyzing play-by-play data.

A bit of background

Since (and various other websites) put it online for open access, play-by-play data is clearly in the public domain. It's not usually presented in a format that lends itself to analysis, however. makes historical play-by-play data available in a more useful format although not for the current season and not processed beyond basic parsing. Recent play-by-play data is available for purchase, but I wanted something both free and up to date.

I'm teaching myself to program in Python at the moment, so this weekend I ended up writing some code to parse play-by-play data off the cbssports website and extract a number of variables for each play. It's still very much work in progress, but I wanted to share it now and get some feedback from you guys with a view to developing it further. I know play-by-play data isn't perfect, but with the code set up, I can run the data for a lot of games quite easily, so some interesting results are bound to surface.

To give you a taste, here are some very top-line numbers from the first three preseason games and the 2012 regular season:


Breaking down the 184 plays the Titans' offense ran this preseason, it has been very balanced with:

  • 93 passes (51%)
  • 91 runs, including 7 scrambles (49%)

The Running Game

The Titans' run game itself has also been very even, with the team running the ball up the middle 36% of the time, to the left 30% of the time and to the right 34% of the time. Runs to the right and up the middle were considerably more successful, but keep in mind that these numbers are easily skewed by big runs (e.g. without CJs 58 yard run, runs up the middle would only average 3.6 yards). Nonetheless, 4.9 yards per carry are certainly encouraging.

The play-by-play breaks this down further into runs to end / tackle or guard as well as indicating scrambles. I'm not showing this data here as there are not enough plays in each category, but I may get into it later this season. Note that I have classified runs over the guard (i.e. left guard, right guard) as runs up the middle for analysis purposes.

Direction Runs Yards Ypc
Left 24 88 3.7
Middle 29 161 5.6
Right 27 140 5.2

To put the numbers into perspective a bit, I've also run the Titans' numbers for the 2012 season for comparison. Aside from the run game having been more successful this preseason, what stands out to me is that the Titans have managed to run to the outside more often, which lends itself to CJ's running style.

Direction Runs Yards Ypc
Left 70 286 4.1
Middle 199 924 4.6
Right 68 211 3.1

The Passing Game

Throwing the ball, the Titans went deep only 22% percent of the time. 50% of those deep passes were completed for 13.7 yards per attempt. Of the short passes, 67% were completed for an average of 5.0 yards per attempt.

The breakdown by pass direction is interesting. While the completion percentages is highest for throws over the middle, passes to the right have resulted in the highest Ypa thanks to some long completion. As we see more throws from Jake in the regular season, it will be interesting to see if that trend continues.

Direction Passes Compl. % Yards Ypa
Left 32 63% 164 5.1
Middle 25 68% 168 6.7
Right 36 61% 305 8.5

Note: The direction of the each play as well as pass depth is based on how the play is described in the play-by-play on the website.

Again, for comparison, here are the numbers for last season. It seems fair to say that so far we are seeing considerably more accuracy and more Ypa. Here's hoping it carries over into the regular season.

Direction Passes Compl. % Yards Ypa
Left 193 55% 1160 6.0
Middle 136 58% 1030 7.6
Right 231 56% 1383 6.0

Where to go from here

I will look at the Titans' defensive numbers so far in my next post. In the meantime, if you're interested, have a look at the full data for the 2012 regular season (all 16 Titans games) here. While I should have caught most of them, I expect there will still be some plays with parsing errors. If you notice one, please point it out to me and I will fix it at source.

I would be very interested in your feedback: Do you think this data is interesting? Are any key variables missing (e.g. I have penalties, extra points and player defending a pass on my list)? What kind of analysis would you want to see in future if any? Running previews on our opponents (e.g. tendencies, strengths, weaknesses) is something I have been thinking about in particular.

Log In Sign Up

Log In Sign Up

Forgot password?

We'll email you a reset link.

If you signed up using a 3rd party account like Facebook or Twitter, please login with it instead.

Forgot password?

Try another email?

Almost done,

By becoming a registered user, you are also agreeing to our Terms and confirming that you have read our Privacy Policy.

Join Music City Miracles

You must be a member of Music City Miracles to participate.

We have our own Community Guidelines at Music City Miracles. You should read them.

Join Music City Miracles

You must be a member of Music City Miracles to participate.

We have our own Community Guidelines at Music City Miracles. You should read them.




Choose an available username to complete sign up.

In order to provide our users with a better overall experience, we ask for more information from Facebook when using it to login so that we can learn more about our audience and provide you with the best possible experience. We do not store specific user data and the sharing of it is not required to login with Facebook.