About

Sportnumerics is run by Will James as a hobby. I don't have a lot of time to make changes here shoot me a line on Twitter / X @wiggzz if you have any suggestions or thoughts.

Methodology

Team Ratings

Team rankings are based on points scored only. We don't account for things like momentum, injuries or wins or losses (aside from the information that is built into the scores). Essentially what the algorithm does is attempt to solve the following equations
Ox - Dy + h = Pxy
Oy - Dx - h = Pyx
where Ox is the offensive rating of team x, Dx is the defensive rating of team x, h is the home field advantage factor and Pxy is the actual points scored by team x against team y. The algorithm finds values for Ox and Dy which minimize the error in the above equations.
This allows us to predict the number of points scored in a given game between two teams, by taking one team's offensive rating and subtracting the opposing team's defensive rating, which gives an estimate of how many points one team will score against the other.
The overall rating Rx of a team is determined by adding together their offensive and defensive rating
Rx = Ox + Dx

Player Ratings

Player rankings are similar. We solve the following equation
Rpx + O'x - D'y = Ppxy
where Rpx is the rating of player p on team x, O'x is the team x's offensive rating, D'y is the opposing teams defensive rating, and Ppxy is the number of points player p from team x actually scores against team y. Note that the offensive and defensive ratings (O'x and D'y) in the player ratings are not related to the offensive and defensive ratings for the team ratings.
Sportnumerics on xSportnumerics on github