›› Free Data Maturity Scorecard — Discover your analytics score in 3 minutes MY SCORECARD →
›› Free Fabric Capacity Estimator — Model your CU consumption before you upgrade ESTIMATE CAPACITY →
Cloud Data Platform Migration

Tableau to Fabric Migration With LOD Expressions Rebuilt as DAX, Not Just Dashboards Redrawn

Moving from Tableau is not a redraw. Your workbooks hold business logic in calculated fields, LOD expressions, table calculations and extracts. Our Tableau to Fabric migration inventories that estate, rebuilds the logic as DAX on governed semantic models, moves reporting to Power BI on Microsoft Fabric, and proves the numbers match before you switch Tableau off.

Workbook inventory first, so unused content is retired, not rebuilt
LOD expressions and table calculations translated to DAX and tested
Duplicated extracts consolidated into governed semantic models
Documented handover and training for your Tableau authors
Migration at a Glance
3
Tableau LOD types (FIXED, INCLUDE, EXCLUDE) mapped to DAX patterns
3
Fabric semantic model modes: Import, DirectQuery and Direct Lake
4
Phases: discover, pilot, migrate in waves, cut over
Free
Tableau estate assessment to scope the work
Technologies Tableau Desktop Tableau Server and Cloud Tableau Prep Hyper Extracts Microsoft Fabric OneLake Power BI DAX Dataflows Gen2 Microsoft Entra ID
What We Cover

Tableau to Fabric Migration: Rebuilding Logic, Not Redrawing Dashboards

A Tableau estate is more than its dashboards. Behind them sit calculated fields, LOD expressions, table calculations, parameters, sets, extracts and Tableau Prep flows. A Tableau to Fabric migration has to carry that logic across, not just recreate the charts.

Power BI works differently from Tableau. It is built around a semantic model, so we consolidate the many workbook-level extracts into governed star-schema models, then rebuild reports on top. Microsoft's own migration guidance recommends focusing on the business questions a report answers rather than copying every visual exactly.

We decide per workbook. Content people use is rebuilt, near-duplicate workbooks are merged into one report, and workbooks nobody opens are retired. Where a workload should stay on Tableau for now, we say so, and plan the rest around your renewal date.

Challenges We Solve
"We have hundreds of Tableau workbooks and no idea which ones anyone still opens.
"Our workbooks rely on LOD expressions and table calculations, and nobody knows how to write them in DAX.
"Every workbook has its own extract and its own version of revenue.
"We want to cut Tableau cost without losing trust in the numbers.
What We Deliver

Six Core Components of Every Tableau to Fabric Migration

From inventory to parity sign-off: everything needed to move Tableau reporting to Power BI on Microsoft Fabric.

01
Tableau Estate Discovery & Triage

We list every workbook, data source, extract, Prep flow, schedule and permission, then check usage and owners. Each item is marked retire, consolidate or rebuild, with a complexity rating, before any build starts.

Workbook and data source inventory
Usage and owner audit
Retire, merge or rebuild decisions
02
Semantic Model Design on Fabric

We replace workbook-by-workbook extracts with shared semantic models on a star schema, and choose Import, DirectQuery or Direct Lake per subject area based on data size, freshness and where the data already lives.

Star schema and shared measures
Storage mode decision per model
One definition of revenue, margin and so on
03
LOD & Calculation Translation to DAX

We translate FIXED, INCLUDE and EXCLUDE expressions, table calculations, parameters and sets into DAX measures, then test results at the original grain. Some logic moves upstream into Fabric transformations instead.

LOD expressions to CALCULATE patterns
Table calculations to window and rank logic
Parameters to what-if and field parameters
04
Data Preparation in Fabric

Extract refreshes and Tableau Prep flows are re-hosted where they fit best: Dataflows Gen2 for light shaping, pipelines for orchestration, notebooks or SQL for heavier transformation, landed in OneLake.

Prep flow review and re-hosting
Refresh schedules and orchestration
Gateway and credential setup
05
Power BI Report Rebuild

We rebuild priority workbooks as Power BI reports and apps, mapping Tableau actions and filters to slicers, cross-filtering, drill-through and bookmarks, and deciding report versus dashboard per view as Microsoft's guidance advises.

Report layouts focused on business questions
Drill-through and navigation design
Excel access to the semantic model
06
Security, Governance & Parity Validation

We map Tableau projects, groups and user filters to workspaces, apps, roles and row-level security, then run a parity framework with report owner sign-off before cutover and set up usage monitoring afterwards.

Workspace and app access design
Row-level security from user filters
Totals, grain and filter parity checks
Where Most Migrations Go Wrong

