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.
- Confirm the source grain and field definitions.
- Reconcile record counts and additive totals.
- Validate rate denominators and date filters.
- Review outliers and missing values.
- 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.