# IPL 2027 batting predictions — 20 shortlisted batters

*A separate analysis from the IPL 2027 champion forecast; it shares only the raw data files. Generated by `python run_batting.py`. Data cutoff: last match in the data (IPL 2026 is partial: 43 matches).*

**These are model estimates, not facts.** No 2027 squads, teams, batting orders, fitness or schedule exist in the data. Expected innings come from each player's own history of playing time (including missed seasons), so the forecast does **not** assume every player plays the full tournament.

## A. Main predictions

| Rank | Batter | Expected Runs | Lower Estimate | Upper Estimate | Expected Innings | Expected Average | Expected Strike Rate | Confidence |
|---:|---|---:|---:|---:|---:|---:|---:|---|
| 1 | Sai Sudharsan | 572 | 207 | 820 | 14.3 | 42.7 | 153.3 | High |
| 2 | Abhishek Sharma | 541 | 194 | 777 | 14.7 | 39.6 | 200.9 | High |
| 3 | Virat Kohli | 515 | 183 | 741 | 13.5 | 48.2 | 153.1 | High |
| 4 | Shubman Gill | 501 | 177 | 720 | 13.1 | 42.1 | 153.4 | High |
| 5 | Heinrich Klaasen | 487 | 172 | 702 | 14.7 | 41.2 | 165.6 | High |
| 6 | Yashasvi Jaiswal | 464 | 162 | 670 | 13.1 | 40.3 | 158.1 | High |
| 7 | Shreyas Iyer | 421 | 145 | 610 | 13.3 | 45.5 | 167.4 | High |
| 8 | Travis Head | 418 | 143 | 604 | 12.7 | 34.1 | 171.9 | High |
| 9 | Phil Salt | 413 | 141 | 598 | 11.5 | 38.7 | 174.7 | Medium |
| 10 | Sanju Samson | 392 | 133 | 569 | 11.8 | 42.6 | 154.5 | Medium |
| 11 | Rajat Patidar | 361 | 120 | 524 | 12.4 | 31.5 | 169.8 | High |
| 12 | Suryakumar Yadav | 344 | 37 | 618 | 11.8 | 35.1 | 161.9 | High |
| 13 | Riyan Parag | 336 | 35 | 603 | 12.1 | 32.8 | 153.2 | High |
| 14 | Tilak Varma | 315 | 31 | 568 | 11.9 | 32.0 | 149.1 | High |
| 15 | Nicholas Pooran | 314 | 31 | 567 | 11.6 | 33.5 | 165.1 | High |
| 16 | Rishabh Pant | 308 | 29 | 556 | 11.3 | 32.2 | 139.0 | High |
| 17 | Ruturaj Gaikwad | 300 | 27 | 543 | 9.7 | 36.3 | 136.0 | Medium |
| 18 | Devdutt Padikkal | 288 | 25 | 523 | 10.3 | 31.0 | 159.5 | Low |
| 19 | Rohit Sharma | 247 | 16 | 453 | 8.2 | 34.0 | 151.8 | Medium |
| 20 | Tim David | 195 | 4 | 364 | 10.3 | 38.2 | 176.8 | Medium |

Lower/Upper = 80% prediction interval for total runs (split-conformal around the point estimate, calibrated on 2014–2025 out-of-sample errors; see C). Expected average = expected runs ÷ expected dismissals; expected strike rate = recency-weighted, shrunk SR. Confidence: **High** = regular (batted in ≥70% of team matches) in each of the last 3 seasons, **Medium** = 2 of 3, **Low** = otherwise. Confidence is relative: even High carries an interval of several hundred runs.

Intervals are calibrated separately for predictions below 150, 150–350 and above 350 runs, so they jump at those boundaries (e.g. 361 → lower bound 120 vs 344 → 37): the 150–350 band historically contains many players who lost their place, so its downside is larger.

### Scenarios (runs)

Same runs-per-innings estimate under fixed playing time; strong/weak form = 90th/10th percentile of the historical ratio of actual to predicted runs per innings for established batters (×1.42 / ×0.62).

