Back to Portfolio

πŸ“Š Complete Power BI Business Intelligence Project

Step-by-Step Documentation Guide for Live Course Presentation

πŸ“Œ Project Overview

Project Title: Premium Elite Sales Analytics Dashboard - Complete BI Implementation

This project demonstrates a complete Business Intelligence workflow using Power BI with a premium design theme, showing real-world data transformation, advanced DAX formulas, professional dashboard design, and interactive analytics.

Project Objectives

  • Data Cleansing: Validate and verify data integrity using Power Query
  • Data Modeling: Create dimensional models with measures and calculated columns
  • Advanced Analytics: Develop complex DAX formulas for KPIs and metrics
  • Visualization: Design interactive charts and dashboards
  • Interactivity: Implement filters and slicers for user exploration

Live Dashboard Interface

Sales Analytics Dashboard
View Live Dashboard Demo

πŸ“‚ Dataset Information & Download

πŸ“₯ Dataset Download:

Source: Excel BI Analytics - Sample Sales Datasets

File Name: 50000-Sales-Records.csv (from 100 to 5M+ variations available)

Records: 50,000+ Sales Transactions | Data Range: 2010 - 2017 | Regions: Global Coverage

Data Structure & Columns

Column Name Data Type Description Sample Values
Region Text Geographic regions globally Sub-Saharan Africa, Europe, Asia
Country Text Individual countries within regions Namibia, Iceland, Russia, Indonesia
Item Type Text Product categories Household, Baby Food, Meat, Cosmetics
Sales Channel Text Distribution method Online, Offline
Order Priority Text Priority level (Critical, High, Med, Low) C, H, M, L
Order Date Date Date of order placement 8/31/2015, 11/20/2010
Order ID Text Unique order identifier 897751939, 599480426
Ship Date Date Date of shipment 10/12/2015, 1/9/2011
Units Sold Number Quantity of units sold 3604, 8435, 4848
Unit Price Currency Price per unit 668.27, 255.28, 421.89
Unit Cost Currency Cost per unit 502.54, 159.42, 364.69
Total Revenue Currency Units Sold Γ— Unit Price 2,408,445.08, 2,153,286.80
Total Cost Currency Units Sold Γ— Unit Cost 1,811,154.16, 1,344,707.70
Total Profit Currency Total Revenue - Total Cost 597,290.92, 808,579.10

Data Dimensions

Total Records
50,000+
πŸ“Š
Time Period
2010-2017
πŸ“…
Sales Channels
2
πŸ’°
Item Categories
14+
🏷️

🎨 Design Theme & Color Palette

Premium Elite Power BI Theme

A sophisticated, professional theme with carefully selected navy blues, vibrant oranges, and accent greens for optimal visual hierarchy and data readability.

Theme Download

πŸ“₯ Download Premium Elite Theme

Theme File: PowerBI_Premium_Elite_Theme.json

GitHub Repository: Power BI Workshop - Premium Elite Theme

How to Apply:

  1. Download the PowerBI_Premium_Elite_Theme.json file
  2. Open Power BI Desktop β†’ View β†’ Themes β†’ Browse for themes
  3. Select the downloaded JSON file
  4. Theme applies automatically to all visuals

Color Palette (12-Color Scheme)

Color Strategy: The theme uses a distributed color approach with navy blue as primary, orange for emphasis, and green for positive indicators. Colors are distributed strategically for visual balance and accessibility.
Position Color Code Color Name Purpose
1 #0F3B66 Deep Navy Primary background, major elements
2 #FF6B35 Orange Distributed accent, category 1
3 #2A5A8C Navy Blue Secondary blue, visual hierarchy
4 #E85A2A Orange Distributed accent, category 2
5 #3A6BA0 Navy Blue Tertiary blue, data visualization
6 #FF7D4D Orange Distributed accent, category 3
7 #4A7CB4 Navy Blue Quaternary blue, subtle elements
8 #2ECC71 Green Distributed accent, positive/growth
9 #5A8DC8 Navy Blue Light blue, hover states
10 #27AE60 Green Distributed accent, success indicators
11 #6B9EDC Navy Blue Light blue, secondary data series
12 #1E4D7B Navy Blue Dark navy, borders and lines

Dashboard Design Specifications

Dashboard Layout Design:
  • Page Background Color: #F7F9FC (Almost White - neutral, clean backdrop)
  • Chart Rectangle Backgrounds: #E8F0F8 (Light Blue - subtle visual grouping)
  • Rectangle Borders: 1px solid #0B2C4D (Dark Navy - clean definition)
  • Rounded Corners: 8px (soft, modern appearance)
  • Visual Hierarchy: Rectangles behind charts create distinct zones
πŸ“ Rectangle Implementation Guide

Step 1: Insert Rectangles

  1. Insert β†’ Shapes β†’ Rectangle (for each visual grouping)
  2. Position behind KPI cards, charts, and table sections
  3. Size to encompass related visualizations

Step 2: Format Rectangles

  1. Fill: Solid color β†’ #E8F0F8 (Light Blue)
  2. Border: Solid line, 1px, #0B2C4D (Dark Navy)
  3. Shadow: None (keep clean)
  4. Transparency: 0% (full opacity)

