IPL CRUNCH 26
Analysed 294,757 deliveries across 18 IPL seasons to debunk the toss-advantage myth and identify a +11.8 runs middle-overs gap as the key predictor of champions
8 of 18
Seasons toss backfired
294K+
Deliveries analysed
+11.8
Runs gap in middle overs
Overview
Cricket analytics often relies on superficial metrics, leading to the "toss-bias myth" where fans and experts assume winning a coin toss heavily decides matches. Team strategists and analysts face a critical gap: they lack granular, ball-by-ball historical evidence across seasons to make sound, data-driven decisions on post-toss strategies and middle-overs play. I parsed the entire IPL dataset—1,239 matches, 18 seasons, and 294,757 deliveries—to address this gap, providing clear, actionable insights on what actually wins matches versus what is just luck. Process I built a Python data pipeline to clean and parse ball-by-ball CricSheet JSONs into structured DataFrames. I structured my analysis into three phases: Toss Impact (Q1), Phase Execution (Q2), and Star Performers (Q3). To maintain statistical validity in Q2, I isolated Innings 1 because chasing teams pace their runs based on a target, which would skew average phase runs. In Q3, I excluded small-sample bias by filtering out bowlers with <20 overs. Initially, I tried rendering raw Plotly charts directly, but slow CDN loading times caused layout shifts. I iterated by designing a dual-mode hybrid architecture: embedding high-performance base64 fallback images that instantly swap to fully-interactive Plotly graphs once the library loads. Results The project successfully debunked the toss-advantage theory: toss winners win only 51.6% of matches. However, it revealed that choosing to field first grants a strong 57.3% win rate. Crucially, the middle overs (7–15) emerged as the decisive phase, where winning teams maintain a +11.8 run advantage and lose 0.9 fewer wickets on average. The resulting dashboard achieved a perfect 100/100 evaluation score. It features a dark-themed, glassmorphic UI, color-coded legends, and interactive charts that load instantly, offering an exceptional, production-grade analytical experience. Reflection If I were to rebuild this project, I would implement local asynchronous caching for the 1,239 JSON files to avoid parsing the raw datasets on every render, which currently takes ~10 seconds. Additionally, I would expand the analysis to include weather and stadium-specific dew factors as additional features to see how they impact the toss decision win rates. Finally, I would implement an automated CI/CD pipeline to pull the latest match data directly from the Cricsheet API after every match, keeping the dashboard updated in real-time.