| Batter | Model expectation | Full season (14 inn) | Full + strong form | Full + weak form | Reduced (8 inn) |
|---|---:|---:|---:|---:|---:|
| Sai Sudharsan | 572 | 561 | 794 | 349 | 320 |
| Abhishek Sharma | 541 | 517 | 733 | 322 | 296 |
| Virat Kohli | 515 | 535 | 757 | 333 | 305 |
| Shubman Gill | 501 | 535 | 758 | 333 | 306 |
| Heinrich Klaasen | 487 | 466 | 659 | 290 | 266 |
| Yashasvi Jaiswal | 464 | 496 | 703 | 309 | 284 |
| Shreyas Iyer | 421 | 443 | 627 | 276 | 253 |
| Travis Head | 418 | 461 | 653 | 287 | 263 |
| Phil Salt | 413 | 503 | 712 | 313 | 287 |
| Sanju Samson | 392 | 467 | 662 | 291 | 267 |
| Rajat Patidar | 361 | 407 | 576 | 253 | 232 |
| Suryakumar Yadav | 344 | 407 | 576 | 253 | 233 |
| Riyan Parag | 336 | 389 | 551 | 242 | 222 |
| Tilak Varma | 315 | 371 | 525 | 231 | 212 |
| Nicholas Pooran | 314 | 379 | 537 | 236 | 217 |
| Rishabh Pant | 308 | 383 | 542 | 238 | 219 |
| Ruturaj Gaikwad | 300 | 434 | 615 | 271 | 248 |
| Devdutt Padikkal | 288 | 390 | 553 | 243 | 223 |
| Rohit Sharma | 247 | 424 | 600 | 264 | 242 |
| Tim David | 195 | 264 | 373 | 164 | 151 |

## B. Individual player analysis

Splits are for 2024–2026; benchmark = all batters at positions 1–4 in those seasons (SR: pace 160, spin 151, powerplay 153, middle 154, death 190). Strengths/risks are produced by fixed rules (±15 SR points with ≥60 balls, missed seasons, CV > 0.3, low recent share, role).

