How-To Guide
navis init # creates spec.toml — edit the paths inside
navis-extract spec.toml # pull data and definitions from source
navis analyze spec.toml # portfolio assessment + License Request PDF
# → email PDF to navis@cepheusonline.com
navis verify-license spec.toml # confirm license is valid
navis convert spec.toml # convert to Power BI
navis-deploy spec.toml # wire data so output opens populated
# Open the converted output in Power BI — your reports are ready.
Requires Python 3.9, 3.10, or 3.11
navis is the short form. This guide uses navis, navis-extract, and navis-deploy throughout. If you have more than one Navis migration package installed on the same machine, use the explicit forms — navis-ta-pbi, navis-ta-pbi-extract, navis-ta-pbi-deploy — so the right converter is invoked.
All Navis commands read from a configuration file you point them at. Run init to generate one with all required fields pre-filled:
navis init
This creates spec.toml in your current directory. You can pass a different filename if you prefer — every subsequent command just takes the file as its argument. Open it and fill in the paths:
[pipeline]
input = "/path/to/source/files" # folder containing your source files
working = "/path/to/working" # staging folder (created automatically)
output = "/path/to/output" # where converted output is written
[analyze]
license_output_folder = "/path/to/license-requests" # where the License Request PDF goes
[convert]
license = "/path/to/cepheus-license.pdf" # the license file Cepheus sends you
One file, every command. Every step in the pipeline reads from the same configuration file. Set your paths once and run each command in sequence — no flags, no other arguments to remember.
Convert Tableau Desktop / Tableau Server workbooks to Microsoft Power BI. Proven calculation equivalence, tamper-evident audit trails, airgapped operation.
[general]
epoch = "2025-11-14T09:00:00-05:00" # pin this — same epoch reproduces byte-identical output
[pipeline]
input = "C:/Workbooks" # folder of .twb / .twbx files
output = "C:/Output"
working = "C:/Working" # staging folder for pre/deploy steps
[analyze]
license_output_folder = "C:/Reports"
[convert]
license = "cepheus-license.pdf"
[deploy]
# No additional config required
Every command reads from spec.toml. Relative paths resolve from the spec file’s directory.
The extract step pulls the data embedded in your .twbx files, exports it as CSV files into your working folder, and makes it available to the deploy step so Power BI Desktop shows live data as soon as you open 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-extract spec.toml
No additional settings required beyond input, working, and output in spec.toml.
Scan .twb / .twbx files to assess what can be automatically migrated before committing to a conversion.
navis analyze spec.toml
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 analyze and save the License Request PDF[convert]
license = "cepheus-license.pdf"
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. Re-run analyze and request an updated license.
navis convert spec.toml
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 deploy 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 data exported by the extract step from your working folder. No additional configuration required.
[deploy]
# No extra keys needed — Navis picks up the extracted data from your working folder automatically
navis-deploy spec.toml
After the deploy 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.
Navigate to the _wired folder for any converted workbook and open the .pbip file in Power BI Desktop (File → Open report). Your report pages load with data immediately.
You're done. Walk through each report page and compare against the original. Open _CEC.zip for the full audit PDF. When satisfied, hand the wired project off to your data team to reconnect to the production data source.
In Power BI Desktop: Home → Transform data → Data source settings. Select the CSV source and click Change Source. The semantic model and all measures are already correct — no other changes needed.
| 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 the input path in your spec file. 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, name the batch in your spec file and list the files you want:
[pipeline]
input = "my_batch"
working = "C:/Working"
output = "C:/Output"
[pathlists.my_batch]
base = "C:/Workbooks"
files = [
"Sales.twbx",
"Finance.twbx",
"subfolder/HR.twbx",
]
Each path in files is resolved relative to base. Use a named batch when you want to hand-pick specific files rather than converting an entire folder.