Ask your data.
Get answers you can
trust, verify, and interact

AI-assisted self-service analytics that lets anyone explore data with natural language. Grounded in governed metrics, verifiable logic, and your team's shared definitions.

  1. 1  You ask, AI answers in chat

  2. 2  AI spots a gap, proposes a fix

  3. 3  You approve, the semantic layer improves

How many customers are we losing vs gaining in APAC each month?
Used
Gained Customers
from your semantic layer.
Found no predefined metric
Lost Customers
- asked and you confirmed 90 days without an order.
Wrote it in AQL, then compiled to SQL
View AQL
A new metric, by month metric lost_customers_by_month =
For every month, consider every user once. unique(calendar.month, users.id)
| select(
This is the month we are evaluating the user in. snapshot_month: calendar.month,
This is the user we are evaluating. user_id: users.id,
When did this user place their first-ever order? first_order_at: orders | min(orders.created_at),
When did this user most recently place an order? last_order_at: orders | max(orders.created_at)
)
Only count users who had already become customers before this month. | filter(first_order_at < snapshot_month)
Exclude users who ordered during this month. | filter(last_order_at < snapshot_month)
Only keep users whose last order was over 90 days ago by the time this month starts | filter(date_diff('day', last_order_at, snapshot_month) > 90)
This user is lost in this month. | select(snapshot_month, user_id)
| count(user_id);
APAC customer flow (Gained vs Lost)
420 150 Jan 455 160 Feb 490 175 Mar 470 190 Apr 530 185 May 575 205 Jun 560 220 Jul 380 240 Aug 545 230 Sep
Gained Lost

AI suggests 3 improvements

Define "Lost Customers" in the semantic layer

User settled on 90 days without repeating order in this chat. Define it once for every future answer.

Customers model

Your semantic layer

Org context
AI Skills
AI Tasks
Models
Metrics
Dimensions
Dashboard
3 Improved
Reasoning
Improving
1 Answered
2 Proposed
Report the average gap between repeat orders

When discussing repeat customers, share the current average gap to check if the definition still fits.

AI skill
Add a region dimension to Customers

Region sits only on Orders, so customer cuts need a join. APAC is 41% of revenue — model it once.

Customers model
Chat

Chat about your data

Ask in plain English. Get clarification when you're ambiguous, root-cause analysis when you need to dig deeper, and a narrative when you're ready to share. Data exploration that feels like a real conversation.

Explore AI capabilities

Hi — what would you like to explore?

Ask about revenue, customers, or why a number moved…
How has revenue trended this year?
Thinking…
Revenue is up 105% since January, from $38.2k to $78.4k. August was the outlier though — it dipped 11% versus July.
Monthly revenue, 2026 YTD Up 105% Jan to Dec, with a break in August
Revenue
Analyze decrease

I’ll break down July and August revenue by a few dimensions to see what drove the drop.

Revenue fell across every product category, each by roughly 11% — so no single product line is responsible.

Revenue by category, Aug vs Jul
JulyAugust

By region it is concentrated: APAC accounts for 82% of the drop — $5.4k of the $6.6k total.

Revenue by region, Aug vs Jul
JulyAugust

So this isn’t a category problem — it’s an APAC problem. That could mean fewer APAC customers, or the same customers spending less. Worth checking APAC customer activity next.

Is APAC losing customers, or just not gaining them?
Thinking…
One definition to pin down first:
90 days without an order
Thinking…
This is an acquisition problem, not churn. August gains fell to 1,240 36% against a 1,938 monthly average, while losses held at 310 avg 306 — the same as every other month.
APAC customer flow Gained vs lost · lost = 90 days without an order Open in Explorer
GainedLost
Ask a follow-up…
Revenue: $51.2k Month: Aug 2026
Exclude this data point
Filter
Analyze decrease
How long without an order counts as lost? Avg. APAC repeat-order gap is 47 days, so this sets the whole answer.
60 daysComfortable grace beyond the average gap
90 daysWide grace, safer against seasonal or slow-cycle buyers
Something elseSet your own window
Skip Confirm
APAC customer flow Gained vs lost · lost = 90 days without an order Save to dashboard
Suggested chart: Stacked column
Add reference line
Color “Lost”
GainedLost

AI you can actually verify

Every AI-generated answer is transparent.
See the reasoning in plain English, then inspect the underlying query logic
- so you never have to take the AI's word for it.

Plain-language explanations

AI walks through its reasoning step by step, so you can check it before you trust the answer.

Plain-language explanations

Readable query logic