LOD Expressions to DAX: How We Translate Tableau Calculations

A Tableau LOD expression fixes the level of detail inside the calculation. A DAX measure responds to the filter context of the report. So the translation is about controlling filter context, and every pattern is tested against the Tableau result. Illustrative patterns only: the right DAX depends on your model.

Tableau patternFIXED LOD{ FIXED [Customer] : MIN([Order Date]) }
Typical Power BI approachCALCULATE ( MIN ( Sales[Order Date] ), REMOVEFILTERS (), VALUES ( Customer[Customer] ) )
What we checkWhich view filters Tableau ignored, and which context filters must still apply.
Tableau patternINCLUDE LOD{ INCLUDE [Customer] : SUM([Sales]) }
Typical Power BI approachAVERAGEX ( VALUES ( Customer[Customer] ), [Total Sales] )
What we checkThat the level of detail matches the original view, row by row.
Tableau patternEXCLUDE LOD{ EXCLUDE [Region] : SUM([Sales]) }
Typical Power BI approachCALCULATE ( [Total Sales], REMOVEFILTERS ( Geography[Region] ) )
What we checkThat removing the filter does not also clear related slicers.
Tableau patternPercent of total, rankSUM([Sales]) / TOTAL(SUM([Sales])) and RANK()
Typical Power BI approachDIVIDE ( [Total Sales], CALCULATE ( [Total Sales], REMOVEFILTERS ( Product ) ) ) and RANKX ( ALLSELECTED ( Product[Product] ), [Total Sales] )
What we checkTable calculation direction, partitioning and tie handling.
Tableau patternRunning totals, moving averagesRUNNING_SUM(SUM([Sales])) and WINDOW_AVG()
Typical Power BI approachVisual calculations such as RUNNINGSUM, or DAX window functions, or a date-table measure
What we checkWhether the calculation belongs in the visual or in the shared model.
Tableau patternParameters, sets and groupsParameters, sets, groups and bins
Typical Power BI approachWhat-if or field parameters, calculated columns or tables, and measure-based flags
What we checkThat users get the same choices, defaults and groupings as before.

Not every Tableau calculation has a one-line equivalent. Where a calculation is really data preparation, such as a row-level flag computed at extract time, we move it into Fabric so every report reuses it.

How We Work

Tableau to Fabric Migration: Four Phases to Cutover

A structured plan so your Tableau reporting moves without disruption. Tableau stays live while Power BI is built and validated, so users switch only when their reports are signed off.

01
Discover and Triage

We inventory your Tableau Server or Cloud site, check usage and owners, and agree what to retire, consolidate or rebuild, with a complexity rating that flags LOD-heavy and table-calculation-heavy content.

Output: inventory and decisions
02
Model and Pilot

We build the first governed semantic model, translate the hardest calculations and rebuild a pilot set of workbooks. The pilot sets DAX, naming and design standards and proves parity before the main build.

Output: signed-off pilot and standards
03
Migrate in Waves and Validate

We migrate in waves ordered by business priority and shared data. Each wave is checked against the Tableau original, and the report owner signs off every report before it moves on.

Output: migrated reports with sign-off
04
Parallel Run, Cutover and Handover

We run Tableau and Power BI side by side, cut over by audience, retire Tableau content when you are ready and hand over documentation, runbooks and training so your team can run the platform.

Output: retired Tableau content and handover
Timeline

What the Timeline Depends On

We do not quote a duration before we have seen your estate. Length is driven by the number of workbooks still in scope after triage, the share that is LOD-heavy or table-calculation-heavy, the number of data sources and Prep flows, and how long you want to run in parallel. We fix the plan in the proposal after discovery and work back from your Tableau renewal date where there is one.

Milestone 1
Inventory and decisions agreed

Triage complete; destination model design and wave plan approved.

Milestone 2
Pilot signed off

First semantic model live; pilot reports match Tableau; standards agreed.

Milestone 3
Waves complete

Each wave validated and signed off by report owners.

Milestone 4
Cutover and Tableau retirement

Users moved by audience; Tableau content retired, ideally ahead of your renewal date.

Pricing Model

How We Price a Tableau Migration

You see real effort on your own data before committing to the full programme. Price is driven by workbook count, calculation complexity, data source and Prep flow count, security requirements and parallel-run length.

Step 1
Free assessment

We inventory your Tableau estate and give you a triage, a complexity profile and a recommended scope, at no cost.

No commitment
Step 2
Fixed-scope pilot

A priced pilot that builds one semantic model and rebuilds a representative set of workbooks, so the approach and effort are proven on your data.

