All articles
Field guide

How to document Power BI reports the right way

A complete documentation schema for Power BI reports, from business purpose to measures, models and changes.

Anyone who wants to document Power BI reports has to capture more than the visuals they contain. Good documentation describes why the report exists, who it is built for, which metrics it uses, and which models and refresh cycles it depends on.

This makes the report understandable even for people who did not build it. At the same time, the BI team can assess changes more accurately and keep reused measures consistent.

Start with a short report profile and link from there to the KPI and model definitions you use. That prevents the same calculation logic from being maintained separately in every report document.

What belongs in Power BI report documentation?

Documentation should connect three layers:

  1. Business context: purpose, audience, decisions, and owners
  2. Report structure: pages, visuals, filters, navigation, and usage notes
  3. Technical lineage: measures, semantic models, refresh, sources, and dependencies

When one layer is missing, predictable questions follow. A purely business-oriented fact sheet does not help with a failed refresh. A list of technical measures does not explain which decision the report supports.

The twelve core documentation fields

FieldGuiding question
Report nameWhat is the report clearly called?
PurposeWhich decision or process does it support?
AudienceWho uses the report regularly?
Business ownerWho is responsible for content and priorities?
Technical ownerWho operates the model and the report?
Pages and navigationWhich areas does the report contain?
KPIs and measuresWhich metrics are displayed or calculated?
Filters and securityWhich default filters and access restrictions apply?
Source modelsWhich semantic models is the report based on?
Data currency and refreshUp to when is source data included and how is the model refreshed?
DependenciesWhich sources, tables, and other reports are relevant?
Change historyWhich business-relevant changes have been made?

Add the report URL, workspace, and status right in the profile. A name and a screenshot alone are not enough to reliably tell development, test, and production apart.

Defining report purpose and audience

"Sales Dashboard" is not a purpose. Describe which decisions are made with the report. For example:

The report supports sales leadership and regional managers in the weekly assessment of pipeline, bookings, and target attainment.

The audience shapes the level of detail, timeliness, and permissions. An operational dashboard for account executives needs different filters and refresh times than a monthly report for the executive board.

Also document what the report is not suitable for. This prevents aggregated management figures from being used for operational, case-by-case decisions.

Separating business and technical owner

The business owner decides on KPI selection, definitions, and priorities. The technical owner is responsible for the model, refresh, and troubleshooting.

Both roles can sit with the same person in small teams. Separating the responsibilities is still useful: a technical change must not silently alter a business definition.

Describing pages, visuals, and navigation

A compact page overview is often enough:

PagePurposeKey content
Executive OverviewAssess overall performanceRevenue, target attainment, forecast
PipelineManage sales opportunitiesPipeline value, stages, conversion
RegionsAnalyze differencesKPIs by region and team
DetailsInvestigate individual casesOpportunities and accounts

Only document special navigation, drillthroughs, tooltips, or bookmarks in detail when they matter for interpretation. The goal is orientation, not a pixel-perfect user manual.

Connecting measures and KPI definitions

DAX measures contain calculation logic, but not always an understandable business definition. For every decision-relevant measure, the following should be documented:

  • the standard business name,
  • meaning and scope,
  • formula or DAX expression,
  • unit and time period,
  • owner and status,
  • the tables and fields used,
  • dependencies on other measures.

Technical helper measures can stay documented in the model. They do not all need to appear as business KPIs. This separation keeps a metrics catalog from being overloaded with intermediate calculations.

Filters, time logic, and permissions

Filters change what a report says. At a minimum, record:

  • global and page-specific default filters,
  • the date logic used,
  • excluded test or internal records,
  • currency and region settings,
  • row-level security or other visibility restrictions.

A common mistake is a KPI definition that looks correct on paper while the report applies additional hidden filters. The definition and the actual report context must match.

Filters are not access control. A slicer describes the current selection; row-level security describes which data a role is allowed to see. Document both separately and test with the intended user role. Microsoft explains the distinction in the documentation on row-level security.

Refresh and data currency

Do not just document "daily," but also:

  • the scheduled refresh time,
  • the relevant time zone,
  • the expected source availability,
  • the responsible team,
  • the behavior on failure,
  • a visible indicator of data currency.

Distinguish the source data currency, the last successful model refresh, and the refresh of the visuals. Import models load a stored snapshot of data; DirectQuery reaches the source at query time. A freshly loaded visual therefore does not automatically guarantee current source data. Microsoft describes the technical variants under data refresh in Power BI.

