The Indian Premier League (IPL) launched in 2008 and fundamentally changed cricket forever. But beyond the fireworks and celebrity owners, what does the data actually tell us?
This project analyzes 278,205 ball-by-ball deliveries across 1,169 IPL matches spanning 17 seasons (2008β2025) to answer three key questions:
π Q1: How has batting evolved? Are teams scoring faster than ever?
π Q2: Has the bat-vs-ball balance shifted? Are bowlers endangered?
π Q3: Is the toss advantage a myth or reality?
| # | Finding | Evidence |
|---|---|---|
| 1 | The Run Explosion is Real | Average run rates have surged 25%+ since 2008, driven by a near-doubling of six-hitting frequency |
| 2 | Bowlers Have Adapted, Not Died | Despite soaring economy rates, wickets per match remain stable |
| 3 | The Toss is (Mostly) Irrelevant | Toss advantage hovers around 50%, though chasing has become preferred in recent seasons |
Death overs (16-20) run rates have exploded from ~8.5 RPO to 11+ RPO β the last 5 overs have genuinely become a different game, driven by the rise of finishers like MS Dhoni, Hardik Pandya, and Rinku Singh.
The notebook contains 10 interactive Plotly visualizations:
- π The Run Explosion β Avg runs per match & run rate trend (dual-axis)
- π₯ The Boundary Revolution β Fours vs Sixes per 100 balls (area chart)
- π³ The Bowlers Plight β Economy rates vs Wickets per match (subplot)
- π All-Time Run Scorers β Top 15 batters colored by strike rate
- πͺ The Great Toss Debate β Toss win % & Chase vs Bat-first analysis
- π Franchise Dominance Map β Team wins heatmap across seasons
- ποΈ Run-Scoring Grounds β Venue comparison with six-hitting data
- π Mr. Dependable β Most Player of the Match awards
- β‘ Three Phases of T20 β Powerplay vs Middle vs Death over scoring
- π¬ Animated Evolution β Strike rate vs Average scatter (play button!)
feb_challenge/
βββ IPL_Evolution_Analysis.ipynb # π Main analysis notebook (submission)
βββ README.md # π This file
βββ data/
β βββ ipl_raw/ # π¦ Raw Cricsheet match files (1,169 Γ 2)
β βββ ipl_deliveries.csv # π 278,205 ball-by-ball records
β βββ ipl_matches.csv # π 1,169 match summaries
β βββ ipl_batting_stats.csv # π Player batting stats by season
β βββ ipl_bowling_stats.csv # π³ Player bowling stats by season
βββ scripts/
β βββ process_data.py # π§ Raw data β clean datasets pipeline
β βββ create_notebook.py # π Notebook generator script
βββ visuals/ # πΈ Exported chart images
pip install pandas numpy plotly matplotlib seaborn jupyterpython scripts/process_data.pyjupyter notebook IPL_Evolution_Analysis.ipynb- Source: Cricsheet.org β Open-source ball-by-ball cricket data
- Format: CSV (ball-by-ball + match info files)
- Processing: Raw match CSVs (2,338 files) parsed and combined into 4 structured datasets using Python/Pandas
- Total Data Points: 278,205 deliveries across 1,169 matches
| Category | How |
|---|---|
| π Best Storyteller | Full end-to-end narrative with clear questions, analysis, and conclusions |
| π Best Data Visualization | 10 interactive Plotly charts with premium dark theme |
| π‘ Sherlock "Aha" Moment | Death overs revolution insight + Six-hitting explosion |
| π Best Original Dataset | Processed 2,338 raw Cricsheet files into clean datasets |
Made with β€οΈ and π for the Codedex February 2026 Dataset Challenge