How-To Guide
From workbook analysis to signed conversion evidence. Proven DAX equivalence, tamper-evident audit trails, airgapped operation.
pip install cepheus-navis
cepheus-navis --version
Requires Python 3.9, 3.10, or 3.11.
[analyze]
path = "C:/Tableau/Workbooks"
[convert]
path = "C:/Tableau/Workbooks"
output_dir = "C:/Output"
license_file = "license.json"
[verify-license]
license_file = "license.json"
path = "C:/Tableau/Workbooks"
Every command reads from spec.toml. CLI flags override spec values when provided. Relative paths resolve from the spec file's directory.
Scan Tableau workbooks to assess how much can be automatically migrated before committing to a conversion.
[analyze]
path = "C:/Tableau/Workbooks"
output = "analysis.pdf"
summary_only = false
no_recursion = false
cepheus-navis analyze spec.toml # Analyze all workbooks
cepheus-navis analyze spec.toml --path Sales.twbx # Single workbook
cepheus-navis analyze spec.toml -o analysis.pdf # Save report
cepheus-navis analyze spec.toml --summary-only # High-level numbers only
cepheus-navis 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.
| Extension | What it is |
|---|---|
.twb | Tableau Workbook |
.twbx | Tableau Packaged Workbook (includes data extracts) |
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.
cepheus-navis analyze and save the License Request PDF[verify-license]
license_file = "license.json"
path = "C:/Tableau/Workbooks"
cepheus-navis 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. This can happen if you opened the workbook in Tableau Desktop (auto-save), someone edited it, or the file was altered during transfer. Re-run analyze and request an updated license.
[convert]
path = "C:/Tableau/Workbooks"
output_dir = "C:/Output"
license_file = "license.json"
cepheus-navis convert spec.toml
cepheus-navis convert spec.toml --output-dir C:/Output # Override output
For each workbook:
.pbip folder ready for Power BI_CEC.zip — tamper-evident conversion recordEvery 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.
Already have a Power BI conversion — from a competitor tool, hand-coded, or LLM-generated? Consult mode tells you which of your DAX calculations are correct, which have structural issues, and which Tableau calculations are missing from your project. You see the diagnosis; to get the proven DAX, license a conversion.
[consult]
path = "C:/Tableau/Workbooks/Sales.twbx"
against = "C:/PowerBI/SalesProject.pbip"
output = "C:/Reports/consult-output"
cepheus-navis consult spec.toml
cepheus-navis consult spec.toml --path Sales.twbx --against ./customer.pbip -o ./report
| Verdict | Meaning |
|---|---|
| Correct | Your DAX is correct — proven equivalent to the original Tableau calculation |
| Review | May be incorrect — your DAX differs in a way that could change results. Human review required |
| Missing | A Tableau calculation has no counterpart in your Power BI project |
| Not assessed | Your project has a calculation with no Tableau source — may be a legitimate addition |
| Error | Could not parse your DAX expression |
PBIP only. Consult mode requires a Power BI Project folder with TMDL files. If you have a .pbix file, open it in Power BI Desktop and use File → Save as → Power BI Project to convert it first.
The diagnosis and the cure are sold separately. You have full information to choose your remedy.
| Tableau | Power BI |
|---|---|
| Worksheets | Report pages with visual charts |
| Dashboards | Report pages with positioned visuals |
| Bar, line, area, pie charts | Corresponding 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 with 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 |
| Data model (tables, columns, types) | Semantic model with TMDL definitions |
Review the PDF report inside the Evidence Capsule for anything flagged:
Nothing is ever silently skipped. If Navis can't convert something, it tells you.
SalesDashboard/
SalesDashboard.pbip <-- Entry point
SalesDashboard.Report/
definition.pbir
report.json
SalesDashboard.SemanticModel/
definition.pbism
definition/
model.tmdl
database.tmdl
tables/
Orders.tmdl <-- Your measures (DAX) live here
cultures/
en-US.tmdl
The .pbip file is your entry point. The .tmdl files in tables/ contain your converted DAX measures — open them in a text editor to review.
Every conversion produces an Evidence Capsule — a ZIP file named WorkbookName_CEC.zip. A tamper-evident record of exactly what was converted and how.
Why it matters: Compliance and governance (proving what was migrated, when, by whom), review and QA (every calculation alongside its original), tamper evidence (hash chain breaks if anything is altered).
Navis can digitally sign the PDF report and Evidence Capsule. Signing is optional — Navis works fine without it.
[convert]
cert_file = "certificates/cert.pem"
key_file = "certificates/key.pem"
ca_chain_file = "certificates/ca_chain.pem"
| File | Description |
|---|---|
cert.pem | Your signing certificate |
key.pem | The private key for your certificate |
ca_chain.pem | Your CA's certificate chain (optional, improves validation) |
If configured, Navis signs automatically during conversion. If not present, Navis produces unsigned output.
# Linux / macOS
export KEY_PASSPHRASE="your-passphrase"
# Windows (Command Prompt)
set KEY_PASSPHRASE=your-passphrase
# Windows (PowerShell)
$env:KEY_PASSPHRASE = "your-passphrase"
WorkbookName_CEC.zip.p7s — the digital signatureWorkbookName_CEC.zip.sha256 — hash file for independent verificationVerify signed PDFs in Adobe Acrobat Reader via the signature panel.
cepheus-navis audit-report spec.toml # Full report
cepheus-navis audit-report spec.toml --workbook SalesDash # Single workbook
Creates a Markdown report with tables showing every converted calculation, flagged items, and all degradations.
Double-check the file path. Make sure the file ends in .twb or .twbx.
The file may be corrupted. Try re-exporting from Tableau Desktop. Ensure it hasn't been renamed from a different format.
Check the license_file path in your spec.toml. Run cepheus-navis verify-license spec.toml to test.
The workbook file changed since the license was issued. Avoid opening workbooks in Tableau Desktop between licensing and conversion. Re-run analyze and request a new license.
The calculation uses a formula pattern without a proven DAX equivalent yet. Clearly flagged — won't produce wrong results, just won't be auto-converted. Write the DAX manually. Check the Evidence Capsule PDF for details.
If you run into an issue not covered here, contact navis@cepheusonline.com with the License Request PDF and/or Evidence Capsule ZIP.