11/09/2026

Preparing your semantic model for AI

Microsoft Copilot has grown from a demo feature into something people actually use. In Power BI you find it in the Service, in the standalone chat experience, in Teams and in the Desktop application. Business users can now ask questions about your data in plain language, and they expect a proper answer back. 

To make that work well, Microsoft asks you to prepare your data for AI. In practice, this comes down to five things: 

1. A good semantic model and clear naming

A good model has nothing to do with Copilot as such; it is simply the basis of any good report: a proper (star) schema. When your data is unstructured or your model is ambiguous, AI can misread it and give you a generic, inaccurate, or even misleading answer.  

It also means clear, unambiguous names. Columns, tables and measures should be labeled the way a business user would ask for them, not the way a developer happened to type them while building the model. A simple example: rename CustNo to Customer Number. 

2. Descriptions 

Microsoft is clear about this one: write proper sentences that explain what your tables, columns and measures actually mean. You write them in the Properties pane in the Model view. Select any table, column or measure and fill in the Description field. Today, most of us still leave that field empty. Nothing breaks when you skip it and nobody checks it, until a colleague needs it six months later.  

While clean naming is a simple good practice and the description field has been part of the semantic model for years, Microsoft added three features in 2025 specifically to prepare your model further for AI. They are bundled together under one button: ”Prep data for AI”. You can find the button on the Home ribbon in Desktop and on the semantic model page in the Service. Behind it, you’ll find: 

Figure 1. Prep data for AI 

3. The AI data schema 

This lets you choose which part of your model Copilot should focus on. Not every field is meant for a business user: certain keys and technical columns should stay out of sight. You select the clean fields and leave the rest alone.

4. AI instructions 

A text box where you explain your business: your terminology, your business logic, what “revenue” actually means in your company. It’s a field meant to hold everything Copilot needs to know that is not already visible in the model.

5. Verified answers 

An existing visual linked to a set of trigger questions. When someone asks a matching question, Copilot shows the visual instead of building its own answer. You select a visual, choose “Set up a verified answer” and add the phrases you expect people to type. 

But look at what this all asks from a report developer. Renaming tables, columns and measures and writing descriptions (short ones, as Copilot only reads the first 200 characters) for all of them: a modest model already has a few hundred of those. Add questions on visuals to set up verified answers and capture your company’s business logic in a few paragraphs for the AI instructions.  

That is a lot of writing and it takes a lot of time. On top of that a report developer is used to thinking in models, relationships and DAX, not to spending hours rephrasing the same idea until a language model recognizes it. 

Copilot in Power BI does help here, to some extent. It can draft a measure description for you, so you review a proposal instead of staring at an empty box. When you set up a verified answer, it suggests trigger phrases. Both genuinely save time, but the work stays one item at a time. And the naming of your tables and columns is still your job. This is exactly the kind of work that gets postponed until after a deadline or never happens at all. 

Figure 2. The description field in Power BI 

AI to the rescue?  

Power BI Modeling MCP server 

A potential solution arrived in November 2025, when Microsoft introduced the Power BI Modeling MCP server. The server connects your Power BI model, in Desktop or in the Service, to an AI agent such as GitHub Copilot or Claude. Once connected, the agent can read, create and update tables, columns, measures and relationships in plain language. It can run bulk operations across hundreds of objects in one go and validate DAX on its own. 

Figure 3. The MCP Server workflow 

Give it a prompt like:  

“Analyze my model’s naming conventions and suggest renames that are consistent, business-friendly and easy for AI tools like Copilot to understand and query. Add descriptions (in less than 200 characters) to all measures, columns and tables to clearly explain their purpose and explain the logic behind the DAX code in simple, understandable terms” 

and a couple of minutes later, your model has clean, consistent names and full descriptions throughout. It is genuinely impressive, especially for this kind of administrative work that nobody enjoys doing by hand.  

There are a couple of problems though: with the standard setup (the setup requires some extra configuration on your machine), some of your model’s metadata, or even data, leaves Microsoft’s boundary and goes to the AI provider, under that provider’s terms. For many companies, that boundary cannot be crossed.  

There is also a limit on what it can actually touch. The server can access tables, columns, measures, relationships and their properties (the tabular model layer). The AI data schema, the AI instructions box and verified answers – the three settings behind prep data for AI – are simply not part of this toolkit. They live in the same semantic model, but nothing in the server can open that door.  

Copilot for web modeling 

The second route arrived recently. Announced at Microsoft Build 2026 and rolled out in preview from June, Copilot for web modeling is an assistant built into the semantic model editing experience in the Power BI Service (not in Desktop). It covers much of the same ground as the MCP server, from inside a chat pane: add descriptions to every measure, rename columns consistently, improve relationships.  

Figure 4. Copilot for web modeling 

What makes it different is not what it can do, but where your data stays. Where the MCP route sends your metadata to whichever agent you configured, web modeling runs under the Copilot tenant setting your administrator already controls, inside Microsoft’s own boundary. But just like the MCP server, it stops at the same point: it does not tick the AI data schema boxes for you, and it does not set up verified answers or an AI instruction either. It is, however, user-friendly and it needs no extra tools outside your normal Power BI and Copilot setup.  

