NFL 2015-16 Power Rankings

With the playoffs fast approaching, how do the teams stack up against one another, and who should we be looking out for on the road to Super Bowl 50? Well, the good news is, I can point you in the right direction (with a little explanation of how I got there).

For the last few seasons, I’ve published my own version of the popular NFL Power Rankings that appear on a number of sites. On most sites, these seem to be calculated arbitrarily, whereas I’ve tried to produce something that adds at least a slightly more scientific approach. What follows is an explanation of the method, but if you just want to see the rankings, they’re at the bottom of the piece.

It’s worth noting, before reading further, that I’ve adjusted my rankings formula again, so if you’ve read my rankings in previous years, they’re not directly comparable.

Finding common games

This approach is made a little tricky by the way the NFL organises schedules, but not impossible. No team plays the same sixteen opponents across the regular season, but in each division, every team plays a similar schedule across fourteen games:

  • Home and away against each team in their own division;
  • Once against each team in a designated NFC division;
  • Once against each team in a designated AFC division.

There are some differences in that schedule, as the combination of games played at home and on the road is different, and the final two games are unrelated, based against each team’s relative performance in the previous season, but it’s a good start. Thus, I base my Power Rankings on those fourteen common games, ignoring the two outside that.

Comparing divisions

As games are only common within divisions, I need a way to compare divisions. I do this by comparing the number of total wins in each division, as each division. Whichever division has the most wins is the strongest division (for now, at least). It’s the mark by which all the other divisions are marked. All other divisions are then assessed based on their relative percentage of wins. If the division with the highest number of wins has forty wins, and therefore has a relative strength of 100%, a division with thirty wins would have a relative strength of 75%.

Matching divisions

Whilst a good start, this is still very crude. What if a division had fewer wins than another because the divisions it was matched up against were actually very tough? What if a division Was matched against two weaker ones, and so had an easier ride?

Well, this is relatively easy to solve, as each division is matched against two others. So, by combining each division’s relative strength with that of the two it was matched against, I can calculate an overall division strength, and I do this by adding the three values together. Thus, carrying the previous example, if the top division has forty wins, and it’s up against two divisions with thirty wins each, the formula would be:

1 + 0.75 + 0.75 = 2.5

The resulting figure of 2.5 is the division’s overall schedule strength. A higher number means a tougher schedule. This value is then, for each team multiplied by their record as a decimal value, where 16-0 would equate to 1, or 12-4 to 0.75. The resulting figure is the team’s final ranking.

The final formula

So, the final formula (when fully expanded) looks like this:

(D + A + N) * R

Where:

  • D – Division strength
  • A – AFC opponent strength
  • N – NFC opponent strength
  • R – Record

Whilst form is important enough to be in, I reduce its weighting because I consider the overall division strength and record to be a more reliable indicator.

The rankings…

So, without further ado, here are the 2015-16 NFL Power Rankings (as of week 16):

TeamScheduleRecordOverall
Arizona Cardinals2.7350.8672.372
Carolina Panthers2.3820.9332.223
Cincinnati Bengals2.7350.7332.005
Denver Broncos2.7060.7331.983
New England Patriots2.3820.8001.906
Green Bay Packers2.8530.6671.903
Minnesota Vikings2.8530.6671.903
Kansas City Chiefs2.7060.6671.805
Seattle Seahawks2.7350.6001.641
Pittsburgh Steelers2.7350.6001.641
New York Jets2.3820.6671.589
Washington Redskins2.7060.5331.442
Houston Texans2.6760.5331.427
St Louis Rams2.7350.4671.277
Atlanta Falcons2.3820.5331.27
Oakland Raiders2.7060.4671.264
Indianapolis Colts2.6760.4671.25
Detroit Lions2.8530.4001.141
Chicago Bears2.8530.4001.141
Buffalo Bills2.3820.4671.113
Philadelphia Eagles2.7060.4001.082
New York Giants2.7060.4001.082
New Orleans Saints2.3820.4000.953
Tampa Bay Buccaneers2.3820.4000.953
Baltimore Ravens2.7350.3330.911
Jacksonville Jaguars2.6760.3330.891
Miami Dolphins2.3820.3330.793
San Fransisco 49ers2.7350.2670.73
San Diego Chargers2.7060.2670.722
Dallas Cowboys2.7060.2670.722
Cleveland Browns2.7350.2000.547
Tennessee Titans2.6760.2000.535

I’ll likely write a separate post about the various methodologies I’ve used to calculate the Power Rankings, and why I’ve changed them along the way. I’m also open to refining the formula and also to know if any of the teams look out of place in these results!

Wondering why I’m publishing this before the final regular season games? I’m doing it because I want to see how the rankings stack up against the week 17 games. Not entirely scientific, I know, but interesting all the same.

Truncating a file in Linux

Linux has a very useful and easy command when you need to keep a file but empty the contents of the file. Very useful when developing or testing and you only need to look at data in real-time.

When I’m working on websites, I often have a need to empty an existing file.

The most common need for this is when looking at error logs. When I’m working on something, I always keep a close eye on the error logs and when I find a problem, I fix it. I then clear the error logs to see if the error reappears. I have no real need to archive or rotate the log. I just want it cleared so next time I open the file, I can see anything that’s new without the need to wade through what was there previously.

It’s very easy to do this, using the truncate command:

truncate -s 0 /path/to/file

If the logged-in user doesn’t have permission to modify the file you’ll need to run the command as the super user:

sudo truncate -s 0 /path/to/file

The truncate command is used to shrink or expand a file to a specified size, and the -s 0 switch tells it to empty the file.

Very useful for situations where you have files like logs where you don’t need to keep the data once you’ve looked at it.

New year, new site

Sometimes, you need to make a clean start. I’ve neglected my website a lot over the past few years, so I’ve decided to start again in 2016. I’m sure you won’t like everything on it, but hopefully you’ll find some of it at least a little interesting!

Many years ago, when I was a student (and yes, many is the correct term for that now), I had a very active website – mainly because I had a lot of free time and a lot to say. Unfortunately, times change, and over the last few years, the amount of content on said site has dwindled, almost to zero.

I’ve often thought to myself, “I’ll just redesign it nicely, and then I’ll start using it properly again“. Of course, that never happens. And so, I’ve bitten the bullet, so to speak, and decided to do it the other way round. The old site will be burned to the ground (at some point) and this new site will go in its place. It will look nice and pretty if I ever get around to it, but for now I’m just focusing on using it.

My main focus subjects will be:

  • Eurovision – you know I love this, right?
  • Faith – something I’m rubbish at writing about;
  • Politics – you know, that thing no-one cares about, until it impacts them?
  • Sport – American Football, Formula 1, and anything else that takes my fancy;
  • Technology – probably a mixture of things related to my day-job and server-side website bits too.

It’s unlikely all five of those categories will interest many people, but hopefully at least a couple will interest some.