Dashboards with Power BI and Looker Studio
Build the same small sales dashboard twice, once in Power BI Desktop and once in Looker Studio. You will learn how to connect data, define measures, pick charts, add filters and avoid the mistakes that make dashboards useless.
A dashboard is one screen that answers a few recurring questions at a glance: How are we doing? Is it better or worse than before? Where should I look next? It is not a place to show every chart you can make.
What you will build: a one-page dashboard for Brew & Bean with three KPI cards (revenue, orders, average order value), a monthly revenue trend, revenue by store, a top-items chart and a store filter. You will build it in Power BI Desktop and in Looker Studio so you can choose the tool you like.
Prerequisites: you should know what a metric is (see *Business metrics and KPIs*) and be comfortable with a table of rows and columns (see *Spreadsheets for analysis*). You need either a Windows PC for Power BI Desktop (free to download; it does not run on macOS or Linux) or any browser and a Google account for Looker Studio (free).
Step 0: the data
Both tools read a flat table where each row is one line of an order. Save the sample below as sales_sample.csv. It has the same columns as the larger sales.csv you will generate in the project lesson, so everything you build here carries over.
When your dashboard works on 10 rows, replace the file with the big one and it will keep working.
order_id,order_date,store,item_id,item_name,category,unit_price,qty,revenue
1001,2026-01-03,Indiranagar,cappuccino,Cappuccino,coffee,180,2,360
1001,2026-01-03,Indiranagar,croissant,Butter Croissant,bakery,150,1,150
1002,2026-01-03,Koramangala,masala-chai,Masala Chai,tea,90,1,90
1003,2026-01-17,HSR Layout,cold-brew,Cold Brew,coffee,220,1,220
1004,2026-01-25,Indiranagar,filter-coffee,Filter Coffee,coffee,80,2,160
1005,2026-02-02,Koramangala,veg-sandwich,Veg Grilled Sandwich,food,160,1,160
1005,2026-02-02,Koramangala,espresso,Espresso,coffee,120,1,120
1006,2026-02-14,Indiranagar,banana-bread,Banana Bread,bakery,130,2,260
1007,2026-02-20,HSR Layout,cappuccino,Cappuccino,coffee,180,1,180
1008,2026-03-05,Indiranagar,masala-chai,Masala Chai,tea,90,2,180Order 1001 has two rows because the customer bought two items. This is why 'orders' must be counted as distinct order_id, not as rows.
Rows are not orders
In this table one order can span several rows. If you count rows you will overstate the number of orders. Always count distinct order_id for orders.
Part A: Power BI Desktop
Load the data
- 1Open Power BI Desktop. Choose Get data, then Text/CSV, and select
sales_sample.csv. - 2In the preview window click Transform Data (not Load). This opens Power Query, where you can fix types before building anything.
- 3Check the column types:
order_datemust be Date,unit_price,qtyandrevenuemust be Whole Number, the rest Text. Fix any that are wrong with the type icon in each column header. - 4Click Close & Apply. The table appears in the Data pane on the right, named
sales_sample.
Fixing types first matters. If order_date is Text, you cannot get a proper monthly trend, and if revenue is Text, you cannot sum it.
Create measures with DAX
- 1Right-click the
sales_sampletable in the Data pane and choose New measure. - 2Type the first measure from the code block below and press Enter. Repeat for the other two.
- 3Measures are calculated when a chart needs them, so they respond to filters automatically. That is why you use measures, not a new column, for totals and ratios.
Total Revenue = SUM(sales_sample[revenue])
Orders = DISTINCTCOUNT(sales_sample[order_id])
Avg Order Value = DIVIDE([Total Revenue], [Orders])DAX is the formula language of Power BI. DIVIDE returns blank instead of an error when the denominator is zero, which is safer than the / operator.
Build the visuals
- 1Add three Card visuals from the Visualizations pane. Drag
Total Revenue,OrdersandAvg Order Valueinto one each. Place them in a row at the top. - 2Add a Line chart. Put
order_dateon the X-axis and remove the Year, Quarter and Day levels from the date hierarchy so only Month remains (click the small cross next to each level). PutTotal Revenueon Y-axis. - 3Add a Clustered bar chart. Put
storeon the Y-axis andTotal Revenueon X-axis. - 4Add another Clustered bar chart. Put
item_nameon the Y-axis andTotal Revenueon X-axis. In the Filters pane, set this visual's filter onitem_nameto Top N, show the top 5 byTotal Revenue. - 5Add a Slicer visual and drag
storeinto it. In its format options choose a Tile or List style. - 6Click one store in the slicer. Every chart and card should change. If one does not, check that it uses a measure or a field from the same table.
Sort and label
Sort bar charts from largest to smallest (the three-dot menu, then Sort axis). Give each visual a plain title such as 'Revenue by store (₹)'. Turn on data labels if there are few bars. Readers should never have to guess what a chart shows.
Save the file as brew_and_bean.pbix. To share it outside your PC you can publish to the Power BI service; at the time of writing (2026) sharing reports with other people generally needs a paid licence or capacity, so for a portfolio many learners share screenshots, a short screen recording or a PDF export instead. Check Microsoft's current licensing page before you rely on it.
Part B: Looker Studio
Connect the data
- 1Go to lookerstudio.google.com and sign in with your Google account. Choose Create, then Report.
- 2When asked for a data source, pick Google Sheets (upload
sales_sample.csvto Google Drive and open it as a Google Sheet first) or the File Upload connector for a CSV. - 3Authorise and add the data. Looker Studio opens a blank canvas and a Data panel on the right.
- 4In the data source settings (Resource, then Manage added data sources, then Edit), check the types:
order_dateshould be Date (YYYYMMDD or Date),revenueshould be Number. Fix them there if needed, and set the default aggregation of numeric fields to Sum.
Calculated fields and charts
- 1In the data source editor choose Add a field and create
Orderswith the formulaCOUNT_DISTINCT(order_id). - 2Create another field
Avg Order Valuewith the formulaSUM(revenue) / COUNT_DISTINCT(order_id). - 3Back on the canvas use Add a chart, then Scorecard three times. Set the metrics to
SUM(revenue),OrdersandAvg Order Value. - 4Add a Time series chart. Set the dimension to
order_dateand change its granularity to Year Month. The metric isSUM(revenue). - 5Add a Bar chart with dimension
storeand metricSUM(revenue). Add a second bar chart with dimensionitem_name, metricSUM(revenue), sorted descending with Rows per page set to 5. - 6Add a control: Add a control, then Drop-down list, with the control field set to
store. Select a store in View mode to confirm every chart responds.
Orders: COUNT_DISTINCT(order_id)
Avg Order Value: SUM(revenue) / COUNT_DISTINCT(order_id)Looker Studio formulas use SUM(), COUNT_DISTINCT() and similar functions directly on fields. There is no separate measures window.
Looker Studio reports are shared like Google Docs: use Share, then pick specific people or a link. Reports on a public link are visible to anyone who has it, so never put sensitive customer data in one.
Choosing between the two
Power BI vs Looker Studio
| Question | Power BI | Looker Studio |
|---|---|---|
| Where it runs | Desktop app on Windows, plus an online service | In the browser |
| Cost to learn | Desktop is free to download | Free with a Google account |
| Strong at | Modelling several tables, DAX, big data, company reporting | Quick reports on Sheets, BigQuery and Google data, easy sharing |
| Learning curve | Steeper (DAX, relationships) | Gentler |
| Common in jobs | Very common in companies that use Microsoft | Common in marketing and Google-centred teams |
Both teach the same ideas: connect, clean types, define metrics, choose charts, filter. A learner who knows one picks up the other in a day. Tableau is another common tool; the same thinking applies.
Design rules that make a dashboard useful
Which chart for which question
| Question | Chart | Avoid |
|---|---|---|
| How has it changed over time? | Line chart | Pie chart |
| Which is biggest or smallest? | Sorted bar chart | 3D charts |
| What is the single number now? | Card or scorecard with a comparison | A chart with one bar |
| What are the exact values? | A table | A dozen bar charts |
| What share is each part? | A bar chart (or a pie with 2 or 3 slices at most) | Pie with 8 slices |
Dashboard quality check
- The top-left card shows the one number the reader cares most about.
- Every visual has a plain-English title with units (₹, orders, %).
- Numbers use the same format everywhere (for example ₹1,25,000 or 1.25 L, not both).
- Colours mean something: one colour for normal, a different one only to highlight.
- Filters are visible and labelled; the date range is stated on the page.
- No chart exists just because the tool made it easy.
Common mistakes
Summing a ratio (adding up averages or percentages across rows gives a wrong number; recompute the ratio from totals as you did for average order value). Counting rows instead of distinct orders. Leaving dates as text. A dashboard with 15 visuals where nobody knows where to look. Showing a number with no comparison, so nobody can tell whether it is good.
I am building a dashboard for [business, for example a 3-outlet coffee shop]. The reader is [role, for example the owner who checks it every Monday]. These are the columns I have: [paste column names and one example row].
Suggest the 3 KPI cards and 4 charts that would answer the owner's likely questions. For each, say the metric, the dimension, the chart type and the question it answers. Tell me which of my columns I would need to calculate first.What to expect: Check that every suggestion uses columns you actually have, and that ratios are calculated from totals, not summed.
Try it: Add a comparison and a category filter
Extend your dashboard:
1. Add a second slicer or drop-down for category.
2. Add a chart showing revenue split by category as a sorted bar chart.
3. Add a card showing revenue for the latest month and, if you can, the change from the previous month.
Key takeaways
- A dashboard answers a few recurring questions; it is not a gallery of charts.
- Fix data types first, then define measures once and reuse them in every visual.
- Count distinct orders, and calculate ratios from totals, not from averages.
- Match chart to question: line for time, sorted bar for ranking, card for the headline number.
- Power BI and Looker Studio use the same ideas; learn one and the other is easy.
- Test your filters: every visual should respond when you click one.
Check yourself
Finishing the quiz marks the lesson as done.
1. Why is the number of orders calculated as a distinct count of order_id in the sample data?
2. What is the safest way to build 'average order value' in a dashboard?
3. Which chart best answers 'how has revenue changed month by month'?
4. You click a store in your slicer and one chart does not change. What is the most likely cause?
5. Which setup is a problem for a monthly trend?
Saved on this device. Create a free account to keep it on every device.
Practise this with Sam
A real mock interview, out loud, with an honest scorecard. Free to start.