IPL Insights over the last decade
The Indian Premier League (IPL) is one of the most widely watched cricket leagues in the world. Hosted in India typically in the 8 cities that represent the 8 participating teams, this is a tournament where renowned international cricketers come together and participate in 20-over matches that are brimming with excitement.
Founded by the Board of Control for Cricket in India (BCCI) in 2008, IPL is frenzied entertainment, both on and off the field. Nonstop action, Bollywood film stars, animated die-hard fans, glamour, music, cheers, roars, uncontrollable emotions and much more!
In a game such as cricket, there are myriad factors that contribute to a team's victory. This project brings to life some of those quantifiable drivers. I've built this application with flexibility and interactivity in mind. Users of this application can select teams they'd like to compare and do so over any year from 2008 to 2017. With extensibility built-in, further addition of data is as simple as appending the new datasets. The application is located here:
Data for this project was obtained from Kaggle and comprises of 2 datasets that span 10 years of data from 2008 to 2017:
- Matches - data for all matches played. (Data granularity: every match played)
- Deliveries - ball by ball data for every match played. (Data granularity: every ball bowled)
IPL at a glance:
This menu item provides overall figures of all the matches played over the 10-year period. Number of matches won by each of the participating teams, tournament winners and runner ups, "Man of the match" as well as "Player of the series" for every year provide an informed overview of how teams have performed till date. Overall, there were approximately 600 matches played with close to 200,00 runs scored. Given that it’s a 20-over match, it's easy to notice its "hard-hitting" nature, evidenced by the number of boundaries: ~ 6500 sixes and 17,000 fours.
Mumbai Indians has won the most number of matches, with Chennai Super Kings following closely behind. It's no surprise that when these 2 teams go head-to-head, nearly every family in India are either indoors watching this match on TV or packing the stadium to its fullest capacity.
The application follows a top-down methodology wherein the user starts with selecting teams for comparative analysis and, with each menu item, further drills down to a more granular level of detail such as key batsman and bowler metrics for the chosen teams.
The user first starts with selecting a team of interest and the time-period of analysis using the input range provided.
In the "Opponent Analysis" tab, users can select a rival team to obtain head-to-head metrics of the two teams under consideration. (Note: The team chosen in the "Team Highlights" tab is automatically brought into this one for comparison)
Outcomes of every instance where the 2 selected teams have faced each other are populated. This can be filtered down to a single year or over a range. The range chosen in the previous menu item is automatically considered for comparison as well.
The two teams I've used as examples are Mumbai Indians and Chennai Super Kings.
As seen by the visualization on the left, each team's position at the end of a tournament is plotted.
The visualization on the right summarizes the number of wins by each respective team. In this case, Chennai Super Kings is 2 wins short of leveling with the Mumbai Indians.
To further dig into the drivers of such a close contest between the two teams, I've chosen metrics that are the engine of any IPL cricket match - the runs scored by the batsmen of each team. This sets the stage of any IPL match and nearly any aspect going forward is predicated by a team's batting performance.
This section computes the "Strike Rate" (number of runs per 100 balls faced) and the "Batting Average" (number of runs/number of times they got out). Unarguably, these metrics are pivotal to any batsman analysis, especially in a 20-over format game.
The visualization plots the top batsmen from each team with the position and size of each point illustrating their contribution to the runs scored. As seen in this scenario, Chennai outdoes Mumbai in terms of ranking on Strike Rate, however Mumbai bolsters its batting attack with a reliable lineup. Chennai's strength here is its top 3 batsmen (both for Strike Rate and Batting Average). Mumbai equalizes with 8 batsmen that collectively put up a fight in both areas.
Coming to the 2nd innings of the match, where the opposing team chases the runs scored, the onus of defending a score lies with the bowlers and the fielders. To contrast the batsman metrics, I've chosen "Economy Rate" (average number of runs conceded for each over bowled) and "Wickets Taken" (primary measure of an individual bowler's ability) as crucial drivers of bowling. It's interesting to notice the bowling strategy of both teams and their consistency for both batting and bowling. The visualization depicts Chennai primarily relying on its top 3 bowlers whereas Mumbai makes up with multiple bowlers at its disposal.
Cricket is very unpredictable, and given this uncertainty, I conclude that Mumbai has done well to have a "set" of players that can be deployed based on the situation at hand. Mumbai's captain has the comfort of shuffling his players, which not only changes the opposing batsman's momentum but also places a level of comfort should the top players fail to deliver. Based on these visualizations, it appears that Mumbai has strategized for handling any situation and optimized their team to not only deliver but also spread responsibility across all team members - a huge plus to have in such a game!
This application is a start in attempting to capture IPL metrics that matter the most. Having said that, there are many more statistics and measures that can be further incorporated and refined. Encompassing other aspects such as fielder, wicket keeper and captaincy stats, and correlations between them are a few things that come immediately to mind. Venues games are played at, umpire influence, home crowd advantage, coach influence are a few examples, among others, that will enrich this application further.