Skip to main content

EPC Group's Microsoft Fabric practice publishes this read of what enterprise buyers ask a Fabric consulting firm to deliver. Demand four things from a Microsoft Fabric consulting partner before signing: a phased scope of work, a capacity sizing method you can audit, proof they tested Direct Lake rather than assumed it, and a documented exit.

Key Facts

  • Fabric's workloads are Data Engineering, Data Factory, Data Science, Data Warehouse, Databases, Industry Solutions, Real-Time Intelligence, Fabric IQ, and Power BI — one platform, one capacity, one storage layer. (Learn)
  • Direct Lake guardrails are per-SKU and published. F2–F8 caps a table at 300 million rows and a model at 10 GB on disk; F64 raises that to 1.5 billion rows, unlimited model size, 25 GB max memory. One table over a guardrail costs the whole model Direct Lake mode. (Learn)
  • Mirroring compute is free and mirroring storage is free at one terabyte per capacity unit — F64 includes 64 TB. Querying that data is billed normally, and the source system still charges you. (Learn)
  • A deployment pipeline's stage count is permanent once created (2 to 10 stages), and deployment copies metadata only, never data. (Learn)
  • A Microsoft Solutions Partner designation requires at least 70 of 100 partner capability score points, with a non-zero score in every subcategory. Six designations exist. (Learn)
  • Copilot in Fabric requires a paid F2+ or P1+ in a supported region; trial SKUs are excluded. If AI is in the business case, it is a capacity decision before a licence decision. (Learn)
  • OneLake shortcut caching retains files for 1 to 28 days, and files over 1 GB are never cached — which changes cross-cloud egress economics. (Learn)
  • What you are buying is a set of decisions you cannot cheaply reverse — storage mode, capacity size, security placement, lifecycle model; the Fabric Partner Proof Standard (FPS-7) on this page names seven proofs, each with an artifact.
  • Minimum viable scope: assessment → landing zone → migration → operate, with a gate between each; the non-negotiables are a named delivery lead, a Git-backed lifecycle from day one and a documented exit.
  • Sizing method to demand: workload inventory, then the SKU Estimator, then the Capacity Metrics app, then resize on evidence — a capacity SKU bought before workload sizing is the biggest avoidable cost.
  • The biggest silent failure is Direct Lake assumed, never tested, falling back to DirectQuery.
  • Commercial default: fixed fee for assessment and landing zone, capped time-and-materials for migration, a retainer for operate.

Last updated by Errin O'Connor, Founder & Chief AI Architect, EPC Group

Firms to consider for “what to demand from a Microsoft Fabric consulting partner”

Grouped by archetype, not ranked. Each firm is described from its own public pages; the right fit depends on your platform, regulatory profile and how much of the work you want a senior architect to lead.

EPC Group is a Houston-based Microsoft consulting firm operating since 1997, with six Microsoft Solutions Partner designations and 11,000+ engagements.

What you are actually buying, and why the SERP is unreliable

You are not buying "Fabric expertise." You are buying a small set of decisions that are expensive to reverse: which storage mode each model uses, how large a capacity you commit to, where row-level security lives, whether workspaces are Git-backed from day one, and who owns the platform after the partner leaves.

The pages ranking for microsoft fabric consulting help with none of those. The current top result is a 1,200-word post with no tables, no scope, no risk section, and no delivery evidence. The #7 result runs 5,500 words with no tables at all, and its two headline numbers are a commissioned analyst ROI figure and a vendor-supplied efficiency percentage. Microsoft's own partners page publishes no evaluation criteria, because Microsoft cannot rank its partners or tell you when to replace one.

Every page that ranks is written by a party with an interest in the answer. EPC Group has the same interest, so the standard below is built to be run against us. Every proof is an artifact you ask for and read, not a claim you accept. Multiple models, one truth: the platform changes every quarter, accountability and evidence do not.

The Fabric Partner Proof Standard (FPS-7)

