A complete end-to-end Sales Analytics Dashboard built using MySQL + Power BI to uncover revenue trends, market performance, customer behavior, and actionable insights for business decision-making.
This project simulates a real business scenario where leadership needs clarity on declining sales.
Using SQL for cleaning & analysis and Power BI for dashboarding, this project delivers a fully automated BI solution with meaningful KPIs.
/Sales-Insights-Project/
βββ db_dump.sql
βββ DimCustomer.csv
βββ DimMarket.csv
βββ DimProduct.csv
βββ DimDate.csv
βββ FactSales.csv
βββ Sales_Insights_Dashboard.pbix
βββ Documentation.pdf
βββ README.md
The business struggles with declining sales and lacks visibility across:
- Market performance
- Revenue trends
- Product-level insights
- Customer segments
- Currency normalization
- Automated reporting
The goal is to build a unified analytical system to support strategic decisions.
Create a Power BI sales dashboard that reveals real-time insights and solves visibility gaps.
Sales Teams, Finance, Operations, BI Analysts, Leadership.
A dynamic Power BI dashboard showing revenue KPIs, trends, and product/market performance.
- Reduce manual reporting time by 60%
- Enable data-driven decision-making
- Identify underperforming markets/products
- Provide clear actionable insights for leadership
-- All customers
SELECT * FROM customers;
-- Total customer count
SELECT COUNT(*) FROM customers;
-- Chennai market transactions
SELECT * FROM transactions WHERE market_code='Mark001';
-- Distinct products in Chennai
SELECT DISTINCT product_code FROM transactions WHERE market_code='Mark001';
-- USD transactions
SELECT * FROM transactions WHERE currency='USD';
-- Transactions in 2020
SELECT t.*, d.*
FROM transactions t
INNER JOIN date d
ON t.order_date = d.date
WHERE d.year = 2020;SELECT SUM(t.sales_amount)
FROM transactions t
INNER JOIN date d ON t.order_date = d.date
WHERE d.year=2020
AND (t.currency='INR' OR t.currency='USD');- Connected MySQL database to Power BI
- Loaded dimension & fact tables:
- DimCustomer
- DimMarket
- DimProduct
- DimDate
- FactSales
Key transformation tasks:
- Used First row as headers
- Corrected datatypes
- Removed duplicates in FactSales using SQL + Power Query
- Created conditional columns (currency normalization)
= Table.AddColumn(#"Filtered Rows", "norm_amount",
each if [currency] = "USD" or [currency] ="USD#(cr)"
then [sales_amount] * 75 else [sales_amount], type number)Designed a Star Schema:
FactSales
β³ DimCustomer
β³ DimMarket
β³ DimProduct
β³ DimDate
Relationships were verified using primary keys and foreign keys.
The final dashboard answers:
- Total Revenue
- Total Transactions
- Avg Revenue per Market
- Top 5 & Bottom 5 Markets
- Market Contribution %
- High-selling products
- Low-performing segments
- Monthly revenue trends
- Seasonality patterns
- Repeat vs new customer purchases
- Customer segmentation
- Certain markets consistently underperform due to low volume
- Revenue peaks during Q3; dips in Q1
- USD transactions required normalization to avoid inflated insights
- Product Code P123 drives 30% of total revenue
- Sales dependency heavily linked to specific markets
- Building ETL pipelines using Power Query
- Creating currency normalization logic
- Modeling clean star schemas
- Using SQL joins for date-based analysis
- Developing impactful BI dashboards for business users
- Translating business problems into clear, visual insights
Follow this tutorial:
https://www.youtube.com/watch?v=WuBcTJnIuzo
SOURCE db_dump.sql;Navigate to:
Get Data β Text/CSV
View the complete Sales Dashboard.
The company lacked visibility into why revenue was falling and which markets/products were underperforming.
- Cleaned raw data using MySQL
- Built a star-schema model
- Applied Power Query transformations
- Created normalized KPIs
- Developed a dynamic Power BI dashboard
- 60% reduction in manual reporting time
- Identified low-performing markets
- Highlighted revenue-driving products
- Enabled leadership to make informed decisions
- MySQL
- Power BI
- Power Query
- DAX
- ETL concepts
Feel free to β the repo and connect with me on LinkedIn!
linkedin.com/in/amishadahal
