How would you structure Power BI workspaces and promotion for a shared semantic model used by many teams?
answer
- separate who owns numbers from who owns pages
- teams need a way in that is not a copy
- a label that makes the right model findable
- promotion should look like software release
- the slow queue is what causes forking
basics
~20 sSeparate the governed semantic model into its own workspace with tight write access and Build permission for analysts, keep team reports in their own workspaces live-connected to it, promote changes through dev/test/prod stages, and endorse the model so people find the right one.
solid answer
~50 sDraw the boundary between **who owns the numbers** and **who owns the pages**. The semantic model lives in its own workspace where only a small platform or BI team can write; consuming teams get **Build** permission on it and author reports in their *own* workspaces, live-connected. That gives one definition of each measure, one refresh, one RLS implementation, and it lets teams self-serve without forking the model. Promote the model through **dev → test → prod** workspaces — deployment pipelines where the capacity supports them, otherwise a disciplined publish path — with source control on the model definition. **Endorse** the production model as Promoted or Certified so discovery pushes people to it instead of a copy. Consumers see **apps**, not workspaces. And put a change process around measure semantics: a model many teams depend on cannot be edited casually.
code
text · 13 linesWS: Core Model [DEV] -- model only, params -> warehouse dev
WS: Core Model [TEST] -- model only, params -> warehouse test
WS: Core Model [PROD] -- model only, params -> warehouse prod
write: BI platform team
Build: grp-analysts-sales, grp-analysts-ops
endorsement: Certified
RLS roles -> assigned to security groups
WS: Sales Reports -- live-connected reports, owned by sales analysts
WS: Ops Reports -- live-connected reports, owned by ops analysts
App "Sales" <- published from WS: Sales Reports, audiences for leadership / managers
App "Ops" <- published from WS: Ops Reportsgo deeper
Be ready to say why many copies of one model is a problem — duplicate refreshes, drifting measures — even if you have not designed a tenant.
Explain the mechanics you would use: Build permission, live-connected reports, parameterised sources across dev/test/prod, endorsement, apps for consumers.
Show you can operate it: promotion process, source control on the model, RLS on groups, access reviews, and diagnosing why teams forked in the first place.
Own the tradeoff itself — central control against team throughput, capacity separation and its cost, where metric definitions belong relative to the warehouse, and the change process for semantics everyone depends on.
## The failure this design prevents The default trajectory of a Power BI tenant is one workspace per report, each with its own imported semantic model, each refreshing the same warehouse tables, each with its own version of "Net Revenue". Within a year nobody can answer a number without asking whose report it came from, refresh windows collide on the source, and a fix to a measure must be applied in eleven places. Every element of the structure below exists to prevent that outcome. ## Separate the model from the reports The central decision is to make the semantic model a **product with an owner**, published in a workspace whose Admin/Member/Contributor list is deliberately small — the BI platform team or the domain's data owners. Consuming teams do not get write access to it. What they get is **Build** permission on the model, granted to groups rather than individuals, which lets them create live-connected reports in *their own* workspaces, and use Analyze in Excel. The payoff: one refresh schedule and one gateway binding instead of N; one RLS implementation to review; one place where a measure's definition lives, so a fix propagates instantly to every report over it. The cost you must acknowledge honestly is throughput — teams now wait on the model owner for a new measure or a new table, and if that queue is slow they will fork. So the operating model has to include a fast, low-ceremony path for adding measures, and a tolerated escape hatch (report-level measures, or composite models where the platform genuinely can't keep up), rather than pretending nobody will ever need something you haven't built. ## Environments and promotion Treat the model like code. Maintain **dev**, **test** and **prod** workspaces with the same items, where the model's data source is parameterised so each stage points at the corresponding warehouse environment. **Deployment pipelines** automate that promotion with rules that swap connection parameters between stages; the feature is gated on the workspace's capacity, and capacity tiers have been restructured repeatedly, so confirm availability before designing around it rather than quoting a SKU. Where pipelines are not available, the fallback is a controlled publish from a version-controlled artifact — never a hand-edited production model. That implies source control. Model definitions should live in a repository (Git integration for workspaces, or an external-tools workflow that serialises the model), so changes are reviewed, diffed and revertible. "Who changed this measure and why" must have an answer that is not someone's memory. ## Discovery and trust signals A governed model that people cannot find loses to a copy that they can. **Endorsement** is the lever: mark the production model **Promoted** by its owning team, and **Certified** once it has passed whatever review your tenant defines — certification is normally restricted to a designated group precisely so the label means something. Pair it with naming conventions and, at scale, a catalogue view so the first search result is the right model. ## Distribution to consumers Consumers should never see a workspace. Reports are packaged into **apps** with audiences, so the group that reads the executive summary and the group that reads the operational detail get different content from one distribution point, and access is one auditable list per audience. Workspace roles stay for authors. ## Security Row-level security is defined once, on the shared model, and role membership is assigned to security groups rather than individuals. This is a strong argument for the shared-model shape: RLS implemented eleven times is RLS implemented wrong at least once. Include RLS role assignment in your access-review cycle, and test roles explicitly — a model with roles defined but nobody assigned filters nothing. ## Capacity and noisy neighbours Refresh of a large model and interactive querying compete for the same capacity resources. Decide deliberately whether the shared model's workspace sits on capacity separate from volatile self-service workloads, so an analyst's runaway model cannot slow the executive report. That is a cost decision as much as a technical one and is exactly the kind of tradeoff a principal is expected to own and to justify with measured utilisation rather than instinct. ## Governing the metric definitions themselves The hardest part is not topology, it is semantics. Changing what "active customer" means changes every report at once — which is the benefit *and* the risk of a single model. Put a lightweight change process around measure semantics: a named owner, a review for changes with business meaning, a changelog visible to consumers, and a deprecation path for measures being replaced. Also decide where a metric *should* be defined: if the definition is used by more than the BI tool — by notebooks, by an application, by a second BI tool — it probably belongs upstream in the warehouse or a semantic layer, with the model consuming it rather than owning it. ## The answer that lands "Model in its own workspace with a small write list and Build for analysts; team reports live-connected in team workspaces; dev/test/prod with parameterised sources and pipelines where capacity allows; the model definition in source control; certified endorsement so discovery favours it; apps with audiences for consumers; RLS once, on groups; capacity separation between the governed model and self-service. Then the real work: an owner and a change process for the measure definitions, and a fast path for new requests so teams don't fork the model to get unblocked."
- What is the main cost of centralising the semantic model, and how do you mitigate it?Throughput. Teams now wait on the model owner for every new measure or table, and a slow queue produces exactly the forked copies you were preventing. Mitigate with a low-ceremony intake and short turnaround, report-level measures for genuinely local calculations, clear ownership per domain rather than one bottleneck team, and a tolerated composite-model escape hatch when the central roadmap cannot keep up.
- When should a metric be defined upstream in the warehouse instead of in the Power BI model?When more than the BI tool consumes it. If notebooks, an application, a second BI tool or an exported feed all need 'active customer', defining it in one vendor's model guarantees drift. Push it into the warehouse or a semantic layer and let the model consume it. Keep in the model only what is genuinely presentation-shaped or depends on evaluation context.
- How does endorsement actually change behaviour?It changes what people find. Certified and Promoted models surface preferentially in discovery surfaces, and certification is normally restricted to a designated group so the label carries weight. Without it, a governed model competes on equal footing with every stale copy in the tenant, and the copy usually wins because someone shared its link first.
- Would you put the shared model's workspace on separate capacity from self-service workspaces?Usually yes, once the tenant is large enough that self-service workloads are unpredictable. Refresh and interactive queries contend for the same resources, so an analyst's runaway model can degrade the executive report. Justify the split with measured utilisation rather than instinct, since it is a real cost, and revisit as workloads change.
saying these in an interview costs you the question
- Gives every team write access to the shared model
- Solves discovery by naming conventions alone, no endorsement
- Ignores the request queue that drives teams to fork the model
- Treats promotion as republishing a file by hand into production
- Says centralisation removes the need for a metric change process