A large-scale cricket analytics project built on historical IPL ball-by-ball and match datasets containing 286,000+ delivery records across 18 seasons (2008–2025).
The project focused on converting raw IPL data into structured analytical datasets through extensive preprocessing, aggregation, and statistical engineering using Python and Pandas. Over 100+ processed CSV datasets were generated across batting and bowling analytics pipelines — covering player records, seasonal performance, boundary analysis, partnerships, strike rates, wicket trends, economy analysis, and venue insights.
The final stage involved building a fully interactive Power BI dashboard using finalized master datasets, delivering advanced IPL analytics through dynamic filtering, KPI cards, and visual storytelling.
- Processed 286,000+ ball-by-ball IPL records
- Built 100+ analytical CSV datasets from raw cricket data
- Created separate batting and bowling analytics pipelines
- Developed modular Jupyter notebook workflows for each analysis module
- Performed player, team, venue, and season-level analysis
- Built a 7-page interactive Power BI dashboard with dynamic filtering and KPIs
- All statistics validated against official ESPNcricinfo records
| Property | Details |
|---|---|
| Source | Kaggle |
| Coverage | 18 IPL seasons — 2008 to 2025 |
| Records | 286,000+ ball-by-ball deliveries |
| Columns | 56 features per delivery |
Raw IPL Datasets
↓
Data Cleaning & Validation
↓
Cricket Rule Implementation (56+ edge cases)
↓
100+ Processed CSV Files
↓
Batting & Bowling Analytics Pipelines
↓
Master Dataset Creation
↓
Power BI Dashboard Development (100+ DAX Measures)
↓
Interactive IPL Analytics Dashboard
ipl-data-analytics-dashboard/
│
├── data/
│ ├── raw/
│ │ ├── all_ball_by_ball_data.csv
│ │ ├── all_ipl_innings_data.csv
│ │ ├── all_matches_data.csv
│ │ ├── all_players_data.csv
│ │ ├── all_team_info.csv
│ │ └── seasonal_overview.csv
│ │
│ └── processed/ # 100+ processed analytical CSV datasets
│ ├── batting_records/
│ │ ├── boundary_records/
│ │ ├── core_stats/
│ │ ├── ducks_record/
│ │ ├── fifties_and_centuries_records/
│ │ ├── partnership_records/
│ │ ├── all_time_batting_stats.csv
│ │ └── player_match_by_match_batting_stats.csv
│ │
│ └── bowling_records/
│ ├── career_records/
│ ├── innings_records/
│ ├── seasonal_records/
│ └── match_by_match_bowling_stats.csv
│
├── notebooks/
│ ├── 01_batting_master_dataset_creation.ipynb
│ ├── 02_core_batting_performance_metrics.ipynb
│ ├── 03_boundary_analysis.ipynb
│ ├── 04_fifties_and_centuries_analysis.ipynb
│ ├── 05_ducks_analysis.ipynb
│ ├── 06_partnership_analysis.ipynb
│ ├── 07_bowling_master_dataset_creation.ipynb
│ ├── 08_bowling_career_records_analysis.ipynb
│ ├── 09_bowling_innings_records_analysis.ipynb
│ └── 10_bowling_seasonal_records_analysis.ipynb
│
├── powerbi/
│ ├── images/
│ └── ipl_data_analytics_dashboard.pbix
│
├── reports/
│ ├── figures/
│ └── presentation/
│ ├── ipl_data_analytics_dashboard_presentation.pptx
│ └── ipl_data_analytics_dashboard_presentation.pdf
│
├── .gitignore
├── README.md
└── requirements.txt
| Page | Description |
|---|---|
| Home | Cover page with navigation buttons to all sections |
| Season Overview | Winner, runner-up, Orange Cap, Purple Cap, Player of the Season, and key aggregate stats per season |
| Batting Performance | Run trends, boundary analysis by over, venue breakdowns, and record cards with full-list navigation |
| Bowling Performance | Wicket type breakdown, economy and wicket trends, and record cards with full-list navigation |
| Records | Dynamic table switching between full Batting and Bowling record lists — filterable by season, team, and player nationality |
| Standings | Season-by-season IPL points table with correct NRR, excluding knockout matches. Dynamic title per season |
| Fixtures | All match results for any team in any season — sorted latest first with scores, venues, dates, and winning statements |
| Tool | Usage |
|---|---|
| Python | Core data processing language |
| Pandas | Data cleaning, transformation, metric engineering |
| NumPy | Numerical computations |
| Jupyter Notebook | Modular analytics workflow |
| Power BI | Interactive dashboard development |
| DAX | 100+ measures, calculated columns, dynamic filtering |
git clone https://github.com/apswalih/ipl-data-analytics-dashboard.git
cd ipl-data-analytics-dashboard
pip install -r requirements.txtRun:
jupyter notebookThen open notebooks from the notebooks/ folder.
Open:
powerbi/ipl_data_analytics_dashboard.pbix
using Microsoft Power BI Desktop.
- Add advanced datasets and deeper statistical analysis (eg: partnership records)
- Build player-wise and team-wise comparison dashboards
- Add head-to-head analytics and team information sections
- Integrate player images, team logos, and enhanced dashboard design
- Implement player form tracking and consistency analysis
- Develop match prediction and win probability insights
Muhammed Swalih AP
For questions or collaboration, open an issue on GitHub or reach out via email at apswalihofficial@gmail.com


