πŸ“Š Customer Performance Dashboard


πŸ” Business Challenge

Companies often invest in campaigns without a clear understanding of which customer segments drive the most revenue. This dashboard helps solve that by: Identifying high-value customer groups, Highlighting key demographics (e.g., customers with children), Offering localized insights by geography (e.g., top contributing countries).

πŸ”₯ GitHub Repository

1. 🧠 Key Metrics & Custom DAX Measures – Customer Revenue Segmentation


-- Total Revenue
Total Revenue = 
    SUMX(FactTable, FactTable[OrderQuantity] * RELATED(DimProduct[Price]))

-- CWC Revenue (Customers With Children)
CWC Revenue = 
    CALCULATE([Total Revenue], FILTER(DimCustomer, DimCustomer[TotalChildren] > 0))

-- CWOC Revenue (Customers Without Children)
CWOC Revenue = 
    CALCULATE([Total Revenue], FILTER(DimCustomer, DimCustomer[TotalChildren] = 0))

-- % Female Revenue
% Female Revenue = 
    DIVIDE([Female Revenue], [Total Revenue])

-- % Male Revenue
% Male Revenue = 
    DIVIDE([Male Revenue], [Total Revenue])

-- Conditional Formatting for Female Revenue
CF Female = 
    VAR _f = [% Female Revenue]
    VAR _m = [% Male Revenue]
    RETURN SWITCH(TRUE(), _f > _m, "#F94C10", "#A0A0A0")

-- Conditional Formatting for Male Revenue
CF Male = 
    VAR _f = [% Female Revenue]
    VAR _m = [% Male Revenue]
    RETURN SWITCH(TRUE(), _m > _f, "#0077B6", "#A0A0A0")

-- Avg Revenue (Age Group)
Avg Revenue (Age Group) = 
    AVERAGEX(VALUES(DimCustomer[Age Group]), [Total Revenue])

-- Conditional Formatting for Age Group Revenue
CF Age-Group = 
    VAR _rev = [Total Revenue]
    VAR _avg = [Avg Revenue (Age Group)]
    RETURN IF(_rev > _avg, "yellow", "gray")

-- Dynamic Caption for Age Group Insights
Avg Caption = 
    VAR _Total = [Total Revenue]
    VAR _Avg = [Avg Revenue (Age Group)]
    VAR _TopAgeGroup = 
        CALCULATE(
            SELECTEDVALUE(DimCustomer[Age Group]),
            TOPN(1, VALUES(DimCustomer[Age Group]), [Total Revenue])
        )
    RETURN
        FORMAT(_Total, "Β£#,##0.00") & 
        " generated, with " & FORMAT(_Avg, "Β£#,##0.00") & 
        " average per age group, primarily led by the " & _TopAgeGroup
    
Measure Description
Total Revenue Calculates item-level revenue using order quantity and product price.
CWC Revenue Revenue from customers with children (TotalChildren > 0).
CWOC Revenue Revenue from customers without children (TotalChildren = 0).
% Female Revenue Proportion of total revenue contributed by female customers.
% Male Revenue Proportion of total revenue contributed by male customers.
CF Female / CF Male Applies color coding to highlight the dominant revenue-contributing gender.
Avg Revenue (Age Group) Computes the average revenue per age group for comparative analysis.
CF Age-Group Highlights age groups with revenue above the group average (yellow = high).
Avg Caption Dynamic text summary indicating top-performing age group and average revenue.

πŸ“Š Data Insights & Interpretation

  • πŸ’· Granular Revenue Calculations: The use of SUMX and RELATED enables accurate, transaction-level revenue insights.
  • πŸ‘¨β€πŸ‘©β€πŸ‘§ Family-Oriented Segmentation: Differentiating CWC and CWOC Revenue helps in tailoring promotions based on family status.
  • πŸ‘©β€πŸ’ΌπŸ‘¨β€πŸ’Ό Gender Revenue Comparison: Measures like % Female Revenue and CF Female identify revenue drivers across demographics.
  • πŸ“Š Age Performance Tags: Avg Revenue (Age Group) and CF Age-Group provide a heatmap-like visual cue for age-driven strategy.
  • πŸ—£οΈ Narrative Metrics: Avg Caption outputs a sentence-level summary to quickly inform stakeholders of key patterns.