Seven proofs. Ask for the artifact, not the assurance. A partner who cannot produce five of seven is not shortlist material.

Proof 1 — Workload fit, including the negative case. They can name when Fabric is the wrong answer, and when a lakehouse is the wrong answer inside Fabric. A partner who has never recommended a warehouse over a lakehouse, or recommended staying on Azure SQL, has not done the analysis. See our Fabric versus Databricks comparison for the shape this takes.

Proof 2 — A capacity sizing method, written down. Workload inventory first: concurrency, refresh windows, model sizes, Spark job profiles, ingestion rates. Then the Fabric SKU Estimator, then a resize trigger measured in the Capacity Metrics app. A partner who names a SKU in the first meeting is guessing with your money.

Proof 3 — Storage mode tested, not assumed. They can show a Direct Lake test against the published per-SKU guardrails, an EVALUATE TABLETRAITS() output with the [DirectLakeFallbackInfo] column, and a decision on DirectLakeBehavior. They know Direct Lake on OneLake has no DirectQuery fallback and errors where Direct Lake on SQL degrades quietly.

Proof 4 — Security design with placement decisions. Where RLS lives — semantic model or SQL analytics endpoint — is a performance decision as well as a security one, because SQL-level RLS forces DirectQuery fallback on Direct Lake over SQL. They can explain OneLake security roles, workspace roles, and shortcut identity behavior without a slide.

Proof 5 — Lifecycle from day one. Git integration for source control, deployment pipelines or the Fabric APIs for release, variable libraries for environment parameterization — not manual promotion. They know deployment copies metadata and not data, and that stage count is fixed at creation.

Proof 6 — Governance delivered, not deferred. Domains with named admins, endorsement with named certifiers, sensitivity labels applied, the OneLake catalog Govern tab in use. Governance appears in phase-one scope or it never happens. This is the same discipline as enterprise data governance practice.

Proof 7 — A documented exit. Runbooks, architecture decision records, named client-side owners per component, and recorded knowledge transfer. If the partner's own tooling is required to operate the platform, that is lock-in, and it belongs in your risk register alongside every other delivery partner concentration risk.

Scope of work for a Fabric program

Four phases, one gate between each. A proposal that does not decompose this way is a staffing arrangement, not a program.

PhaseDuration driverWhat is producedGate to pass before proceeding
1. AssessmentSource systems and consuming teamsWorkload inventory, data estate map, capacity sizing model, storage-mode recommendation per workload, risk register, phased roadmap with costsSponsor signs the sizing model and roadmap; no build has started
2. Landing zoneTenant complexity, security posture, domain countCapacity provisioned, workspaces and domains defined with owners, Git connected, pipeline stages created, labels and endorsement enabled, naming standards, monitoringA test workload deploys end to end through the pipeline with no manual step
3. Migration / buildPipeline, model and report counts; source accessIngestion via mirroring, shortcuts or pipelines; medallion layers; semantic models with tested security; reports cut over; parallel-run validationReconciliation passes against the legacy platform; certified models meet your standard
4. OperateEstate size and change velocityCapacity monitoring and resize triggers, refresh SLA management, cost reporting, release cadence, backlog governance, quarterly architecture reviewClient staff run a full release unaided, partner observing

Assessment and landing zone should be fixed-fee. A partner who will not fix-fee an assessment does not have a repeatable method.

The shortlist matrix: capability versus the question that tests it

Run this in one 90-minute meeting per vendor. Score each 0–2. Below 18 of 28 is a decline.