Step 3: Arrange Layers

  1. Right-click rectangle β†’ Send backward (behind charts)
  2. Ensure all visuals appear on top of rectangles
  3. Create visual zones: KPI zone, chart zone, table zone

🧹 Data Preparation & Cleansing

Step 1: Download & Import CSV to Power BI

Action: Download and import the Sales Records CSV file into Power BI Desktop

Import Steps:

  • Open Power BI Desktop β†’ Get Data β†’ Text/CSV
  • Navigate to and select the CSV file
  • Power BI automatically detects columns and data types
  • Click Load to import data into the Data Model
βœ“ CSV file successfully loaded with all records
Step 2: Data Quality Validation (Power Query)

Action: Open Power Query (Transform Data) to verify data integrity

Data Quality Checks:

  • Column Profile View: View column quality statistics
    • Go to Home β†’ Data Profiling β†’ Column Quality
    • Displays: Valid %, Error %, Empty % for each column
    • All columns show 100% Valid data
    • No null values or data anomalies detected
  • Distribution Analysis: Examine data distribution
    • Review unique values in categorical columns
    • Verify numeric ranges are reasonable
    • Check date ranges fall within expected timeline
  • Filtering & Sorting: Test data integrity
    • Apply filters on each column to check data consistency
    • Sort columns to identify outliers
    • Verify no anomalies or unexpected values exist
βœ“ Data Validation Result: 100% Clean - No Issues Found
Step 3: Create Dimension Table (Key Measure)

Action: Create a dedicated dimension table for measures and aggregations

Process:

  • Duplicate the main table '50000 Sales Records'
  • Rename original table appropriately (e.g., 'Sales Data', 'Sales Records')
  • Remove duplicate rows based on Region column
  • Rename the table to 'Key Measure'
  • This table will host all DAX measures and calculations
Table Structure:

Key Measure table contains unique regions and serves as the measure host for all KPI calculations and aggregations used throughout the dashboard.

Data Preparation Checklist:
  • βœ“ Step 1: CSV file successfully imported from Excel BI Analytics source
  • βœ“ Step 2: All columns validated at 100% quality (no nulls)
  • βœ“ Step 3: Data consistency verified through Power Query
  • βœ“ Step 4: Dimension table created for measure aggregation
  • βœ“ Step 5: Data model optimized and ready for measure creation
  • βœ“ Step 6: Ready to proceed to DAX measure development

πŸ“ Measures & DAX Formulas

Important: All formulas are created in the 'Key Measure' table using DAX (Data Analysis Expressions). These are calculated measures that aggregate data dynamically based on filter context. Updated dataset references use '50000 Sales Records' table.

Measure Development Steps

1 Create Measure

Right-click 'Key Measure' table β†’ New Measure

Enter the formula code provided below

2 Format Measure

Select measure β†’ Measure Tools β†’ Format dropdown

Choose: Whole Number, Decimal, Currency, or Percentage as appropriate

3 Test Measure

Add measure to a card visualization to verify calculation

Test with different filters to ensure context-awareness

Core Financial Measures

Current Month (CM) Measures

πŸ’° CM Revenue (Current Month)
CM Revenue = CALCULATE( [Total Revenue], VALUES('50000 Sales Records'[Order Date].[Month]) )

Purpose: Isolates total revenue for the current month context

Formula Logic: CALCULATE modifies filter context to evaluate Total Revenue at the month level

Use Case: Basis for month-over-month revenue comparisons

Data Type: Date dimension must have Month hierarchy enabled

πŸ“Š CM Costs (Current Month)
CM Costs = CALCULATE( [Total Costs], VALUES('50000 Sales Records'[Order Date].[Month]) )

Purpose: Calculates total costs for the current month

Formula Logic: CALCULATE filters Total Costs to current month only

Use Case: Month-specific cost analysis and tracking

πŸ“ˆ CM Profit (Current Month)
CM Profit = CALCULATE( [Total Profit], VALUES('50000 Sales Records'[Order Date].[Month]) )

Purpose: Isolates profit for the current month context

Formula Logic: CALCULATE modifies filter context to evaluate Total Profit at the month level

Use Case: Basis for month-over-month profit comparisons

% CM Profit Margin %
CM Profit Margin % = CALCULATE( [Profit Margin %], VALUES('50000 Sales Records'[Order Date].[Month]) )

Purpose: Shows profitability ratio for the current month

Formula Logic: Filters Profit Margin % calculation to current month only

Use Case: Track margin trends across months

Total Financial Measures

πŸ’° Total Revenue
Total Revenue = SUMX( '50000 Sales Records', '50000 Sales Records'[Units Sold] * '50000 Sales Records'[Unit Price] )

Purpose: Calculates total revenue generated across all orders

Formula Logic: SUMX multiplies Units Sold by Unit Price for each row, then sums all products

Use Case: Primary KPI showing total income from sales

Recalculates On: Any filter changes (Region, Date, Channel, Item Type)

πŸ“Š Total Costs
Total Costs = SUMX( '50000 Sales Records', '50000 Sales Records'[Units Sold] * '50000 Sales Records'[Unit Cost] )

Purpose: Calculates total cost of goods sold (COGS)

Formula Logic: SUMX multiplies Units Sold by Unit Cost for each row, then sums all products

Use Case: KPI showing total operational costs