These DAX measures power a sophisticated Power BI dashboard capable of segmenting revenue across multiple customer attributes, providing actionable insights for marketing, product, and executive teams.

2. 🌍 Country-Level Insights

This analysis segment focuses on evaluating customer performance by geography, highlighting the top-performing country in terms of revenue contribution from customers with and without children. Dynamic DAX measures enable this layer of demographic and regional filtering to support targeted strategy decisions.

Measure Description
Country with Highest CWC Revenue Identifies the country with the largest revenue from customers with children.
% CWC in Country Calculates the proportion of customers with children within that country.
Total Revenue (by Country) Aggregates revenue for the selected customer segment and location.
Customer Count Counts number of customers in each region and segment.
Gender Distribution Breaks down customers by male/female within the selected region and segment.

Sample Insight:
β€œGERMANY leads with 57.43% of customers with children among 14 countries, generating Β£22.66M from 1,275 customers, comprising 46.95% male and 53.05% female.”

This sentence is dynamically generated using a combination of DAX measures like: [Customers with children], [Revenue by Country], [Gender %], and RANKX logic to identify the top-performing country. The insight provides a narrative format that’s directly consumable by decision-makers.


πŸ“ˆ Top Customers & Dynamic Insights

The dashboard features a dynamic leaderboard powered by the measure Dynamic Customers, which ranks top customers by revenue. A parameter slicer allows users to control how many top customers are displayed (e.g., top 5, 10, or 50), offering tailored exploration.

  • πŸ† Ranks customers by revenue using RANKX and TOPN functions.
  • πŸŽ›οΈ Fully interactive: Slicer value (Dynamic Customers Value) drives the number of results shown.
  • 🧠 Automatically updates dynamic title: "The 10 Highest Ranking Customers".
  • πŸ“ˆ Offers fast visibility into high-value customer segments for loyalty programs or special offers.

Example Output: β€œThe 15 Highest Ranking Customers”

🧩 Design Features

  • πŸŽ› Interactivity: The report includes slicers for demographic filters, a dynamic theme toggle (light/dark mode), and responsive KPI cards that adjust to screen size and user selection.
  • πŸ“Š Visuals: A blend of bar charts (for age group revenue comparisons), donut charts (for gender and family status distribution), and dynamic cards (for total revenue, customer count, and order quantity) enables a multi-dimensional view of performance.
  • 🎨 Color Cues: Yellow bars highlight age groups exceeding the average revenue, while green/red status indicators clearly signal dominant gender segments and customer categories.

πŸ’‘ Key Insights

  • πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Customers with children drive the majority of revenue, with Germany emerging as the top contributing country in this segment.
  • ♀️ Female customers slightly outperform males in total revenueβ€”a key finding for segmentation-led campaigns.
  • πŸ“ˆ The 41–60 age group dominates revenue, while younger (< 25) and older (60+) customers underperformβ€”vital input for targeted marketing and retention strategies.
  • πŸ† Top 3 customers contribute a significant share of overall revenue, making them ideal candidates for loyalty, upselling, or premium support programs.

πŸ› οΈ Skills Demonstrated

  • πŸ“Œ Advanced DAX functions: Used CALCULATE, SUMX, FILTER, TOPN, and RANKX for precise calculations and ranking logic.
  • πŸ”— Relationship-aware modeling: Employed RELATED and star schema relationships to link fact and dimension tables effectively.
  • 🧠 Dynamic labeling & storytelling: Generated narrative KPIs (e.g., "Germany leads with...") that adapt based on slicer inputs and measure outputs.
  • πŸ“˜ Interactive storytelling: Seamlessly combined data visuals with context-aware narratives using tooltips, titles, and color-coded visual cues in Power BI.
  • 🧩 Dimensional segmentation: Analyzed performance by gender, age category, parental status, and geography through calculated columns and measures.