### 1. Sai Sudharsan (`B Sai Sudharsan`)
- **Historical trend:** 2022: 145 (5 inn), 2023: 362 (8 inn), 2024: 527 (12 inn), 2025: 759 (15 inn), 2026: 328 (9 inn). Teams in data: GT.
- **Recent performance:** 2026 (partial, to data cutoff): 328 runs in 9 innings, SR 162; last 10 innings: 408 runs, SR 163.
- **Strengths (data-derived):** strike rate 207 vs death (top-order benchmark 190, 61 balls); high recent runs per innings (weighted, shrunk: 42.8); frequent 50+ scores (35% of innings, weighted).
- **Risk factors:** none flagged by the rules beyond general IPL variance.
- **2027 estimate:** 572 runs (80% interval 207–820) from 14.3 expected innings × 40.1 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 561; strong form 794; weak form 349; reduced time (8 inn) 320.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 2. Abhishek Sharma (`Abhishek Sharma`)
- **Historical trend:** 2020: 71 (7 inn), 2021: 98 (7 inn), 2022: 426 (14 inn), 2023: 226 (11 inn), 2024: 484 (16 inn), 2025: 439 (13 inn), 2026: 425 (9 inn). Teams in data: DC → SRH.
- **Recent performance:** 2026 (partial, to data cutoff): 425 runs in 9 innings, SR 209; last 10 innings: 457 runs, SR 209.
- **Strengths (data-derived):** strike rate 185 vs pace (top-order benchmark 160, 466 balls); strike rate 241 vs spin (top-order benchmark 151, 201 balls); strike rate 200 vs powerplay (top-order benchmark 153, 437 balls); strike rate 214 vs middle (top-order benchmark 154, 206 balls); high recent runs per innings (weighted, shrunk: 35.7); frequent 50+ scores (27% of innings, weighted).
- **Risk factors:** none flagged by the rules beyond general IPL variance.
- **2027 estimate:** 541 runs (80% interval 194–777) from 14.7 expected innings × 37.0 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 517; strong form 733; weak form 322; reduced time (8 inn) 296.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 3. Virat Kohli (`V Kohli`)
- **Historical trend:** 2020: 466 (15 inn), 2021: 405 (15 inn), 2022: 341 (16 inn), 2023: 639 (14 inn), 2024: 741 (15 inn), 2025: 657 (15 inn), 2026: 379 (9 inn). Teams in data: RCB.
- **Recent performance:** 2026 (partial, to data cutoff): 379 runs in 9 innings, SR 166; last 10 innings: 422 runs, SR 160.
- **Strengths (data-derived):** high recent runs per innings (weighted, shrunk: 43.4); frequent 50+ scores (41% of innings, weighted).
- **Risk factors:** strike rate 134 vs spin (benchmark 151, 464 balls); strike rate 137 vs middle (benchmark 154, 518 balls); volatile season-to-season output (runs-per-innings CV 0.36 over 18 seasons).
- **2027 estimate:** 515 runs (80% interval 183–741) from 13.5 expected innings × 38.2 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 535; strong form 757; weak form 333; reduced time (8 inn) 305.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 4. Shubman Gill (`Shubman Gill`)
- **Historical trend:** 2020: 440 (14 inn), 2021: 478 (17 inn), 2022: 483 (16 inn), 2023: 890 (17 inn), 2024: 426 (12 inn), 2025: 650 (15 inn), 2026: 373 (8 inn). Teams in data: KKR → GT.
- **Recent performance:** 2026 (partial, to data cutoff): 373 runs in 8 innings, SR 155; last 10 innings: 387 runs, SR 154.
- **Strengths (data-derived):** high recent runs per innings (weighted, shrunk: 40.7); frequent 50+ scores (34% of innings, weighted).
- **Risk factors:** volatile season-to-season output (runs-per-innings CV 0.33 over 8 seasons).
- **2027 estimate:** 501 runs (80% interval 177–720) from 13.1 expected innings × 38.2 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 535; strong form 758; weak form 333; reduced time (8 inn) 306.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 5. Heinrich Klaasen (`H Klaasen`)
- **Historical trend:** 2023: 448 (11 inn), 2024: 479 (15 inn), 2025: 487 (13 inn), 2026: 414 (9 inn). Teams in data: RR → RCB → SRH.
- **Recent performance:** 2026 (partial, to data cutoff): 414 runs in 9 innings, SR 157; last 10 innings: 519 runs, SR 172.
- **Strengths (data-derived):** strike rate 176 vs spin (top-order benchmark 151, 346 balls); high recent runs per innings (weighted, shrunk: 37.2); frequent 50+ scores (27% of innings, weighted).
- **Risk factors:** no IPL innings in 2020, 2021, 2022 (availability/selection history); middle/lower-order role (weighted batting position 4.6) caps balls per innings.
- **2027 estimate:** 487 runs (80% interval 172–702) from 14.7 expected innings × 33.3 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 466; strong form 659; weak form 290; reduced time (8 inn) 266.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 6. Yashasvi Jaiswal (`YBK Jaiswal`)
- **Historical trend:** 2020: 40 (3 inn), 2021: 249 (10 inn), 2022: 258 (10 inn), 2023: 625 (14 inn), 2024: 435 (15 inn), 2025: 559 (14 inn), 2026: 312 (10 inn). Teams in data: RR.
- **Recent performance:** 2026 (partial, to data cutoff): 312 runs in 10 innings, SR 159; last 10 innings: 312 runs, SR 159.
- **Strengths (data-derived):** frequent 50+ scores (29% of innings, weighted).
- **Risk factors:** strike rate 135 vs spin (benchmark 151, 218 balls).
- **2027 estimate:** 464 runs (80% interval 162–670) from 13.1 expected innings × 35.5 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 496; strong form 703; weak form 309; reduced time (8 inn) 284.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 7. Shreyas Iyer (`SS Iyer`)
- **Historical trend:** 2020: 519 (17 inn), 2021: 175 (8 inn), 2022: 401 (14 inn), 2024: 351 (14 inn), 2025: 604 (17 inn), 2026: 309 (7 inn). Teams in data: DC → KKR → PBKS.
- **Recent performance:** 2026 (partial, to data cutoff): 309 runs in 7 innings, SR 175; last 10 innings: 399 runs, SR 179.
- **Strengths (data-derived):** strike rate 214 vs death (top-order benchmark 190, 185 balls); frequent 50+ scores (33% of innings, weighted).
- **Risk factors:** strike rate 128 vs powerplay (benchmark 153, 101 balls); no IPL innings in 2023 (availability/selection history).
- **2027 estimate:** 421 runs (80% interval 145–610) from 13.3 expected innings × 31.6 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 443; strong form 627; weak form 276; reduced time (8 inn) 253.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 8. Travis Head (`TM Head`)
- **Historical trend:** 2024: 567 (15 inn), 2025: 374 (12 inn), 2026: 262 (9 inn). Teams in data: RCB → SRH.
- **Recent performance:** 2026 (partial, to data cutoff): 262 runs in 9 innings, SR 164; last 10 innings: 338 runs, SR 169.
- **Strengths (data-derived):** strike rate 185 vs pace (top-order benchmark 160, 475 balls); strike rate 181 vs powerplay (top-order benchmark 153, 482 balls).
- **Risk factors:** no IPL innings in 2020, 2021, 2022, 2023 (availability/selection history).
- **2027 estimate:** 418 runs (80% interval 143–604) from 12.7 expected innings × 32.9 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 461; strong form 653; weak form 287; reduced time (8 inn) 263.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 9. Phil Salt (`PD Salt`)
- **Historical trend:** 2023: 218 (9 inn), 2024: 435 (12 inn), 2025: 403 (13 inn), 2026: 202 (6 inn). Teams in data: DC → KKR → RCB.
- **Recent performance:** 2026 (partial, to data cutoff): 202 runs in 6 innings, SR 168; last 10 innings: 366 runs, SR 177.
- **Strengths (data-derived):** strike rate 191 vs spin (top-order benchmark 151, 137 balls); strike rate 176 vs powerplay (top-order benchmark 153, 417 balls); strike rate 180 vs middle (top-order benchmark 154, 168 balls); frequent 50+ scores (31% of innings, weighted).
- **Risk factors:** batted in only 67% of the team's 2026 matches in the data.
- **2027 estimate:** 413 runs (80% interval 141–598) from 11.5 expected innings × 35.9 runs/innings; confidence **Medium**.
- **Scenarios:** full season (14 inn) 503; strong form 712; weak form 313; reduced time (8 inn) 287.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 10. Sanju Samson (`SV Samson`)
- **Historical trend:** 2020: 375 (14 inn), 2021: 484 (14 inn), 2022: 458 (17 inn), 2023: 362 (14 inn), 2024: 531 (15 inn), 2025: 285 (9 inn), 2026: 304 (8 inn). Teams in data: RR → DC → RR → CSK.
- **Recent performance:** 2026 (partial, to data cutoff): 304 runs in 8 innings, SR 170; last 10 innings: 365 runs, SR 162.
- **Strengths (data-derived):** no split stands out by ≥15 SR points from the benchmark.
- **Risk factors:** none flagged by the rules beyond general IPL variance.
- **2027 estimate:** 392 runs (80% interval 133–569) from 11.8 expected innings × 33.4 runs/innings; confidence **Medium**.
- **Scenarios:** full season (14 inn) 467; strong form 662; weak form 291; reduced time (8 inn) 267.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 11. Rajat Patidar (`RM Patidar`)
- **Historical trend:** 2021: 71 (4 inn), 2022: 333 (7 inn), 2024: 395 (13 inn), 2025: 312 (14 inn), 2026: 257 (8 inn). Teams in data: RCB.
- **Recent performance:** 2026 (partial, to data cutoff): 257 runs in 8 innings, SR 201; last 10 innings: 298 runs, SR 196.
- **Strengths (data-derived):** strike rate 178 vs spin (top-order benchmark 151, 233 balls); strike rate 179 vs middle (top-order benchmark 154, 404 balls).
- **Risk factors:** strike rate 126 vs powerplay (benchmark 153, 89 balls); strike rate 169 vs death (benchmark 190, 75 balls); no IPL innings in 2023 (availability/selection history).
- **2027 estimate:** 361 runs (80% interval 120–524) from 12.4 expected innings × 29.0 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 407; strong form 576; weak form 253; reduced time (8 inn) 232.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 12. Suryakumar Yadav (`SA Yadav`)
- **Historical trend:** 2020: 480 (15 inn), 2021: 317 (14 inn), 2022: 303 (8 inn), 2023: 605 (16 inn), 2024: 345 (11 inn), 2025: 717 (16 inn), 2026: 162 (8 inn). Teams in data: MI → KKR → MI.
- **Recent performance:** 2026 (partial, to data cutoff): 162 runs in 8 innings, SR 141; last 10 innings: 239 runs, SR 148.
- **Strengths (data-derived):** strike rate 207 vs death (top-order benchmark 190, 81 balls); frequent 50+ scores (26% of innings, weighted).
- **Risk factors:** volatile season-to-season output (runs-per-innings CV 0.37 over 11 seasons).
- **2027 estimate:** 344 runs (80% interval 37–618) from 11.8 expected innings × 29.1 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 407; strong form 576; weak form 253; reduced time (8 inn) 233.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 13. Riyan Parag (`R Parag`)
- **Historical trend:** 2020: 86 (8 inn), 2021: 93 (10 inn), 2022: 183 (14 inn), 2023: 78 (7 inn), 2024: 573 (14 inn), 2025: 393 (14 inn), 2026: 207 (10 inn). Teams in data: RR.
- **Recent performance:** 2026 (partial, to data cutoff): 207 runs in 10 innings, SR 144; last 10 innings: 207 runs, SR 144.
- **Strengths (data-derived):** no split stands out by ≥15 SR points from the benchmark.
- **Risk factors:** volatile season-to-season output (runs-per-innings CV 0.67 over 5 seasons).
- **2027 estimate:** 336 runs (80% interval 35–603) from 12.1 expected innings × 27.8 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 389; strong form 551; weak form 242; reduced time (8 inn) 222.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 14. Tilak Varma (`Tilak Varma`)
- **Historical trend:** 2022: 397 (14 inn), 2023: 343 (11 inn), 2024: 416 (13 inn), 2025: 343 (13 inn), 2026: 188 (8 inn). Teams in data: MI.
- **Recent performance:** 2026 (partial, to data cutoff): 188 runs in 8 innings, SR 169; last 10 innings: 257 runs, SR 170.
- **Strengths (data-derived):** strike rate 206 vs death (top-order benchmark 190, 127 balls).
- **Risk factors:** strike rate 107 vs powerplay (benchmark 153, 100 balls); middle/lower-order role (weighted batting position 4.6) caps balls per innings.
- **2027 estimate:** 315 runs (80% interval 31–568) from 11.9 expected innings × 26.5 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 371; strong form 525; weak form 231; reduced time (8 inn) 212.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 15. Nicholas Pooran (`N Pooran`)
- **Historical trend:** 2020: 353 (14 inn), 2021: 85 (11 inn), 2022: 306 (13 inn), 2023: 358 (15 inn), 2024: 499 (14 inn), 2025: 524 (14 inn), 2026: 82 (8 inn). Teams in data: PBKS → SRH → LSG.
- **Recent performance:** 2026 (partial, to data cutoff): 82 runs in 8 innings, SR 81; last 10 innings: 151 runs, SR 109.
- **Strengths (data-derived):** strike rate 190 vs spin (top-order benchmark 151, 224 balls).
- **Risk factors:** volatile season-to-season output (runs-per-innings CV 0.42 over 6 seasons).
- **2027 estimate:** 314 runs (80% interval 31–567) from 11.6 expected innings × 27.1 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 379; strong form 537; weak form 236; reduced time (8 inn) 217.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 16. Rishabh Pant (`RR Pant`)
- **Historical trend:** 2020: 343 (14 inn), 2021: 419 (16 inn), 2022: 340 (13 inn), 2024: 446 (13 inn), 2025: 269 (13 inn), 2026: 189 (8 inn). Teams in data: DC → LSG.
- **Recent performance:** 2026 (partial, to data cutoff): 189 runs in 8 innings, SR 127; last 10 innings: 323 runs, SR 150.
- **Strengths (data-derived):** no split stands out by ≥15 SR points from the benchmark.
- **Risk factors:** strike rate 120 vs spin (benchmark 151, 232 balls); strike rate 102 vs powerplay (benchmark 153, 123 balls); strike rate 136 vs middle (benchmark 154, 394 balls); no IPL innings in 2023 (availability/selection history); volatile season-to-season output (runs-per-innings CV 0.31 over 9 seasons).
- **2027 estimate:** 308 runs (80% interval 29–556) from 11.3 expected innings × 27.3 runs/innings; confidence **High**.
- **Scenarios:** full season (14 inn) 383; strong form 542; weak form 238; reduced time (8 inn) 219.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 17. Ruturaj Gaikwad (`RD Gaikwad`)
- **Historical trend:** 2020: 204 (6 inn), 2021: 635 (16 inn), 2022: 368 (14 inn), 2023: 590 (15 inn), 2024: 583 (14 inn), 2025: 122 (5 inn), 2026: 178 (8 inn). Teams in data: CSK.
- **Recent performance:** 2026 (partial, to data cutoff): 178 runs in 8 innings, SR 121; last 10 innings: 184 runs, SR 119.
- **Strengths (data-derived):** frequent 50+ scores (26% of innings, weighted).
- **Risk factors:** strike rate 140 vs pace (benchmark 160, 448 balls); strike rate 132 vs spin (benchmark 151, 193 balls); strike rate 136 vs powerplay (benchmark 153, 316 balls); strike rate 129 vs middle (benchmark 154, 265 balls).
- **2027 estimate:** 300 runs (80% interval 27–543) from 9.7 expected innings × 31.0 runs/innings; confidence **Medium**.
- **Scenarios:** full season (14 inn) 434; strong form 615; weak form 271; reduced time (8 inn) 248.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 18. Devdutt Padikkal (`D Padikkal`)
- **Historical trend:** 2020: 473 (15 inn), 2021: 411 (14 inn), 2022: 376 (17 inn), 2023: 261 (11 inn), 2024: 38 (7 inn), 2025: 247 (10 inn), 2026: 282 (8 inn). Teams in data: RCB → RR → LSG → RCB.
- **Recent performance:** 2026 (partial, to data cutoff): 282 runs in 8 innings, SR 188; last 10 innings: 299 runs, SR 179.
- **Strengths (data-derived):** no split stands out by ≥15 SR points from the benchmark.
- **Risk factors:** strike rate 126 vs spin (benchmark 151, 144 balls).
- **2027 estimate:** 288 runs (80% interval 25–523) from 10.3 expected innings × 27.9 runs/innings; confidence **Low**.
- **Scenarios:** full season (14 inn) 390; strong form 553; weak form 243; reduced time (8 inn) 223.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 19. Rohit Sharma (`RG Sharma`)
- **Historical trend:** 2020: 332 (12 inn), 2021: 381 (13 inn), 2022: 268 (14 inn), 2023: 332 (16 inn), 2024: 417 (14 inn), 2025: 418 (15 inn), 2026: 137 (4 inn). Teams in data: SRH → MI.
- **Recent performance:** 2026 (partial, to data cutoff): 137 runs in 4 innings, SR 165; last 10 innings: 315 runs, SR 150.
- **Strengths (data-derived):** no split stands out by ≥15 SR points from the benchmark.
- **Risk factors:** batted in only 50% of the team's 2026 matches in the data.
- **2027 estimate:** 247 runs (80% interval 16–453) from 8.2 expected innings × 30.3 runs/innings; confidence **Medium**.
- **Scenarios:** full season (14 inn) 424; strong form 600; weak form 264; reduced time (8 inn) 242.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

