
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.
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.
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 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.
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 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.
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.
Summary: Make the semantic layer explicit, generate queries against governed definitions, enforce permissions at query time, and show the working behind every answer.
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.
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.
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.
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.
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.
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.
Summary: Analyst time returns to work that needs an analyst, follow-up questions stop generating requests, and every answer carries its own audit trail.
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.
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.
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.
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.
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.