I made a small webpage that displays a histogram of a running back's yards per play. Take a look!

Quality Post

Based off this post from a few days earlier, some people brought up how misleading a stat that uses an average (like YPC) can be.

So, with some free time to spare, I thought it would be fun to plot a histogram of a running back's yards per play for a given season, and I created this:

https://ypc.herokuapp.com/

This was my first foray into making a website of mine public, so let me know if you have any suggestions, problems, or just general feedback!


Some known issues / todos:

  • I want to make it easier to select players, but for now, you are limited to a hard coded list of the top 5080ish rushers. Sorry if it's tough to find someone or if someone you really wanted to analyze isn't there, I'm working on it.

  • There are some QBs on the list, but their PASS attempts are throws, not receptions.

  • I'm looking into adding some aggregation stats (total yardage, total attempts, standard deviations, etc.)

  • Historical information for players who switched teams this year (for example LeSean McCoy) doesn't work.


EDIT:

(Oct 7, 2:00PM PST): Thanks for all the feedback everyone! I just added the ability to display two graphs on the screen, using the "Show Second Graph" button in the top right. Let the RBBC comparisons commence!

(Oct 7, 5:30PM PST): Guess who got sidetracked at work today, reading all of your comments and working to make this tool better for you all. I've added some more players to select from, as well as added a section to display attempts, yards, and averages.

(Oct 8, 11:00AM PST): Added some wide receivers! Still using rushing / passing yards, though I want to explore more WR-centric stats.

(Oct 8, 4:30PM PST): Added WR stats.

Posted Oct 7, 2015, 3:15 PM UTC · edited

297136
dio_affogato•

Excellent tool. Makes me want to start looking at median ypc rather than average ypc. I wonder if that would be a telling statistic or not

35
sentient_NSA_bot•

That's a pretty great idea. I'm willing to bet it would be a lot more revealing by eliminating the outliers.

An RB who consistently gets shit YPC, then rips off a 50+ yard run might end up looing like he had a great day despite the struggles.

If we want to call certain guys "touchdown dependent", then we should also acknowledge that some guys (like, say, Spiller) are "big run dependent."

10
bkervick•

Median isn't actually that useful because the yards are recorded by full yard without decimals and running backs often have a number of bigger plays which when talking about median just ends up cancelling out the number of negative and short runs, so the median for many running backs is just 3. If it's 2, then it's quite bad.

8
studmuffffffin•

I'm sure there's some way to do decimals. It would be a much better metric if so.

1
sentient_NSA_bot•

You'd have to do a hybrid median/average system.

Knock off the high and low outliers (by an equal amount on each end) then average the rest. That would give you some sense of what their typical rush looks like.

4
bkervick•

The NFL and the stats bureaus to my knowledge don't track runs to anything more specific than full yard.

1
RemyTheDog•

Don't take this the wrong way, but you are wrong. You say why in your post, big runs, these make the mean useless.

Median is the right way to look at this data as it is a non-normal distribution. Mean is only telling when there are no outliers. Because RB's bust off 50+ yard runs, outliers, it skews the mean to the high side, when in reality the majority of their carries could be more in the 2 YPC range. If you had looked at the median, you would see this, if you look at the mean you would set higher expectations than you should.

All of this being said, my gut tells me it's highly likely that there isn't a huge gap between the two ways to look at it. It won't give you decimals with median, but you could use this data to form clear tiers.

-1
bkervick•

I didn't say mean was useful, I said median was not useful. Because with the way the data works out, it's not. For almost any RB, the median yards per carry is 3. Source (last paragraph). I've edited my post to make it more clear.

3
_DrFeltersnatch•

An RB who consistently gets shit YPC, then rips off a 50+ yard run might end up looking like he had a great day despite the struggles.

In the end all that matters is the total yards. Chris Johnson comes to mind as someone who fits this mold. He'll have like 15 carries for 35 yards, then break off a 60 yard TD run. All we care about is that he ended with 95yds and a TD. I could care less how many shitty runs he had as long as he ends the day with a decent total.

3
JocularMango•

Median YPC + touches per game gives you a good idea of a players floor however. Now that we're getting into the bye weeks it can help you choose between a high ceiling/low floor vs low ceiling/low floor type player. For example, if you're choosing between Melvin Gordon or Alfred Morris. If your opponent has a lot of guys on bye and is playing a lot of high variance players while you have most of your starters, you likely want to minimize the variance in your Flex position so you'd pick Morris.

