Build your first Power BI report around one decision: which fictional workshop sessions need a closer look at attendance? Learn to import data, set types, define relationships, calculate a measure, and test filters before polishing the canvas. A useful beginner report is a small analytical product with documented definitions. It is not a collection of charts copied from a tutorial without knowing what each number means.

Prepare the report brief and environment

Microsoft describes Power BI Desktop as a Windows application for connecting, transforming, and visualising data Source 1. Check the current installation requirements in that official guidance. Publishing and sharing are separate decisions with their own account and licensing conditions; you can complete this learning project locally without promising an online workspace to a reviewer.

Write the brief first: a workshop organiser wants to compare booked seats with attended seats across three sessions. The data is fictional, contains no personal details, and will not measure teaching quality. Create a Sessions table with unique session IDs, topic names, and capacity. Create an Attendance table with one row per session date and the counts booked and attended.

Transform and model the data

Use three sessions with capacities of 20 each. Booked counts are 15, 18, and 10; attended counts are 12, 15, and 8. Confirm that all counts are whole numbers and dates are dates. Microsoft’s Power Query guidance explains data types Source 2. Inspect conversion errors rather than removing error rows automatically, because a removed row can change the totals your report is intended to explain.

Relate the session identifier in Sessions to the matching field in Attendance. The session key should be unique on the descriptive side. Microsoft’s star-schema guidance discusses the roles of dimension and fact tables Source 3. This small model is enough to practise those ideas without inventing unnecessary tables. Check for unmatched attendance records and repeated session keys before building visuals.

Write a short data dictionary: capacity is available seats, booked is reservations, and attended is observed attendance. Those definitions prevent a report reader from assuming that an empty seat means a cancelled reservation. The dataset does not contain cancellations, reasons for absence, or individual participant histories.

Create measures and test filter behaviour

The expected totals are 43 booked seats and 35 attended seats. Overall attendance among bookings is 35 divided by 43, approximately 81.4%. Calculate that ratio from the totals rather than averaging three displayed percentages. A different weighting rule would answer a different question. Use a safe division method so an empty selection does not produce a misleading infinite or error value.

Place the totals beside a bar chart comparing booked and attended counts by session. Add a topic filter and test one session at a time. Selecting the first session should show 15 booked and 12 attended, an 80% attendance rate. Clearing the filter should restore 43 and 35. A visual that stays unchanged when it should respond may indicate a relationship or interaction problem.

Keep labels and units explicit. “Attendance rate” needs a definition because dividing attendance by capacity would produce 35 divided by 60, or approximately 58.3%. That is seat utilisation, a different metric. Include both only if the brief needs both, and give them different names.

Document and review the finished report

Create a one-page report with a title, period, three headline measures, one comparison chart, and a definition note. A second page can contain the source table and assumptions. Test a narrow window and keyboard navigation where supported. Do not make colour the only way to distinguish booked from attended counts; labels and legends need to carry meaning too.

Add a fourth fictional session with zero bookings and zero attendance. Refresh the report and verify that totals remain 43 and 35 while the new session is visible where appropriate. Record how the rate displays for that session. Finish with the report file, source files, refresh instructions, and expected checks. State that local practice does not establish an operational attendance trend or a production-ready sharing setup.

Practice sequence
  1. BriefDefine the organiser’s question.
  2. PrepareSet types and check keys.
  3. ModelRelate descriptions to observations.
  4. ReportTest measures under different filters.
Practice decisions and evidence
Checkpoint What to produce How to review it
Types Whole-number counts and valid dates No hidden conversion errors
Model Unique session key Every attendance row matches a session
Measures 43 booked and 35 attended Overall rate is about 81.4%
Filter test First session: 15 and 12 Rate changes to 80%
Evidence before advancement
Attendance among bookings
35 attended ÷ 43 booked ≈ 81.4%.
Seat utilisation
35 attended ÷ 60 seats ≈ 58.3%.
Interpretation boundary
Neither measure explains why someone was absent.

Common questions

Can I complete this project without publishing it?

Yes. Build and review the local report and its source files first. Online sharing introduces account, permission, and licensing decisions that are separate from learning the model. Check the current Microsoft requirements before choosing a sharing method. Do not upload confidential datasets to make a portfolio screenshot easier to access.

Should I learn Power Query or measures first?

Begin with importing and typing the data so the model receives reliable fields. Then learn the measures needed for the brief. A sophisticated calculation cannot repair duplicated session keys or a count stored as text. Alternate small transformation steps with checks instead of trying to master an entire feature area in isolation.

Why is my total rate different from the average of rows?

The overall booking attendance rate uses all attended seats divided by all booked seats. Averaging row percentages gives every session equal weight even when booking counts differ. Both are mathematical operations, but they answer different questions. Name the intended metric and check it manually before deciding which calculation belongs in the report.

What does a relationship problem look like?

A filter may fail to change a visual, records may disappear, or totals may be repeated unexpectedly. Inspect key values, uniqueness, and unmatched records before altering visual formatting. In this exercise the session table has one row per session identifier. The attendance records must reference those identifiers consistently for the comparison to work.

How should zero bookings appear?

A zero denominator makes a booking-based rate undefined. Display a blank or an explicitly explained not-applicable state according to your reporting convention. Do not silently display 100% or invent a success rate. Keep the zero booking count visible so a reader understands why the rate is absent for that particular session.

How many report pages should I build?

One analytical page and one documentation page are enough for this exercise. Add a page only when it serves a distinct reader task. Repeating the same measures in several chart styles increases review effort without necessarily adding information. Spend the saved time checking filters, definitions, and refresh behaviour.

Is a star schema required for every tiny file?

A single table can be adequate for a very small task. This exercise deliberately separates session descriptions from attendance observations to teach relationships and grain. The important skill is understanding why tables are separated and how they connect. Do not create extra dimensions merely to imitate a diagram without a practical reason.

What should the report readme include?

Document data origin, fictional status, column definitions, relationship keys, measure definitions, refresh steps, and expected totals. Mention the tool version and any sharing limitations. Include the zero-booking test result. A reviewer should be able to check the model and reproduce the numbers without relying only on your screenshots.

Continue your learning

Spreadsheet Skills Roadmap: Clean, Analyse and Present a Small Dataset. Data Visualisation Roadmap: Choose Charts and Explain What They Show.

Sources and further reading