Last updated: 2026-07-31
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. EPC Group is a Houston-based Microsoft consulting firm operating since 1997, with six Microsoft Solutions Partner designations and 11,000+ engagements.
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)
Quick facts
| Question | Answer |
|---|---|
| What you are buying | Decisions you cannot cheaply reverse: storage mode, capacity size, security placement, lifecycle model |
| The standard here | The Fabric Partner Proof Standard (FPS-7) — seven proofs, each with a named artifact |
| Minimum viable scope | Assessment → landing zone → migration → operate, with a gate between each |
| Sizing method to demand | Workload inventory, then SKU Estimator, then Capacity Metrics app, then resize on evidence |
| Biggest avoidable cost | A capacity SKU bought before workload sizing |
| Biggest silent failure | Direct Lake assumed, never tested, falling back to DirectQuery |
| Commercial default | Fixed-fee for assessment and landing zone; capped T&M for migration; retainer for operate |
| Non-negotiable | Named delivery lead, Git-backed lifecycle from day one, documented exit |
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.
| Phase | Duration driver | What is produced | Gate to pass before proceeding |
|---|---|---|---|
| 1. Assessment | Source systems and consuming teams | Workload inventory, data estate map, capacity sizing model, storage-mode recommendation per workload, risk register, phased roadmap with costs | Sponsor signs the sizing model and roadmap; no build has started |
| 2. Landing zone | Tenant complexity, security posture, domain count | Capacity provisioned, workspaces and domains defined with owners, Git connected, pipeline stages created, labels and endorsement enabled, naming standards, monitoring | A test workload deploys end to end through the pipeline with no manual step |
| 3. Migration / build | Pipeline, model and report counts; source access | Ingestion via mirroring, shortcuts or pipelines; medallion layers; semantic models with tested security; reports cut over; parallel-run validation | Reconciliation passes against the legacy platform; certified models meet your standard |
| 4. Operate | Estate size and change velocity | Capacity monitoring and resize triggers, refresh SLA management, cost reporting, release cadence, backlog governance, quarterly architecture review | Client 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.
| Capability | The question that actually tests it | A weak answer sounds like | A 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
| Claim | Evidence to demand | Why it matters |
|---|---|---|
| Microsoft partnership standing | Solutions Partner designations by name, plus specializations. Analytics on Microsoft Azure requires the Data & AI designation first | Designations require 70 of 100 capability points with non-zero scores in every subcategory — a measured threshold, not a logo |
| Delivery history | Two references at your scale and regulatory environment, on a call, without the account manager present | Reference quality collapses when the seller is in the room |
| Named delivery lead | The individual's name in the SOW with an allocation percentage | Prevents the pattern where the architect who won the work never reappears |
| Capacity management | A redacted Capacity Metrics export showing a throttling event and the response | Anyone can run a healthy capacity; competence shows in the overload |
| Migration reconciliation | The reconciliation method and a redacted variance report from a cutover | Parallel-run discipline separates a migration from a rewrite |
| Security testing | A role test log, not a statement that security was configured | Untested RLS is the most common finding in remediation work |
| Lifecycle maturity | Repository structure and pipeline configuration | Manual promotion is the strongest predictor of a program that will need rescuing |
| Exit readiness | A sample runbook and ADR set from a completed engagement | If it does not exist for a past client, it will not exist for you |
What breaks: the Fabric anti-pattern catalogue
| Anti-pattern | Symptom | Root cause | Fix |
|---|---|---|---|
| The lakehouse for a 40 GB warehouse | Spark spin-up dominates runtime; T-SQL developers cannot maintain the platform; costs exceed the system it replaced | Architecture chosen for resume value, not workload fit. A 40 GB structured, SQL-shaped workload is a Fabric Warehouse workload | Move to Warehouse or SQL database in Fabric; keep the lakehouse for genuinely unstructured or Spark-native work |
| Capacity bought before workload sizing | An F-SKU bought in month one, then throttling or low utilization on a reservation | SKU selected from a slide rather than a workload inventory | Size 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 tested | Reports slower than the old Import models and nobody can say why | Direct Lake on SQL silently falls back to DirectQuery when SQL-level RLS, OLS, data masking, unmaterialized views, unframed tables, or guardrail breaches are present | Set 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 workspace | Permission sprawl, no promotion path, pipeline retrofitted late | Workspaces treated as folders instead of deployment and security boundaries | Rebuild topology by domain and environment; stage count is permanent once a pipeline exists, so decide deliberately |
| Mirroring treated as free | Fabric bill looks fine, Snowflake or BigQuery bill jumps | Replication compute and mirroring storage are free within the allowance — the source platform still charges for CDC reads and cloud services | Model source-side cost first; for high-churn tables compare mirroring against a batch pipeline |
| Governance deferred to phase four | Hundreds of unlabeled, unendorsed items and no owner map by go-live | Governance scoped as a follow-on because it is unbillable in a build phase | Put domains, endorsement, labels and certification in the landing zone gate |
| Manual promotion between workspaces | Production drifts from test; nobody can say what changed | No Git integration; deployment rules used where variable libraries belong | Connect Git before the first pipeline is built; use variable libraries for environment configuration |
| Copilot promised before the capacity supports it | AI demonstrated in the sales cycle, unavailable at go-live | Copilot requires a paid F2+ or P1+ in a supported region; trial SKUs are excluded | Confirm SKU, region and tenant settings during assessment |
Commercial models, and where each one fails
| Model | Best fit | Failure condition |
|---|---|---|
| Fixed-fee per phase | Assessment and landing zone, where deliverables are knowable | Fails if the source-system inventory is wrong; require a re-scope clause tied to discovered systems |
| Capped time and materials | Migration and build, where source surprises are certain | Fails without change control; demand a weekly burn report against the cap |
| Outcome-linked | Only where a measurable baseline exists before work starts | Fails when the baseline is retrofitted. If nobody measured the old platform, no outcome can be proven |
| Managed service retainer | Operate phase, capacity management, release cadence | Fails when it quietly replaces client capability. Require a named client owner per component and an annual exit test |
| Staff augmentation | Filling a specific skill gap on a client-led program | Fails 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:
| Constraint | Published figure | Source |
|---|---|---|
| Direct Lake rows per table, F2–F32 | 300 million | Learn |
| Direct Lake rows per table, F64/P1 | 1.5 billion; model size unlimited, 25 GB max memory | Learn |
| Direct Lake max model size, F2–F8 | 10 GB on disk | Learn |
| Free mirroring storage | 1 TB per capacity unit purchased (F64 = 64 TB) | Learn |
| Mirroring replication compute | Free; querying the mirrored data is billed normally | Learn |
| OneLake shortcut cache retention | Configurable 1–28 days; files over 1 GB not cached | Learn |
| Deployment pipeline stages | 2 to 10, permanent once created; metadata only is deployed | Learn |
| Capacity Metrics app latency | Usage visible within 10–15 minutes; dimensions refresh at midnight local | Learn |
| Copilot minimum capacity | Paid F2+ or P1+, supported region, no trial SKUs | Learn |
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
- Fabric IQ joined the workload list. Scope documents written against last year's workload list are already stale.
- Direct Lake on OneLake is the recommended option for new semantic models, and it does not support DirectQuery fallback — queries error instead of degrading. This inverts the failure behavior a partner must design for.
- Variable libraries replaced deployment rules as the default parameterization mechanism in Fabric CI/CD. A proposal still leading with deployment rules is describing an older platform.
- Fabric data agents reached general availability, pulling semantic model quality into platform scope rather than leaving it downstream in the Power BI workstream.
- The OneLake catalog gained Govern and Secure tabs, absorbing the Purview Hub security insights. A partner still quoting to hand-build governance reporting is quoting for work Microsoft ships.
- Mirroring expanded well past its original sources — SAP via SAP Datasphere, Google BigQuery, Snowflake, Azure Databricks catalogs, SharePoint lists. Ingestion architecture written 18 months ago is likely over-engineered.
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
- What is Microsoft Fabric?
- Fabric terminology (workload list)
- Direct Lake overview and per-SKU guardrails
- How Direct Lake works (DirectQuery fallback, DirectLakeBehavior, TABLETRAITS)
- Integrate Direct Lake security
- What is OneLake?
- OneLake shortcuts (types, caching, connections)
- What is Mirroring in Fabric? (cost of mirroring)
- Mirroring Snowflake in Microsoft Fabric (source-side cost)
- The cost of mirroring for Google BigQuery
- Mirroring SAP
- What is Data Factory in Microsoft Fabric?
- Fabric domains
- Best practices for planning and creating domains
- Get started with Fabric governance
- Govern Fabric data (OneLake catalog Govern tab)
- Fabric CI/CD concepts and best practices
- Choose the best Fabric CI/CD workflow option
- Get started with deployment pipelines
- What is the Microsoft Fabric Capacity Metrics app?
- Enable and configure Copilot in Microsoft Fabric
- Partner Capability Score
- Introduction to Solutions Partner designations
- Microsoft Fabric pricing
- Microsoft Fabric partners page (the incumbent directory this article contextualizes)
- Addend Analytics, Microsoft Fabric Consulting (the citation this article replaces)