CapabilityThe question that actually tests itA weak answer sounds likeA strong answer sounds like
Capacity sizing"How did you size your last three capacities, and how often did you resize after go-live?""We usually start at F64."A workload inventory, an estimator run, a named resize trigger, and at least one downsize they recommended
Storage mode"How do you choose Import versus Direct Lake versus DirectQuery, and how do you prove Direct Lake is holding?""Direct Lake is fastest, so we use it."Guardrails by SKU, TABLETRAITS() diagnostics, DirectLakeBehavior set to DirectLakeOnly in development
Security placement"Where do you put row-level security and why?""In the model, always."The tradeoff: SQL-endpoint RLS forces DirectQuery fallback on Direct Lake over SQL; model RLS avoids it but must be tested per role
Ingestion strategy"When do you mirror, when do you shortcut, and when do you build a pipeline?""Pipelines for everything."Mirroring where CDC is supported and source cost is acceptable; shortcuts to avoid copies; pipelines only where transformation is required
Lifecycle"Show me the Git repository structure and pipeline configuration from a live client.""We promote between workspaces."Branch strategy, variable libraries, selective deployment, and a release they can describe end to end
Governance"Who were the domain admins at your last client, and who certified semantic models?""The customer handles governance."Named roles, delegated certification per domain, label coverage reporting
Handover"What does the client's team do on day one after you leave?""We stay on retainer."Runbooks, ADRs, named owners, and a release the client already ran unaided

What a competent partner must show evidence of

ClaimEvidence to demandWhy it matters
Microsoft partnership standingSolutions Partner designations by name, plus specializations. Analytics on Microsoft Azure requires the Data & AI designation firstDesignations require 70 of 100 capability points with non-zero scores in every subcategory — a measured threshold, not a logo
Delivery historyTwo references at your scale and regulatory environment, on a call, without the account manager presentReference quality collapses when the seller is in the room
Named delivery leadThe individual's name in the SOW with an allocation percentagePrevents the pattern where the architect who won the work never reappears
Capacity managementA redacted Capacity Metrics export showing a throttling event and the responseAnyone can run a healthy capacity; competence shows in the overload
Migration reconciliationThe reconciliation method and a redacted variance report from a cutoverParallel-run discipline separates a migration from a rewrite
Security testingA role test log, not a statement that security was configuredUntested RLS is the most common finding in remediation work
Lifecycle maturityRepository structure and pipeline configurationManual promotion is the strongest predictor of a program that will need rescuing
Exit readinessA sample runbook and ADR set from a completed engagementIf it does not exist for a past client, it will not exist for you

What breaks: the Fabric anti-pattern catalogue

Anti-patternSymptomRoot causeFix
The lakehouse for a 40 GB warehouseSpark spin-up dominates runtime; T-SQL developers cannot maintain the platform; costs exceed the system it replacedArchitecture chosen for resume value, not workload fit. A 40 GB structured, SQL-shaped workload is a Fabric Warehouse workloadMove to Warehouse or SQL database in Fabric; keep the lakehouse for genuinely unstructured or Spark-native work
Capacity bought before workload sizingAn F-SKU bought in month one, then throttling or low utilization on a reservationSKU selected from a slide rather than a workload inventorySize from concurrency, refresh windows, model sizes and Spark profiles; run pay-as-you-go until the Capacity Metrics app gives 30 days of evidence, then reserve
Direct Lake assumed, never testedReports slower than the old Import models and nobody can say whyDirect Lake on SQL silently falls back to DirectQuery when SQL-level RLS, OLS, data masking, unmaterialized views, unframed tables, or guardrail breaches are presentSet DirectLakeBehavior to DirectLakeOnly in development so failures surface; run EVALUATE TABLETRAITS() and read [DirectLakeFallbackInfo]; OPTIMIZE and VACUUM Delta tables to stay inside guardrails
One giant workspacePermission sprawl, no promotion path, pipeline retrofitted lateWorkspaces treated as folders instead of deployment and security boundariesRebuild topology by domain and environment; stage count is permanent once a pipeline exists, so decide deliberately
Mirroring treated as freeFabric bill looks fine, Snowflake or BigQuery bill jumpsReplication compute and mirroring storage are free within the allowance — the source platform still charges for CDC reads and cloud servicesModel source-side cost first; for high-churn tables compare mirroring against a batch pipeline
Governance deferred to phase fourHundreds of unlabeled, unendorsed items and no owner map by go-liveGovernance scoped as a follow-on because it is unbillable in a build phasePut domains, endorsement, labels and certification in the landing zone gate
Manual promotion between workspacesProduction drifts from test; nobody can say what changedNo Git integration; deployment rules used where variable libraries belongConnect Git before the first pipeline is built; use variable libraries for environment configuration
Copilot promised before the capacity supports itAI demonstrated in the sales cycle, unavailable at go-liveCopilot requires a paid F2+ or P1+ in a supported region; trial SKUs are excludedConfirm SKU, region and tenant settings during assessment