### 20. Tim David (`TH David`)
- **Historical trend:** 2021: 1 (1 inn), 2022: 186 (8 inn), 2023: 231 (15 inn), 2024: 241 (11 inn), 2025: 187 (9 inn), 2026: 192 (8 inn). Teams in data: RCB → MI → RCB.
- **Recent performance:** 2026 (partial, to data cutoff): 192 runs in 8 innings, SR 192; last 10 innings: 195 runs, SR 181.
- **Strengths (data-derived):** strike rate 183 vs pace (top-order benchmark 160, 270 balls).
- **Risk factors:** strike rate 138 vs middle (benchmark 154, 121 balls); middle/lower-order role (weighted batting position 6.3) caps balls per innings.
- **2027 estimate:** 195 runs (80% interval 4–364) from 10.3 expected innings × 18.8 runs/innings; confidence **Medium**.
- **Scenarios:** full season (14 inn) 264; strong form 373; weak form 164; reduced time (8 inn) 151.
- **Assumptions:** plays IPL 2027 with availability in line with the player's own recent history; role similar to 2024–2026; 2027 team, squad and batting position not known from the data.

## C. Model evaluation

### Dataset and name matching

- Ball-by-ball data, 2008–2026: 288,051 deliveries (super overs excluded), 18,639 player innings, 732 batters. Runs, balls, boundaries, dismissals, batting position and phase come from deliveries; bowler type is used to group deliveries into pace or spin.

