How to prepare your data model for Copilot in Power BI
A well-prepared data model is the key to getting useful answers from Copilot in Power BI. When your tables have clear names, descriptions and correct relationships, Copilot can generate far more accurate summaries, DAX measures and report pages — because it "understands" the meaning of your data. This guide shows, step by step, how to prepare your data model for Copilot in Power BI, even if you are just starting out.
Prerequisites
- An up-to-date Power BI Desktop (or access to the Power BI Service).
- Access to Copilot in Power BI, which requires a Fabric or Power BI Premium capacity.
- A report with a semantic model that has at least one fact table and one date table.
- Permission to edit the model (Model view).
Step 1: Give tables and columns clear names
Copilot "reads" the names of the model objects to understand what they represent. Technical names such as fct_sales or col_amt mean nothing to it and lead to confusing answers. In Model view, double-click each table and column and use business names: Sales, Amount, Order Date. Avoid abbreviations, technical prefixes and code-style names. This is the simplest change with the biggest immediate impact.
Step 2: Add descriptions to tables and measures
Descriptions are the most direct way to "teach" Copilot. Select a measure in the Data pane, open the Properties pane and write a short description that explains the calculation in business language. For example, for this measure:
Total de Vendas = SUM('Vendas'[Montante])
write the description: "Sum of the amount of all sales, in euros, excluding taxes". Do the same for your most important tables and columns. The clearer and more specific the text, the better Copilot's summaries and suggestions will be — it really does use these descriptions as context.
Step 3: Mark the date table
For Copilot to compare periods (for example, "this year's sales versus last year"), the model needs a properly marked date table. If you don't have one yet, you can quickly create it with DAX:
Calendário = CALENDAR(DATE(2023,1,1), DATE(2026,12,31))
Create a relationship between this table's date column and your fact table. Then select the table, choose Mark as date table and point to the date column. This enables the time intelligence that Copilot uses to calculate trends and variations.
Step 4: Hide technical columns and set synonyms
Hide the columns the end user doesn't care about — keys, identifiers and helper columns. Right-click each one and choose Hide in report view. This way Copilot focuses only on the relevant fields and avoids suggesting something based on an internal ID. Next, use the Q&A area to add synonyms: if people say "revenue" instead of "Total Sales", register that term so Copilot and Q&A recognise it.
Step 5: Review the model relationships
Copilot combines tables by following the relationships in the model. In Model view, confirm that each fact table is linked to its dimensions by the correct key and that the filter direction makes sense. Missing or wrong relationships produce inconsistent numbers — and Copilot will simply repeat that mistake.
Step 6: Test with a Copilot request
Open the Copilot pane and make a simple request, such as "Summarise sales by region and highlight the main trend". Check that Copilot uses the names and measures you defined. If the answer uses odd names or gets a calculation wrong, go back to the relevant step and improve the name, the description or the relationship.
Check the result
The model is well prepared when: every visible field has a business name, the main measures have descriptions, there is a marked date table and the relationships are correct. A good final test is to ask Copilot "Create a report page about sales" and confirm that the visuals use the right measures, without inventing fields.
Conclusion
Preparing the model is a small investment that multiplies the quality of everything Copilot produces in Power BI — from summaries to entire report pages. Start with the most used tables, add descriptions and keep refining based on the answers you get. Which measure in your model deserves a good description first?