The Hard Part of Self-Serve Analytics Was Never the SQL
Why conversational BI succeeds or fails on definitions, permissions and explainability.
August 13, 2026
case Page image

Summary

An operations-heavy business had a competent analytics team and a queue that never cleared. Ad-hoc requests arrived faster than they could be answered, turnaround ran into weeks, and the team had become a gatekeeper by accident rather than by design. Meanwhile the dashboard estate had grown past forty, of which perhaps three were trusted, and most operational decisions were being made without asking at all because asking took too long.

The instinct in this situation is to buy natural language querying and let people ask their own questions. That instinct is right about the destination and wrong about the work. Turning a question into valid SQL is the part that is largely solved. The part that decides whether the system is trusted or abandoned is whether it uses the same definition of a metric that the finance team uses, respects who is allowed to see which rows, and can show its working when the answer looks surprising.

We built conversational analytics on an explicit semantic layer, with permissions enforced at query time and every answer accompanied by the fields, filters and aggregation logic behind it. The unglamorous part was the definitions. That was also the part that made it work.

Business Challenge

Summary: The analytics team had become a bottleneck because they were the only people who knew what the data actually meant, and slow answers were quietly being replaced with no answers.

The queue was the symptom

Ad-hoc requests were arriving at a rate the team could not clear, and each one took a few hours of skilled time. Turnaround stretched to a fortnight. The team was not underperforming. It was absorbing demand that had no other outlet.

The gatekeeping was structural, not cultural

The reason requests had to go through the analytics team was not access control. It was knowledge. They were the only people who knew that one table's revenue field excluded returns, that a particular status flag had changed meaning after a system migration, and which of three date columns represented the event the business actually cared about.

That knowledge existed in people, in query history, and in a shared understanding that had never been written down. Every request routed through the team because routing through the team was the only way to get a number that was right.

Dashboard sprawl made it worse

Over forty dashboards existed. Perhaps three were considered authoritative. The rest had been built for a specific question at a specific moment, then kept, then drifted. Meetings routinely opened with a reconciliation argument about whose figure was correct, which is expensive in a way that never appears on any budget line.

The invisible cost was the questions nobody asked

The measurable cost was analyst hours. The larger cost was decisions taken without data because the wait was longer than the decision window. Those never appear in a queue report, because an abandoned question generates no ticket. When the team surveyed managers informally, the pattern was consistent: people had stopped asking and started estimating.

Why a natural language layer alone would have failed

Dropping a query interface onto this estate would have produced fluent, confident, wrong answers. Ask for revenue by region and the system picks a revenue column. If it picks the one that excludes returns, the number looks entirely reasonable and is off by several percent. Nobody catches it, because there is nothing visibly wrong with it.

A failed query is an inconvenience. A wrong number that looks right is a decision made badly, and it damages trust in the system permanently the first time someone discovers it downstream.

Solution Approach

Summary: Make the semantic layer explicit, generate queries against governed definitions, enforce permissions at query time, and show the working behind every answer.

Step 1. Write down what the metrics mean

The first phase produced no software. It produced definitions.

Which table is authoritative for each business concept. Which column represents the event the business means when it says the word. How each metric aggregates, and over which date. Which filters are implicit in a definition and must always apply. Which historical caveats matter, and from which date they apply.

This is the least exciting phase of any analytics engagement and the one that determines the outcome. A conversational interface over undefined data industrialises disagreement. The same work also resolves a large share of the dashboard reconciliation problem on its own, before any model is involved.

Step 2. Question to query, against the governed schema

A user asks in plain language. The system interprets intent against the schema, the relationships between tables and the agreed definitions, generates the query, and executes it through the application's own data access layer rather than issuing raw statements against the warehouse.

Guardrails constrain generation to approved business logic, the user's permissions and defined data boundaries. The system is not permitted to answer creatively when a question falls outside what has been defined. It says the question is outside scope, which is the correct behavior and the harder one to build.

Step 3. Answer, chart and working

The result set returns, the system selects an appropriate visualisation, and it produces an explanation in plain language.

The explanation is not decorative. It states the fields queried, the filters applied and the aggregation logic used. A user who receives a surprising number can immediately see whether the surprise is in the data or in the interpretation. This single feature does more for adoption than any improvement in query accuracy, because it converts a black box into something a person can argue with.

Step 4. Drill down without raising a request

Chart segments are interactive. A user can filter by process step, workflow, product or operational line and the visualisation regenerates at the new level of detail without reloading and without a new request.

This is where the queue actually shrinks. Most ad-hoc requests are not one question. They are a first question followed by four narrowing follow-ups, each of which historically meant rejoining the queue. Collapsing the follow-ups into a session is the larger share of the saving.