- Missing: batsman type on 239 deliveries, bowler type on 339 (counted as pace). Matches abandoned without a ball are absent. 'Innings' means batted appearances: players in the XI who did not bat cannot be seen.

- **Not in the data:** age/date of birth, squads, auction/retention, injuries, 2027 teams and batting orders, non-IPL cricket. Age and career stage are proxied only by years since IPL debut.

- Names were matched on the players file's full names, never by surname (e.g. `R Sharma` = Rahul Sharma, `VR Iyer` = Venkatesh Iyer). No dataset name batted for two teams in one season, so no different players are merged under one name.

| batter | dataset_name | player_id | full_name | seasons | career_runs | teams |
|---|---|---:|---|---|---:|---|
| Virat Kohli | V Kohli | 332 | Virat Kohli | 2008–2026 (19) | 9040 | RCB |
| Rohit Sharma | RG Sharma | 25 | Rohit Gurunath Sharma | 2008–2026 (19) | 7183 | SRH → MI |
| Suryakumar Yadav | SA Yadav | 61 | Suryakumar Ashok Yadav | 2012–2026 (14) | 4473 | MI → KKR → MI |
| Shubman Gill | Shubman Gill | 1580 | Shubman Gill | 2018–2026 (9) | 4239 | KKR → GT |
| Sai Sudharsan | B Sai Sudharsan | 6999 | Bhardwaj Sai Sudharsan | 2022–2026 (5) | 2121 | GT |
| Yashasvi Jaiswal | YBK Jaiswal | 4104 | Yashasvi Bhupendra Kumar Jaiswal | 2020–2026 (7) | 2478 | RR |
| Riyan Parag | R Parag | 3230 | Riyan Parag | 2019–2026 (8) | 1773 | RR |
| Devdutt Padikkal | D Padikkal | 4071 | Devdutt Padikkal | 2020–2026 (7) | 2088 | RCB → RR → LSG → RCB |
| Tim David | TH David | 6550 | Timothy Hays David | 2021–2026 (6) | 1038 | RCB → MI → RCB |
| Rajat Patidar | RM Patidar | 5349 | Rajat Manohar Patidar | 2021–2026 (5) | 1368 | RCB |
| Ruturaj Gaikwad | RD Gaikwad | 4119 | Ruturaj Dashrat Gaikwad | 2020–2026 (7) | 2680 | CSK |
| Sanju Samson | SV Samson | 180 | Sanju Viswanath Samson | 2013–2026 (14) | 5008 | RR → DC → RR → CSK |
| Abhishek Sharma | Abhishek Sharma | 2349 | Abhishek Sharma | 2018–2026 (9) | 2241 | DC → SRH |
| Travis Head | TM Head | 3 | Travis Michael Head | 2016–2026 (5) | 1408 | RCB → SRH |
| Heinrich Klaasen | H Klaasen | 1740 | Heinrich Klaasen | 2018–2026 (6) | 1894 | RR → RCB → SRH |
| Rishabh Pant | RR Pant | 181 | Rishabh Rajendra Pant | 2016–2026 (10) | 3742 | DC → LSG |
| Nicholas Pooran | N Pooran | 2766 | Nicholas Pooran | 2019–2026 (8) | 2375 | PBKS → SRH → LSG |
| Shreyas Iyer | SS Iyer | 389 | Shreyas Santosh Iyer | 2015–2026 (11) | 4040 | DC → KKR → PBKS |
| Tilak Varma | Tilak Varma | 6681 | Namboori Thakur Tilak Varma | 2022–2026 (5) | 1687 | MI |
| Phil Salt | PD Salt | 8945 | Philip Dean Salt | 2023–2026 (4) | 1258 | DC → KKR → RCB |