Recalculates On: Any filter changes in the data model

πŸ“ˆ Total Profit
Total Profit = SUMX( '50000 Sales Records', [Total Revenue] - [Total Costs] )

Purpose: Calculates net profit (Revenue minus Costs)

Formula Logic: Subtracts Total Costs from Total Revenue

Use Case: Primary profitability KPI for business performance

Important: This formula references other measures, enabling complex calculations

πŸ“Š Profit Margin %
Profit Margin % = DIVIDE( [Total Profit], [Total Revenue], 0 )

Purpose: Calculates profit margin as percentage of revenue

Formula Logic: Divides Total Profit by Total Revenue with 0 as error handler

Use Case: Shows profitability ratio and efficiency metrics

DIVIDE Function: Third parameter (0) prevents errors when denominator is zero

Format: Display as percentage in card visualization

Previous Month (PM) Measures

πŸ’° PM Revenue (Previous Month)
PM Revenue = CALCULATE([CM Revenue], DATEADD('50000 Sales Records'[Order Date].[Date], -1, MONTH))

Purpose: Gets revenue from one month prior for comparison

Formula Logic: DATEADD shifts the date context back one month

Use Case: Enables month-over-month growth calculations

πŸ“Š PM Costs (Previous Month)
PM Costs = CALCULATE([CM Costs], DATEADD('50000 Sales Records'[Order Date].[Date], -1, MONTH))

Purpose: Gets costs from one month prior

Formula Logic: DATEADD shifts date context back one month from CM Costs

Use Case: Cost comparison and trend analysis

πŸ“ˆ PM Profit (Previous Month)
PM Profit = CALCULATE([CM Profit], DATEADD('50000 Sales Records'[Order Date].[Date], -1, MONTH))

Purpose: Gets profit from one month prior for comparison

Formula Logic: DATEADD shifts the date context back one month

Use Case: Enables month-over-month growth calculations

% PM Profit Margin % (Previous Month)
PM Profit Margin % = CALCULATE([CM Profit Margin %], DATEADD('50000 Sales Records'[Order Date].[Date], -1, MONTH))

Purpose: Gets profit margin from one month prior

Formula Logic: Filters CM Profit Margin % to previous month

Use Case: Margin trend analysis and comparison

Advanced Time-Based Measures

Month-over-Month (MoM) Growth Measures

πŸ“Š MoM Growth & Diff Revenue
MoM Growth & Diff Revenue = VAR MonthDiff = [CM Revenue] - [PM Revenue] VAR MoM = DIVIDE ( [CM Revenue] - [PM Revenue], [PM Revenue] ) VAR Sign = IF ( MonthDiff > 0, "+", "" ) VAR SignTrend = IF ( MonthDiff > 0, "β–²", "β–Ό" ) RETURN IF ( ISBLANK ( [PM Revenue] ) || [PM Revenue] = 0, FORMAT ( MonthDiff / 1000, "0.0k" ) & " vs LM", SignTrend & " " & Sign & FORMAT ( MoM, "0.00%" ) & " | " & Sign & FORMAT ( MonthDiff / 1000, "0.0k" ) & " vs LM" )

Purpose: Shows month-over-month revenue growth with visual indicators

Format Output: "β–² +12.50% | +150.3k vs LM" (vs LM = vs Last Month)

Components: Percentage change, absolute difference, trend arrows

πŸ“Š MoM Growth & Diff Costs
MoM Growth & Diff Costs = VAR MonthDiff = [CM Costs] - [PM Costs] VAR MoM = DIVIDE ( [CM Costs] - [PM Costs], [PM Costs] ) VAR Sign = IF ( MonthDiff > 0, "+", "" ) VAR SignTrend = IF ( MonthDiff > 0, "β–²", "β–Ό" ) RETURN IF ( ISBLANK ( [PM Costs] ) || [PM Costs] = 0, FORMAT ( MonthDiff / 1000, "0.0k" ) & " vs LM", SignTrend & " " & Sign & FORMAT ( MoM, "0.00%" ) & " | " & Sign & FORMAT ( MonthDiff / 1000, "0.0k" ) & " vs LM" )

Purpose: Shows month-over-month cost growth with visual indicators

Format Output: "β–Ό -8.20% | -85.2k vs LM" (negative is good for costs)

Key Insight: Tracks cost management and operational efficiency trends

πŸ“ˆ MoM Growth & Diff Profit
MoM Growth & Diff Profit = VAR MonthDiff = [CM Profit] - [PM Profit] VAR MoM = DIVIDE ( [CM Profit] - [PM Profit], [PM Profit] ) VAR Sign = IF ( MonthDiff > 0, "+", "" ) VAR SignTrend = IF ( MonthDiff > 0, "β–²", "β–Ό" ) RETURN IF ( ISBLANK ( [PM Profit] ) || [PM Profit] = 0, FORMAT ( MonthDiff / 1000, "0.0k" ) & " vs LM", SignTrend & " " & Sign & FORMAT ( MoM, "0.00%" ) & " | " & Sign & FORMAT ( MonthDiff / 1000, "0.0k" ) & " vs LM" )

Purpose: Complex measure showing month-over-month profit growth with visual indicators

Components:

  • MonthDiff: Absolute profit difference from previous month
  • MoM: Percentage change calculation
  • Sign/SignTrend: Visual indicators (β–²β–Ό and +/-)

