Charlie Burrus's NCAA Football Computer Rankings

The algorithm:

  1. Assign an index of 1 to all teams.
  2. For each game that is played, calculate the modified point spread (MPS)= min[15, (point spread)*(winner's points)/(total points)]. So the minimum is close to zero, and the maximum is 15.
  3. For each game, calculated the modified point spread factor (MPSF) = .25 + MPS/60. So the So the minimum is close to .25, and the maximum is .5.
  4. For each date, calculate the datefactor = 0.999^(number of ellapsed days since the game was played). This gives recent games slightly more weight.
  5. If you win a game, you get {(1 + MPSF)*(1 + oppponent's index) - 1}*datefactor.
  6. If you lose a game, you get {(1 - MPSF)*(1 + oppponent's index) - 1}*datefactor.
  7. For each team, add up all the points from all the games you've played, and divide by the sum of the datefactors. Multiply by 100, and that's the team's score.
  8. Normalize all the scores linearly, so that the max is 1 and min is 0. That's the team's new index.
  9. Repeat this procedure (starting with step 2) indefinitely, until all the indices for the teams stabilize.