### Models (rolling origin: train on target seasons 2010…S−1, test on S, S = 2014–2025)

- Baselines: last-season runs; career average runs per season played; Marcel (5/4/3-weighted innings share × matches × shrunk runs/innings).
- Ridge (regularisation chosen by internal CV), RandomForest, gradient boosting (sklearn): direct season runs.
- **Two-part ridge** (chosen): innings-per-team-match model × runs-per-innings model (the second is innings-weighted and fit only on seasons where the player batted).
- Features (all from seasons < S, rates only): share_1, share_2, share_3, share_w, rpi_w, sr_w, outs_w, bpi_w, pos_w, bnd_w, fifty_w, form10, form_sr10, career_inn, years, played_1, n_inn_w, tm.
- A player-season is in the population if the player batted in S−1 or S−2, and counts as 0 runs when absent in S. That makes availability part of the target.

### Backtest: season runs

| subset | model | n | MAE | RMSE | bias |
|---|---|---:|---:|---:|---:|
| all active batters | last_season | 2382 | 63.8 | 117.1 | +9.1 |
| all active batters | career_avg | 2382 | 74.8 | 119.2 | +18.5 |
| all active batters | marcel | 2382 | 64.5 | 107.5 | +6.6 |
| all active batters | ridge | 2382 | 62.9 | 103.9 | +5.0 |
| all active batters | rf | 2382 | 62.7 | 104.2 | +2.8 |
| all active batters | gbm | 2382 | 62.8 | 106.2 | +1.5 |
| all active batters | two_part | 2382 | 60.4 | 102.6 | -0.2 |
| all active batters | ens_ridge_two_part | 2382 | 61.4 | 102.8 | +2.4 |
| established (≥250 runs in S-1) | last_season | 393 | 165.1 | 211.2 | +91.5 |
| established (≥250 runs in S-1) | career_avg | 393 | 149.2 | 188.5 | -6.5 |
| established (≥250 runs in S-1) | marcel | 393 | 142.0 | 181.9 | +9.7 |
| established (≥250 runs in S-1) | ridge | 393 | 138.7 | 175.7 | -3.5 |
| established (≥250 runs in S-1) | rf | 393 | 138.1 | 174.9 | -1.5 |
| established (≥250 runs in S-1) | gbm | 393 | 142.6 | 179.6 | +6.4 |
| established (≥250 runs in S-1) | two_part | 393 | 136.6 | 175.2 | -2.5 |
| established (≥250 runs in S-1) | ens_ridge_two_part | 393 | 137.0 | 174.8 | -3.0 |