Output Format: "β–² +15.42% | +250.5k vs LM"

Use Case: Primary performance indicator for month-over-month profitability trends

% MoM Growth & Diff Profit Margin %
MoM Growth & Diff Profit Margin % = VAR MonthDiff = [CM Profit Margin %] - [PM Profit Margin %] VAR Sign = IF ( MonthDiff > 0, "+", "" ) RETURN IF( ISBLANK ( [PM Profit Margin %] ) || [PM Profit Margin %] = 0, FORMAT ( MonthDiff, "0.0%" ) & " vs LM", Sign & FORMAT ( MonthDiff, "0.0%" ) & " vs LM" )

Purpose: Shows month-over-month change in profit margin percentage

Format Output: "+0.5% vs LM" (percentage point change)

Key Insight: Tracks margin efficiency trends and pricing power

πŸ“Š Average Profit (Constant Line for Column Chart)
Average Profit = AVERAGEX( ALLSELECTED('50000 Sales Records'[Order Date]), [Total Revenue] - [Total Costs] )

Purpose: Calculates the average profit across all selected dates for use as a constant reference line on column charts

Formula Logic: AVERAGEX iterates through all dates in the current filter context (ALLSELECTED), calculating profit for each, then averages them

Chart Implementation: Add this measure as a secondary Y-axis on the Stacked Column Chart showing Profit by Day

Visual Effect: Creates a horizontal benchmark line showing average profit level - users can quickly see which days exceed or fall below average performance

Use Case: Helps identify peak profit days and underperforming days at a glance. Provides immediate context for daily performance analysis

Complete Measures Summary Table:
Measure Type Purpose
Core Financial Measures
Total Revenue Financial Total sales income across all filters
Total Costs Financial Total operational costs
Total Profit Financial Net profitability (Revenue - Costs)
Profit Margin % Ratio Profitability percentage of revenue
Current Month (CM) Measures
CM Revenue Time-Based Current month revenue only
CM Costs Time-Based Current month costs only
CM Profit Time-Based Current month profit
CM Profit Margin % Time-Based Current month margin percentage
Previous Month (PM) Measures
PM Revenue Time-Based Previous month revenue
PM Costs Time-Based Previous month costs
PM Profit Time-Based Previous month profit
PM Profit Margin % Time-Based Previous month margin
Month-over-Month (MoM) Growth Measures
MoM Growth & Diff Revenue Growth Revenue % change + absolute difference vs LM
MoM Growth & Diff Costs Growth Cost % change + absolute difference vs LM
MoM Growth & Diff Profit Growth Profit % change + absolute difference vs LM
MoM Growth & Diff Profit Margin % Growth Margin percentage point change vs LM

πŸ“Š Visualization Types & Design Patterns

Dashboard Architecture: The dashboard uses multiple visualization types, each chosen for specific analytical purposes. Together they create a comprehensive view of sales performance.

KPI Cards

πŸ’° Total Revenue Card

Data: [Total Revenue] Measure

Format: Millions with currency symbol ($)

Visual Enhancement: Left accent bar (teal color)

Purpose: At-a-glance view of total sales income; immediately shows business scale

Interactivity: Updates dynamically based on selected filters

πŸ“Š Total Costs Card

Data: [Total Costs] Measure

Format: Millions with currency symbol ($)

Visual Enhancement: Left accent bar (orange color)

Purpose: Shows operational costs; used for comparing with revenue

Interactivity: Responds to all dashboard filters

πŸ“ˆ Total Profit Card

Data: [Total Profit] Measure

Format: Millions with currency symbol ($)

Visual Enhancement: Left accent bar (green color)

Purpose: Key profitability indicator; shows bottom-line performance

Interactivity: Central KPI that drives analysis

% Profit Margin % Card

Data: [Profit Margin %] Measure

Format: Percentage (0-100%)

Visual Enhancement: Left accent bar (blue color)

Purpose: Shows efficiency and profitability ratio

Interactivity: Normalized metric for comparison

Distribution & Composition Charts

🍩 Donut Chart - Revenue by Sales Channel

Legend: Sales Channel (Online, Offline)

Values: Total Revenue by Channel

Purpose: Shows revenue distribution between sales channels

Insights: Compares online vs offline sales performance

Interactivity: Click slices to drill or cross-filter

Why Donut: Excellent for showing part-to-whole relationships with 2-3 categories

Comparative & Trend Charts

πŸ“Š Stacked Bar Chart - Profit by Region (Enhanced)

Axis (Y): Region

Values: Total Profit (Stacked)

Drill Target: Country level

Tooltips: Enhanced with Profit Margin (%) and MoM Growth & Diff Profit

Purpose: Compare regional profitability with margin and growth analysis

Interactive Features: Drill to countries + hover for margin & MoM comparison

Categorical & Hierarchical Charts

🌳 Treemap - Profit by Item Type (Enhanced)

Groups: Item Type (14+ product categories)

Values: Total Profit

Color: Profit Margin % (gradient visualization)

Tooltips: Enhanced with Profit Margin (%) and MoM Growth & Diff Profit

Purpose: Show profit distribution across product categories with margin and trend analysis