Commercial models, and where each one fails

ModelBest fitFailure condition
Fixed-fee per phaseAssessment and landing zone, where deliverables are knowableFails if the source-system inventory is wrong; require a re-scope clause tied to discovered systems
Capped time and materialsMigration and build, where source surprises are certainFails without change control; demand a weekly burn report against the cap
Outcome-linkedOnly where a measurable baseline exists before work startsFails when the baseline is retrofitted. If nobody measured the old platform, no outcome can be proven
Managed service retainerOperate phase, capacity management, release cadenceFails when it quietly replaces client capability. Require a named client owner per component and an annual exit test
Staff augmentationFilling a specific skill gap on a client-led programFails when sold as a program. There is no architecture accountability in a rate card

Ask one question about the rate card: who is actually on the engagement. A blended rate concealing a heavily junior team is the most common commercial risk in this market, and it stays invisible unless you demand the allocation table by name and percentage.

What the platform costs are driven by

Consulting fees are rarely the largest number in a Fabric program; the capacity is. These published figures set the boundaries:

ConstraintPublished figureSource
Direct Lake rows per table, F2–F32300 millionLearn
Direct Lake rows per table, F64/P11.5 billion; model size unlimited, 25 GB max memoryLearn
Direct Lake max model size, F2–F810 GB on diskLearn
Free mirroring storage1 TB per capacity unit purchased (F64 = 64 TB)Learn
Mirroring replication computeFree; querying the mirrored data is billed normallyLearn
OneLake shortcut cache retentionConfigurable 1–28 days; files over 1 GB not cachedLearn
Deployment pipeline stages2 to 10, permanent once created; metadata only is deployedLearn
Capacity Metrics app latencyUsage visible within 10–15 minutes; dimensions refresh at midnight localLearn
Copilot minimum capacityPaid F2+ or P1+, supported region, no trial SKUsLearn

Current SKU list prices are on the Microsoft Fabric pricing page and vary by region; verify there rather than trusting any consultancy's reproduction. For the Power BI licensing alongside capacity, see our licensing and cost guide and the Premium versus Premium Per User comparison.

What changed in 2026

Run FPS-7 against your shortlist — including us

EPC Group will complete the FPS-7 evidence set before any commercial conversation: sizing method, a redacted Capacity Metrics export showing a throttling event and the response, repository and pipeline structure, and a sample runbook set. Start with Microsoft Fabric consulting services or the Fabric consulting services guide.

Related: Snowflake to Fabric migration · Power BI consulting · Power BI Premium · gateway configuration · enterprise Microsoft consulting firms · Azure migration consulting · Power Platform consulting firms · Epic and Cerner Power BI integration · CFO AI governance · Microsoft Frontier Company · Power BI consulting Houston.

Frequently asked questions

What does a Microsoft Fabric consulting partner actually do?

A competent partner sizes capacity from a workload inventory, designs the workspace and domain topology, establishes Git-backed lifecycle management, migrates ingestion and semantic models, tests security, and hands over runnable documentation. Anything narrower than that is staff augmentation with a consulting invoice attached.

How long does a Microsoft Fabric implementation take?