Power BI authoring skills 

At the same time as Copilot for web modeling, the Power BI authoring skills were released. They come bundled with the Modeling MCP server discussed above, but they give an AI agent extra guidance on how to use the server well and how to act on Power BI’s project files. 

The main difference is this: the MCP server only works on the semantic model, so on tables, columns, measures, relationships. The skill can also work on the report side, meaning it can adapt the report definition files. For this you need an AI coding agent such as GitHub Copilot or Claude Code, and you need to save your Power BI report as a project, in PBIP, not PBIX format.  

With these skills, the MCP server and the Power BI Desktop bridge that is included (a small local connection that lets the agent reload the report and take a screenshot of what it just built), it is possible to build a full Power BI report almost by itself: the model, the DAX, and the report pages, with only occasional input from you.  

Now, can this package set up verified answers, edit the data schema and add AI instructions, the things that were missing from the MCP server and Copilot for web modeling? These settings are saved inside the PBIP project the code editor has access to, so you would think it must be possible. And technically it can, but the skill’s own instructions explicitly tell it not to touch these files and to ask the user to configure them manually. For these attributes, there is a risk of having desynchronization between your live model and the files, but setting these up well also requires business knowledge that lives in people’s heads and it’s not always something an AI agent can pull from the code. 

So we have reached a point where AI can help with the naming and the descriptions, but setting up verified answers, AI instructions and cleaning up the AI data schema is still left to a human.  

What if one layer contradicts another? 

You copy a description from one measure to the next and forget to update the number. You set a verified answer on the visual you happened to have open, not the one you meant. You write an AI instruction that points to a measure which gets renamed two weeks later. None of this throws an error. The model refreshes, the report gets published and everything looks fine.  

So, which one has the most weight? Does Copilot follow the measure name, or does the description take priority? Does a verified answer beat an AI instruction, or is it the other way around? Let’s do a test to find out. 

The setup 

My model is a fictional banking model with four measures, made confusing on purpose:  

  • Cards with at least 2 transactions over €10 
  • Cards with at least 3 transactions over €10 
  • Cards with at least 4 transactions over €10 
  • Cards with at least 5 transactions over €10 

I always ask Copilot the same question: “What is the number of cards with 2 or more transactions greater than 10 euros?”. Based on the measure names alone, the answer should come from the ‘Cards with at least 2 transactions’ measure. 

On three of the four measures, I made a mistake on purpose, the same kind described above: 

  • On the “at least 3 transactions” measure, a copy-pasted description: “Number of distinct physical cards with 2 or more transactions greater than €10” 
  • On the “at least 4 transactions” measure, a verified answer with the trigger phrase: “How many cards had 2 or more transactions of at least 10 euros” 
  • And in the AI instructions I add the text: “When asked for cards with 2 or more transactions higher than 10 euros, refer to the measure Cards with at least 5 transactions over €10” 
Figure 5. Setup of the test 

So now all four measures have a claim on the answer:  

  • The name of the measure points to 2+ 
  • The description points to the 3+ measure 
  • The verified answer to the 4+ measure 
  • The AI instruction to the 5+ measure 

Which one does Copilot actually pick?  

The result 

With this setup, and asking Copilot: “What is the number of cards with 2 or more transactions greater than 10 euros?”, the verified answer “wins”, so the verified answer outweighs all others and gives us the “wrong” answer.

Figure 6. Result with a Verified answer configured 

I removed the verified answer and asked Copilot once more for the number of cards with 2 or more transactions over 10 euros. This time I got the result for the 5+ measure: with no verified answer configured, the AI instructions take over. 

I removed that (the instruction) too. Only then did Copilot land on the correct result, the 2+ measure, based on the name.  

The wrong description on the 3+ measure never won anything; it did not manage to pull Copilot away from the name, not even once.  

And on its own, a description does not seem to carry much weight at all. I gave one measure the description “this measure shows how many apples were sold” and asked Copilot about apples. It told me it could not find anything about products or fruit in the model, and listed what it did see instead: banking products, cars, … the description simply was not something Copilot seemed to hold on to.  

Takeaway 

If there is one thing to take away from all this, it is to be very aware of the power of the verified answers and AI instructions. The test above showed it: a good name and a good model are worth the time you put into them, but a verified answer or an AI instruction, once set, can simply overrule them. A wrong trigger phrase or a wrong line in your AI instructions does not just weaken your careful naming; it pushes it aside completely.  

So set these two up last, test them properly against real questions, and keep track of what you configured. And don’t forget to adapt them if anything changes. 

As for which tool to use to get there: for now, Copilot for web modeling seems to be the safest and most accessible option. Nothing to install, it stays inside Microsoft’s own boundary, and it already covers most of the everyday prep work, from a chat pane. The MCP server and the upgraded version with the Power BI authoring skills show how the future will look, but for the regular job of getting a model ready for Copilot, web modeling gets you there with the least effort and the least risk. 

Written By

Jurgen Secq

Consultant @ Lytix