Your estate, in plain text.
Before anything is rebuilt, the whole estate becomes open, human-readable specifications that live in your repository and outlast any BI platform choice.
A migration has two halves. The first — working out what the estate is and what every number means — is the expensive half. Open specifications capture that work in a form you own, so it only has to be done once.
Four kinds of specification
SQL
Every dataset and derived table as a SQL model — the tables your dashboards actually query.
Airflow and Python
ETL and data preparation as scheduled, dependency-ordered pipelines.
JSON and YAML
Metrics, visuals, pages, filters and access policies as structured definitions.
Field-level graph
Every dashboard field traced back through each transformation to its source columns.
What a spec looks like
These excerpts are illustrative. The exact layout is documented for each engagement, but the principle is the same: plain files that any engineer can read, diff and review.
A metric records what a number means, where it’s calculated from, and where it came from on the source platform:
# metrics/net_revenue.yml
metric: net_revenue
label: Net revenue
description: Gross bookings less refunds and discounts.
model: finance.orders
expression: sum(gross_amount) - sum(refund_amount) - sum(discount_amount)
format: currency
source:
platform: domo
object: "Beast Mode: Net Rev (v2)"
A model is the SQL behind it:
-- models/finance/orders.sql
select
order_id,
order_date,
region,
gross_amount,
coalesce(refund_amount, 0) as refund_amount,
coalesce(discount_amount, 0) as discount_amount
from raw.orders
where is_test = false
A dashboard describes pages and visuals in terms of metrics, not platform widgets:
{
"dashboard": "Regional revenue",
"pages": [
{
"title": "Overview",
"visuals": [
{ "type": "line", "metric": "net_revenue", "x": "order_date:month", "series": "region" }
]
}
]
}
Why it matters
- You own it. The specifications live in your repository, not inside our tool or a vendor’s file format.
- You can review it. Changes are plain-text diffs that your team can read and discuss like any other code.
- It’s portable. To target a different BI platform, you re-run our automated migration tool against the specs. You don’t start a new migration project.
- It’s auditable. The lineage graph shows exactly where every number comes from.
After cutover
The specifications don’t expire when the migration ends. They remain the documented, platform-neutral record of your estate: a reference for new team members, the starting point for impact analysis, and the source for whichever BI platform comes next.
Show us your estate.
A read-only metadata export is enough to start. No platform access required, mutual NDA as standard.