🚧 Under construction — VoTechWorks is being built. A free tech program — complimentary, as our commitment to get America working.
voTechWorksGrade 13 · a vocational technology learning center, by urbanicity
newSchoolWorks.com › VoTechWorks › Technology & Design › Data Science & Analytics › Capstone with Real City/Urbanicity Data › Lesson 7
TEC-DATA85-11 · Lesson 7 · 12 clock hours · lab

Power BI Dashboard: City Data Storytelling

Objective. Students build a multi-page, interactive Power BI report connected to their analysis-ready dataset that enables a non-technical city stakeholder to explore key findings, applying PL-300 data-modeling and report-design best practices.

⚠ Pending professional review

This lesson, its worked examples and its practice questions has not yet been verified by an industry-certified professional or by a certification or approval body. It is a study draft and may contain errors. Do not use it as instructions for work on a job site or on live equipment. Always follow your instructor, your supervising professional, and current official references and regulations.

VoTechWorks program approval and accreditation are still in progress. Credentials are issued only by the certifying bodies named in each program, after their own exams.

Power BI Dashboard: City Data Storytelling

Why Dashboards Matter for City Stakeholders

A city department manager rarely has time to read a lengthy analysis report. What they need is a clear, interactive tool that lets them answer their own questions quickly. Power BI is one of the most widely used business intelligence platforms in government and industry, and building a well-designed dashboard is a core skill tested on the Microsoft PL-300 exam. In this lab you will connect your cleaned city dataset to Power BI Desktop, build a proper data model, write DAX measures, and publish a report that a non-technical stakeholder can navigate without your help.

Setting Up Your Data Model

A strong Power BI report begins with a clean data model, not just raw tables dropped into a file. The standard approach for analytics is the star schema: one central fact table (containing numeric measurements and foreign keys) surrounded by dimension tables (containing descriptive attributes such as neighborhood name, year, or department).

When you import your cleaned CSV into Power BI Desktop, check the following before building any visuals:

If your project dataset came from PostgreSQL rather than a CSV, use the PostgreSQL connector in Power BI Desktop. The modeling steps are identical once the data is loaded.

Writing DAX Measures

DAX (Data Analysis Expressions) is the formula language of Power BI. Two measure types you must include in this project are a year-over-year change and a per-capita rate.

A DAX measure lives in the report's data model, not in a column. Create measures by selecting a table in the Fields pane and choosing "New measure." Keep measure names descriptive so a stakeholder reading a tooltip understands it.

General patterns:

Always test a new measure by placing it on a card visual with a known single value you can verify manually. This prevents silent errors from reaching your stakeholder.

Designing for a Non-Technical Audience

Before opening Power BI, sketch a storyboard: a simple wireframe showing each page of your report, the audience, the one key question that page answers, and the visual type chosen. Storyboarding forces you to think about communication before you think about software.

Report design principles that matter for PL-300 and for real city work:

Publishing and the Usability Walk-Through

When your report is complete, publish it to Power BI Service using the free workspace associated with your Microsoft account. This generates a shareable link. Submit that link to your instructor.

The usability walk-through is the most important quality check in this lab. Your instructor will navigate the report as a city department manager without any help from you. If they cannot find a filter, misread a chart title, or cannot answer the page's stated question within a few minutes, that is a design failure — not a user failure. Common issues to prevent:

Safety and Professional Responsibility

City datasets often contain information about real residents. Before publishing any report — even to a free workspace — confirm that your dataset has been de-identified according to your project guidelines. Do not publish names, addresses, or other personally identifiable information to any cloud service without explicit authorization. Data privacy is a professional and ethical obligation, and mishandling public data can cause real harm to individuals and to your program's community relationships.

Connecting This Lab to PL-300

The PL-300 exam tests data modeling, DAX, report design, and Power BI Service tasks — exactly what this lab covers. Reviewing Microsoft Learn's PL-300 study guide after completing this lab will reinforce the terminology and concepts the exam expects. Every skill you practice here maps directly to exam objectives.

Key terms8

Star schemaA data model structure with one central fact table connected to multiple dimension tables, designed to make queries efficient and relationships easy to understand.
DAX (Data Analysis Expressions)The formula language used in Power BI to create calculated columns and measures that perform aggregations, comparisons, and time-intelligence calculations.
MeasureA DAX formula stored in the data model that computes a value dynamically based on the current filter context, as opposed to a static calculated column.
SlicerA visual filter control placed on a Power BI report page that allows users to interactively narrow the data shown in other visuals on that page.
KPI cardA Power BI visual that displays a single key metric prominently, sometimes alongside a target or trend indicator, to give stakeholders an at-a-glance headline number.
Filter contextThe set of filters currently applied to a data model that determines which rows are included when a DAX measure or visual calculates its result.
Power BI ServiceThe cloud-based platform at app.powerbi.com where Power BI reports are published, shared, and managed; separate from Power BI Desktop, which is the authoring tool.
StoryboardA wireframe or sketch created before building a report that identifies the audience, the question each page answers, and the visual types to be used, guiding design decisions.

Worked examples3

