Compare an internal Fabric build and managed BI by the responsibilities each option covers. Licence prices alone do not tell you who will reconcile data, maintain pipelines, review access or repair a failed report before the next board meeting.
Start with the outcome and the operating model
An internal team can be the right choice when the organisation has suitable skills, enough demand and a clear owner for ongoing delivery. A managed service can be useful when specialist work is intermittent, the team needs help establishing a foundation or the business wants an agreed service scope.
Neither option removes the need for business ownership. Somebody in the organisation must approve what revenue means, decide who may see sensitive information and prioritise changes. Outsourcing technical work does not outsource those decisions.
List the work that continues after launch
- Connections: source authentication, API changes, schema changes and failed extracts.
- Preparation: data quality checks, transformations and reconciliation.
- Models and reports: business definitions, access rules, performance and new requirements.
- Operations: monitoring, incident handling, release discipline and documentation.
- Adoption: user support, training and feedback about decisions the reports do not yet support.
For each responsibility, name an accountable person, the required skills and the expected response. An agreement that says only 'dashboard support' leaves too much open to interpretation.
Model capacity and demand together
Microsoft explains that Direct Lake behaviour depends in part on capacity, memory and workload conditions. Its Direct Lake overview recommends evaluating suitability and limitations. A capacity choice should therefore reflect the workload and concurrency, rather than a small demonstration running in isolation.
Use a representative reporting period. Include ingestion, preparation, interactive use and any modelling or machine learning jobs that share resources. Distinguish an estimate from measured consumption. Ask how the design will respond when data volume or the number of users grows.
Compare complete scopes on the same basis
Make a simple responsibility table for the internal and managed options. Include engineering time, platform subscriptions, hosting or capacity, implementation, support and change requests. Record what is excluded. Use the same reporting scope, service hours and ownership assumptions for both columns.




