๐Ÿ“Š Sales Insights Dashboard โ€“ Power BI Case Study

1๏ธโƒฃ Problem Statement

A computer hardware manufacturing company was facing declining and inconsistent sales performance.

The sales team lacked:

  • Clear visibility into revenue trends
  • Market-level performance insights
  • Real-time performance tracking
  • Automated reporting

Manual data gathering was time-consuming and inefficient. To solve this, the company hired a Data Analytics Team to uncover hidden sales insights and build a centralized dashboard in Power BI.

2๏ธโƒฃ Project Objective

To design and implement an automated Power BI dashboard that:

  • Tracks total revenue
  • Tracks sales quantity
  • Provides revenue breakdown by market and product
  • Enables faster, data-driven decision-making
  • Reduces manual reporting time

3๏ธโƒฃ Stakeholders Involved

Sales Director, Marketing Team, Customer Service Team, Data & Analytics Team, IT Team

Team Roles:

  • Software Engineers โ€“ Falcons
  • Data Engineers โ€“ Data Miners
  • Data Analysts โ€“ Data Masters

4๏ธโƒฃ Success Criteria

  • The dashboard uncovers sales insights using the latest available data
  • The sales team improves decision-making
  • The company proves at least 10% cost savings
  • Analysts reduce manual data gathering by 20%

๐Ÿ”Ž Data Discovery & Understanding

Database: DEV_sales_insights โ€” Schema: sales

Key Tables:

  • Customers โ€” SELECT * FROM sales.customers;
  • Transactions โ€” SELECT * FROM sales.transactions;
  • Products โ€” SELECT * FROM sales.products;
  • Markets โ€” market_code, market_name, zone

Primary Analysis

Total Transactions: SELECT COUNT(*) FROM sales.transactions; โ€” Result: 150,283

Total Customers: SELECT COUNT(*) FROM sales.customers; โ€” Result: 38

๐Ÿ“… Year-Based Analysis (Examples)

SELECT sales.transactions.*, sales.date.* FROM sales.transactions INNER JOIN sales.date ON sales.transactions.order_date = sales.date.date WHERE sales.date.year = 2020;

Total Revenue in 2020 example:

SELECT SUM(sales.transactions.sales_amount) FROM sales.transactions INNER JOIN sales.date ON sales.transactions.order_date = sales.date.date WHERE sales.date.year = 2020;

๐Ÿงน Data Cleaning & ETL

Connecting Power BI to MySQL: Server: localhost โ€” Database: sales. Load tables and create relationships (market_code, order_date, product_code).

Common cleaning issues shown with example queries (negative sales, currency inconsistencies).

๐Ÿ“Š Dashboard Development (Power BI)

Measures (DAX) examples:

Revenue = SUM('sales transactions'[sales_amount]) Sales Qty = SUM('sales transactions'[sales_qty])

Visualizations include KPI cards, Revenue by Market, Top 5 Customers, Top 5 Products, Revenue Trend, Year & Month slicers, drill down by month.

๐ŸŽฏ Final Outcome

The final dashboard automates sales reporting, provides real-time insights, tracks revenue trends, identifies top-performing markets and products, and reduces manual reporting time.

๐Ÿš€ Business Impact

Enabled data-driven decision-making, improved sales strategy visibility, targeted cost optimization (10% savings goal), and saved 20% analyst time previously spent on manual data collection.