Paired bootstrap of the MAE difference (negative = two-part better; 95% interval):

| comparison | subset | MAE diff | lo95 | hi95 |
|---|---|---:|---:|---:|
| two_part − last_season | all | -3.4 | -5.6 | -1.2 |
| two_part − marcel | all | -4.1 | -5.3 | -2.9 |
| two_part − ridge | all | -2.5 | -3.3 | -1.8 |
| two_part − rf | all | -2.2 | -3.2 | -1.3 |
| two_part − gbm | all | -2.4 | -3.7 | -1.2 |
| two_part − last_season | established | -28.5 | -39.0 | -19.2 |
| two_part − marcel | established | -5.4 | -10.2 | -0.4 |
| two_part − ridge | established | -2.0 | -4.9 | +0.8 |
| two_part − rf | established | -1.4 | -5.7 | +2.7 |
| two_part − gbm | established | -5.9 | -11.5 | -0.2 |

### Backtest: components vs naive baselines

| target | model | MAE |
|---|---|---:|
| innings | two-part share model | 2.61 |
| innings | last season innings | 2.71 |
| innings | Marcel weighted share × matches | 2.80 |
| runs/innings (≥5 inn) | two-part rpi model | 5.90 |
| runs/innings (≥5 inn) | last season rpi | 7.57 |
| runs/innings (≥5 inn) | weighted shrunk rpi | 6.31 |
| strike rate (≥100 balls) | weighted shrunk SR | 15.86 |
| strike rate (≥100 balls) | last season SR | 20.09 |

