bharath.aiभारत

bharath.ai › Cricket × AI

Cricket × AI

What a model learned from 1,243 IPL matches, ball by ball: how often a chasing side wins from any score, and how strong each team is.

Try it

The chase calculator

Enter a match situation. The answer is how often IPL teams actually won from there.

How often the chasing side won from each situation, with 6 wickets in hand. Darker means it usually won; grey means too few matches to say. The outlined square is the situation above.

1 over left, need 10: chasing side won 144 of 154 (94%)1 over left, need 20: chasing side won 61 of 88 (69%)1 over left, need 30: chasing side won 21 of 47 (45%)1 over left, need 40: chasing side won 15 of 37 (41%)1 over left, need 50: too few matches1 over left, need 60: too few matches1 over left, need 70: too few matches1 over left, need 80: too few matches1 over left, need 90: too few matches1 over left, need 100: too few matches1 over left, need 110: too few matches1 over left, need 120: too few matches1 over left, need 130: too few matches1 over left, need 140: too few matches1 over left, need 150: too few matches1 over left, need 160: too few matches1 over left, need 170: too few matches1 over left, need 180: too few matches1 over left, need 190: too few matches1 over left, need 200: too few matches2 overs left, need 10: chasing side won 125 of 125 (100%)2 overs left, need 20: chasing side won 163 of 187 (87%)2 overs left, need 30: chasing side won 105 of 151 (70%)2 overs left, need 40: chasing side won 43 of 109 (39%)2 overs left, need 50: chasing side won 13 of 60 (22%)2 overs left, need 60: chasing side won 0 of 15 (0%)2 overs left, need 70: too few matches2 overs left, need 80: too few matches2 overs left, need 90: too few matches2 overs left, need 100: too few matches2 overs left, need 110: too few matches2 overs left, need 120: too few matches2 overs left, need 130: too few matches2 overs left, need 140: too few matches2 overs left, need 150: too few matches2 overs left, need 160: too few matches2 overs left, need 170: too few matches2 overs left, need 180: too few matches2 overs left, need 190: too few matches2 overs left, need 200: too few matches3 overs left, need 10: chasing side won 30 of 30 (100%)3 overs left, need 20: chasing side won 83 of 85 (98%)3 overs left, need 30: chasing side won 98 of 110 (89%)3 overs left, need 40: chasing side won 72 of 135 (53%)3 overs left, need 50: chasing side won 26 of 100 (26%)3 overs left, need 60: chasing side won 12 of 36 (33%)3 overs left, need 70: chasing side won 0 of 20 (0%)3 overs left, need 80: too few matches3 overs left, need 90: too few matches3 overs left, need 100: too few matches3 overs left, need 110: too few matches3 overs left, need 120: too few matches3 overs left, need 130: too few matches3 overs left, need 140: too few matches3 overs left, need 150: too few matches3 overs left, need 160: too few matches3 overs left, need 170: too few matches3 overs left, need 180: too few matches3 overs left, need 190: too few matches3 overs left, need 200: too few matches4 overs left, need 10: chasing side won 22 of 24 (92%)4 overs left, need 20: chasing side won 77 of 81 (95%)4 overs left, need 30: chasing side won 107 of 109 (98%)4 overs left, need 40: chasing side won 93 of 159 (58%)4 overs left, need 50: chasing side won 79 of 161 (49%)4 overs left, need 60: chasing side won 33 of 124 (27%)4 overs left, need 70: chasing side won 8 of 84 (10%)4 overs left, need 80: chasing side won 1 of 43 (2%)4 overs left, need 90: chasing side won 0 of 17 (0%)4 overs left, need 100: too few matches4 overs left, need 110: too few matches4 overs left, need 120: too few matches4 overs left, need 130: too few matches4 overs left, need 140: too few matches4 overs left, need 150: too few matches4 overs left, need 160: too few matches4 overs left, need 170: too few matches4 overs left, need 180: too few matches4 overs left, need 190: too few matches4 overs left, need 200: too few matches5 overs left, need 10: too few matches5 overs left, need 20: chasing side won 15 of 17 (88%)5 overs left, need 30: chasing side won 49 of 53 (92%)5 overs left, need 40: chasing side won 49 of 57 (86%)5 overs left, need 50: chasing side won 83 of 134 (62%)5 overs left, need 60: chasing side won 36 of 105 (34%)5 overs left, need 70: chasing side won 33 of 103 (32%)5 overs left, need 80: chasing side won 14 of 73 (19%)5 overs left, need 90: chasing side won 1 of 37 (3%)5 overs left, need 100: chasing side won 0 of 31 (0%)5 overs left, need 110: too few matches5 overs left, need 120: too few matches5 overs left, need 130: too few matches5 overs left, need 140: too few matches5 overs left, need 150: too few matches5 overs left, need 160: too few matches5 overs left, need 170: too few matches5 overs left, need 180: too few matches5 overs left, need 190: too few matches5 overs left, need 200: too few matches6 overs left, need 10: too few matches6 overs left, need 20: too few matches6 overs left, need 30: chasing side won 28 of 28 (100%)6 overs left, need 40: chasing side won 63 of 70 (90%)6 overs left, need 50: chasing side won 32 of 59 (54%)6 overs left, need 60: chasing side won 72 of 121 (60%)6 overs left, need 70: chasing side won 45 of 143 (31%)6 overs left, need 80: chasing side won 36 of 127 (28%)6 overs left, need 90: chasing side won 14 of 108 (13%)6 overs left, need 100: chasing side won 2 of 78 (3%)6 overs left, need 110: chasing side won 0 of 23 (0%)6 overs left, need 120: chasing side won 0 of 20 (0%)6 overs left, need 130: too few matches6 overs left, need 140: too few matches6 overs left, need 150: too few matches6 overs left, need 160: too few matches6 overs left, need 170: too few matches6 overs left, need 180: too few matches6 overs left, need 190: too few matches6 overs left, need 200: too few matches7 overs left, need 10: too few matches7 overs left, need 20: chasing side won 16 of 16 (100%)7 overs left, need 30: chasing side won 15 of 15 (100%)7 overs left, need 40: too few matches7 overs left, need 50: chasing side won 29 of 35 (83%)7 overs left, need 60: chasing side won 44 of 72 (61%)7 overs left, need 70: chasing side won 33 of 88 (38%)7 overs left, need 80: chasing side won 22 of 88 (25%)7 overs left, need 90: chasing side won 26 of 75 (35%)7 overs left, need 100: chasing side won 9 of 110 (8%)7 overs left, need 110: chasing side won 0 of 60 (0%)7 overs left, need 120: chasing side won 0 of 15 (0%)7 overs left, need 130: too few matches7 overs left, need 140: too few matches7 overs left, need 150: too few matches7 overs left, need 160: too few matches7 overs left, need 170: too few matches7 overs left, need 180: too few matches7 overs left, need 190: too few matches7 overs left, need 200: too few matches8 overs left, need 10: too few matches8 overs left, need 20: too few matches8 overs left, need 30: too few matches8 overs left, need 40: too few matches8 overs left, need 50: chasing side won 14 of 15 (93%)8 overs left, need 60: chasing side won 30 of 37 (81%)8 overs left, need 70: chasing side won 31 of 71 (44%)8 overs left, need 80: chasing side won 52 of 97 (54%)8 overs left, need 90: chasing side won 35 of 118 (30%)8 overs left, need 100: chasing side won 29 of 100 (29%)8 overs left, need 110: chasing side won 9 of 95 (9%)8 overs left, need 120: chasing side won 0 of 37 (0%)8 overs left, need 130: chasing side won 0 of 17 (0%)8 overs left, need 140: chasing side won 0 of 21 (0%)8 overs left, need 150: too few matches8 overs left, need 160: too few matches8 overs left, need 170: too few matches8 overs left, need 180: too few matches8 overs left, need 190: too few matches8 overs left, need 200: too few matches9 overs left, need 10: too few matches9 overs left, need 20: too few matches9 overs left, need 30: too few matches9 overs left, need 40: too few matches9 overs left, need 50: too few matches9 overs left, need 60: chasing side won 22 of 23 (96%)9 overs left, need 70: chasing side won 9 of 20 (45%)9 overs left, need 80: chasing side won 15 of 41 (37%)9 overs left, need 90: chasing side won 19 of 56 (34%)9 overs left, need 100: chasing side won 21 of 80 (26%)9 overs left, need 110: chasing side won 5 of 59 (8%)9 overs left, need 120: chasing side won 7 of 47 (15%)9 overs left, need 130: chasing side won 0 of 45 (0%)9 overs left, need 140: chasing side won 0 of 26 (0%)9 overs left, need 150: chasing side won 0 of 15 (0%)9 overs left, need 160: too few matches9 overs left, need 170: too few matches9 overs left, need 180: too few matches9 overs left, need 190: too few matches9 overs left, need 200: too few matches10 overs left, need 10: too few matches10 overs left, need 20: too few matches10 overs left, need 30: too few matches10 overs left, need 40: too few matches10 overs left, need 50: too few matches10 overs left, need 60: too few matches10 overs left, need 70: chasing side won 21 of 21 (100%)10 overs left, need 80: chasing side won 18 of 38 (47%)10 overs left, need 90: chasing side won 27 of 45 (60%)10 overs left, need 100: chasing side won 17 of 90 (19%)10 overs left, need 110: chasing side won 9 of 51 (18%)10 overs left, need 120: chasing side won 5 of 64 (8%)10 overs left, need 130: chasing side won 5 of 55 (9%)10 overs left, need 140: chasing side won 0 of 42 (0%)10 overs left, need 150: chasing side won 0 of 31 (0%)10 overs left, need 160: too few matches10 overs left, need 170: chasing side won 0 of 18 (0%)10 overs left, need 180: too few matches10 overs left, need 190: too few matches10 overs left, need 200: too few matches11 overs left, need 10: too few matches11 overs left, need 20: too few matches11 overs left, need 30: too few matches11 overs left, need 40: too few matches11 overs left, need 50: too few matches11 overs left, need 60: too few matches11 overs left, need 70: too few matches11 overs left, need 80: too few matches11 overs left, need 90: chasing side won 6 of 30 (20%)11 overs left, need 100: chasing side won 5 of 20 (25%)11 overs left, need 110: chasing side won 11 of 56 (20%)11 overs left, need 120: chasing side won 3 of 35 (9%)11 overs left, need 130: chasing side won 4 of 24 (17%)11 overs left, need 140: chasing side won 0 of 40 (0%)11 overs left, need 150: chasing side won 0 of 27 (0%)11 overs left, need 160: too few matches11 overs left, need 170: chasing side won 0 of 19 (0%)11 overs left, need 180: too few matches11 overs left, need 190: too few matches11 overs left, need 200: too few matches12 overs left, need 10: too few matches12 overs left, need 20: too few matches12 overs left, need 30: too few matches12 overs left, need 40: too few matches12 overs left, need 50: too few matches12 overs left, need 60: too few matches12 overs left, need 70: too few matches12 overs left, need 80: too few matches12 overs left, need 90: too few matches12 overs left, need 100: chasing side won 9 of 30 (30%)12 overs left, need 110: chasing side won 18 of 47 (38%)12 overs left, need 120: chasing side won 8 of 38 (21%)12 overs left, need 130: chasing side won 1 of 30 (3%)12 overs left, need 140: chasing side won 0 of 28 (0%)12 overs left, need 150: chasing side won 0 of 26 (0%)12 overs left, need 160: chasing side won 0 of 42 (0%)12 overs left, need 170: too few matches12 overs left, need 180: too few matches12 overs left, need 190: too few matches12 overs left, need 200: too few matches13 overs left, need 10: too few matches13 overs left, need 20: too few matches13 overs left, need 30: too few matches13 overs left, need 40: too few matches13 overs left, need 50: too few matches13 overs left, need 60: too few matches13 overs left, need 70: too few matches13 overs left, need 80: too few matches13 overs left, need 90: too few matches13 overs left, need 100: chasing side won 5 of 22 (23%)13 overs left, need 110: too few matches13 overs left, need 120: chasing side won 0 of 15 (0%)13 overs left, need 130: chasing side won 5 of 16 (31%)13 overs left, need 140: chasing side won 0 of 25 (0%)13 overs left, need 150: chasing side won 0 of 16 (0%)13 overs left, need 160: chasing side won 0 of 15 (0%)13 overs left, need 170: chasing side won 0 of 18 (0%)13 overs left, need 180: too few matches13 overs left, need 190: too few matches13 overs left, need 200: too few matches14 overs left, need 10: too few matches14 overs left, need 20: too few matches14 overs left, need 30: too few matches14 overs left, need 40: too few matches14 overs left, need 50: too few matches14 overs left, need 60: too few matches14 overs left, need 70: too few matches14 overs left, need 80: too few matches14 overs left, need 90: too few matches14 overs left, need 100: too few matches14 overs left, need 110: chasing side won 6 of 21 (29%)14 overs left, need 120: chasing side won 6 of 15 (40%)14 overs left, need 130: too few matches14 overs left, need 140: chasing side won 0 of 25 (0%)14 overs left, need 150: chasing side won 2 of 33 (6%)14 overs left, need 160: chasing side won 2 of 33 (6%)14 overs left, need 170: chasing side won 0 of 16 (0%)14 overs left, need 180: too few matches14 overs left, need 190: too few matches14 overs left, need 200: too few matches15 overs left, need 10: too few matches15 overs left, need 20: too few matches15 overs left, need 30: too few matches15 overs left, need 40: too few matches15 overs left, need 50: too few matches15 overs left, need 60: too few matches15 overs left, need 70: too few matches15 overs left, need 80: too few matches15 overs left, need 90: too few matches15 overs left, need 100: too few matches15 overs left, need 110: too few matches15 overs left, need 120: too few matches15 overs left, need 130: too few matches15 overs left, need 140: too few matches15 overs left, need 150: too few matches15 overs left, need 160: chasing side won 0 of 16 (0%)15 overs left, need 170: too few matches15 overs left, need 180: too few matches15 overs left, need 190: too few matches15 overs left, need 200: too few matches16 overs left, need 10: too few matches16 overs left, need 20: too few matches16 overs left, need 30: too few matches16 overs left, need 40: too few matches16 overs left, need 50: too few matches16 overs left, need 60: too few matches16 overs left, need 70: too few matches16 overs left, need 80: too few matches16 overs left, need 90: too few matches16 overs left, need 100: too few matches16 overs left, need 110: too few matches16 overs left, need 120: too few matches16 overs left, need 130: too few matches16 overs left, need 140: too few matches16 overs left, need 150: too few matches16 overs left, need 160: chasing side won 0 of 15 (0%)16 overs left, need 170: too few matches16 overs left, need 180: too few matches16 overs left, need 190: too few matches16 overs left, need 200: too few matches17 overs left, need 10: too few matches17 overs left, need 20: too few matches17 overs left, need 30: too few matches17 overs left, need 40: too few matches17 overs left, need 50: too few matches17 overs left, need 60: too few matches17 overs left, need 70: too few matches17 overs left, need 80: too few matches17 overs left, need 90: too few matches17 overs left, need 100: too few matches17 overs left, need 110: too few matches17 overs left, need 120: too few matches17 overs left, need 130: too few matches17 overs left, need 140: too few matches17 overs left, need 150: too few matches17 overs left, need 160: too few matches17 overs left, need 170: too few matches17 overs left, need 180: too few matches17 overs left, need 190: too few matches17 overs left, need 200: too few matches18 overs left, need 10: too few matches18 overs left, need 20: too few matches18 overs left, need 30: too few matches18 overs left, need 40: too few matches18 overs left, need 50: too few matches18 overs left, need 60: too few matches18 overs left, need 70: too few matches18 overs left, need 80: too few matches18 overs left, need 90: too few matches18 overs left, need 100: too few matches18 overs left, need 110: too few matches18 overs left, need 120: too few matches18 overs left, need 130: too few matches18 overs left, need 140: too few matches18 overs left, need 150: too few matches18 overs left, need 160: too few matches18 overs left, need 170: too few matches18 overs left, need 180: too few matches18 overs left, need 190: too few matches18 overs left, need 200: too few matches19 overs left, need 10: too few matches19 overs left, need 20: too few matches19 overs left, need 30: too few matches19 overs left, need 40: too few matches19 overs left, need 50: too few matches19 overs left, need 60: too few matches19 overs left, need 70: too few matches19 overs left, need 80: too few matches19 overs left, need 90: too few matches19 overs left, need 100: too few matches19 overs left, need 110: too few matches19 overs left, need 120: too few matches19 overs left, need 130: too few matches19 overs left, need 140: too few matches19 overs left, need 150: too few matches19 overs left, need 160: too few matches19 overs left, need 170: too few matches19 overs left, need 180: too few matches19 overs left, need 190: too few matches19 overs left, need 200: too few matches20 overs left, need 10: too few matches20 overs left, need 20: too few matches20 overs left, need 30: too few matches20 overs left, need 40: too few matches20 overs left, need 50: too few matches20 overs left, need 60: too few matches20 overs left, need 70: too few matches20 overs left, need 80: too few matches20 overs left, need 90: too few matches20 overs left, need 100: too few matches20 overs left, need 110: too few matches20 overs left, need 120: too few matches20 overs left, need 130: too few matches20 overs left, need 140: too few matches20 overs left, need 150: too few matches20 overs left, need 160: too few matches20 overs left, need 170: too few matches20 overs left, need 180: too few matches20 overs left, need 190: too few matches20 overs left, need 200: too few matchesYour situation246810121416182020406080100120140160180200Overs leftRuns needed

Built by replaying every usable IPL run chase ball by ball and recording, for each game state (balls left, runs needed, wickets in hand), how often the chasing side won. Only states seen at least 15 times are kept. Data: Cricsheet ball-by-ball records. Code: cricket_winprob_model.py; table: cricket_winprob_table.json.

Team strength

IPL Elo ratings

Every IPL match since 2008, run through an Elo model: a win against a strong side earns more than a win against a weak one.

#TeamElo rating
1Royal Challengers Bengaluru1620.8
2Gujarat Titans1574.1
3Sunrisers Hyderabad1543.1
4Delhi Capitals1524.9
5Punjab Kings1519.3
6Kolkata Knight Riders1518.5
7Rajasthan Royals1515.1
8Chennai Super Kings1475.7
9Mumbai Indians1464.2
10Lucknow Super Giants1461.7

Elo ratings (K=24) computed match by match across all IPL seasons from Cricsheet ball-by-ball data. Ratings as of 30 Jul 2026, covering seasons 2007/08-2026. Code: ipl_elo_title_model.py; data: cricket_analysis.json.