This end-to-end data analytics project turns 17 seasons of raw Indian Premier League ball-by-ball data into a single, reusable source of truth. Starting from over 260,000 individual delivery records spanning 1,095 matches, the workflow handles missing values, duplicate removal, team-name standardization, outlier flagging, and feature engineering to produce a cleaned dataset that powers SQL business queries, Python-based exploratory analysis, and an interactive Streamlit dashboard. The project applies a "cricket-as-business" lens — treating runs as revenue, wickets as profit impact, and matches as orders — so that scoring trends, team and player performance, venue effects, and match-outcome drivers can all be explored as genuine business questions, each paired with a clear, actionable recommendation.
- Build a single cleaned, validated dataset from raw IPL ball-by-ball and match data
- Engineer match-phase, boundary, and outcome features for deeper analysis
- Answer 30 business questions in SQL covering teams, players, venues, and phases
- Visualize scoring trends, team performance, and player metrics in Python
- Deliver an interactive Streamlit dashboard with filters and downloadable reports
A combination of data engineering, SQL, and visualization tools was used to build a reproducible, end-to-end analytics pipeline:
- Data cleaning, validation, and feature engineering at scale
- SQL business-question analysis and reporting
- Exploratory data analysis and statistical correlation
- Interactive dashboard development with Streamlit & Plotly
- Data storytelling — translating cricket metrics into business insights
📁 Data-Analytics-Project/ ├── 📂 Dataset/ │ ├── Raw_Data.csv │ ├── Cleaned_Data.csv │ ├── matches_raw.csv │ ├── top_batters.csv │ ├── top_bowlers.csv │ ├── team_runs.csv / team_wins.csv │ ├── season_trend.csv / phase.csv │ └── category.csv / city.csv ├── 📂 SQL/ │ ├── Data_Cleaning.sql │ ├── EDA.sql │ └── Business_Queries.sql ├── 📂 Python/ │ ├── Data_Cleaning.ipynb │ ├── EDA.ipynb │ ├── Data_Visualization.ipynb │ ├── Dashboard.py │ └── Requirements.txt
A visual walkthrough of the analysis outputs — from SQL-driven business charts to the interactive Streamlit dashboard built in Python.
The cleaned dataset covers 260,920 ball-by-ball deliveries across 1,095 matches and 17 IPL seasons (2008–2024), totaling 347,756 runs and 12,950 wickets across 15 teams. Virat Kohli leads all-time scoring with 8,014 runs, Yuzvendra Chahal leads wicket-taking with 205 wickets, and Mumbai Indians is the most successful franchise with 144 wins and the most runs scored (42,176). Middle overs contribute the largest share of total runs, death overs carry the highest run rate, and dot balls remain the single most common delivery outcome — together pointing to phase-specific strategy as a key lever for both batting and bowling sides.
This project demonstrates a complete, business-oriented data analytics lifecycle — from raw, inconsistent ball-by-ball records to a governed dataset, SQL-driven business answers, statistical exploration, and an interactive dashboard. By framing cricket metrics in business terms — runs as revenue, wickets as impact, matches as orders, and teams as customers — the workflow shows how the same end-to-end approach can be applied to any transactional dataset. Beyond cricket insights, it serves as a template for building reproducible, multi-tool (SQL + Python + Streamlit) analytics pipelines that scale from raw data to decision-ready dashboards.