Insights: Rectangle size = profit volume; Color = profitability; Tooltip = margin + growth

Interactive Value: Hover to see previous month comparison and MoM growth trend

πŸ“Š Stacked Column Chart - Units Sold by Item Type (Enhanced)

Axis (X): Item Type

Values: Units Sold (Sum)

Tooltips: Enhanced with MoM Growth & Diff Sales (Units Sold basis)

Purpose: Show sales volume by product category with growth metrics

Insights: Bar height = volume; Tooltip = volume trend comparison

Complementary Role: Combines with Treemap to show volume vs. profitability; tooltip shows growth

Visualization Selection Rationale:
  • KPI Cards: Immediate performance overview
  • Donut Chart: Part-to-whole for binary data (Online/Offline)
  • Stacked Bar: Hierarchical comparison with drill capability
  • Treemap: Multi-dimensional analysis for many categories
  • Stacked Column: Volume trends across categories

🎨 Dashboard Build & Assembly

Phase 1: KPI Cards Creation

Objective: Create four key metric cards for executive summary

Steps:

  1. Insert Card visualization for Total Revenue
    • Drag [Total Revenue] measure to Fields
    • Format as millions (M) in Measure Tools
    • Apply currency formatting ($)
    • Add left accent bar (teal) for visual interest
  2. Duplicate and modify for Total Costs
    • Copy the Revenue card
    • Replace measure with [Total Costs]
    • Change accent color to orange
  3. Create Total Profit card
    • Insert new Card visualization
    • Add [Total Profit] measure
    • Format as millions with currency
    • Green accent bar for profitability indicator
  4. Create Profit Margin % card
    • Insert Card visualization
    • Add [Profit Margin %] measure
    • Format as percentage
    • Blue accent bar

Dashboard Progress: 25%

Phase 2: Channel Distribution Chart

Objective: Visualize revenue split between sales channels

Steps:

  1. Insert Donut Chart visualization
  2. Configure chart data
    • Legend (Details): Sales Channel
    • Values: Total Revenue
  3. Formatting options
    • Add data labels showing percentage
    • Customize colors to match color scheme
    • Add title "Revenue by Sales Channel"
    • Enable tooltips for detail information

Dashboard Progress: 45%

Phase 3: Regional Profit Analysis

Objective: Show regional performance with country-level drill

Steps:

  1. Insert Stacked Bar Chart visualization
  2. Configure hierarchy
    • Axis (Y): Region
    • Values: Total Profit (stacked)
  3. Enable drill functionality
    • Right-click chart β†’ Drill Settings
    • Add Country as drill-down level
    • Users can click region to expand country details
  4. Formatting
    • Format values as thousands (K)
    • Sort regions by profit descending
    • Add title "Profit by Region (Click to Drill)"

Dashboard Progress: 60%

Phase 4: Product Profitability Treemap

Objective: Display profit distribution across product categories

Steps:

  1. Insert Treemap visualization
  2. Configure data fields
    • Group: Item Type
    • Values: Total Profit
    • Color Saturation: Profit Margin %
  3. Visual configuration
    • Enable data labels (show Item Type names)
    • Apply color gradient from red (low margin) to green (high margin)
    • Add title "Profit by Item Type (Color = Margin %)"
  4. Tooltip enhancement
    • Include Item Type, Profit, Margin % in tooltip

Dashboard Progress: 75%

Phase 5: Volume Analysis Chart

Objective: Show unit sales volume by product type

Steps:

  1. Insert Stacked Column Chart visualization
  2. Configure data
    • Axis (X): Item Type
    • Values: Units Sold (Sum)
  3. Formatting
    • Format y-axis as thousands (K) for readability
    • Sort categories by units sold descending
    • Add title "Units Sold by Item Type"
    • Enable data labels on top of bars
  4. Contextual note
    • This chart shows volume; compare with Treemap for profitability insights
    • High volume β‰  High profit (price and margin differences)

Dashboard Progress: 85%

Layout Recommendation:
  • Top Row: Four KPI cards (Revenue, Costs, Profit, Margin %)
  • Middle Row: Donut Chart (Revenue by Channel) + Stacked Bar (Profit by Region)
  • Bottom Row: Treemap (Profit by Item Type) + Stacked Column (Units Sold)
  • Filters: Positioned above or on left side for easy access

πŸ” Filters & Interactivity

Slicer Strategy: Implement dual-level filtering (Year β†’ Month) to allow users to drill down from high-level trends to specific month analysis.

Year Filter (Dropdown Slicer)

πŸ“… Year Slicer Configuration

Type: Dropdown Slicer

Field: Order Date (Year hierarchy)

Values: 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017

Default Selection: All years (unfiltered view)

Purpose: Allows users to analyze annual trends and select specific years for comparison

Implementation Steps:

  1. Insert Slicer visualization
  2. Drag Order Date field to Slicer
  3. Change slicer style to Dropdown
    • Right-click slicer β†’ Slicer Settings
    • Select "Dropdown" option
  4. Expand to Year level
    • Click arrow next to "Order Date" β†’ Select "Year"
  5. Positioning: Place at top of dashboard for easy access
βœ“ Year filter ready for dashboard interaction

Month Filter (Tile Slicer)

πŸ“… Month Slicer Configuration

Type: Tile Slicer (List format)

