How we test
← All methodologyAnyone can post a leaderboard of confident-looking numbers. Our headline ratings show a range around each value. A new input to our models has to pass the checks below before we use it.
Our headline ratings show their uncertainty
A point estimate on its own invites false precision. So we resample whole games 500 times over. We recompute the whole rating each time and report the 90% range that produces. Read the point as the estimate. Read the range as how much the games behind it could move it. Here is one rating. It comes from the same file as the board it links to. So the two can never disagree:
The rating is +30.6 goals above replacement. Its 90% range runs from +25.5 to +35.0. That whole range sits above zero, the replacement level. A player whose range overlapped theirs would be a statistical tie. Our leaderboards say so instead of inventing a rank.
See the GAR leaderboard with its intervals →The checks a new input must clear
A new input to our models has to clear these checks before we use it.
- 1Beat what we already use
A new input has to do better than what our models already use. Beating a weak stand-in does not count.
- 2Work on games it has not seen
We check it on games the model did not learn from. Doing well on the games it learned from proves nothing.
- 3Hold up when we check again
The gain has to show up every time we repeat the check. A gain that shows up once is noise, so we drop it.
Some ideas looked promising and did not hold up, so we do not use them.
What we don't claim
We don't sell betting picks or a pre-game "edge." We tested for one, and there isn't a reliable one. The market price already reflects what the model knows. What we offer is honest analytics. We show the number and the range around it. We also show how it was built.
We show GSAx as a record of what already happened. It is not a signal for what comes next.
Counts on this page are read from the published data through 2026-27. A figure from a one-time study says when it was measured.