CRICKET — Elo Rating Analysis of ODI Teams

Manish Khorgade
Published in
5 min readApr 3, 2020


Remember Mohammad Ashraful? The underachieving child prodigy from Bangladesh.

If you have followed Cricket in the early 2000s, there is a good chance that your heart sank at the thought of a wonderboy who couldn’t reach his true potential. He scored just 9 centuries across 61 Tests and 177 ODIs he played for Bangladesh. Out of the 9 centuries, 3 were in ODIs.

Ashraful’s first ODI century came in a game against Australia at Cardiff in June-2005 — more than 4 years after his ODI debut in April-2001. Bangladesh won the match. If you remember that match, you can call yourself a cricket nerd. It was a huge upset. Australia was at the peak of their powers and Bangladesh were at the bottom of theirs. And yet, they manufactured a win thanks to Ashraful’s classy act.

How huge was that upset though? Was it the biggest one? How can we statistically rate it among other upsets in ODI cricket? What about India’s match against Bangladesh which India went on to lose despite Sachin Tendulkar scoring his 100th hundred? How big an upset was that? We will revisit these questions in the later part of the article.

This is an attempt to rate ODI cricket teams using a rating system invented by Arpad Elo to rate chess players. The Elo rating system has been successfully applied to other team sports in the past.

Elo Rating — An Introduction

Arpad Elo, a Hungarian-American physics professor, devised a method for calculating the relative skill levels of players in zero-sum games such as chess. In essence, the Elo Rating system is very easy to understand. In the beginning, all players have an average rating. The winning player takes some points from the losing player and this updated rating is used to determine the probability of winning for the next game. For the rest of the article, a player is going to be an international cricket team.

If we apply Elo ratings to international cricket matches since 1971, this is how India’s graph looks.

India’s ODI History

India had been a below-average team begin with. When India won the World Cup in 1983, India was among the bottom three sides of the tournament. In fact, until the beginning of the 21st century, the Indian ODI outfit was below average barring a few highs around 1995. This is not a piece of news for you. But good to see that in terms of a graph, right? Around 2006–07 India truly started on its path to becoming a world-class team. The groundwork was laid much earlier though.

Before we go any further, let’s understand a few things about the analysis being presented here.

  1. Only the matches among the below 10 teams — Australia, Bangladesh, England, India, New Zealand, Pakistan, South Africa, Sri Lanka, West Indies, Zimbabwe — who have a considerable history in ODI cricket, have been considered.
  2. Effectively 3486 completed ODIs played among these top 10 teams have been considered.
  3. We are losing out on ~350 ODIs played by the other ODI teams against these top 10 teams in consideration. (~85% of those matches were won by one of the top 10 teams anyway)
  4. In this Elo Rating analysis, each team will start off the journey with 1500 rating points.
  5. Elo Rating algorithm uses a K-Factor which is a multiplication factor that influences the rating fluctuations. If K is too high, it changes the ratings drastically. If K is too low, then not much changes over time. The K-Value of 16 has been used for this analysis. (A similar analysis with K-Value 24 yielded very similar results.)

Right, with the theory out of the way, let’s get down to analyzing the data. Below is the complete ODI history in a single shot.

The chart is interactive. Feel free to interact.

ODI History in a single shot.

Few basic observations some of which you might already know:

  1. No one comes close to Australia in terms of world dominance over an extended period of time.
  2. West Indies’s demise is heartbreaking. The slide that began around 1987 is still unstoppable. As of now, they are only better than Zimbabwe.
  3. Barring some peaks, England has been a below-average ODI team much until 2015. They went from below average to one of the top 4 teams in a span of about 4 years leading up to the 2019 World Cup which they won (tied actually but anyway)
  4. It would be a surprise for those who haven’t followed ODI cricket in the 20th century that Pakistan has been a consistently good ODI outfit. The degradation really started happening around 2008.
  5. Zimbabwe and Bangladesh’s graph might have been slightly better off had we considered the minnows as well. But that would not have done much to their current situation. They would still be below average and would still be in the bottom four.

Highest/Lowest Rating Points Per Team

Australia reached the highest rating (1 760.84) ever by an ODI team against New Zealand in May 2005. Next is West Indies in terms of highest rating points which they achieved way back in 1985 against Pakistan.

The standard deviation of Elo Rating over the years for a team gives us a rough measure of consistency (in being good, bad or average). In that sense, Zimbabwe followed by West Indies, have been the most inconsistent teams, whereas Pakistan, followed by England, have been the most consistent ones.

Pakistan didn’t reach extraordinary peaks but didn’t go very low either. Pakistan, for much of their history, have managed to stay a bit above average between 1500 to 1600 points. England, on the other hand, have been consistently poor till 2015. If not for the last 4 years, England would have been the most consistently bad team.

Upsets and Biggest Wins Per Team

I hope you haven’t forgotten Ashraful yet. When he almost single-handedly defeated Australia at Cardiff in 2005, Australia were at their highest ever rating and were playing at full capacity whereas Bangladesh were at one of their lower ratings. That Bangladesh win yielded the highest gain in rating points among all ODI wins.

It was, statistically speaking, the highest ever upset in ODI cricket.

A drawback of this rating system is that it does not consider player ratings or context of the match. So if a team sends a B-team on a tour or rests some of the key players for a match and loses, they will still be penalized as per the team’s Elo rating before the start of the match.

Take the case of India tour of Zimbabwe in 2010. India was one of the high rated teams then whereas Zimbabwe was the lowest-rated team. India decided to rest a few key players for that tour with Suresh Raina captaining the side. India’s top two upsets were in that series against Zimbabwe. The next one though is this Asia cup match in 2012. It was a historic match. Sachin Tendulkar scored his 100th international hundred here. Yet, India lost.

It was technically the biggest upset against a full capacity Indian team in it’s ODI history.

PS: If you like this analysis please do not forget to clap. Have a question or want some more analysis done using Elo Rating? Just comment. Thanks for your time!