Conversational analytics for dbt teams
The business asks the questions in Teams. The data team captures the answers in dbt.
Mark Your Data Assistant answers business questions in Microsoft Teams from your dbt semantic layer. Every answer says whether it comes from a governed definition. Questions that aren't governed yet become the data team's backlog, and the data team closes each gap with a change in dbt.
Your team names the assistant, and colleagues see that name in Teams.
From unverified to governed
Demo with sample data, with query results shared with the AI
What was our total revenue in 2025?
About EUR 937,050.
✅ Governed: calculated with Revenue from the semantic layer.
What is the average order value this year?
About EUR 489.
⚠️ Unverified: no definition in the semantic layer covers this question, so the SQL was written for it.
The data team adds “average order value” to dbt.
What is the average order value this year?
EUR 489.16.
✅ Governed: calculated with Average order value from the semantic layer.
How it works
-
Ask it in Teams
Colleagues ask in a personal chat in Microsoft Teams, in Dutch or English, and the assistant answers in the language of the question. Follow-up questions keep the context of the conversation; typing “new” starts a fresh one.
An answer contains a short text, a table and, where the result fits one, a chart: a line for a trend, bars for a ranking. “Show SQL” shows the exact SQL that ran.
-
Honest when it's not sure
Every answer from the data carries one of two labels:
✅ Governed: calculated with Revenue from the semantic layer.
⚠️ Unverified: no definition in the semantic layer covers this question, so the SQL was written for it. Check it before you rely on it.
MetricFlow computes governed answers from your dbt metrics or from a saved query the data team defined once. The AI fills in the details of the question but doesn't write that SQL. When the assistant can't answer reliably, it says so instead of guessing.
-
Feedback that reaches the data team
Every answer has 👍 and 👎. A 👎 asks “What went wrong?” and requires a reason, such as “The numbers look wrong” or “Data is missing or incomplete”, plus an optional comment.
The assistant stores the feedback with the exact answer it rates: the question, the SQL and the label. The data team reads it in the assistant's log reports and in its own observability tool.
-
Captured in dbt
The data team closes a gap by adding a metric or saved query in dbt, through a normal pull request that is reviewed and tested. No prompt tuning.
Once the dbt change is published, the next answer to the same question is ✅ Governed, for everyone.
When figures can still change, the assistant says so, for example “Figures from 9 September 2026 onwards are not final yet”, and offers “Only final figures”. A vague question gets a default answer with the assumption stated, and the alternatives one click away.
Same definitions as your dashboard
Governed answers use your dbt metrics, so returns and cancellations are handled exactly as your metric defines them.
Real questions become your backlog
The log shows which questions were unverified and why users gave a 👎. “Data is missing or incomplete” on an unverified answer points at a metric to add.
Measure coverage, not opinions
The coverage scan shows how many of your team's questions are governed, before and after every change in dbt.
Mark Your Data calls this loop from business question to governed definition in dbt Question-Driven Development.
What changes for each role
Managers
Every answer says whether it uses a definition the data team reviewed in dbt. A ✅ Governed answer uses the same metric definition as your dashboard. A ⚠️ Unverified answer tells you to check it before you rely on it.
Data engineers
The log reports show what the business asks, which answers were governed, and why users gave a 👎. You close a gap with a metric or saved query in a normal dbt pull request, and the coverage scan shows the effect.
Analysts
Questions covered by a metric or saved query get answered in Teams, without an analyst writing a query. For anything else, “Show SQL” shows exactly what ran, so you can review it.
Business users
Ask in Dutch or English in Teams. Answers took 3 to 8 seconds in testing on sample data. If a dashboard raises a question, ask for a breakdown or a follow-up in the same chat.
Why are the model calls small?
Mark Your Data Assistant prunes your dbt artifacts to the tables you expose and leaves out model SQL. When the AI writes SQL, it gets the most relevant tables within a token budget. For a governed answer, the AI chooses the metric and fills in the details, and MetricFlow writes the SQL.
The assistant records tokens and cost per request. If your conversational analytics bill is higher than you expected, you can compare these figures with your current tool.
What's built today
- Microsoft Teams chat app (Slack is also available)
- Dutch and English
- dbt semantic layer via MetricFlow, with SQL as a fallback that is always labelled Unverified
- Tables and charts
- Data status: late data, figures not yet final, periods partly outside the period asked
- Feedback with a reason
- Coverage scan and log reports
Connectors today
- Cloud: Google Cloud
- Warehouse: BigQuery
- AI providers: Gemini on Vertex AI, OpenAI, Mistral (EU endpoint) and any OpenAI-compatible gateway
- Chat: Microsoft Teams (Slack is also available)
- Observability: any tool that accepts OpenTelemetry, such as Grafana, Datadog, Langfuse or Phoenix
Mark Your Data Assistant is vendor-agnostic: the cloud, the warehouse, the AI provider and the observability tool are connectors. Mark Your Data adds new connectors one client at a time, as part of a pilot.
Requirement
dbt Core 1.11 with at least one metric or saved query, and the generated dbt artifacts. Your team builds the semantic layer from there, one question at a time.
Security and data
Does data leave your environment?
Yes, some data does, and you control how much. Mark Your Data Assistant runs in your own cloud and reads your warehouse with read-only access. Data can go to three places.
Your AI provider always receives the question, the recent conversation, descriptions of the tables and metrics the user may query, and the SQL. You configure how much of the query result it also sees:
- Structure only: column names, column types and the number of rows. No values from query results reach the model, and users read the figures in the table.
- With results: the model also reads the first rows, so it can state the figures in its written answer.
You configure Mark Your Data Assistant with the AI providers you choose and contract directly, such as Gemini on Vertex AI, OpenAI or Mistral. For routing, you can use a decision model such as TypeSafe Jev, or an LLM from those providers. Their terms set retention, training use and processing location, so choose partners whose terms fit your company.
Your chat tool carries the questions and answers, such as Microsoft Teams in your own tenant.
Mark Your Data will collect monthly usage totals from your installation, such as active users, questions and tokens, to support your installation and keep improving the product. These totals contain no query results, question text, SQL, answers or user IDs. Anything more sensitive will be collected only if you explicitly want that, and pseudonymised.
Logs and traces stay in your environment unless you send them to another tool.
Security controls
- The assistant reads your warehouse through a read-only service account, with a cap on the data a query may scan.
- Every query passes a SQL guard before it runs. The guard allows one read-only statement, on approved tables only, with a row limit. The AI never runs SQL itself.
- Logs and traces mask names and IDs from your data by default.
- Users are told they are talking to an AI assistant, as article 50 of the AI Act requires.
Why Mark Your Data
Conversational analytics is where analytics, data engineering and AI engineering meet, and Mark Schep has done all three jobs. Mark Your Data Assistant builds on that experience: the dbt semantic layer from data engineering, the guardrails and observability from AI engineering, and the questions the business actually asks from analytics.
You work directly with the person who built it. When something needs fixing, you're one phone call away and first in line.
With a large cloud vendor you're a ticket number. With Mark Your Data you're a phone call away from the person who built the assistant.
Mark Your Data is working on its first pilots with clients. Until those are public, the proof is the demo above and the talk When your data warehouse talks back at Data Expo 2026.
How to start
Fit check
A fit check tells you whether Mark Your Data Assistant fits your stack. Mark Your Data interviews the business and holds technical talks with the data team about your dbt project and semantic layer, your warehouse, your cloud setup and your Microsoft 365 tenant.
Pilot on your own cloud
One quarter
A pilot is a proof of concept that runs for one quarter in your own cloud environment. Colleagues ask their real questions in Teams from the first day, and the pilot proves two things: that the assistant works on your stack, and that it adds value for your team.
At the end of the quarter you decide to keep the assistant and scale it, since it already runs in your environment, or to stop. Setting up together covers:
- Installing the app in your Microsoft 365 tenant
- Connecting your warehouse and the storage for your dbt artifacts
- Choosing your AI provider
Pilot when the fit isn't exact
A pilot is still possible when your stack isn't a 100% match. On Snowflake, Databricks or another chat tool? Mark Your Data can add a connector as part of the pilot.
What clients say
Mark combines a sharp analytical mind with broad technical knowledge. He prioritizes simple, working solutions over unnecessary complexity. For us, this resulted in significant cost savings through a surprisingly straightforward implementation with low maintenance costs. He communicates clearly and cuts through the jargon, Mark is a highly effective partner to work with.
Jasper van Heijst
Group Product Manager
, bol.
At bol, I worked with Mark for over a year on Team SEO. Mark is incredibly curious and genuinely wants to get to the core of complex problems. For Team SEO, he worked on, among other things, generating relevant content at scale using AI. The professionalism and skill with which he approached and delivered this really impressed me. Beyond his strong Data & AI skills, Mark is also very personable and a pleasure to work with. Need someone who can translate complex Data & AI challenges into scalable solutions with real impact? Mark is definitely your person.
Richard Norbruis
Freelance Web Analyst & Experimentation/CRO Specialist
, bol.
Mark has proven to be an invaluable asset to the team during our profit steering project. He is highly proactive, quickly mastering the topic and taking full ownership, while also knowing when to ask for help and reach out to other teams to move things forward. He consistently asks the right questions, focusing on understanding the problem rather than jumping to solutions. Combined with his out-of-the-box thinking, this allowed him to uncover approaches and solutions we couldn't think of ourselves. His curiosity, collaboration, and fresh perspective made a lasting impact on both the project and the team.
Daan van den Berg
Product Manager
, bol.
Questions dbt teams ask
Why AI answers don't match the dashboard, and how to make them
Answer from your dbt definitions first, and label everything else.
Read the answersHow the business gets answers without waiting for the data team
Colleagues ask in Teams, in Dutch or English, and get a readable answer.
Read the answersDo you need a dbt semantic layer first?
Start with one definition and let the layer grow from real questions.
Read the answersHow the data team learns what the business asks, and improves
Real questions and feedback show the data team which definitions to add.
Read the answersIs it safe for our data?
Read-only access, checked queries, and AI providers you choose.
Read the answersWhich platforms fit, and when we're not the right choice
Where the assistant fits today, and what to ask any vendor.
Read the answersWhat conversational analytics costs
What drives the cost, and how to build your business case with your own numbers.
Read the answersWorking with dbt and want to start with conversational analytics?
Start with a fit check to see whether Mark Your Data Assistant fits your stack, or with a one-quarter pilot on your own cloud.
Send me a message