Field: Order Date (Month hierarchy)

Values: January through December (12 tiles)

Default Selection: All months (unfiltered)

Purpose: Enables granular monthly analysis; works in conjunction with Year filter

Implementation Steps:

  1. Insert second Slicer visualization
  2. Drag Order Date field to this Slicer
  3. Set to Month level
    • Click arrow β†’ Select "Month"
  4. Change style to Tile
    • Right-click slicer β†’ Slicer Settings
    • Select "Tile" layout option
    • Adjust to show all 12 months horizontally
  5. Positioning: Place below Year filter
βœ“ Month filter ready for dashboard interaction

Filter Interaction Strategy

🎯 Filter Hierarchy
Step 1: Select Year

User clicks Year dropdown and selects a specific year (e.g., 2015)

  • All visualizations update to show 2015 data
  • Month slicer automatically shows only available months in that year
  • KPI cards reflect year-specific values
Step 2: Refine by Month

User clicks on specific month tile (e.g., March)

  • Dashboard filters down further to year + month combination
  • All charts now show March 2015 data only
  • Regional drill-down shows that month's performance
Step 3: Additional Drill

User clicks region in Stacked Bar chart to drill to countries

  • Country-level details appear while maintaining Year + Month filters
  • Multiple filter dimensions work in parallel

Advanced Filter Features

Filter Configuration Best Practices:
  • Multi-select: Enable Ctrl+Click for multiple month selection (optional)
  • Sync filters: All visualizations automatically respond to filter changes
  • Clear filters: Add "Clear All" option for quick dashboard reset
  • Default state: Keep "All" selected by default for maximum data view
  • Mobile optimization: Ensure slicers are touch-friendly for tablet users

User Interaction Workflow

User Action Filter Applied Dashboard Response
Select Year = 2015 Order Date [Year] = 2015 All visuals show 2015 data; KPIs recalculate
Select Month = March Order Date [Year] = 2015 + [Month] = March Drill to March 2015; Cards, charts update
Click Region = "Africa" Year + Month + Region = "Africa" Bar chart drills to African countries; maintain other filters
Clear Year filter Remove Year = 2015 Return to all years; March still filtered
Filter Implementation Checklist:
  • βœ“ Year dropdown slicer created and positioned
  • βœ“ Month tile slicer created and positioned
  • βœ“ Both slicers connected to Order Date field
  • βœ“ Regional drill-down enabled on Bar chart
  • βœ“ All visualizations respond to filter changes
  • βœ“ Dashboard provides clear visual feedback of active filters
  • βœ“ Users can easily reset to see full dataset

πŸ“ˆ Sales Insights by Month (2017 Analysis)

Analysis Focus: Month-over-Month Performance Tracking for 2017

This section provides granular monthly insights showing seasonal patterns, performance drivers, and business trends throughout 2017. Each month is analyzed independently to show how filtering by month reveals specific business dynamics. All data extracted directly from Power BI dashboard filters and visualizations.

πŸ“š Understanding Key Terminology Used in This Analysis:

What does "pp" mean in Margin Change?

"pp" stands for percentage points - it's different from regular percentages.

Simple Example: If margin was 30% in January and 30.20% in February, the change is +0.20 pp (just the difference: 30.20 - 30 = 0.20)

Why this matters: When comparing percentages, we use "pp" to show the absolute difference between them. So +0.20 pp means it went up by exactly 0.20 percentage points.

What does "H1" and "H2" mean?

"H1" = first half of the year (January through June)

"H2" = second half of the year (July through December)

Example: "H1 2017 Total: $3,260.6M Revenue" means we're adding up revenue from all 6 months (Jan + Feb + Mar + Apr + May + Jun = H1)

Year 2017 Performance Overview

Total Annual Revenue
$4.91B
πŸ’°
Total Annual Profit
$1.47B
πŸ“Š
Average Margin
29.91%
%
Total Units Sold
18.7M
πŸ“¦

Monthly Performance Breakdown

Detailed monthly analysis extracted from Power BI dashboard showing Month-over-Month comparisons and key regional/product drivers

Q1 2017 (January - March)

1 January 2017

πŸ“Š Performance: Revenue $700.6M | Profit $210.3M | Margin 30.01%

πŸ“ˆ Details: 2,706,289 units across 535 transactions

πŸ† Top Drivers: Sub-Saharan Africa (Region) | Offline (Channel) | Cosmetics & Cereal (Products)

πŸ’‘ Key Insight: Strong Q1 start with solid $700.6M revenue. January set baseline for 2017 performance with consistent 30% margin. Sub-Saharan Africa dominated regional performance with highest profit contribution.

2 February 2017

πŸ“Š Performance: Revenue $694.5M | Profit $209.8M | Margin 30.21%

πŸ“ˆ Details: 2,488,645 units across 506 transactions | -0.88% Revenue MoM

πŸ† Top Drivers: Europe (Region) | Online (Channel) | Household (Product)

πŸ’‘ Key Insight: Slight seasonal dip in revenue (-0.88%) but margin improved to 30.21% (+0.20pp). Strong operational efficiency despite lower volume. Europe's online channel showing strong performance.

3 March 2017

πŸ“Š Performance: Revenue $724.3M | Profit $213.3M | Margin 29.44%