Step 5. Persistent boards, governed per role

Users pin the charts and questions that matter to their function to a monitoring board that persists between sessions. Role-based access governs which slices of data each persona sees, so the same board shows a regional manager their region and a director everything.

Persistence removes the daily overhead of rebuilding the same view, which is a small saving repeated often enough to matter.

Cross-cutting controls

Permissions at query time. Access is enforced when the query is generated, not filtered from results afterwards. Row-level restrictions apply before data is returned.

Complete audit trail. Every question, generated query, data source, chart and response is logged. In a regulated review, being able to show who asked what and what they were shown is not optional.

Within-session context. Conversational context carries across turns, so a user can narrow, pivot and compare without restating the question each time.

Sensitive data masked at query level. Restricted fields are protected in the query path rather than in the presentation layer.

Cost routing. Interpreting a straightforward question is not the same task as reasoning over an ambiguous one. A rules-based orchestrator selects the model tier against complexity and required accuracy, which prevents the most capable model being invoked for every question asked.

Schema context served from cache. Schema and definition context is required on nearly every query and changes rarely. Caching it removes cost and latency from the common path.

Business Impact & Results

Summary: Analyst time returns to work that needs an analyst, follow-up questions stop generating requests, and every answer carries its own audit trail.

The deflection economics

Modeled with visible inputs, at a loaded analyst cost of $75 an hour and three hours per ad-hoc request.

Input

Value

Gross labor value per request

$225

Cash conversion rate

55%

Cash value per deflected request

$124

Roughly 60% of ad-hoc requests are answerable through self-serve once definitions exist. The remaining 40% need an analyst regardless, and should.

Thresholds, including where this does not pay

Ad-hoc requests per month

Annual cash benefit

Verdict

58

~$52,000

At the floor. Covers run cost only

95

~$85,000

Payback around month 22

235

~$210,000

Payback inside twelve months

385

~$344,000

Payback around month 7

This is the least forgiving break-even of our accelerators. Two hundred and thirty-five requests a month implies an analytics function of roughly six to ten people. Smaller teams should buy this for cycle time and decision quality, and the business case should say so rather than pretending the labor saving carries it.

What becomes measurable

Query generation accuracy. Failed queries, and specifically which questions the system cannot answer, which is a direct roadmap for what to define next. Response latency. Which questions get asked most often, which tells you which dashboards to build and which forty to retire. Where users override or dispute an answer, which marks a contested definition.

That last one is the most valuable output and the least expected. The system surfaces exactly where the business disagrees with itself about what a number means.

The benefit that is real and hard to price

Decisions that previously waited a fortnight. Where a client can name a specific decision that was made late and what the delay cost, include it. Do not model it generically, because a generic figure here is indistinguishable from an invented one.

Key Takeaways

  1. A wrong number that looks right is worse than a failed query. Fluent, confident and subtly incorrect is the failure mode that ends trust in self-serve analytics, and it comes from undefined metrics rather than from weak query generation.
  2. The semantic layer is the product. Writing down what each metric means is the phase that determines the outcome, and it is the phase most programs skip because it produces no demo.
  3. Follow-up questions are where the queue actually lives. Ad-hoc requests are rarely one question. Collapsing the narrowing follow-ups into a single session is the larger part of the saving.
  4. Show the working or expect abandonment. Stating the fields, filters and aggregation behind every answer is what lets a user challenge a surprising result instead of quietly distrusting the system.
  5. Under roughly 58 requests a month, this does not clear its run cost. Say it before the client discovers it.

Conclusion

Self-serve analytics has been promised for two decades and has mostly failed, and it has not failed for technical reasons. It failed because giving people a query tool without giving them agreed definitions moves the disagreement rather than resolving it. Everyone can now produce a number, and no two of them match.

Conversational interfaces change the interaction and do nothing about the underlying problem. What changes the outcome is the combination: definitions written down, permissions enforced when the query is built rather than after, and every answer arriving with the reasoning attached so it can be checked by the person relying on it.

Any organization where the analytics team has become a queue will recognize the pattern. Skilled people absorbing demand that has no other outlet, a dashboard estate nobody trusts, and a growing number of decisions taken on instinct because the wait exceeded the deadline. The remedy starts somewhere unglamorous. Before asking whether a system can answer questions in plain language, establish whether your organization agrees on what the answers mean.

Looking to solve a similar business challenge? Connect with our experts to explore the right solution for your organization.

A quick diagnostic: ask four people in different functions to define your most-used metric. If you get four different answers, the first project is definitions, not a query interface. This exercise takes an afternoon and tells you more about readiness than any vendor evaluation.

Written by
Jasraj Kalaskar
Head - Enterprise AI