Forum Discussion
One Semantic model VS Multiple Semantic Models
- 6 months ago
Hi robertozsr ,
This is a very common design question, and there’s no single “always right” answer — it depends on how similar your clients really are.
If all clients share the same business logic, KPIs, and relationships, then a single semantic model with RLS can work well.
However, in your case you mention client-specific rules, metrics, and calculations. Once that happens, a single model usually becomes very complex: lots of conditional DAX, inactive relationships, heavy RLS, and harder performance tuning.
In practice, a separate semantic model per client is often the better choice:
Simpler DAX and relationships
Better performance (smaller, cleaner models)
Easier testing and troubleshooting
Safer changes (one client’s change doesn’t impact others)
Reusability doesn’t have to be lost — it’s best handled at the Gold layer (shared tables) and via model / DAX templates and naming conventions, rather than forcing everything into one model.
For standard dashboards, you can still reuse the same report layout and KPIs by binding the same report template to each client’s semantic model.
In short:
same logic → one model + RLS
different logic → multiple semantic modelsIf this post helps, then please appreciate giving a Kudos or accepting as a Solution to help the other members find it more quickly.
If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!
Hi robertozsr ,
This is a very common design question, and there’s no single “always right” answer — it depends on how similar your clients really are.
If all clients share the same business logic, KPIs, and relationships, then a single semantic model with RLS can work well.
However, in your case you mention client-specific rules, metrics, and calculations. Once that happens, a single model usually becomes very complex: lots of conditional DAX, inactive relationships, heavy RLS, and harder performance tuning.
In practice, a separate semantic model per client is often the better choice:
Simpler DAX and relationships
Better performance (smaller, cleaner models)
Easier testing and troubleshooting
Safer changes (one client’s change doesn’t impact others)
Reusability doesn’t have to be lost — it’s best handled at the Gold layer (shared tables) and via model / DAX templates and naming conventions, rather than forcing everything into one model.
For standard dashboards, you can still reuse the same report layout and KPIs by binding the same report template to each client’s semantic model.
In short:
same logic → one model + RLS
different logic → multiple semantic models
If this post helps, then please appreciate giving a Kudos or accepting as a Solution to help the other members find it more quickly.
If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!
- robertozsr6 months agoHelper II
Hello, thanks for the clear answer.
Can you expand a bit more on this two points:
- Reusability doesn’t have to be lost — it’s best handled at the Gold layer (shared tables) and via model / DAX templates and naming conventions, rather than forcing everything into one model.
I can create a DAX template and reause?
- For standard dashboards, you can still reuse the same report layout and KPIs by binding the same report template to each client’s semantic model.
It is possible to create a standard report, in terms of visuals etc? this means once the first one is created, I just basically have to copy-paste the report and attach to a different semantic model?
thanks!