GenBI: generative Business Intelligence without wrong numbers
Ask a data question in plain language and get a number that is correct, traceable and governed. Here is why « bolting an LLM onto the database » fails, how a semantic layer changes the game, and where the real risk remains even once governance is in place.
Definition
GenBI: what exactly is generative Business Intelligence?
GenBI (generative Business Intelligence) covers a family of tools where a business user asks a question in natural language — « what is the quarter’s net revenue by region? » — and gets back a numeric answer with a visualisation. The promise is compelling: no more tickets to the data team, a shorter path from question to decision. But behind the « GenBI » label sit two radically opposed architectures, and one of them is dangerous in production.
The first gives an LLM direct access to the database schema and lets it generate free-form SQL, or even injects extracts of tables into its context. That is the « naive text-to-SQL » approach. The second — the one we stand behind — places a governed semantic layer between the question and the warehouse: the LLM never touches raw data; it translates business intent into metrics that were defined once and for all. The difference is not cosmetic: it is the line between a reliable assistant and a generator of wrong numbers.
Why talk about natural-language self-service BI?
The real goal of GenBI is not conversational magic: it is business-user autonomy. In most of the organisations we work with, a large share of the requests landing on data teams are recurring, standardised questions — the same indicator, broken down by period, region or product — that end up in the queue of overloaded analysts. That is an order of magnitude observed on our engagements, not a universal statistic: depending on the organisation’s maturity, the proportion varies widely. Natural-language self-service makes those answers immediate — provided every answer is as reliable as if an analyst had produced it. Without that guarantee, you haven’t democratised data: you have democratised error.
Why does « plugging an LLM into the database » produce hallucinations?
An LLM is a probabilistic language model: it predicts the most plausible token, not the most accurate one. When you ask it to produce a number, it has two ways of doing so — and both are problematic without guardrails.
First case: you inject rows of data into its context and ask it to « do the maths ». The model has no reliable calculator: it aggregates mentally, rounds, drops rows, adds up incorrectly. Over a sum of a few dozen values, the silent error rate is high — and nobody notices, because the answer is delivered with total confidence. That is number hallucination: a wrong figure presented as truth.
Second case: the LLM generates free-form SQL. Here the calculation is done by the database (correct by construction), but the danger moves up a level: the model itself chooses the tables, the joins and the definition of the metric. Yet « revenue » has no universal definition: net or gross? Including or excluding VAT? Refunds deducted? With or without intra-group sales? The LLM decides at the whim of the context, and every question can yield a different definition. You end up with figures that never reconcile from one conversation to the next.
A story from the field. On one engagement, two departments presented a « monthly revenue » figure to the steering committee, both drawn from the same conversational assistant wired up as free-form text-to-SQL: €4.2M for one, €3.9M for the other. Depending on how the question was phrased, the model had sometimes included credit notes, sometimes not. Half a day lost reconciling two « accurate » yet inconsistent numbers — exactly the kind of scene a semantic layer eliminates at the root.
Is text-to-SQL necessarily dangerous?
No — governed text-to-SQL sits at the heart of good GenBI. What is dangerous is free-form, unconstrained text-to-SQL. The nuance: the LLM does not generate SQL against the database’s physical schema; it calls, via function calling / tool use, an API of pre-validated metrics. The final SQL is composed by the semantic layer, not by the model. You keep the flexibility of natural language without giving up the rigour of shared definitions.
The semantic layer: the piece that makes GenBI reliable
A semantic layer is a central repository that translates business language into data logic. It declares, once and for all: here is the « net revenue » metric, here is its exact SQL formula, here are the dimensions along which it can be sliced (region, product, period), here are the default filters. Every tool — classic dashboards and conversational interface alike — consumes that same definition.
On the tooling side, this is no abstract concept: proven standards exist. The dbt Semantic Layer (MetricFlow), Cube, LookML (Looker) and Malloy let you declare metrics and dimensions as versioned code, tested in CI/CD. In a governed GenBI architecture, the LLM (Claude, Gemini, Mistral or a self-hosted model, depending on the compliance context) interprets the question and then calls this layer’s API via tool use: it passes the target metric, the dimensions and the filters. The layer compiles the correct SQL, runs it against the warehouse, and returns an exact numeric result. All the LLM did was translate intent. The calculation belongs to the database; the definition belongs to governance.
Metrics defined once
« Net revenue », « gross margin », « churn »: one formula, one owner, shared across every use. No more figures that diverge from one department to the next.
Native traceability
Every answer exposes the metric used, the filters applied and the query executed. You can audit where the number comes from, line by line.
Profile-based access control
Data scope is enforced at the layer, per profile and per perimeter. Natural language can never be used to sidestep existing permissions.
What does an end-to-end journey look like?
A concrete example beats a diagram. Take a real question asked by a sales director.
1. Question (natural language): « What net revenue did we book in France in Q1, by region? »
2. Mapping by the LLM (tool use): metric ca_net · dimension region · filter pays = "FR" · period 2026-Q1. The LLM can only propose objects declared in the layer; any unknown metric is rejected.
3. SQL compiled by the semantic layer: SELECT region, SUM(montant_ht) - SUM(avoirs_ht) AS ca_net FROM ventes WHERE pays = 'FR' AND date BETWEEN '2026-01-01' AND '2026-03-31' GROUP BY region; — a formula fixed once, credit notes deducted by definition.
4. Result executed by the warehouse: Île-de-France €1.84M · Auvergne-Rhône-Alpes €0.92M · Hauts-de-France €0.61M. Source: metric ca_net, query above, executed at 14:02.
The number is correct because the database calculated it, consistent because the definition is unique, and auditable because the metric and the query are cited. The LLM, for its part, never saw a single row of the table.
Is the semantic layer enough? The blind spot you need to know
Let’s be honest: the semantic layer eliminates calculation and definition hallucination, but not the subtlest risk of all — intent mis-mapping. The LLM can return a perfectly exact number… that answers the wrong question. Three classic cases: it picks the wrong metric (gross revenue instead of net), the wrong dimension (billing region instead of delivery region), or the wrong time filter (calendar quarter instead of fiscal quarter). The answer is « true » in the sense that it is correctly calculated, but it is beside the point — and therefore misleading.
This is the blind spot most demos quietly skip. We address it with two mechanisms. First, clarifying: when the intent is ambiguous, the assistant does not guess — it rephrases (« do you want net or gross revenue, over the fiscal quarter? ») before executing. Second, continuous evaluation: a reference set of questions, each with the expected metric/dimension/filter, replayed at every change to the model or the layer, to measure the correct-mapping rate — not just the accuracy of the number. Presenting governance as a total solution would be dishonest; presenting it as an architecture that makes the risk measurable and correctable is the operational reality.
And compliance: where do the questions go, what does the LLM see?
This is the DNA of our sister company Datanaos, and a point too often neglected in GenBI. The structural good news: in a governed architecture, the LLM never sees the data rows. It handles metric and dimension names, not amounts or personal data — minimisation is native, which sharply reduces exposure under the GDPR. Two questions still need an explicit answer: where users’ questions are sent (an EU-hosted or self-hosted model on AWS/Docker may be required in sensitive contexts) and usage traceability under the EU AI Act. Prompt governance and LLM cost tracking (logs, quotas, per-profile caps) belong to the trust layer just as much as the evals do: without them, a GenBI drifts silently, in quality and in budget alike.
How do you deploy a governed GenBI, step by step?
A reliable GenBI does not install like a plugin. It is an industrialisation effort that starts from the data foundation and works its way up to business usage. Here is the sequence we apply.
Map the data
A non-negotiable prerequisite: knowing which sources exist, their quality, their freshness and their meaning. Without a data map, the semantic layer is built on sand.
Define the metrics
With the business and the data team, you lock down the definitions of the key indicators, their formulas, their dimensions and their rules. This is the central act of governance.
Build the semantic layer
You implement those definitions in a versioned repository (dbt/MetricFlow, Cube, LookML…) connected to the warehouse, with per-profile access scopes designed in from day one.
Plug in the conversational interface
The LLM is confined to tool use against declared metrics. No free-form SQL, no model-side calculation. Clarifying when the intent is ambiguous; every answer cites its source.
Evaluate and move to run
A reference question set (expected mapping included), tracking of the traceable-answer rate, logs, LLM costs and compliance. You iterate before widening the scope and the user base.
Steps 1 and 2 are where most of the success is decided — by far the largest share of the effort, based on our engagements. An organisation that thinks it can skip the data mapping to « test quickly » invariably ends up backtracking. See our dedicated guide on data mapping for AI to structure that foundation.
LLM straight onto the database or governed GenBI: how do you decide?
| Criterion | LLM straight onto the database | Governed GenBI (semantic layer) |
|---|---|---|
| Accuracy of the numbers | Hallucinations possible | Calculated by the database, exact |
| Consistency of definitions | Varies from one query to the next | Metric defined once, stable |
| Traceability | Close to none | Source and query auditable |
| Risk of mis-mapping | High and invisible | Reduced by clarifying + evals |
| Access control | Can be bypassed by prompt | Enforced per profile and perimeter |
| Fit for production | No — demos only | Yes |
These three indicators form the dashboard of a GenBI in production. Let’s be precise about their status: a time-to-insight measured in minutes is a realistic objective once the semantic layer is mature — not an instant promise. The rise in adoption is a target to be measured, specific to each organisation, not a guaranteed multiplier. The traceable-answer rate, however, is credible at 100% as a target, because traceability is a property of the architecture, not a hope: any untraceable answer is a risk, not a service.
The pitfalls to avoid on a GenBI project
- Letting the LLM calculate. Any number produced by the model rather than by the database is suspect. The rule: translation yes, calculation never.
- Skipping the semantic layer. Without shared definitions, your figures diverge between conversations and between departments. It is the number-one cause of lost trust.
- Ignoring the mis-mapping risk. An exact but off-target number is more dangerous than a visible error. Clarifying and mapping evals are non-negotiable.
- Starting without a data map. A semantic layer built on poorly understood data inherits all of its ambiguities. The data foundation comes first.
- Forgetting access control and compliance. If scope is not enforced in the layer, natural language becomes a back door — and the question « where do the prompts go? » must be settled before production.
- Confusing demo with production. An impressive demo on three questions says nothing about robustness across hundreds of real, concurrent queries.
These are the same pitfalls that sink AI POCs in general. For the full framework on scaling up, read our checklist on taking an AI POC to production, and for the architecture of the agents and orchestrations feeding these flows, our guide to n8n, MCP and LLM agents.
Want to know whether your data foundation is ready for GenBI? Our AI assessment & scoping — a short, fixed-price engagement, no commitment — identifies the priority metrics and the data-mapping effort still ahead. Also discover our end-to-end GenBI offer.
Frequently asked questions about GenBI
Can GenBI really avoid every hallucination on the numbers?
Yes for calculation and definition hallucination, as long as the LLM never calculates: in a governed GenBI, the model translates the question into declared metrics and the calculation is executed by the warehouse. The numbers come from your data, not from the model, and every answer is traceable. What remains is a mis-mapping risk (an exact but off-target answer), covered by clarifying and continuous evaluation.
What is a semantic layer in BI, concretely?
It is a central repository that declares, once and for all, the metrics (formulas), the dimensions and the access rules. Standards such as the dbt Semantic Layer (MetricFlow), Cube, LookML and Malloy implement it as versioned code. Every tool consumes the same definition, which guarantees that « revenue » means the same thing everywhere, in a dashboard as in natural language.
Is text-to-SQL generated by an LLM reliable?
Free-form text-to-SQL is not: the model picks tables, joins and definitions at the whim of the context. Governed text-to-SQL is: the LLM targets pre-validated metrics via function calling, and it is the semantic layer that compiles the exact SQL. You keep natural language without giving up rigour.
Can an answer be exact yet wrong for my question?
Yes, and it is the subtlest risk: the LLM can mis-map the intent (wrong metric, dimension or time filter) and return a correctly calculated but off-target number. We address it with clarifying (the assistant rephrases instead of guessing) and with mapping evals replayed at every change to the model or the layer.
Where do the questions go, and what about the GDPR / EU AI Act?
In a governed architecture, the LLM never sees the data rows: it handles metric and dimension names, which natively minimises exposure of personal data. Still to be settled: where the model is hosted (EU or self-hosted on AWS/Docker for sensitive contexts) and usage traceability under the EU AI Act, both built into the trust layer alongside prompt and cost governance.
Which KPIs should you track to run a GenBI in production?
Time-to-insight (question-to-answer delay, targeting minutes once the layer is mature), adoption (real usage by business teams, measured over time), the correct-mapping rate and the rate of answers traceable back to the source. The latter is the quality guardrail: an untraceable answer is a risk to be dealt with.
Move from experimentation to AI in production
Start with a short, fixed-price diagnostic: maturity, high-ROI use cases, and a prioritised roadmap. No commitment.