07 Dec 2006 10:43 am
Power Ranking Calculations
Here’s how my formula works. It’s the sum of 5 components.
First, the Wins component, which is:
(total wins)^2 + .5*(road wins - home wins) * (win strength of schedule)
and “win strength of schedule” is basically:
(sum of defeated opponents' wins)/(sum of defeated opponents' losses)
only I normalize it across the league average, so if your opponents’ win/loss record is equal to the league average, this component is just 1.
The second is pretty similar, the Losses component. It’s exactly the same as the wins except that you flip home and road (losing at home is worse, obviously), and instead of summing your defeated opponents’ wins and losses, you sum the conquering opponents’ wins/losses and normalize that, and you divide by the strength of schedule instead of multiplying because you want this number to be smaller for better teams (see next sentence). Oh, and you negate it before adding it of course, since losses are a penalty and not a bonus.
What’s important to notice about these two is that really, wins and losses are the big component and the other stuff (road wins, home losses, strength of schedule) have much less of an impact because wins are squared. As a result, you’ll see a general trend of sorting by records, but the other factors help offset that. If you just look at these two components in isolation, you’ll almost always get teams ranked by record in order without any overlap/mixing of records. Almost always.
The third component is the turnover ratio component, which is basically your +/- turnover ratio multiplied by a scale factor. Currently I’m using 2.8 as the scale factor, though I tweak it somewhat from week to week because I generally want this component to account for about 20% of the typical score. It’s ranged from 1.4 or so back in week 7 to 2.8 now after week 14, so typically it’s about :
(0.2 * (number of games played + 1)) * turnover margin
The fourth is the point differential component, which is calculated using a scaled, normalized version of the point differential, only this time I chose to normalize based on the league leader instead of the average, because obviously the league average in point differential is zero.
Basically, a team’s “point differential factor” is:
(point differential)/(league max point differential)
So if you’re the league leader in point differential then your “point differential factor” is just 1. Of course, this number can be negative if you have a negative point differential, so this factor can count against you of course. Once I’ve got the “point differential factor” I scale it so that this factor accounts for about 10% of the average score. I tweak this from week to week too, but in practice it comes out to about 1.6 or so times the number of games played, so right now I’m using 22.4 as the factor.
The fifth and final factor is the yards differential component, which helps discount teams that get scores from easier field position (due to turnovers or bad kicks or whatever). It also helps penalize teams that get penalty yardage. This component is calculated using normalized Yards Per Game and Yards Against Per Game values, like so:
(YPG/league average YPG) - (YAPG/league avergae YAPG) * scale factor
Again, the scale factor is something that’s tweaked week to week so that it accounts for close to 10%, but in practice it came out to about 4.5 * number of games played. Currently I’m using 64.