πŸ“ˆ Details: 2,807,154 units across 563 transactions | +4.30% Revenue MoM, +1.66% Profit MoM

πŸ† Top Drivers: Sub-Saharan Africa (Region) | Offline (Channel) | Clothes & Cereal (Products)

πŸ’‘ Key Insight: Q1 closed strong with growth rebound. +4.3% revenue and +1.66% profit recovery. Highest unit volume in Q1 (2.8M). Product mix shift towards premium categories (Clothes 67% margin).

Q1 Total: $2,119.4M Revenue | $633.3M Profit | 29.89% Avg Margin

Q2 2017 (April - June)

4 April 2017

πŸ“Š Performance: Revenue $664.7M | Profit $203.1M | Margin 30.56%

πŸ“‰ Details: 2,649,917 units across 545 transactions | -8.23% Revenue MoM, -4.76% Profit MoM

πŸ† Top Drivers: Europe (Region) | Offline (Channel) | Household (Product)

πŸ’‘ Key Insight: Seasonal normalization in April with expected post-Q1 dip. However, margin improved significantly to 30.56% (+1.12pp), showing strong cost management. Spring buying patterns stabilizing.

5 May 2017

πŸ“Š Performance: Revenue $790.1M | Profit $231.1M | Margin 29.25%

πŸ“ˆ Details: 2,971,572 units across 610 transactions | +18.86% Revenue MoM, +13.78% Profit MoM

πŸ† Top Drivers: Sub-Saharan Africa (Region) | Online (Channel) | Cereal (Product)

πŸ’‘ Key Insight: Strongest month of first half with +18.86% revenue surge. May's powerful recovery signals mid-year momentum building. Record transaction volume (610). Online channel acceleration evident in African markets.

6 June 2017

πŸ“Š Performance: Revenue $686.3M | Profit $208.4M | Margin 30.37%

πŸ“ˆ Details: 2,702,702 units across 536 transactions | -13.13% Revenue MoM, -9.81% Profit MoM

πŸ† Top Drivers: Australia & Oceania (Region) | Offline (Channel) | Cosmetics (Product)

πŸ’‘ Key Insight: Post-May normalization with expected pullback. Margin recovery to 30.37% (+1.12pp) shows operational discipline. Q2 closed with solid $2.1B revenue base despite June dip. Premium products (Cosmetics) maintaining margin strength.

Q2 Total: $2,141.2M Revenue | $642.6M Profit | 30.06% Avg Margin - May Drove Strong Recovery

H2 2017 (July Onwards) - Summer Momentum

7 July 2017

πŸ“Š Performance: Revenue $649.3M | Profit $192.6M | Margin 29.67%

πŸ“ˆ Details: 2,404,223 units across 480 transactions | -5.40% Revenue MoM, -7.58% Profit MoM

πŸ† Top Drivers: Sub-Saharan Africa (Region) | Online (Channel) | Cosmetics (Product)

πŸ’‘ Key Insight: H2 transition month with expected June-July normalization. Despite revenue dip, maintained solid 29.67% margin. Lower transaction volume (480) suggests selective high-value orders. Cosmetics margin strength at 39.77% driving profitability.

πŸ’‘ 2017 Performance Summary

Key Observations from Full H1 2017 Data:
  • May Peak: May 2017 delivered the strongest performance with $790.1M revenue (+18.86% MoM) and record 610 transactions
  • Margin Consistency: Despite varying revenue, profit margins maintained 29-30% range throughout H1, showing strong operational control
  • Regional Leadership: Sub-Saharan Africa consistently led with $1.35B annual revenue (29.34% margin) and 5M+ units
  • Channel Performance: Offline channel generated $2.61B (49% of total) vs Online $2.30B, both with comparable margins (~30%)
  • Product Mix: Premium categories (Clothes 67.2%, Cereal 43.1%, Cosmetics 39.8%) drove high margins, while Meat (13.6%) and Office Supplies (19.4%) showed lower profitability
  • Volume Leadership: Highest unit volume in March (2.8M) and May (3.0M) coinciding with revenue peaks

H1 2017 Total: $3,260.6M Revenue | $975.9M Profit | 29.94% Avg Margin

πŸ“Š Key Findings - Simple Summary

1 May was the strongest month - sales jumped nearly 19%
May 2017 generated $790.1M revenue, up 18.86% from April. This shows customers buy much more during May - possibly due to seasonal shopping patterns or promotions.
2 Profit margins stayed consistent between 29-31%
Even when monthly revenue fluctuated, profit margins remained stable. This means the business model is reliable - when we sell more, we keep a similar profit percentage.
3 Some products are much more profitable than others
Clothes earn 67% profit margin (excellent), while Meat earns only 14% (poor). This tells us we should focus on selling high-profit products like Clothes and Cosmetics.
4 Online and Offline sales channels are equally important
Offline generated $2.61B (49% of revenue) and Online generated $2.30B (47% of revenue). Both channels are strong and profitable - we need both strategies.
5 Africa and Europe are the profit powerhouses
Sub-Saharan Africa ($397M profit) and Europe ($376M profit) combined generate 65% of annual profit. These two regions are critical to business success.

Month-over-Month Growth Analysis (2017 H1)