3
Tomoromo9•

Spiller and Hillman from last week both fit into this description. Their YPC is way too high for how they actually performed and 70+ yard runs are so far from reliable, unlike runs like those of Chris Johnson or Todd Gurley

1
StopClockerman•

I would also rather see median points per game for the current season on the league website interface. That is far more useful to me than average points per game.

1
Cigars4breakfast•

Nice work! Although it would be awesome if you could select multiple RB's for easier comparison.

12
vsbomOP•

I just added the ability to display two graphs on the screen. Hope it makes it more helpful!

5
Cigars4breakfast•

Awesome!

1
IceMaine•

agreed. It may be easier to show that with a line graph rather than pareto, too: one line each for RB1 rushes, RB1 passes, RB2 rushes, and RB2 passes.

2
toftr•

Very nice. The amount of 0 and negative yd carries is pretty revealing for some players (or, rather, their o line).

9
Anders157•

It's just part of the game at a certain level. Matt Forte had 50+ carries that were <=0 yards last season, and he was RB4 and we know he's talented. Just part of the bell curve.

Another important note: The average YPC may be like 4.5, but the median carry for a RB is 2 or 3 generally

7
toftr•

I don't disagree at all. The law of averages must be respected in fantasy haha. <=0 carries seem way more indicative of poor blocking or poor fit (I c u DeMarco) than actual RB talent anyway. I'd be disappointed if my back has a lopsided ratio of runs that go <=0 vs. 10-20+ though.

0
goldbergenstein•

No joke. I looked at TJ Yeldon's negative yardage count and it is a very telling statistic. :(

2
whitetornado2k•

Barry Sanders was the king of negative runs. This stat, like all others, doesn't apply absolutely.

1
goldbergenstein•

Yeah, but Barry also had a lot of positive yardage plays too.

2
ThrowawayXTREME•

Is it possible to have a fixed scale/uniformity with the data bins? It would make flipping between players easier to compare. Right now I have to constantly check where the 0 has gone in relation to the bars.

6
vsbomOP•

Great idea, I just fixed the scales, especially since I added the ability to display two graphs now!

4
MetaWhirledPeas•

I'm upvoting and replying to agree with this. Also, a nice feature addition would be to have one player above the horizontal line, and another below the horizontal line, for direct comparisons.

3
QBEagles•

Yes! The ability to directly compare two or more players on the same chart would be great.

Really nice work u/vsbom. Thanks for posting!

1
joshatusc2013•

Great work man.

5
dc8291•

This is awesome, thank you for putting the time into this. Bookmarked the site.

5
TheSkyscraper•

Please get DeMarco on there. I wonder if he has more 0/negative yard plays than positive.

4
vsbomOP•

Sorry for the late response, but he's there now! I had to manually add him to the top rushers list...

It's very disheartening :/

1
sh3pdawg•

This is cool. Makes G. Bernard look like a way better back than J. Hill.

4
stpetestudent•

As a Hill owner, this site made me sad :/

2
sh3pdawg•

Me too. I traded for Hill last week. Hoping he keeps getting the goal line work.

1
snoopyrj7•

Exactly what I came here to say. Hill only has 1 reception as well, compared to Gio's 12. That also makes me happy because this week I have to start him due to AP's bye week, and against Seattle I bet there will be more dump plays then usual even.

1
ahhben•

Should I sit calvin johnson for Allen Robinson or Mike Evanas?

4
thegolg•

I'm upvoting cause I think this is a joke. Please let this be a joke.

2
thefirst•

This is awesome! Where did you get the data from and how are you doing the graph animation?

3
vsbomOP•

Big shoutout to a guy called BurntSushi who made a really in-depth Python package to query any NFL stat you could wish for:

https://github.com/BurntSushi/nflgame

It has player statistics, game statistics, even play statistics - it's crazy detailed.

As for the graph, I used a library called Highcharts, then trimmed off a lot of decorations from the default because I like my minimal graphs.

8
allstarheatley•

What did you write this in? Python?

1
TL-PuLSe•

nflgame has a project called nfldb that exports into SQL. He probably wrote it in node since he's hosting Heroku, but I could be wrong.

1
fojasaurus•

You can deploy python to heroku. The response headers for the site show that the server is gunicorn, which is python.