A clear note might read, for example: "ERP data up to yesterday 23:59; model last refreshed today at 06:12, Europe/Berlin." That is more meaningful than "last refreshed today."

Source models and dependencies

Document the semantic model the report accesses, including its workspace and owner. If that model draws on further semantic models or data sources, capture them as upstream dependencies. This keeps the report and the model chain distinguishable.

For impact analysis, several kinds of relationship matter:

  • Report uses measure.
  • Measure depends on another measure.
  • Measure uses table or field.
  • Model sources data from a source.
  • Report replaces or complements another report.

These relationships should be maintained in a structured way rather than as text only. How the model behind it is documented is covered in the guide document data models.

Keeping a useful change history

Not every color change needs a governance entry. Document changes that affect meaning, usage, or results:

  • a new or removed KPI,
  • changed calculation logic,
  • new default filters,
  • an adjustment to time or currency logic,
  • a switch of the source model,
  • a change of owner or status,
  • replacement by another report.

Each entry should include the date, the person responsible, the reason, and the affected elements.

End-to-end example: sales management report

This fictitious example illustrates the scope of documentation, not an existing customer implementation.

Name: Sales Performance & Pipeline

Purpose: Weekly management of bookings, revenue, pipeline, and forecast at company and regional level

Audience: CRO, sales leadership, regional leads

Business owner: VP Sales Operations

Technical owner: BI Sales Team

Pages: Executive Overview, Pipeline, Forecast, Regions, Opportunity Details

Key KPIs: Net revenue, bookings, pipeline value, win rate, forecast accuracy

Default filters: Current fiscal year; internal test accounts excluded; group currency EUR

Source model: Sales Analytics Model

Refresh: Weekdays at 06:00 Europe/Berlin after the CRM replication completes

Dependencies: CRM Opportunity, ERP Sales Order, exchange rate table, and calendar dimension

Last business change: Since July, win rate uses the close date instead of the creation date. The change applies from July onward; earlier monthly figures are not recalculated retroactively in this example.

Acceptance case: two users see different values

Sales leadership sees 120 closed opportunities, a regional manager only 30. Before changing the formula, check the documentation in this order:

  1. Are both using the same production report version and the same model?
  2. Are the time period, date field, and applied filters identical?
  3. Does RLS restrict the regional manager to their region?
  4. Are the data currency and last successful refresh comparable?
  5. Does the visual calculate the rate in the current context, or does it use different measure logic?

The difference may be intentional from a business perspective. Good report documentation lets you explain that clearly before fixing what only looks like an error.

Review checklist

  • Purpose and audience are described concretely.
  • Business and technical owner are named.
  • The page overview and important navigation are up to date.
  • Decision-relevant measures have business KPI definitions.
  • Default filters, time logic, and permissions are visible.
  • Source models, tables, and measure dependencies are linked.
  • Refresh time and behavior on failure are documented.
  • Business-relevant changes are traceable.
  • Outdated reports point to their successor.
  • Documentation and the visible report do not contradict each other.

Common mistakes

Documenting only screenshots

Screenshots go stale quickly and are not searchable. Structured metadata stays usable for search and relationships.

Treating every DAX measure as a KPI

Helper measures have technical meaning but are not automatically business management figures.

Confusing model metadata with complete report documentation

A model import does not provide a full description of report pages, bookmarks, usage context, and business decisions. Add this information deliberately at the report level instead of inferring it from measure names.

Confusing refresh with data currency

A successful report run does not guarantee that all sources were current. Document the expected source availability and the visible data currency.

Keeping report variants without a lifecycle

Mark drafts and outdated reports. A catalog without status makes the search problem worse.

Frequently asked questions

Can MetricsMap inventory Power BI reports automatically?

No. There is currently no automated import of your report inventory. MetricsMap can import .bim metadata from models and provides the foundation of KPIs, data models, and relationships.

Are .pbix files supported?

The MetricsMap import described here uses .bim model metadata and does not parse .pbix files. The documentation schema for the report can be applied manually regardless of that.

Which Power BI content can be imported from .bim?

Tables, columns, relationships, and DAX measures as metadata. Raw data from the model is not stored.

Does every report page need to be documented separately?

A short overview is enough, as long as the purpose and key content are understandable. Detailed descriptions make sense for complex navigation, special filters, or critical workflows.

Conclusion

Power BI documentation connects report purpose, user context, and technical lineage. Start with owners, KPIs, filters, source model, and refresh. Add pages and changes in as much detail as your operations and decisions require.

Related articles

Documenting Power BI Reports | MetricsMap