## Ratings - An Explanation Russell Degnan

While I've made some general comments before about how the ratings are calculate, until now, there has not been a definitive description. I first started compiling them, based on the same principles as the Elo Ratings used for chess (and football) 10 years ago.

The basic Elo approach requires that each match has an expectation. If a team beats that expectation, it receives points from the other team. If it fails to beat that expectation, it gives points to the other team. Each match is therefore dependent on the initial ratings, and every match in test history is needed to get the exact figure. (Reversing the result of the first ever test match raised England's current rating by 0.04, but that might be a rounding error).

A number of modifications to the basic formula have been added since, mostly to counter difficulties related to the comparative paucity of test matches played. By and large, how you calculate a rating usually doesn't matter much. But there are some subtle effects on the margin that I've tried to iron out, to balance out the problem of making a rating responsive to changes in true ability, but not erratic to individual results.

The rating itself is only a relative measure, useful to make comparisons between teams but a meaningless number. To make historical comparisons easier (but never completely valid) the test teams have always added up to 1000 (give or take). Each additional test side was given the rating of the current worst side, and the other ratings adjusted back to the 100 average. This isn't the best way - the best way is to set a rating rating that minimizes the rating adjustments in the following couple of years - this is what was done for the T20 ratings. But comparative analysis was deemed more important for the test ratings.

Each match is represented by a row in an excel table. The easiest way to describe the calculation is to go through one, so I'll use the last one:
England vs Bangladesh at Lord's, 2010.

Ratings

The ratings are looked up, and the difference calculated. A home team is given a 100 point bonus. The number is nice and round, but deceptively accurate. In T20 cricket, the home bonus is 20 points.

 Home Team ENG Rating(H) 1128.82 Lookup(Home Team) Away Team BAN Rating(A) 629.33 Lookup(Away Team) Diff 499.49 Rating(H)-Rating(A) Neutral h (h/n) Home Bonus 100 Neutral is h => 100 n => 0 DiffWHome 599.49 Diff + Home Bonus

Expected Margin

An expected margin is calculated from the ratings difference. This is complicated slightly by draws, which are a margin of 0. To compensate, the calculated expected run margin is slightly lower than what would be expected if there was a guaranteed result.

 Pt to Margin 0.5 Constant Exp Margin 300 Pt to Margin x DiffWHome

Margin Difference

An innings (the 4th) is considered to be worth 250 runs. This is slightly lower than the average for a 4th innings of 270 runs since WW2, but (as always) close enough. Adjusting any one constant seems to make very little difference to the final ratings. All games shift, a little. The calculated margin is therefore runs, plus 250 for an innings victory, or the number of wickets remaining, divided by 11. This should be scaled, really, but the spreadsheet is slow enogh already.

 Result h (h/a/d/t) Runs Margin 0 Wick Margin 8 Inn Margin 0 (1/0) Margin Value 250 Constant Home Margin 182 (Inn Margin + Wick Margin / 11) x Margin Value + Runs Margin Diff Margin -118 Exp Margin - Home Margin

Game Weight

Matches are weighted by importance. Matches increase in importance the longer a series is. Matches where the series has been decided (dead rubbers) ae worth half a live rubber.

 Series Length 2 Live Game a (d/a) Game Weight (T) 21.21 sqrt(Series Length) x 15 x (Live Game d => 0.5, a => 1)

Rating Change

The calculated points transfer is given by the game weight, multiplied by the difference between the margin and the expected margin (divided by one innings, but for no real reason). If a team has won the game, but is still losing points, the size of the transfer is reduced by 1/6th, and vice versa. Similarly, draws, which often owe a lot to luck, are discounted by half.

 Base Change -10.01 Game Weight (T) x Diff Margin / Margin Value Mod Change -8.34 Base Change x (Result is d => 0.5 Point gainer is w => 1 l => 5/6 )

The transfer is uneven, to account for differences in the perceived accuracy of the ratings. Historically, this fixed a severe problem with South African ratings, when they were only playing a couple of tests per year. Each team has a game weight - effectively a rolling average of the number of games played over two years. It is calculated by adding one for each test played, and by halving the weight at the beginning of the English season. A team pushes the change in proportion to the number of games they have played.

 Game Weight (H) 12.34 Lookup(Home Team) Game Weight (A) 6.46 Lookup(Away Team) Total Weight 18.8 Game Weight (H + A) PreChange(H) -5.73 ModChange x Game Weight (A) / Total Weight PreChange(A) 10.94 ModChange x Game Weight (H) / Total Weight

Team Rating Change

A team is no longer docked the entire preliminary ratings change. To allow the ratings to be more sensitive to changes in form, without making them erratic to off games (the West Indies massive loss to Pakistan in the late-80s stands out here), only half of the ratings change is added immediately. The other half, is added to a protected ratings table - often referred to as form, which it effectively measures.

If a team has a positive form, and receives points, they receive a quarter of their current form, in addition to half the rating change, and vice versa. Otherwise they receive only the ratings change. The protected rating is declined by 25% each game, plus half the preliminary rating change.

 Pt Decline 0.25 Protected(H) 0.57 Lookup(Home Team) ProtChange(H) 0 sign(PreChange(H)) is sign(Protected(H)) => Pt Decline x Protected(H) else 0 RatChange(H) -2.87 ProtChange(H) + PreChange(H)/2

 Protected(A) 21.86 Lookup(Away Team) ProtChange(A) 5.46 sign(PreChange(A)) is sign(Protected(A)) => Pt Decline x Protected(A) else 0 RatChange(A) 10.94 ProtChange(A) + PreChange(A)/2

The ratings are updated when I get to it, but if I'm watching, normally immediately. The post will normally coincide with a gap without any ongoing games, if one exists.

Cricket - Ratings 8th June, 2010 01:42:51   [#]