A modular Business Intelligence (BI) and Decision Support System developed in Python as part of my Software Engineering Internship at KivaCRM.
The system analyzes CRM sales data, validates data quality, calculates key business performance indicators (KPIs), performs customer segment analysis, generates revenue forecasts, produces automated business recommendations, and creates bilingual reports in both English and Turkish.
The project runs entirely on a local machine and requires no cloud services or paid APIs.
- Synthetic CRM dataset generator
- Automated data validation
- Dataset health report
- CSV-based data pipeline
- Duplicate and missing-value detection
- Invalid data validation (dates, quantities, statuses, revenue)
Automatically calculates business metrics including:
- Total Revenue
- Average Order Value
- Month-over-Month (MoM) Revenue Growth
- Win Rate
- Churn Rate
- Product Performance
- Regional Performance
- Sales Performance
- Revenue Trend Analysis
Compares customer segments using:
- Total Revenue
- Revenue Share
- Revenue per Customer
- Average Order Value
- Win Rate
- Churn Rate
- Active Customers
- Best Performing Product
Forecasts the next three months using Linear Regression (NumPy Polyfit).
The forecast includes:
- Historical monthly revenue
- Trend line
- Forecast values
- Monthly slope
- R² (coefficient of determination)
- Forecast assumptions
A rule-based decision support engine automatically evaluates KPI results and generates business recommendations.
The engine identifies situations such as:
- Revenue decline
- High churn
- Sales performance
- Regional performance
- Product concentration
- Business trend
Each insight contains:
- Severity level
- Business explanation
- Recommended action
The system automatically generates:
- Interactive HTML Dashboard
- Excel KPI Report
- Decision Support Report
- Console Summary
Every dashboard page and report is available in:
- 🇬🇧 English
- 🇹🇷 Turkish
- Python
- Pandas
- NumPy
- Matplotlib
- Plotly
- OpenPyXL
- HTML
- CSS
Python-BI-Reporting-System/
│
├── data/
│ ├── customers.csv
│ ├── orders.csv
│ └── generate_data.py
│
├── modules/
│ ├── data_analysis.py
│ ├── decision_support.py
│ ├── excel_exporter.py
│ ├── forecast.py
│ ├── i18n.py
│ ├── kpi_engine.py
│ ├── report_generator.py
│ ├── segment_analysis.py
│ ├── visualizer.py
│ └── __init__.py
│
├── reports/
│ ├── dashboard.html
│ ├── kpi_report.xlsx
│ └── charts/
│
├── screenshots/
│
├── main.py
├── requirements.txt
├── README.md
└── Internship_Build_Plan.md
Clone the repository:
git clone https://github.com/salfayoumi/python-bi-reporting-system.gitInstall the required packages:
pip install -r requirements.txt(Optional) Regenerate the synthetic CRM dataset:
python data/generate_data.pyRun the complete pipeline:
python main.pyThe application executes the following pipeline:
Load CRM Data
│
▼
Validate Dataset
│
▼
Compute KPIs
│
▼
Customer Segment Analysis
│
▼
Revenue Forecasting
│
▼
Generate Charts
│
▼
Decision Support Analysis
│
▼
Generate HTML Dashboard
│
▼
Generate Excel Report
Running the project automatically creates:
reports/
│
├── dashboard.html
├── kpi_report.xlsx
└── charts/
The HTML dashboard contains:
- Executive KPI Overview
- Monthly Revenue Analysis
- Regional Performance
- Product Performance
- Customer Segment Analysis
- Revenue Forecast
- Decision Support Insights
Possible future extensions include:
- Database integration
- REST API
- Machine Learning forecasting models
- Streamlit dashboard
- PDF report generation
- User authentication
- Advanced forecasting algorithms
- CLI filtering options
- Real-time CRM integration
This project was developed during my Software Engineering Internship at KivaCRM.
The original internship roadmap is available in:
Internship_Build_Plan.md
The final implementation extends the original roadmap with several additional features, including:
- Customer Segment Analysis
- Revenue Forecasting
- Excel Report Export
- Bilingual Reporting (English & Turkish)
- Data Validation Module
- Enhanced Dashboard Design
- Interactive Plotly Visualizations
Salsabeel Alfayoumi
Computer Engineer
Software Engineering • Python • Data Analysis • Business Intelligence • Decision Support Systems





