Project: Build an Interactive Sales Dashboard
Take a sales dataset from raw file to a polished, interactive dashboard — using every skill from this course.
What you will learn
- Connect, clean and model real data
- Build measures and a full set of visuals
- Assemble and publish an interactive dashboard
What you will build
A complete Sales Dashboard that a manager could actually use — with headline KPIs, charts that reveal trends and top performers, and slicers to explore by region and product. You will go end to end: get data → clean → model → measures → visuals → layout → publish.
The data
Use any sales file (or make a small CSV). We will assume two tables so you practise relationships:
Sales.csv
Date,Product,Region,CustomerID,Amount
2026-01-03,Keyboard,North,7,1200
2026-01-05,Mouse,South,12,450
2026-01-09,Monitor,North,7,8900
2026-01-12,Keyboard,East,3,1200
2026-02-02,Monitor,South,12,8900
2026-02-14,Mouse,East,3,450
Customers.csv
CustomerID,Name,City
7,Asha,Delhi
12,Ravi,Pune
3,Meera,JaipurNote: Output: After loading both files, the Data pane lists a Sales table (6 rows) and a Customers table (3 rows). Sales totals 21,100 across all rows. These are the raw ingredients you will shape into the dashboard.
Step 1 — Get & clean the data
- Get Data → Text/CSV for
Sales.csv, then again forCustomers.csv. - Click Transform Data to open Power Query.
- Make sure Amount is a Whole Number and Date is a Date type.
- Trim any stray spaces in Region, then Close & Apply.
Step 2 — Model the tables
Switch to Model view and link the tables on their shared key so a sale knows its customer’s city.
Customers (1) ────< (many) Sales on CustomerIDNote: Output: A line joins Customers (the 1 side) to Sales (the many side). Now a chart can break Total Sales down by City, even though City lives in the Customers table and Amount lives in Sales.
Step 3 — Build your measures
In the Data view, click New Measure and add these three:
Total Sales = SUM(Sales[Amount])
Order Count = COUNTROWS(Sales)
Average Sale = AVERAGE(Sales[Amount])Note: Output: Total Sales shows 21,100, Order Count shows 6, and Average Sale shows about 3,516.67. Each will recalculate automatically as soon as you add slicers and break the data down by region or product.
Step 4 — Add the visuals
- Three cards on top: Total Sales, Order Count, Average Sale.
- A bar chart: Region on the axis, Total Sales in values.
- A line chart: Date (by month) on the axis, Total Sales in values.
- A pie chart: Product in the legend, Total Sales in values.
- A table: Product, Region, Total Sales.
- Two slicers: one for Region, one for Product.
Step 5 — Lay it out and title it
Arrange it like the layout you learned: cards across the top, slicers on the left, charts in the middle, table at the bottom. Add a page title text box: “Sales Dashboard 2026”, and give every visual a clear title.
┌──────────────────────────────────────────────┐
│ [Total 21,100] [Orders 6] [Avg 3,516.67] │
├──────────┬───────────────────────────────────┤
│ Region │ Bar: Sales by Region │
│ Product │ Line: Sales over Time Pie: Prod│
├──────────┴───────────────────────────────────┤
│ Table: Product | Region | Total Sales │
└──────────────────────────────────────────────┘Note: Output: Clicking North in the Region slicer instantly updates everything: the Total Sales card drops to 10,100, the bar and line redraw for North only, the pie reshapes to North’s product mix, and the table lists only North rows. That single, page-wide reaction is your dashboard working exactly as intended.
Step 6 — Test, then publish
- Click each slicer value and confirm all visuals update together.
- Check titles, alignment and that nothing overlaps.
- Save the
.pbix, then click Publish and choose My workspace. - Open it in the browser and try the slicers there too.
Tip: Build in small steps and check after each one: load the data, then add one card and confirm its number, then the next visual. A small dashboard that fully works beats a big one that is half-broken.
Watch out: If a visual shows blank or a wrong total, check two things first: is the relationship in place on CustomerID, and is Amount a real number (not text) in Power Query? Those two issues cause most beginner surprises.
Q. In this project, why do you create a relationship between Sales and Customers?
Note: When this works, you have built a real, interactive business dashboard from raw files — connecting, cleaning, modelling, calculating, visualising and publishing. That is exactly what a junior data analyst does on the job, and it makes a strong portfolio piece. Add a screenshot to your portfolio!
✍️ Practice
- Build the full Sales Dashboard end to end, meeting all six steps.
- Add a fourth KPI card of your own (for example, a Top Product measure) and place it with the others.
🏠 Homework
- Publish your finished dashboard and write a short case study (the dataset, the questions it answers, a screenshot, and what you learned) for your portfolio.