ODI Records
Highest Batting Average in ODI cricket — All-Time Leaderboard
Virat Kohli has the highest ODI batting average among tracked players, at 58.46 from 296 innings.

58.46
Average
Innings
296
Average
58.46
Strike Rate
93.66
Hundreds
53
Highest
183
Fours
1,356
Sixes
165
Balls
15,543
Lead over #2 (Yashasvi Jaiswal)
1.46
Top 25 All-Time ODI Records
Ranked among the 60 players currently tracked in CricLegacy's stats database.
| # | Player | Country | Mat | Inn | NO | Runs | Avg | SR | 100s | 50s | HS |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Virat Kohli | India | 308 | 296 | 47 | 14,557 | 58.46 | 93.66 | 53 | 76 | 183 |
| 2 | Yashasvi Jaiswal | India | 4 | 4 | 1 | 171 | 57 | 86.81 | 1 | 0 | 116 |
| 3 | Shubman Gill | India | 58 | 58 | 8 | 2,818 | 56.36 | 99.23 | 8 | 15 | 208 |
| 4 | Babar Azam | Pakistan | 140 | 137 | 16 | 6,501 | 53.73 | 87.17 | 20 | 37 | 158 |
| 5 | AB de Villiers | South Africa | 228 | 218 | 39 | 9,577 | 53.5 | 101.1 | 25 | 53 | 176 |
| 6 | Lokesh Rahul | India | 91 | 83 | 18 | 3,218 | 49.51 | 89.49 | 7 | 20 | 112 |
| 7 | Rohit Sharma | India | 279 | 271 | 37 | 11,516 | 49.21 | 92.86 | 33 | 61 | 264 |
| 8 | Joe Root | England | 186 | 175 | 24 | 7,330 | 48.54 | 87.66 | 19 | 43 | 166 |
| 9 | Shreyas Iyer | India | 73 | 67 | 6 | 2,917 | 47.82 | 99.02 | 5 | 23 | 128 |
| 10 | Harry Tector | Ireland Republic | 54 | 49 | 6 | 1,992 | 46.33 | 83.28 | 5 | 14 | 140 |
| 11 | Sachin Tendulkar | India | 463 | 452 | 41 | 18,426 | 44.83 | 86.24 | 49 | 96 | 200 |
| 12 | Steven Smith | Australia | 170 | 154 | 20 | 5,800 | 43.28 | 86.97 | 12 | 35 | 164 |
| 13 | Travis Head | Australia | 79 | 76 | 6 | 3,007 | 42.96 | 105.74 | 7 | 17 | 154 |
| 14 | Ishan Kishan | India | 27 | 24 | 2 | 933 | 42.41 | 102.2 | 1 | 7 | 210 |
| 15 | Temba Bavuma | South Africa | 55 | 53 | 3 | 2,035 | 40.7 | 87.72 | 5 | 8 | 144 |
| 16 | Harry Brook | England | 35 | 35 | 3 | 1,170 | 36.56 | 103.27 | 2 | 6 | 135 |
| 17 | Alex Carey | Australia | 85 | 77 | 13 | 2,245 | 35.08 | 90.68 | 1 | 13 | 106 |
| 18 | Rishabh Pant | India | 31 | 27 | 1 | 871 | 33.5 | 106.22 | 1 | 5 | 125 |
| 19 | Ravindra Jadeja | India | 207 | 139 | 52 | 2,862 | 32.9 | 85.93 | 0 | 13 | 87 |
| 20 | Dane Cleaver | New Zealand | 1 | 1 | 0 | 32 | 32 | 86.49 | 0 | 0 | 32 |
| 21 | Najmul Hossain Shanto | Bangladesh | 58 | 57 | 3 | 1,705 | 31.57 | 77.86 | 3 | 10 | 122 |
| 22 | Khaya Zondo | South Africa | 6 | 6 | 1 | 146 | 29.2 | 63.21 | 0 | 1 | 54 |
| 23 | Saud Shakeel | Pakistan | 19 | 16 | 1 | 408 | 27.2 | 85.36 | 0 | 4 | 68 |
| 24 | Kamindu Mendis | Sri Lanka | 27 | 26 | 6 | 527 | 26.35 | 80.71 | 0 | 3 | 64 |
| 25 | Suryakumar Yadav | India | 37 | 35 | 5 | 773 | 25.77 | 105.03 | 0 | 4 | 72 |
Average Leader by Country
India
Virat Kohli58.46
Pakistan
Babar Azam53.73
South Africa
AB de Villiers53.5
England
Joe Root48.54
Ireland Republic
Harry Tector46.33
Australia
Steven Smith43.28
New Zealand
Dane Cleaver32
Bangladesh
Najmul Hossain Shanto31.57
Sri Lanka
Kamindu Mendis26.35
United Arab Emirates
Ghulam Shabber21.74
Methodology & Data Source
Covers men's ODI cricket only. Based on the 60 players currently tracked in CricLegacy's ODI batting stats database, sourced from our own match records. As more historical players are added to the database, this leaderboard will expand accordingly.
Last updated 25 August 2026
Frequently Asked Questions
Who has the most average in ODI cricket?
Virat Kohli has the highest ODI batting average among tracked players, at 58.46 from 296 innings.
Who is closest to the all-time ODI average record?
Yashasvi Jaiswal is closest among currently tracked players, with 57 — 1.46 behind Virat Kohli.