Skip to content

PL-300 Study Plan

Six weeks at 6-8 hours per week. Every week is built around Power BI Desktop, which is free. Use a sample dataset you find interesting; motivation matters more than which dataset.

Week 1: Getting data in

  • Read the PL-300 study guide
  • Connect to files, folders, a database, SharePoint, and the web
  • Storage modes: Import, DirectQuery, Dual, Direct Lake, and their trade-offs
  • Data profiling: column quality, distribution, profile
  • Core Power Query transformations: filter, group by, pivot, unpivot, split, merge, append
  • Handling errors, nulls, and type mismatches
  • Build: import a messy CSV and clean it entirely in Power Query, no manual edits
  • Review Notes: notes/01-prepare-the-data.md

Week 2: Query folding, parameters, refresh

  • Query folding: what folds, how to check with View Native Query, and which steps break it
  • Parameters and custom functions
  • Incremental refresh: RangeStart and RangeEnd, partitioning, and prerequisites
  • Dataflows Gen1 and Gen2, and when to centralize preparation
  • On-premises data gateway: standard versus personal
  • Build: a parameterized query and a function applied across a folder of files

Week 3: Modeling

  • Star schema: facts, dimensions, and why flat tables fail
  • Split a flat table into a star schema by hand
  • Relationships: cardinality, cross-filter direction, active versus inactive
  • Why bidirectional filtering is usually the wrong answer
  • Role-playing dimensions and USERELATIONSHIP
  • Create a date table and mark it as a date table
  • Hierarchies, display folders, field parameters
  • Build: convert a flat table into a star schema with a working date dimension
  • Review Notes: notes/02-model-the-data.md

Week 4: DAX

  • Calculated column versus measure versus calculated table, and the storage consequence
  • Row context and filter context, and how they interact
  • CALCULATE: filter modifiers, ALL, ALLEXCEPT, KEEPFILTERS, REMOVEFILTERS
  • Iterators: SUMX, AVERAGEX, and when an aggregation is not enough
  • Time intelligence: TOTALYTD, SAMEPERIODLASTYEAR, DATEADD, DATESYTD
  • Variables for readability and to avoid repeated evaluation
  • Calculation groups
  • Build: five measures of increasing complexity, each rewritten with variables
  • Practice reading a measure and predicting its result before running it

Week 5: Visualization and analysis

  • Visual selection: which chart answers which question
  • Filters: visual, page, report, and the filter pane
  • Slicers and sync slicers
  • Drillthrough, drilldown, tooltips, and report page tooltips
  • Bookmarks, selection pane, and buttons
  • AI visuals: key influencers, decomposition tree, smart narrative, Q&A, anomaly detection
  • Accessibility: alt text, tab order, contrast
  • Performance Analyzer and reading its output
  • Build: a three-page report with drillthrough, a bookmark-driven view toggle, and a report page tooltip
  • Review Notes: notes/03-visualize-and-analyze.md

Week 6: Service, security, and review

  • Workspace roles and what each can do
  • Apps, audiences, and how app access differs from workspace access
  • Sharing methods and their security implications
  • Scheduled refresh, gateway binding, credentials, and diagnosing refresh failures
  • Row-level security: static and dynamic, USERPRINCIPALNAME, View As testing
  • Sensitivity labels on Power BI content
  • Deployment pipelines and rules
  • Endorsement: promoted versus certified
  • Build: a dynamic RLS role, tested with View As, then published and tested as a real viewer
  • Review Notes: notes/04-manage-and-secure.md
  • Work every scenario in scenarios.md
  • Two full timed practice exams

Readiness check

  • Explain when DirectQuery is required and what it costs you
  • Explain query folding and name three steps that break it
  • Draw a star schema for a given business process
  • Explain the difference between a calculated column and a measure, including storage impact
  • Predict the result of a CALCULATE expression with an ALL modifier
  • Explain why time intelligence needs a marked date table
  • Write a dynamic RLS expression and describe how to test it
  • Name the workspace role that can publish an app