Fixed scope and fee
Step 3
Priced per wave

Remaining waves are quoted by complexity tier once the pilot gives real numbers, as fixed fee per wave or on a time and materials basis, whichever suits you.

Your choice of model
Why Numlytics

Why Choose Us for Tableau to Fabric Migration

Six reasons teams trust us to move Tableau reporting to Power BI without losing the numbers their business relies on.

LOD to DAX Expertise

Translating Tableau calculations is where migrations stall. We map each pattern to DAX, test it at the original grain and move upstream anything that is really data preparation.

Models Before Reports

Hundreds of workbooks usually mean hundreds of private extracts. We consolidate them into shared semantic models first, so each business metric has one definition.

Inventory Before Migration

Long-lived Tableau sites carry workbooks nobody opens. We find them first, so you rebuild and test only what the business uses.

Parity You Can Audit

We do not switch reporting until totals, LOD results and filtered views match the Tableau original and the report owner signs off.

Fabric and Power BI Depth

The same team designs the OneLake data layer, the semantic models and the reports, so definitions stay consistent from source to chart.

Handover and Training

You receive architecture notes, runbooks and a team walkthrough, and we can train your Tableau authors in Power BI and DAX, so your team runs the platform without us.

CASE STUDY: A TYPICAL ENGAGEMENT (ILLUSTRATIVE, NOT A CLIENT RESULT)

The starting point: a Tableau site that has grown for years. Many workbooks, each with its own extract, and several different calculations of the same revenue figure. Finance and sales cannot reconcile their numbers, and a Tableau renewal is approaching.

What we do: triage the site, retire what nobody opens, build one governed semantic model for the shared subject area, translate the LOD-heavy calculations to DAX measures and rebuild the priority workbooks as Power BI reports. Each report is checked against the Tableau original and signed off by its owner.

What the client team gets: one definition per metric, fewer reports to maintain, documented DAX, and authors trained to extend the model. Tableau is retired in stages once parallel running confirms the numbers hold.

Illustrative scenario describing our method. No client names, figures or savings are claimed. Microsoft guidance referenced: Power BI migration series on Microsoft Learn (proof of concept stage).
FAQ

Common Questions About Tableau to Fabric Migration

Still deciding? These are the questions teams ask most before they plan their move off Tableau.

Book a Free Call →
Third-party tools claim to automate parts of the conversion, and we are happy to evaluate them with you. In our experience, and in line with Microsoft's migration guidance, calculations, data models and layouts still need review. We treat automated output as a starting draft and test every rebuilt report against the Tableau original. Microsoft also advises focusing on the business questions a report answers instead of copying every visual.
There is no automatic one-to-one conversion. A FIXED expression usually becomes a CALCULATE measure that clears and re-applies filters at the chosen grain, an INCLUDE expression often becomes an iterator such as AVERAGEX over the relevant column, and an EXCLUDE expression becomes CALCULATE with REMOVEFILTERS on the excluded field. The key difference is that DAX measures respond to report filter context, so we test each translation at the original grain.
You can start with Power BI semantic models on your existing data sources. Fabric adds OneLake, Direct Lake, Dataflows Gen2, pipelines and notebooks, and Microsoft documents that semantic models in Fabric can use Import, DirectQuery or Direct Lake mode. We recommend the destination that fits your data size, freshness needs and licensing, and compare options before you commit.
We review each one. Extract refreshes usually become semantic model refreshes, or are replaced by Direct Lake over Delta tables in OneLake. Prep flows are re-hosted in Dataflows Gen2, pipelines, notebooks or SQL depending on their complexity. Where several workbooks held near-identical extracts, we consolidate them into one shared model.
We define parity before building. For each report we compare totals, grain-level values for LOD calculations and results under typical filter combinations against the Tableau original, and the report owner signs off before cutover. Parallel running then confirms the numbers hold in daily use.
It depends on the number of workbooks in scope after triage, how many are LOD-heavy, the data sources and Prep flows involved and how long you run in parallel. We start with a free assessment, then a fixed-scope pilot, and quote the remaining waves from real pilot numbers. We plan around your Tableau renewal date where there is one.
Yes. Tableau stays live during the build and parallel run, and users move by audience once their reports are signed off. Tableau authors can learn Power BI and DAX quickly with the right support, and we provide handover documentation, a team walkthrough and optional corporate Power BI training.
Get Started

Start Your Tableau to Fabric Migration Plan

Book a free assessment. We will inventory your Tableau workbooks, flag the LOD-heavy content and recommend what to rebuild, consolidate or retire, at no cost.