Sales Dashboard in Power BI Project

Data Analytics project 01

Sales Dashboard in Power BI Project

Build a complete sales dashboard in power bi portfolio project with documented metrics, reproducible DAX code, validation checks, and responsible interpretation.

Explore Data Analytics training in VizagView all project ideas

Business question

How can a sales dashboard report revenue, orders, units, gross profit, margin, year-over-year change, and year-to-date revenue with consistent filter behaviour?

Dataset and grain

A documented sales fact table at order-line grain with quantity, unit price, discount, cost, order ID, and date key, related many-to-one to a proper date dimension.

Requirements

Power BI Desktop and a star schema containing FactSales and a continuous DimDate table.

Method and validation checks

Use explicit DAX measures rather than implicit column sums, DIVIDE for safe ratios, a marked date table for time intelligence, and a star schema so filters propagate predictably.

  • Total Revenue reconciles to quantity times price minus discount
  • CostAmount is confirmed as total line cost, not unit cost
  • DimDate is continuous and marked as the date table
  • KPI cards reconcile with the underlying detail table

Complete DAX code

Save the code as da_sales_dashboard_power_bi.dax. Review the stated model and field assumptions before using another dataset.

// Power BI model assumptions
// FactSales: OrderID, OrderDateKey, Quantity, UnitPrice, DiscountAmount, CostAmount
// DimDate: Date (a continuous date table marked as the model's date table)
// Relationship: DimDate[Date] 1-* FactSales[OrderDateKey]

Total Revenue =
SUMX (
    FactSales,
    FactSales[Quantity] * FactSales[UnitPrice] - FactSales[DiscountAmount]
)

Orders =
DISTINCTCOUNT ( FactSales[OrderID] )

Units Sold =
SUM ( FactSales[Quantity] )

Average Order Value =
DIVIDE ( [Total Revenue], [Orders] )

Total Cost =
SUM ( FactSales[CostAmount] )

Gross Profit =
[Total Revenue] - [Total Cost]

Gross Margin % =
DIVIDE ( [Gross Profit], [Total Revenue] )

Revenue Previous Year =
CALCULATE ( [Total Revenue], SAMEPERIODLASTYEAR ( DimDate[Date] ) )

Revenue YoY % =
DIVIDE ( [Total Revenue] - [Revenue Previous Year], [Revenue Previous Year] )

Revenue YTD =
TOTALYTD ( [Total Revenue], DimDate[Date] )

// Suggested visuals: KPI cards, monthly line chart, category bar chart,
// region matrix, and a detail table. Reconcile every visual to Total Revenue.

Build and run the project

Create each measure in Power BI Desktop, format money and percentage measures, and place them in KPI cards, trend charts, category bars, and a detail table.

  1. Confirm the source grain and field definitions.
  2. Reconcile record counts and additive totals.
  3. Validate rate denominators and date filters.
  4. Review outliers and missing values.
  5. Read the interpretation limits before sharing conclusions.

Expected analytical output

Reusable DAX measures plus a five-visual dashboard plan: KPI cards, monthly trend, category comparison, regional matrix, and order detail.

Interpretation and responsible-use limits

The measures depend on the stated grain and column definitions. Confirm returns, tax, currency, cancellations, discount allocation, and cost treatment before using them for management or financial reporting.

Ways to extend the project

Add budget variance, return-adjusted sales, currency conversion, drill-through, row-level security, refresh monitoring, and a metric-definition page.

Continue learning Data Analytics

Try the next project, return to the Softenant project library, or explore the Data Analytics course in Vizag for guided SQL, Excel, Power BI, Python, dashboard, and portfolio practice.