Power BI Sales Dashboard Project

A real project ties every skill into one workflow: connect, clean, model, calculate, visualize, and publish. This walkthrough builds a sales report for a fictional company named BrightMart, an online store that sells home goods.

The Business Questions

Every report starts with questions. The BrightMart director wants answers to these:

  • How much revenue and profit did we earn this year?
  • Which categories and cities perform best?
  • How does this month compare with the same month last year?
  • Which customers bring the most value?

The Data Files

FileContent
Orders.xlsxOrder ID, Date, Product ID, Customer ID, Quantity, Price, Cost
Products.csvProduct ID, Name, Category, Brand
Customers.csvCustomer ID, Name, City, Segment

The Target Design

+--------------------------------------------------+
| Slicers: Year | Category | City                  |
+--------------+---------------+-------------------+
| Revenue Card | Profit Card   | Orders Card       |
+--------------+---------------+-------------------+
| Line: Revenue by Month | Bar: Revenue by Category|
+-------------------------+------------------------+
| Map or Bar: City       | Table: Top 10 Customers |
+-------------------------+------------------------+

Step 1: Load and Clean

  1. Choose Get data and connect to the three files.
  2. Open Power Query Editor. Set correct data types for dates, whole numbers, and decimals.
  3. Remove duplicate rows and blank rows in Orders.
  4. Trim spaces in text columns such as City.
  5. Rename columns with clear names and apply changes.

Step 2: Build the Model

  1. Create a Date table with CALENDAR and mark it as a date table.
  2. Open Model view and connect Products[Product ID], Customers[Customer ID], and Date[Date] to the Orders table.
  3. Check that every relationship is one-to-many with single direction filtering.
  4. Hide key columns in Orders to keep the field list tidy.
 Products ---\
              \
 Customers ----> ORDERS <---- Date

Step 3: Write the Measures

Revenue = SUMX(Orders, Orders[Quantity] * Orders[Price])

Total Cost = SUMX(Orders, Orders[Quantity] * Orders[Cost])

Profit = [Revenue] - [Total Cost]

Profit Margin = DIVIDE([Profit], [Revenue])

Order Count = DISTINCTCOUNT(Orders[Order ID])

Revenue LY = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))

Revenue Growth = DIVIDE([Revenue] - [Revenue LY], [Revenue LY])

Place all measures in a dedicated table named Measures to keep the field list organized.

Step 4: Design the Report

  1. Apply a theme with a restrained palette.
  2. Add three card visuals for Revenue, Profit, and Order Count.
  3. Add a line chart with Date[Month Name] on the axis and Revenue as the value.
  4. Add a bar chart for Revenue by Category.
  5. Add a map or bar chart for Revenue by City.
  6. Add a table with the top ten customers using a Top N filter.
  7. Add slicers for Year, Category, and City, and align them in a neat row.
  8. Use conditional formatting to color Revenue Growth green when positive and red when negative.

Step 5: Add Interactivity

  • Create a drill through page named Customer Detail.
  • Add a report page tooltip for the category bar chart.
  • Add bookmarks and buttons to switch between Revenue and Profit on the monthly chart.

Step 6: Publish and Secure

  1. Publish the file to a workspace named BrightMart Sales.
  2. Schedule a daily refresh and set up a gateway if the files sit on a local server.
  3. Set up row-level security so each city manager sees only that city.
  4. Pin key visuals to a dashboard and package everything into an app.

Quality Checklist

CheckQuestion
AccuracyDo totals match the source files?
ClarityDoes each visual have a clear title?
SpeedDoes each page load in a few seconds?
SecurityDoes each role show only the intended rows?

Key Points

  • Start every project with the business questions.
  • Clean data in Power Query before modeling.
  • A star schema with a date table supports every calculation.
  • Measures, visuals, and interactivity tell the story.
  • Publishing, refresh, and security complete the delivery.