How to generate a Data Dictionary with Copilot in Power BI
We will create a Data Dictionary that documents columns, examples and whether there are null values, and we will use Copilot in Power BI to turn those metadata into readable descriptions. A Data Dictionary makes the model easier to understand for others and improves report quality.
Prerequisites
- Updated Power BI Desktop (or access to the Power BI service)
- Access to Copilot in Power BI (organizational account with Copilot enabled)
- Report with at least one table named Sales (or adapt the name in the step)
Step 1: Create a Data Dictionary query in Power Query
Let’s create a new query that iterates the columns of a table (e.g. Sales) and generates the column name, a sample value and a nulls indicator. This set is the basis of the Data Dictionary.
let
Source = Sales,
ColNames = Table.ColumnNames(Source),
Build = List.Transform(ColNames, (c) =>
[ Name = c,
Sample = try List.First(List.RemoveNulls(Table.Column(Source,c))) otherwise null,
HasNulls = List.Contains(Table.Column(Source,c), null)
]),
Result = Table.FromRecords(Build)
in
Result
How to apply: in Power BI Desktop choose Transform data, then Home > New Source > Blank Query. Open the Advanced Editor and paste the code. If the table is not called Sales, replace it with your table name (for example Customers).
Step 2: Refine descriptions with Copilot in Power BI
Now that you have a metadata table, export it to a report page (create a table visual with Name, Sample, HasNulls) and invoke Copilot in the report pane. Ask Copilot to generate short descriptions per column using the name and the sample.
Example prompt for Copilot:
Generate short descriptions (1-2 sentences) for each column using Name and Sample. Indicate if HasNulls is relevant. Return a table with Column and Description.
Copilot will analyze the names and samples and return suggested descriptions. Review each description to ensure accuracy (especially for abbreviations and codes).
Step 3: Incorporate the descriptions into the Power BI model
There are two simple ways to add the descriptions to the model:
- Manual: in Power BI Desktop open Model view, select a column and paste the description into the Description field in the properties pane.
- Document on the report page itself: keep the Data Dictionary table on a documentation page of the report so users can consult it without changing the model.
For larger teams, you can export the Data Dictionary table to CSV (Home > Export data) and share it with the modeling team so they can update properties in bulk using Tabular Editor (separate workflow).
Step 4: Automate and keep it up to date
Configure the Data Dictionary query to refresh automatically with the rest of the model: in the Power BI Service publish the report and enable dataset refresh scheduling. That way, the metadata table reflects column and value changes.
If columns change frequently, include a Version or LastUpdated column in the Data Dictionary table to record the last refresh execution date for historical tracking.
Verify the result
To confirm everything is correct:
- Open the documentation page and check that the table shows names, samples and HasNulls consistent with the current data.
- If you copied the descriptions into the model, verify in Model view that the Description properties appear when selecting columns.
- Ask Copilot for a summarized list: for example, ask "Show the 5 most important columns with their descriptions" and confirm whether the generated descriptions match what you copied.
Conclusion
With this process you get a useful and easy-to-maintain Data Dictionary that improves model understanding and accelerates onboarding. Next steps: automate export to CSV and integrate human review into the development cycle. Tip: start by generating descriptions for the 10 most critical columns and validate with the team before documenting everything — which is the first table you will document?