India ODI best batting average: All-Time Records
By CricketTaken EditorialPublished Cricket in India9 min read
Shubman Gill has scored 3,379 one-day international runs for India at an average of 60.33. Virat Kohli is second at 58.59 from 14,941 runs, MS Dhoni third at 50.23 and KL Rahul fourth at 49.44. Only those four have averaged 49 or better for India over a qualifying career in the format.
An average is runs divided by dismissals, not runs divided by innings, and the gap between those two denominators is what most of this page is about. Gill has been dismissed 56 times in 66 innings; Dhoni was dismissed 211 times in 294. Dhoni's 83 not-outs are the largest not-out count in India's one-day history and they are the reason a batter with nine hundreds averages more than one with twenty-two.
Averages are unusable on short careers, so this page counts only batters with 2,500 runs for India in ODIs. Twenty-five players qualify, and the whole set is ranked below rather than cut at ten, because the shape of the tail is as informative as the head.
Runs per dismissal for India in ODIs, 2,500-run minimum
| Rank | Batter | Span | Inns | NO | Runs | Ave | 100s | 50s |
|---|---|---|---|---|---|---|---|---|
| 1 | Shubman Gill | 2019-2026 | 66 | 10 | 3,379 | 60.33 | 9 | 20 |
| 2 | Virat Kohli | 2008-2026 | 302 | 47 | 14,941 | 58.59 | 54 | 79 |
| 3 | MS Dhoni | 2004-2019 | 294 | 83 | 10,599 | 50.23 | 9 | 73 |
| 4 | KL Rahul | 2016-2026 | 90 | 21 | 3,412 | 49.44 | 8 | 20 |
| 5 | Rohit Sharma | 2007-2026 | 280 | 37 | 11,895 | 48.95 | 34 | 62 |
| 6 | Shreyas Iyer | 2017-2026 | 76 | 7 | 3,136 | 45.44 | 5 | 24 |
| 7 | Sachin Tendulkar | 1989-2012 | 452 | 41 | 18,426 | 44.83 | 49 | 96 |
| 8 | Shikhar Dhawan | 2010-2022 | 164 | 10 | 6,793 | 44.11 | 17 | 39 |
| 9 | Sourav Ganguly | 1992-2007 | 297 | 23 | 11,221 | 40.95 | 22 | 71 |
| 10 | Gautam Gambhir | 2003-2013 | 143 | 11 | 5,238 | 39.68 | 11 | 34 |
| 11 | Rahul Dravid | 1996-2011 | 314 | 39 | 10,768 | 39.15 | 12 | 82 |
| 12 | Ajay Jadeja | 1992-2000 | 179 | 36 | 5,359 | 37.47 | 6 | 30 |
| 13 | Navjot Singh Sidhu | 1987-1998 | 127 | 8 | 4,413 | 37.08 | 6 | 33 |
| 14 | Mohammad Azharuddin | 1985-2000 | 308 | 54 | 9,378 | 36.92 | 7 | 58 |
| 15 | Yuvraj Singh | 2000-2017 | 275 | 39 | 8,609 | 36.47 | 14 | 52 |
| 16 | Virender Sehwag | 1999-2013 | 235 | 9 | 7,995 | 35.37 | 15 | 37 |
| 17 | Suresh Raina | 2005-2018 | 194 | 35 | 5,615 | 35.31 | 5 | 36 |
| 18 | Ajinkya Rahane | 2011-2018 | 87 | 3 | 2,962 | 35.26 | 3 | 24 |
| 19 | Sunil Gavaskar | 1974-1987 | 102 | 14 | 3,092 | 35.13 | 1 | 27 |
| 20 | Dilip Vengsarkar | 1976-1991 | 120 | 19 | 3,508 | 34.73 | 1 | 23 |
| 21 | Ravindra Jadeja | 2009-2026 | 142 | 52 | 2,905 | 32.27 | 0 | 13 |
| 22 | Mohammad Kaif | 2002-2006 | 110 | 24 | 2,753 | 32.01 | 2 | 17 |
| 23 | Ravi Shastri | 1981-1992 | 128 | 21 | 3,108 | 29.04 | 4 | 18 |
| 24 | Kris Srikkanth | 1981-1992 | 145 | 4 | 4,091 | 29.01 | 4 | 27 |
| 25 | Kapil Dev | 1978-1994 | 198 | 39 | 3,783 | 23.79 | 1 | 14 |
What the not-out column is doing
| Batter | Inns | NO | NO share | Ave | Runs per innings | Gap |
|---|---|---|---|---|---|---|
| Ravindra Jadeja | 142 | 52 | 36.6% | 32.27 | 20.46 | 11.81 |
| MS Dhoni | 294 | 83 | 28.2% | 50.23 | 36.05 | 14.18 |
| Mohammad Kaif | 110 | 24 | 21.8% | 32.01 | 25.03 | 6.98 |
| Ajay Jadeja | 179 | 36 | 20.1% | 37.47 | 29.94 | 7.53 |
| Kapil Dev | 198 | 39 | 19.7% | 23.79 | 19.11 | 4.68 |
| Suresh Raina | 194 | 35 | 18.0% | 35.31 | 28.94 | 6.37 |
| Mohammad Azharuddin | 308 | 54 | 17.5% | 36.92 | 30.45 | 6.47 |
| Ravi Shastri | 128 | 21 | 16.4% | 29.04 | 24.28 | 4.76 |
| Dilip Vengsarkar | 120 | 19 | 15.8% | 34.73 | 29.23 | 5.50 |
| Virat Kohli | 302 | 47 | 15.6% | 58.59 | 49.47 | 9.12 |
| Shubman Gill | 66 | 10 | 15.2% | 60.33 | 51.20 | 9.13 |
| Sachin Tendulkar | 452 | 41 | 9.1% | 44.83 | 40.77 | 4.06 |
| Virender Sehwag | 235 | 9 | 3.8% | 35.37 | 34.02 | 1.35 |
| Ajinkya Rahane | 87 | 3 | 3.4% | 35.26 | 34.05 | 1.21 |
| Kris Srikkanth | 145 | 4 | 2.8% | 29.01 | 28.21 | 0.80 |
Every batter here is helped by the not-out convention, but the size of the help varies by a factor of ten. Virender Sehwag opened, was almost never left stranded, and his average sits 1.35 above his runs per innings. MS Dhoni finished, and his sits 14.18 above.
Neither number is a distortion. A batter who is not out has not failed, and excluding him from the denominator is the correct arithmetic. But it means an average compares two different jobs on a scale built for one of them, and a finisher's average and an opener's average are not the same quantity with different values.
Ravindra Jadeja is the extreme case at 36.6% not out. He has been dismissed ninety times in 142 innings and averages 32.27 while scoring 20.46 runs per innings — the largest proportional gap of anyone on this page, and the reason he appears on an averages list at all.
Gill, Kohli and a top that keeps moving
The four highest averages belong to batters who debuted in 2004, 2008, 2016 and 2019. No India batter who finished before 2000 averages above 37.08, and the highest from that era belongs to Navjot Singh Sidhu.
Part of that is scoring conditions — larger totals mean more runs to go round — and part is squad size. India played fewer ODIs before 1990, and the batters who played them were rarely rested, so a lean year sat in the record rather than being spent in domestic cricket.
Shubman Gill's 60.33 comes from 66 innings, the smallest qualifying sample on the page. That is not a reason to discount it, but it is a reason to expect it to move: a run of four low scores would cost him around two runs of average, where the same run would cost Sachin Tendulkar three-tenths of one. The stability of an average is a function of the denominator, and Tendulkar's is 411.
Virat Kohli's 58.59 across 255 dismissals is the harder number to argue with, and it is the one the record book will keep. He is also seventh on this page's companion measure, scoring at 93.95 per hundred balls, which is set out on India's best ODI batting strike rates.
Why Kapil Dev is last
Kapil Dev qualifies on runs and averages 23.79, more than eleven below the next-lowest name. He batted 198 times, was not out 39 of them, and passed fifty fifteen times in 3,783 runs.
He came in at seven or eight with instructions to hit from the first ball, and his 95.07 per hundred balls was the fastest scoring rate of anyone in India's side by a distance. An average measures how long a batter survives; a player told not to try to survive will score badly on it. His place on this list is a limitation of the statistic rather than a verdict on the cricketer, and the case is made properly in the guide to India's great all-rounders.
The three names above him — Kris Srikkanth at 29.01, Ravi Shastri at 29.04 and Mohammad Kaif at 32.01 — are a different story. All three played in India sides whose par total was under 250, and Srikkanth in particular opened with a licence to attack that cost him roughly one dismissal in three.
Four observations
Only two batters on this page have both an average above 44 and more than 200 innings: Kohli and Rohit Sharma. Longevity and a high average pull against each other, because a long career includes the decline that a short one does not.
Rahul Dravid averages 39.15 with twelve hundreds and 82 fifties, which is the widest fifty-to-hundred ratio in the top half of the table. The reasons are set out on India's most ODI fifties, and they have more to do with batting position than with technique.
Five of the twenty-five have averages above 48, and four of those five were still playing in 2026. India's current top order is the most productive the country has fielded in one-day cricket by this measure, and the aggregate picture is on India's most ODI runs.
Sunil Gavaskar averages 35.13 in ODIs and 51.12 in Tests. He is the clearest example on the page of a great batter whose method suited one format and not the other, and the wider story of that adjustment runs through the ODI history guide and the cricket in India hub. Career records for every name here are in the player directory.
Sources and method
Runs, innings, averages, hundreds and fifties come from ESPNcricinfo's Statsguru career query for men's ODIs with the team filter set to India, read as a career batting table and re-sorted here by average. Statsguru's default sort on that view is by runs, so the ranking on this page was compiled rather than quoted.
The not-out column is derived, not read. Dismissals were calculated as runs divided by average and subtracted from innings; every one of the twenty-five resolved to within a twentieth of a whole number, which is the check that the derivation is sound. MS Dhoni's 83 was verified independently against his published career line before the method was applied to the rest.
Runs per innings in the second table is runs divided by innings, computed here. It is printed beside the average to show the size of the not-out effect, and it is not a statistic Statsguru publishes. The two columns answer different questions and neither is a correction of the other.
The 2,500-run qualification is a threshold set for this page rather than a Statsguru default. It admits twenty-five India batters. A lower bar would place careers of thirty innings above Kohli and Tendulkar; a higher one would remove Ajinkya Rahane, Mohammad Kaif and Ravindra Jadeja, whose not-out profiles are part of what the page is explaining. Figures were read in the final week of August 2026 and cover men's ODIs completed by then.