Period Revenue Change Profit Change Margin Change Assessment
Jan β†’ Feb -0.88% -0.23% +0.20pp Minimal dip with margin improvement
Feb β†’ Mar +4.30% +1.66% -0.77pp Growth with product mix shift
Mar β†’ Apr -8.23% -4.76% +1.12pp April dip offset by margin expansion
Apr β†’ May +18.86% +13.78% -1.31pp Strong recovery - May peak driven by volume
May β†’ Jun -13.13% -9.81% +1.12pp Post-May normalization with margin recovery
Jun β†’ Jul -5.40% -7.58% -0.70pp H2 transition with continued adjustment

πŸ’‘ Actionable Recommendations - Simple Summary

1 Stock up products in April to capture May's peak demand
Since May consistently shows high sales (+18.86%), increase inventory purchases and stock levels in April. Make sure warehouses are fully stocked before the May surge arrives so you don't run out of products.
2 Focus marketing budgets on profitable products
Spend more advertising money on Clothes (67% profit), Cereal (43% profit), and Cosmetics (40% profit). Spend less on Meat (14% profit). This maximizes profit from the same marketing budget.
3 Give equal attention to both Online and Offline channels
Don't favor one channel over the other. Invest equally in store operations and website/e-commerce platforms. Both generate similar revenue and profit (around 30% margin each).
4 Expand and invest more in African and European markets
These regions generate 65% of all company profit. Hire more salespeople, open new warehouses, and run more marketing campaigns in Africa and Europe to grow profit further.
5 Create promotions to boost April's lower sales
April naturally has lower sales (-8.23% from March). Run discount promotions, introduce new products, or bundle offers in April to increase sales and smooth out the seasonal dip.
6 Maintain profit margins around 30% target
Current 29.91% average is good. Monitor margin monthly - if it drops below 29%, investigate why and fix costs. If it climbs above 31%, consider if pricing is too high.

βœ… Project Completion Summary

Dashboard Components Overview

A complete, production-ready Business Intelligence dashboard with multi-dimensional analysis capabilities

Implementation Checklist

Project Completion: 100%

Component Status Details
Data Import βœ“ Complete 50,000 records from CSV file loaded
Data Validation βœ“ Complete 100% data quality verified; no nulls or anomalies
Data Modeling βœ“ Complete Key Measure dimension table created with unique regions
DAX Measures βœ“ Complete 8 measures created (Revenue, Costs, Profit, Margin %, MoM Growth, etc.)
KPI Cards βœ“ Complete 4 cards: Total Revenue, Total Costs, Total Profit, Profit Margin %
Donut Chart βœ“ Complete Revenue distribution by Sales Channel (Online/Offline)
Stacked Bar Chart βœ“ Complete Profit by Region with drill-down to Country level
Treemap βœ“ Complete Profit by Item Type with Margin % color coding
Stacked Column βœ“ Complete Units Sold by Item Type for volume analysis
Year Filter βœ“ Complete Dropdown slicer for selecting 2010-2017 timeframe
Month Filter βœ“ Complete Tile slicer for month-level granularity
Dashboard Layout βœ“ Complete Professional multi-row layout with organized visualizations

Key Achievements

Data Records Analyzed
50,000
πŸ“Š
Measures Created
8
πŸ“
Visualizations
6
πŸ“ˆ
Interactive Filters
2+
πŸ”

Skills Demonstrated

  • Data Preparation: CSV import, quality validation, data cleansing
  • Power Query: Data transformation, duplicate removal, table management
  • DAX Expertise: Advanced formulas including SUMX, CALCULATE, AVERAGEX, DATEADD, DIVIDE
  • Visualization Design: Multiple chart types for different analytical purposes
  • Dashboard Architecture: KPI layout, interactive elements, user experience design
  • Measure Development: Financial metrics, time-based analysis, growth calculations
  • Interactivity: Slicers, drill-downs, cross-filtering
  • Business Intelligence: End-to-end BI pipeline from data to insight

Learning Outcomes for Students

What Students Will Learn:
  • How to import and validate real-world datasets
  • Best practices for data modeling in Power BI
  • Writing complex DAX formulas for business metrics
  • Choosing appropriate visualizations for different data types
  • Designing professional, interactive dashboards
  • Implementing filters for exploratory analysis
  • Creating reusable measurement frameworks
  • Translating business requirements into technical implementations

Next Steps & Enhancement Ideas

Possible Extensions:
  • Add forecasting models using Time Series analysis
  • Create RLS (Row-Level Security) for regional managers
  • Implement drill-through actions for detailed transaction analysis
  • Add sentiment analysis on customer feedback
  • Create mobile-optimized dashboard layouts
  • Integrate with real-time data sources (APIs)
  • Develop performance indicators with benchmarking
  • Create AI-powered anomaly detection

Documentation for Your Students

How to Use This Documentation:

This guide provides step-by-step instructions for recreating the entire project. Students can:

  1. Follow sections sequentially from Data Preparation through Filters
  2. Reference specific formulas when implementing measures
  3. Understand the reasoning behind visualization choices
  4. Learn dashboard layout best practices
  5. Adapt the project to their own datasets
  6. Build upon this foundation with advanced techniques

Project Status: Production Ready βœ“
This dashboard is suitable for presentation to stakeholders, executives, or as a portfolio piece demonstrating Business Intelligence competency.