1. Your fact table has a column 'Incidents' and a dimension table has a column 'Population'. Write the logic for a DAX measure called 'Incidents Per 1000 Residents' and verify it with sample data: 250 incidents, population of 50,000.
  1. Step 1: Identify the two values needed — total incidents from the fact table and population from the dimension table.
  2. Step 2: Write the measure formula pattern: Incidents Per 1000 Residents = DIVIDE([Total Incidents], SUM(DimNeighborhood[Population])) * 1000. Using DIVIDE instead of the slash operator avoids a divide-by-zero error.
  3. Step 3: Substitute the sample values to verify: (250 / 50,000) × 1,000 = 0.005 × 1,000 = 5.0.
  4. Step 4: Place the measure on a card visual filtered to the single neighborhood and confirm the card displays 5.0. If it does, the measure logic is correct.
Answer: The measure returns 5.0 incidents per 1,000 residents for the sample data.
2. You need a year-over-year change measure. Last year's total calls = 1,840; this year's total calls = 2,116. Calculate the absolute change and the percentage change.
  1. Step 1: Calculate absolute change: 2,116 − 1,840 = 276 additional calls.
  2. Step 2: Calculate percentage change: (276 / 1,840) × 100.
  3. Step 3: Divide: 276 / 1,840 ≈ 0.15.
  4. Step 4: Multiply by 100: 0.15 × 100 = 15.0%.
  5. Step 5: In DAX, the percentage change measure pattern is: YoY % Change = DIVIDE([This Year Calls] - [Last Year Calls], [Last Year Calls]). Format the measure as a percentage in the Formatting pane so it displays as 15.00% rather than 0.15.
Answer: Absolute change = 276 calls; percentage change ≈ 15.0% increase year-over-year.
3. A report page has 3 visuals and a slicer. The slicer is set to filter only the bar chart, but the requirement is that it filters all three visuals. Describe the steps to fix this in Power BI Desktop.
  1. Step 1: Click the slicer visual to select it.
  2. Step 2: In the Format tab on the ribbon, locate 'Edit interactions' (in some Power BI versions it appears under the Format menu or View tab).
  3. Step 3: With Edit interactions active, icons appear on each of the other visuals showing whether they are filtered (funnel icon) or unaffected (circle with line icon) by the selected slicer.
  4. Step 4: Click the funnel (filter) icon on each visual that is currently showing the 'no filter' icon, until all three visuals show the funnel icon.
  5. Step 5: Click anywhere outside the slicer to exit Edit interactions mode, then test by changing the slicer selection and confirming all three visuals update.
Answer: After enabling Edit interactions and setting the filter icon on all three visuals, the slicer will control all of them simultaneously.

The math in this lesson1

Learners write a measure for incidents per 1,000 residents from counts and population.
7.RP.2
In class: Instructor demonstrates importing a cleaned CSV into Power BI Desktop, creating a star-schema data model, writing at least two DAX measures (e.g., year-over-year change, per-capita rate), and designing a report page with slicers, a map visual, and a KPI card; students follow along on their own data. · Students design a storyboard (paper or digital wireframe) for their two- to three-page report before building in Power BI; storyboard must identify the audience, one question answered per page, and the visual type chosen with a one-sentence justification. · Students publish the completed Power BI report to Power BI Service (free workspace) and share the link with the instructor; a usability walk-through is conducted where the instructor plays the role of a city department manager and navigates the report without student guidance, noting any confusion points.
Materials: Power BI Desktop (free); Power BI Service free account; cleaned project dataset (CSV or PostgreSQL connection); Microsoft PL-300 exam study guide; DAX reference documentation (Microsoft Learn); storyboard template.
Check: Instructor evaluates the published report against a rubric: functional data model (at least two tables related), at least two correct DAX measures, three or more interactive visuals, usability walk-through completed without critical navigation failures; score of 75% or higher = pass.

Practice check8

Answer each question, then check it. Nothing is recorded; this is your own practice.

PL-300: Model the Data
1. In a Power BI star schema, what is the primary role of a dimension table?
PL-300: Model the Data
2. A DAX measure is set up as: Rate = DIVIDE([Total Events], [Population]) * 10000. If Total Events = 500 and Population = 200,000, what does the measure return?
PL-300: Model the Data
3. Why should you use the DAX DIVIDE function instead of the division operator (/) when writing a per-capita measure?
PL-300: Visualize and Analyze the Data
4. During the usability walk-through, the instructor (acting as a city department manager) cannot determine what question a report page is intended to answer. Which design element, if missing, most directly causes this problem?
PL-300: Deploy and Maintain Assets
5. A student publishes a report to Power BI Service but the instructor cannot view it via the shared link. Which step was most likely skipped?
PL-300: Visualize and Analyze the Data
6. Which visual is best suited for showing how a metric — such as total service requests — varies across different neighborhoods of a city?
CompTIA Data+: Data Governance, Quality, and Compliance
7. Before publishing a city dataset report to Power BI Service, a student notices the dataset includes residents' full names and home addresses. What is the correct action?
PL-300: Visualize and Analyze the Data
8. In the storyboard phase of the project, a student writes 'Audience: General Public' for all three report pages and lists five different questions per page. Which two problems does this create?
Record this lesson on my transcript. Sign in with your key and enrollment email to record lessons (enroll free if you have no key). This page stays open to read and practise.