Knowledge Base

How to Evaluate a RAG Chatbot Before You Buy It

A test protocol for document-grounded AI: the questions to ask, what a good answer looks like, and how to turn a demo into a repeatable regression suite.

Edtek Team

How do you evaluate a RAG chatbot? With about thirty questions you write yourself, from your own documents, before you see any demo. Roughly a third should have a single findable answer, a third should require combining two places, and a third should have no answer in your library at all. The last third is the one that decides the purchase, because it is the only part of the test a fluent system cannot pass by being fluent.

Most evaluations of document-grounded AI are conducted by watching a vendor ask a system a question the vendor chose. This reliably produces a good impression and almost no information.

This article is a protocol for doing it properly: what to write before the demo, what to look for during it, and how to convert the whole thing into a suite you can re-run every time a model, a threshold or a prompt changes. We build Edtek Chat and ship an evaluation suite with it, so our framing is not neutral — but the protocol below is vendor-agnostic and works against anything, including us.

Write the questions before you see the product

Thirty questions, drawn from your own material, split three ways.

Ten single-source questions. The answer exists in exactly one place in your library and you know where. These test whether retrieval finds the obvious thing. They are the easiest tier and a system that fails here is disqualified.

Ten multi-source questions. The answer requires combining two or three passages, possibly from different documents. These test whether the system retrieves broadly enough and whether it merges without blurring — the common failure is an answer that is true of one source, attributed to another.

Ten unanswerable questions. Ordinary, reasonable questions about topics adjacent to your library that your documents genuinely do not cover. Not nonsense — a question a real user would plausibly ask. This tier is the whole evaluation. Everything else is table stakes.

For each question also write, in one line, what a correct answer contains. You will need it later, and writing it forces you to notice which of your questions are actually ambiguous.

What to watch during the demo

On the answerable questions

On the unanswerable questions

There are only three possible behaviours, and they are not equally good.

BehaviourWhat it means
Answers fluently, no sourcesDisqualifying. The system is drawing on model knowledge and presenting it as your content.
Answers, citing loosely related passagesBad, and harder to catch. Retrieval had nothing and the system used the nearest thing anyway.
Declines and says what would change the outcomeCorrect. This is the behaviour you are paying for.

Ask specifically whether the decline is generated or fixed. A system that never calls the answering model when nothing was retrieved cannot improvise, because there is nothing to improvise with. One that asks the model to write a refusal is trusting the model to refuse — which usually works and occasionally does not. We describe where that boundary sits in our own pipeline in how grounded answers work, including the case where a follow-up question is answered from the conversation rather than the library.

The four numbers worth asking for

Impressions do not survive procurement. These do.

Pass rate against a fixed set of cases. Not “accuracy” in the abstract — the proportion of your thirty questions that produce an answer you would sign. Ask whether the vendor can run your questions, not theirs.

Retrieval recall. For each single-source question, did the passage you know is correct actually come back? Retrieval failures and generation failures look identical from the outside and have completely different fixes. A system that can show you which passages were retrieved, at what scores, before and after re-ranking, lets you tell them apart.

Latency at the 95th percentile. Averages hide the answers that take twenty seconds. Users experience the tail.

Cost per answer. Per deployment and per model. Ask what happens to it if you switch to a stronger model — and whether you can switch without a release.

Turning the demo into a regression suite

The reason to write the questions down is that a document-grounded system is not a fixed thing. The model gets swapped for a cheaper one. Someone raises a similarity threshold to cut noise. A new tranche of documents lands. Each of those is a change that can silently make answers worse, and none of them will announce itself.

What replaces vigilance is the same practice software teams already use for code:

Golden questions + reference answers


  Run through the SAME pipeline users hit

        ├── LLM judge: does the answer match the reference?
        ├── Rules: must contain "§ 106"; must not contain a competitor name
        ├── Retrieval assertions: did the right document come back, at what score?
        ├── Confidence: did the unanswerable ones actually come back unanswered?
        └── Latency and cost budgets


  Mark a run as the baseline ──▶ change something ──▶ diff against baseline

Two details separate a real suite from a demo of one.

It must run the production pipeline. If evaluation runs through a separate code path, a green suite tells you the evaluation harness works. Ask explicitly whether the test runner executes the same retrieval, the same thresholds, the same prompt and the same model as a live question.

An LLM judge alone is not a test. A model scoring another model’s output is a useful soft signal and a poor gate. It becomes a test when combined with deterministic assertions — literal text that must or must not appear, which documents retrieval had to return, whether the answer came back confident or unanswered, and a latency ceiling. A case that trips several checks should report the most serious one, not the friendliest.

If a vendor cannot run your thirty questions and hand you a report with a pass rate, a latency distribution and a cost figure, you are buying on impressions. Ours is described in how evaluation works, including the generator that drafts cases from your own documents so the suite does not have to be written by hand.

Two questions to ask about the numbers you are shown

“Which cases failed, and can I see them?” A vendor showing 100% on a suite they wrote is showing you their marketing. A vendor showing 87% and walking you through the thirteen is showing you their product. The second is far more useful, and considerably rarer.

“What was the baseline before this change?” Any number without a comparison is decoration. The useful artefact is a diff: what regressed, what improved, what is newly covered, and what it now costs per answer.

Frequently asked questions

Ready to see edtek.ai in action?

Book a 30-minute demo with our team. We'll show you how Edtek Chat, Draft, and Cite work with your content.

Browse the Knowledge Base