Power BI

The Semantic Model is the New AI Contract

Why the quality of AI in Analytics will depend on the quality of the semantic layer.

In a scenario any BI team would recognise, Copilot answers a business question with full confidence and returns a number that is wrong. Not slightly wrong. Wrong by a factor of three.

The data is fine. The DAX behind the visual is fine. The problem is the model. There are two measures, Revenue and Total Revenue, one of them quietly filtered to a single business unit. Neither has a description. A bidirectional relationship is fanning the total three joins away. Copilot never had a chance. It read the model exactly as it was written, and the model, though technically valid, was misrepresenting the business.

That is the shift worth paying attention to. AI doesn’t just need data. It needs meaning. And in Power BI, meaning lives in the semantic model.

The role of the model just changed

For years we treated the semantic model as the foundation of the reports. Build it once, put clean visuals on top, ship the dashboard. The model was plumbing. Important plumbing, but plumbing.

In the AI era that role changes. The semantic model stops being just the base of your reports and becomes the contract between the business, the data, the reports, Copilot and the agents. Everything that asks a question of your data now reads that contract first.

And here is the uncomfortable part. A human analyst can work around a bad model. They know Revenue is the one Finance trusts and Total Revenue is the old one nobody deleted. They carry that context in their head and quietly correct for it. Copilot and an agent have only what the model tells them. Every shortcut you left in, every undocumented measure, every ambiguous name, becomes an instruction the machine follows literally.

What changes when an agent enters the equation

Until recently the main consumer of your model was a controlled report. You decided the visuals, the filters and the wording. The model only ever answered the questions you had already designed.

That is no longer true. The model is now read by Copilot in Power BI, by Fabric data agents, by the Power BI MCP servers and by custom agents built on top of them. When a Fabric data agent receives a question, it rephrases it, then picks the source it judges most relevant, a semantic model, a lakehouse, a warehouse, a KQL database, an ontology or an Azure AI Search index, and queries that source. Your model is one candidate among several, competing to be understood.

That is why semantic quality suddenly became critical. You are no longer writing for one report you control. You are writing for a set of agents that will interpret the model on their own, decide whether to use it, and answer real people based on what they find.

Where the meaning actually lives

If the model is the contract, these are its clauses. Each one is now AI-facing, not just developer-facing.

Measure names and a single source of truth. Three measures for one number was always a smell. Now it is an ambiguity the AI has to guess its way through, and it will guess wrong in front of someone who matters.

Descriptions, synonyms and Prep data for AI. For years this metadata felt optional. Now it is interpretation instruction. The AI uses names, descriptions, synonyms, the AI data schemas and AI instructions you set in Prep data for AI, and the model context, to map a human question to the right metric. “Margin”, “gross margin” and “GM” pointing at the same measure is no longer a nicety. It is how a question reaches the right calculation instead of a plausible wrong one.

Relationships and cardinality. A stray bidirectional filter or a fan trap used to produce one wrong visual that a developer eventually caught. Now it is a hallucination engine: the AI inherits the wrong total and presents it with perfect, traceable confidence.

Hierarchies and a marked date table. Time intelligence and drilldowns are how an agent reasons about “last quarter versus the same quarter last year”. If the date table isn’t marked and the hierarchy isn’t clean, the AI improvises.

RLS, CLS/OLS and permissions. Security is part of the contract too. When a Fabric data agent answers through Copilot, it enforces the model’s security based on the user’s permissions, so the model has to actually define who can see what. Get it wrong and an agent will happily surface a number the person asking was never allowed to see.

Hidden technical columns. If a surrogate key or a helper column is visible in the model, the AI may use it. Anything not meant to be queried should be hidden, or it becomes part of the contract by accident.

Two questions an unprepared model gets wrong

The risk is easier to feel with concrete questions.

“What was revenue last quarter?” The model has Gross Sales, Net Sales and Total Revenue, none of them with a description. The AI picks a plausible measure. It may not be the one Finance reports. The answer looks right, lands in a meeting, and quietly contradicts the official number.

“Who are our active customers?” The definition of “active customer” is hardcoded inside an old measure that no longer matches how the business defines it today. The AI returns an answer that is perfectly consistent with the model and wrong for the business. Nobody notices, because it is consistent.

Neither of these is a model that crashes. Both are models that answer confidently and wrongly. That is the failure mode AI introduces: not errors that break, errors that sound right.

A clean model is necessary, not sufficient

This is where I have to be careful, because it would be easy to sell the semantic model as the thing that makes AI trustworthy. It isn’t, on its own.

If your model encodes the wrong business definition of “active customer”, the AI will defend that wrong definition with perfect confidence and full lineage. The model makes the AI consistent. It does not make it correct. And consistency on top of a wrong definition just scales the error faster and further than a human ever could.

That part doesn’t transfer to the model. The consultant still owns whether the definitions baked into the model actually match the business. The AI reads the contract. It doesn’t check whether the contract is fair.

How to start preparing your models now

You don’t need to wait for the next Copilot release to act. The work that makes a model AI-ready is mostly the work that already makes it good, just taken seriously.

  1. Collapse duplicate measures into one canonical version and keep a rename map for the rest.
  2. Write a description for every measure and every key column. Treat each one as a prompt the AI will read.
  3. Configure Prep data for AI: set the AI data schemas, AI instructions and synonyms so questions map to the right tables and measures.
  4. Audit your relationships. Remove bidirectional filters that don’t earn their place, and hunt down fan traps.
  5. Mark your date table and build clean, intentional hierarchies.
  6. Get RLS, CLS/OLS and permissions right, then test them as the AI’s boundary, because that is what they are.
  7. Hide everything technical that isn’t meant to be queried.

This is also where an agent earns its place on the other side of the table. With the local Power BI MCP server, the modeling-focused one that works over TMDL and Power BI Project files, I can ask an agent to inspect the model, find the duplicate measures, the empty descriptions, the suspect relationships and the modelling problems, and then decide myself what to accept, fix or reject. The same kind of AI that will eventually consume the model is very good at helping you get the model ready for it.

The next phase

The next phase of Power BI won’t only be about building better reports. It’ll be about building semantic models that humans, teams and agents can use with confidence. The teams that win the AI era won’t be the ones with the prettiest dashboards. They’ll be the ones whose models tell the truth clearly enough that a machine can read it without a human in the room to translate.

The semantic model stops being just a technical layer.

It becomes a contract of trust. And the AI will hold you to exactly what the model says, not to what you meant.

Useful references