Holistics effectively allows us to be repeatable. We add a new client, copy and paste all the data models, and change the data source. Done!
David Aldred
Insight Director, Retail Insight
Your models, metrics, and dashboards live as code in Git. Branch, review, and release every change the way engineers ship software.
Every model, metric, and dashboard is a plain-text definition, tracked in Git and compiled to your warehouse's native SQL. Nothing trapped in a UI, no logic copy-pasted between dashboards.
Tables, dimensions, measures, and the relationships between them.
Model orders {
dimension status { type: 'text' }
dimension amount { type: 'number' }
measure count {
definition: @aql count(orders.id) ;;
}
}
Dataset sales {
relationships: [
relationship(
orders.user_id > users.id)
]
} Composable metric definitions in AQL, defined once and reused everywhere.
Metric total_orders {
definition: @aql count(orders.id) ;;
}
Metric gmv {
definition: @aql sum(items.amount) ;;
}
Metric aov {
definition: @aql gmv / total_orders ;;
format: "[$]#,###0"
} Canvas layout, blocks, filters, and chart types, all in code.
Dashboard revenue {
block kpi: VizBlock {
viz: KPIMetric {
dataset: sales
value: gmv
}
}
block trend: VizBlock {
viz: LineChart {
dataset: sales
}
}
} Access rules written in code and reviewed like any other change.
Dataset sales {
permission regional_access {
field: r(orders.region)
operator:
'matches_user_attribute'
value: 'region'
}
} Reusable dashboard themes and color palettes, versioned with the rest.
PageTheme brand_theme {
color { data: brand }
}
ColorPalette brand {
categorical {
colors: ["#4F46E5", "#22C55E"]
}
} Descriptions, definitions, and lineage that give AI agents the context to answer from real business logic.
const ai_context = @md
## Business rules
Default dataset: ${sales}
Revenue is net of refunds.
${ if (H.current_user.team == 'Finance') {
'Fiscal year starts in April.'
} }
;; “The semantic layer is Holistics' biggest draw because I was able to build reusable models, dimensions, metrics, and then describe them as code.”
Sterling Paramore
Sr Staff Data Engineer, Mainspring Energy
Plain-text definitions in your own Git, compiled to SQL on your own warehouse. Nothing proprietary to migrate out of if you leave.
Open semantic layerBranch, propose, and review every change in a pull request. Teams work in parallel instead of taking turns in one shared workspace.
Code reviewHistory, review, environments, and rollback on every definition, so business logic gets the same rigor as production code.
Version controlSearch, rename, and refactor across the whole project in one commit. A UI or API touches one object at a time; code touches as many as you need.
Code searchCI type-checks every change and blocks breaks. Auto-publish ships on merge. Releasing analytics runs on its own.
CI/CDIt all compounds when AI writes the code: agents edit real definitions, reuse reviewed logic, and ship through the same checks as everyone.
Agentic developmentBecause your analytics is code, every change moves the way software ships, and inherits decades of Git tooling for free.
Every model, metric, and dashboard has a complete history. See what changed, when, and by whom, and roll back instantly.
Version control docsChanges are proposed, diffed, discussed, and approved before they reach production. No silent edits to a shared workspace.
Code review docsCompile and type-check on every PR, block breaking changes, and auto-publish on merge through the Validation and Publish APIs.
CI/CD docsDev, staging, and production each point at their own data source, so you test on real structure without touching production.
Dev/prod environment docs“The ability to track changes on dashboards via the Git integration is great! This would allow us to design the dashboards more individually.”
Thi Ng.
Lead Product Manager, Dbdiagram
As code doesn't mean everyone writes code. The same governed project is editable three ways, and every path commits the same reviewable AML.
Every model, dataset, and dashboard is both a GUI object and an AML file. Change one and the other updates.
Being able to create charts in visual view and look at the code, and vice versa is really useful. It's like when you're in Excel, you can record a macro, do your stuff, and then come back and look at the code. That's how it should work.
Use Claude, Codex, or Cursor locally, or our Copilot in the browser, to build models, metrics, and dashboards.
Live preview
Your dashboard will build here
Revenue dashboard
LiveBecause it's code, you own your analytics outright, and it runs on the stack you already have.
Host it on GitHub, GitLab, or Bitbucket. It's your repository.
Every query compiles to native SQL you can read and check.
Nothing is copied out. Queries run where your data already lives.
It's just files. Nothing proprietary to migrate out of.
Query your governed metrics from the API and CLI, not only the Holistics interface.
Build metrics and dashboards on top of the dbt models you already have.
“Holistics's dbt integration was the biggest draw for me and demonstrates a clear understanding of where the modern data stack is headed.”
Stuart Shiell
Lead Data Insight, Semios
Holistics effectively allows us to be repeatable. We add a new client, copy and paste all the data models, and change the data source. Done!
David Aldred
Insight Director, Retail Insight
Holistics felt like a Looker that is still being developed and going somewhere, not being mothballed by Google or becoming a cog in an over-engineered stack.
Max Pagel
CTO, SensorFlow
I just build a few models and write descriptions, and people from different departments have been using them to build reports throughout the years without having to ask me or the IT team.
Martin Dell
Founder, Kyero
A 30-minute walkthrough with a Holistics engineer. We'll connect a sample of your warehouse and ship a change from a pull request to a live dashboard.