See the query as a readable, high-level formula (not raw SQL), so you can verify exactly how every metric is calculated. Compact enough for a human to review in seconds.

Readable query logic

Governed by your definitions

The AI prioritizes your team's endorsed metrics and composes new ones from definitions you already have. You can trace every answer back to its source.

Governed by your definitions
Guido Stark
Guido Stark Head of Data, World Vision
The AI does far more than just fetch answers - it actually understands the context and generates working solutions, even for edge cases. It's saved me a ton of time already.
Guido Stark
Guido Stark Head of Data, World Vision New Zealand
I'm seriously impressed with Holistics AI capabilities! While using Search Docs Mode, I realised it does far more than just fetch documentation, it actually understands the content and generates working solutions, even for edge cases not directly covered. Since then, I've been pasting in dashboard and theme code, and it consistently helps me fix or enhance things. It's saved me a ton of time already!

A query language built for AI reasoning

Instead of translating natural language directly to SQL, the AI generates AQL,
a high-level, composable analytics language.
You get answers that are more reliable, more readable, and handle more.

Verifiable & readable

AQL is compact and high-level, making it easy to read and verify the AI's logic, with no 200-line SQL queries to decipher.

Reliable

The AI works in a high-level language, so it never fights database-specific syntax or SQL gymnastics. The AQL compiler handles translation deterministically.

Composable & capable

Break complex operations into modular pieces and combine them like building blocks. Prebuilt functions handle period comparisons, running totals, nested aggregations, and more.

Self-service BI platform
Ian
Ian BI Engineer, DNSFilter
I'd score AQL a 9 or 10. It's up there with the best tools I've used. With AMQL, it's really cool that we can now define metrics based on other metrics, stacking them on top of each other.

AI works natively with Holistics - because all analytics artifacts are code: Models as Code Datasets as Code Metrics as Code Dashboards as Code

Models, datasets, metrics, and dashboards are all defined as text-based code.
This means AI tools can read, generate, and modify your analytics definitions.
Version control and governance come free.

Build with AI-powered IDEs

Use Cursor, Claude Code, or your preferred AI coding tool to develop models and dashboards faster than ever.

Build with AI-powered IDEs
Version control & governance

Every change is tracked. Review diffs, manage branches, and enforce governance workflows, the same way engineering teams manage code.

Version control & governance
Auto-generated documentation

AI writes field descriptions, dataset summaries, and tag descriptions. Your semantic layer stays documented with zero manual work.

Auto-generated documentation
AI-assisted workflow

Auto-generate commit messages and PR descriptions. Focus on the analytics work, not the paperwork.

AI-assisted workflow
Tina Einsiedler
Tina Einsiedler Tandem Health
I really loved that you have all of that in code. When working with ChatGPT, you can just say 'here's the table I have, can you add descriptions to everything?' It makes AI actually useful because it can parse and understand your models.

Teach AI about your business

AI draws on your existing models and definitions from the start. Then go further:
customize its behavior at the organization, team, or individual level with programmable context.

Rich context by default

AI automatically draws from your semantic models, metric definitions, dashboards, and conversation history. No manual setup required to get accurate answers immediately.

Organization-level instructions

Define your business background, operational knowledge, and response preferences in a central config - so AI speaks your company's language and follows your standards.

Dynamic per-user context

Customize AI behavior per team or user with programmable logic. Marketing sees marketing data, purchasing sees purchasing data. Automatically.

Jerry B.
Jerry B. Cortex
The dynamic context - where you can customize AI behavior per user or team - that's really cool. Other tools can't do that easily.

Bring AI analytics everywhere

Connect to your existing tools or embed AI-powered analytics
directly into your product. No AI stack required.

Holistics MCP Server

Use Holistics' querying power inside any external AI tool via the Model Context Protocol. Your AI assistants can query governed metrics natively.

Embedded AI Chat

Give your customers AI-powered analytics inside your product. No need to build your own AI - embed the Ask AI experience directly.

Frequently asked questions

How to activate Holistics AI?
To join our beta program for Holistics AI, please visit the following link: Join our waitlist. We will notify you once the beta is ready.
How does Holistics AI use my data?
To provide Holistics AI functionality, we share your modeling metadata with third-party AI providers while you use the AI features.

Rest assured, these providers or contractors are not permitted to use your data for training their models, and we do not utilize the AI inputs and results from our customers to enhance our service.
What models does Holistics AI leverage?
Currently, we use Open AI API, adhering to their policy of not utilizing prompts or any inputs as training data. Additionally, we are experimenting with other models to identify those that offer the best performance and user experience.