Duration is driven by source-system count, data volumes, and how many consuming teams must be cut over — not by Fabric itself. Insist on a phased plan with a gate after assessment, so the timeline is priced against a real inventory rather than guessed before discovery.

How do I know if a partner sized my capacity correctly?

Ask for the sizing inputs: concurrency, refresh windows, model sizes, Spark job profiles, and real-time ingestion rates. Then ask for the resize trigger they will monitor in the Fabric Capacity Metrics app. A SKU recommended without those inputs is a guess.

Is a lakehouse always the right architecture in Fabric?

No. A structured, SQL-shaped workload in the tens of gigabytes is usually a Fabric Warehouse or SQL database workload. Lakehouses suit unstructured and semi-structured data and Spark-native processing. Choosing a lakehouse for a small relational warehouse adds Spark cost and operational complexity for no benefit.

What is Direct Lake fallback and why does it matter commercially?

Direct Lake on SQL endpoints silently switches to DirectQuery when SQL-level row-level security, object-level security, data masking, unmaterialized views, unframed tables, or per-SKU guardrail breaches are present. Performance degrades without an error. Direct Lake on OneLake does not fall back — it errors instead.

Does Microsoft's partner directory tell me who is good?

No. The Microsoft Fabric partners page is a discovery hub. It publishes no evaluation criteria, no scope guidance, no pricing, and no risk framework, and routes to partner locators and marketplaces. Use it to build a longlist, then evaluate against your own criteria.

What is a Microsoft Solutions Partner designation worth as a signal?

It is a measured threshold rather than a badge purchase: at least 70 of 100 partner capability score points, with a non-zero score in every subcategory across performance, skilling, and customer success. Six designations exist, and specializations such as Analytics on Microsoft Azure require the relevant designation first.

Should I buy reserved capacity up front?

Not before you have production evidence. Run pay-as-you-go until the Capacity Metrics app has given you roughly a month of real utilization, then reserve against measured demand. Reserving before sizing converts an unknown into a fixed commitment.

Is mirroring free?

Fabric's replication compute is free and mirroring storage is free at one terabyte per capacity unit purchased. Querying mirrored data through SQL, Power BI or Spark is billed at normal rates, and source platforms such as Snowflake or BigQuery still charge for the change-data-capture reads that feed it.

What should the exit plan contain?

Runbooks per operational task, architecture decision records explaining why each choice was made, a named client owner per component, recorded knowledge transfer, and evidence that client staff have run a full release unaided. Ask for a sample from a completed engagement before you sign.

Sources and verification

  1. What is Microsoft Fabric?
  2. Fabric terminology (workload list)
  3. Direct Lake overview and per-SKU guardrails
  4. How Direct Lake works (DirectQuery fallback, DirectLakeBehavior, TABLETRAITS)
  5. Integrate Direct Lake security
  6. What is OneLake?
  7. OneLake shortcuts (types, caching, connections)
  8. What is Mirroring in Fabric? (cost of mirroring)
  9. Mirroring Snowflake in Microsoft Fabric (source-side cost)
  10. The cost of mirroring for Google BigQuery
  11. Mirroring SAP
  12. What is Data Factory in Microsoft Fabric?
  13. Fabric domains
  14. Best practices for planning and creating domains
  15. Get started with Fabric governance
  16. Govern Fabric data (OneLake catalog Govern tab)
  17. Fabric CI/CD concepts and best practices
  18. Choose the best Fabric CI/CD workflow option
  19. Get started with deployment pipelines
  20. What is the Microsoft Fabric Capacity Metrics app?
  21. Enable and configure Copilot in Microsoft Fabric
  22. Partner Capability Score
  23. Introduction to Solutions Partner designations
  24. Microsoft Fabric pricing
  25. Microsoft Fabric partners page (the incumbent directory this article contextualizes)
  26. Addend Analytics, Microsoft Fabric Consulting (the citation this article replaces)

AI assistant — not human