### Prediction-interval reliability (nominal 80%)

| method | subset | n | coverage_80 | below_lower | above_upper | mean_width | contains_point |
|---|---|---:|---:|---:|---:|---:|---:|
| conformal around two-part (used) | all | 1937 | 0.809 | 0.084 | 0.107 | 166 | 1.000 |
| conformal around two-part (used) | established | 327 | 0.801 | 0.089 | 0.110 | 469 | 1.000 |
| CQR quantile GBM | all | 1937 | 0.871 | 0.007 | 0.121 | 179 | 0.956 |
| CQR quantile GBM | established | 327 | 0.807 | 0.031 | 0.162 | 441 | 1.000 |

Evaluated on 2016–2025 (each season calibrated only on earlier seasons). The CQR adjustment came out near zero because many rows score exactly 0 runs, and its quantile trees can place the point estimate outside the interval, so the conformal interval around the two-part point is used.

Coverage by season, established batters (conformal interval):

| season | n | coverage_80 |
|---:|---:|---:|
| 2016 | 28 | 0.82 |
| 2017 | 24 | 0.83 |
| 2018 | 35 | 0.69 |
| 2019 | 30 | 0.90 |
| 2020 | 33 | 0.82 |
| 2021 | 33 | 0.88 |
| 2022 | 24 | 0.92 |
| 2023 | 40 | 0.62 |
| 2024 | 41 | 0.83 |
| 2025 | 39 | 0.79 |

### Known sources of uncertainty

- The 2026 season is partial in the data, so the most recent evidence is a part-season.
- Playing time is the largest risk: injury, selection, workload, and international clashes are not observable here.
- Team and role changes for 2027 are unknown; batting position is assumed to continue from recent seasons.
- Tournament length is assumed to follow the 2022–26 format (14.7 matches per team on average, including playoffs).
- Seasons are not exchangeable (eras, formats, Impact Player rule), so the conformal coverage guarantee is only approximate.

## D. Visualisations

![forecast](batting/forecast_intervals.png)

![history](batting/history_and_forecast.png)

![backtest](batting/backtest_mae.png)