How-To Guide
Convert Tableau Desktop / Tableau Server workbooks to Microsoft Power BI. Proven calculation equivalence, tamper-evident audit trails, airgapped operation.
pip install cepheus-navis-tableau-powerbi
Requires Python 3.9, 3.10, or 3.11. This single package installs the Tableau → Power BI converter and all required pipeline tools.
[general]
epoch = 1700000000 # determinism epoch (seconds since Unix epoch)
[pipeline]
input = "C:/Workbooks" # folder of .twb / .twbx files
output = "C:/Output"
working = "C:/Working" # staging folder for pre/post steps
[analyze]
license_output_folder = "C:/Reports"
[convert]
license = "license.json"
[post]
# No additional config required — reads .hyper data from [pipeline].input
Every command reads from spec.toml. CLI flags override spec values when provided. Relative paths resolve from the spec file’s directory.
The pre step connects to the Tableau .twbx embedded .hyper data extracts, exports them as CSV files into [pipeline].working/data/, and hands them to the post-bind step so Power BI Desktop can see live data immediately after opening the converted project.
The converter itself does not require this step. Analyze and convert read the .twbx directly. This step only benefits the post-bind (data verification) workflow.
navis-ta-pbi-pre spec.toml
Reads [pipeline].input (workbook path) and [pipeline].working (staging folder). No additional [pre] keys required for Tableau.
Scan .twb / .twbx files to assess what can be automatically migrated before committing to a conversion.
navis-ta-pbi analyze spec.toml # Analyze all workbooks
navis-ta-pbi analyze spec.toml --path Sales.twbx # Single workbook
navis-ta-pbi analyze spec.toml -o analysis.pdf # Save report
navis-ta-pbi analyze spec.toml --summary-only # High-level numbers only
navis-ta-pbi analyze spec.toml --no-recursion # Top-level folder only
Submit the License Request PDF to navis@cepheusonline.com. The PDF embeds cryptographic fingerprints of your workbooks. Cepheus replies with a license file.
Why checksums? The license is tied to your workbook files as they existed when analyzed. Modified files won’t match and conversion is blocked — preventing accidental conversion of untested workbooks.
navis-ta-pbi analyze and save the License Request PDF[convert]
license = "license.json"
navis-ta-pbi verify-license spec.toml
| Status | Meaning |
|---|---|
| VALID | Licensed and ready to convert |
| MISMATCH | Licensed, but file has changed since the license was issued |
| UNLICENSED | Not covered by this license |
Checksum mismatch? The workbook file changed after analysis. Re-run analyze and request an updated license.
navis-ta-pbi convert spec.toml
navis-ta-pbi convert spec.toml --output C:/Output # Override output folder
For each workbook: a .pbip folder (Power BI Project), plus a _CEC.zip Evidence Capsule.
Every DAX formula Navis produces has been individually tested against actual Tableau output to verify identical results. This isn’t approximate translation — it’s proven equivalence. If Navis encounters a calculation it cannot convert with proven accuracy, it flags it rather than guessing.
Windows only. The converter produces a .pbip project with the correct semantic model and DAX measures, but the M queries point to placeholder data sources. The post step writes the source data as CSV files alongside the project and repoints the M queries at those CSVs — so you can open the project in Power BI Desktop and see live data immediately.
Verification aid only. The CSV data and M query rewrites are a temporary scaffold for demo and QA. Your data team will reconnect to production sources using Power BI Desktop's Change Source dialog or the Admin portal.
Reads the .hyper data extracted during the pre step (from [pipeline].working/data/). No additional configuration required.
[post]
# No extra keys needed — data is read from [pipeline].working/data/
navis-ta-pbi-post spec.toml
After the post step, open the .pbip file in Power BI Desktop — all visuals will populate with data. Review the conversion, check the Evidence Capsule PDF for any fidelity gaps, and hand off to your data team.
| Tableau | Power BI |
|---|---|
| Worksheets | Report pages with chart visuals |
| Dashboards | Report pages with positioned visuals |
| Bar, line, area, pie charts | Matching Power BI chart types |
| Text tables | Power BI table visuals |
| Maps | Power BI map visuals |
| Scatter plots | Power BI scatter charts |
| Calculated fields (SUM, AVG, COUNT, etc.) | DAX measures |
| LOD expressions (FIXED, INCLUDE, EXCLUDE) | DAX CALCULATE |
| Table calculations (Running Total, Rank, etc.) | DAX WINDOW / OFFSET / RANKX |
| IF/THEN/ELSE, CASE/WHEN, IIF | DAX IF / SWITCH |
| String functions (UPPER, LOWER, LEN, TRIM, etc.) | Equivalent DAX functions |
| Date functions (DATETRUNC, DATEPART, DATEDIFF) | DAX date functions |
| Math functions (ROUND, ABS, SQRT, trig) | Equivalent DAX functions |
| Categorical filters (include/exclude) | Power BI basic filters |
| Range and date filters | Power BI advanced / relative date filters |
| Top N filters | Power BI Top N filters |
| Parameters | Preserved as metadata in the semantic model |
| Data model (tables, columns, types) | Semantic model with TMDL definitions |
Review the PDF report inside the Evidence Capsule for anything flagged:
SalesDashboard/
SalesDashboard.pbip <-- open this in Power BI Desktop
SalesDashboard.Report/
definition.pbir
report.json
SalesDashboard.SemanticModel/
definition.pbism
definition/
model.tmdl
database.tmdl
tables/
_CEC.zip <-- Evidence Capsule
Open SalesDashboard.pbip in Power BI Desktop. The semantic model and all DAX measures are fully defined — you only need to point the data source at your production data.
The _CEC.zip Evidence Capsule contains the PDF audit report with formula-level conversion evidence, SHA-256 checksums, and any fidelity gaps.
_CEC.zip)
Every conversion produces a _CEC.zip alongside the converted output. It contains:
The capsule is tamper-evident: any modification to the converted output invalidates the checksums in the PDF. Keep _CEC.zip alongside your converted project as your audit record.
The Evidence Capsule PDF is cryptographically signed by Cepheus. The signature certifies:
Signature verification does not require internet access. The public key is embedded in the license file.
Every command writes a structured log alongside the output. Log entries include:
Logs are in JSON Lines format for easy ingestion into SIEM or audit tooling.
| Error | Fix |
|---|---|
| MISMATCH | File changed after analysis. Re-run analyze, request new license. |
| UNLICENSED | File not in the license. Check path matches analyzed workbook. |
| EXPIRED | License past validity date. Contact navis@cepheusonline.com. |
| INVALID_SIG | License file corrupted or modified. Request replacement. |
| Symptom | Fix |
|---|---|
| No workbooks found | Check [pipeline].input path. Use absolute paths. |
| Fidelity gaps in every workbook | Expected — review the PDF. Gaps are documented, not hidden. |
| Output folder not created | Create the parent directory first; Navis creates the final folder. |
For other issues: navis@cepheusonline.com
To analyze or convert a specific subset of workbooks, create a named pathlist in spec.toml:
[pipeline]
input = "C:/Workbooks"
pathlist = ["Sales.twbx", "Finance.twbx", "HR.twbx"]
Each path in pathlist is resolved relative to [pipeline].input. Use this to run a focused subset without moving files or duplicating the spec.
CLI --path overrides pathlist when provided.