A hand-rebuilt dashboard binds all of the analysis to one vendor's file format.
Every calculation gets re-derived by an analyst reading the old screen and inferring intent. Choose a different target two years later and the same estate is interpreted from scratch, by different people, with different answers.
So we split the migration in two — and only the second half is platform-specific.
First the estate becomes open specifications: SQL for models, Airflow and Python for transformations, JSON and YAML for dashboard definitions, plus a field-level lineage graph. It lands in your repository as reviewable pull requests, not inside a black box.
The expensive half is done once, and it never expires.
Generators turn those specs into native artifacts on Power BI, Tableau, Looker, Sigma or Superset. Change your mind about the target and you re-run a generator — not the project.
Left: the incumbent estate as we find it — duplicated, dormant, undocumented. Right: the same estate rationalised, translated and regenerated.
A read-only metadata export is enough to start. No platform access required, mutual NDA as standard.