2
TL-PuLSe•

Ha as soon as I saw the graph I knew it was Highcharts, then I read the play description and knew it came from nfldb/nflgame.

Good work :)

1
mrmikeytj•

Looking at the NFL Game Center JSON file: http://www.nfl.com/liveupdate/game-center/2012010101/2012010101_gtd.json

That link appears to be just one weeks worth of data from 2012? Do you know how to get 2015 data? changing 2012 to 2015 doesn't seem to do anything.

1
the_umm_guy•

First you'd need to find what I call a "game id" and the NFL calls an 'eid'.

The nfl has another feed where you can get the schedule, and within that is the "game id".

The bolded portion below is what you would need.

http://www.nfl.com/liveupdate/game-center/ 2012010101 / 2012010101 _gtd.json

Here's and example of how to get the games for season year 2015, during the regular season, of week 1.

http://www.nfl.com/ajax/scorestrip?season=2015&seasonType=REG&week=1

I've been tinkering with an API surrounding these resources. I'm just too lazy to do it.

EDIT: I found this out by reading through the nflgame repository on GitHub. I'm not a Python developer but this guy's code reads well and is very understandable. https://github.com/BurntSushi/nflgame

EDIT 2: Also interesting is that you can get the schedule of the current week/year by using http://www.nfl.com/liveupdate/scorestrip/ss.json

2
mrmikeytj•

Thanks - yeah I was looking through the same repo, didn't see anything relating to the json link though.

1
mrmikeytj•

Wow goes all the way back to 1970 :)

1
mrmikeytj•

Any idea what the "statId" lookup values are?

1
hystoic•

This right here is why I love this sub. Great work OP.

3
BrokerZero•

Awesome tool. I'd love to see the chart for Trent Richardson 2013 - 2014. 0-2 yards 100% of the time. :)

3
facemelt•

Trent HATES this tool.

2
blindboydotcom•

We need Arian Foster added!

3
maddestchemist•

What are the chances you can rework it so that we could see two players on the same graph? Either: Split the bars in half, -or- Have one set of bars going up, and one set down? I had a little trouble comparing players as the x-axis often differs depending on a RB,s longest run. My apologies, I have no idea what goes into coding this, so I don't know if I am asking for a simple fix, or a difficult one.

3
vsbomOP•

Hey, I just updated the site, you can now view two graphs if you wish. Two players on the same graph is a bit more difficult, though I'm not ruling it out in the future. Hope it helps!

3
maddestchemist•

Wow!. It was cool before, and now it's even better. They are both on the same scale so it is really easy to compare. Thanks for the great work!

1
maddestchemist•

Could there be a legend with the total carries and passes?

1
vsbomOP•

Why yes, there can be a legend! Just updated.

Fixed y-axis is tricky because I'm working with very little vertical real estate, so it's hard to display partial season info vs. full season info. I'll play around though, see what I can do

2
maddestchemist•

I think you put together a really useful tool that I didn't have access to before, or maybe more accurately presents the information in a useful way. Thanks again.

1
maddestchemist•

Oh, and a fixed y-axis, so you can more easily visualize the relative amount of carries at each yardage.

1
Zachmosphere•

u/vsbom great freaking job! Awesome tool. Thanks for contributing to the sub in a big way.

What I get from this is that Charles and Gurley need to get the ball more.

3
saltycod•

This is very cool, dude, well done!

2
Ghopper21•

Very cool, thanks!

2
itzcindy•

Thanks - this is very cool! What tool did you use to create the visuals?

Also, is there a rhyme or reason to how the drop-down is defined? I hard a tough time finding certain players because I was expecting team or alpha sorting.

2
vsbomOP•

Great advice, so I just went and updated the dropdown with your suggestion!

I used Highcharts for the graphs, and Bootstrap for the look and feel.

2
gentleman_bronco•

This is very awesome! Great work! I bookmarked it...it creates an awesome visual for good information.

2
ghostrider4723•

The list of players seems arbitrary right now (maybe just in order of yards?). It's hard to find specific players. I'd suggest at least alphabetizing it while you explore a solution for better ways of selecting.

Other than that, awesome job!

2
vsbomOP•

Very true. Yup, they were ordered by rushing yards so far this season (believe it or not)

Anyway, I just updated the dropdown so they're grouped by teams, and teams are in alphabetical order. Hope it helps!

2