Sample Report · RAG

RAG Evaluation Report — Sample

A worked example of what a retrieval-augmented generation evaluation should produce — retrieval and answer scored separately, failures grouped by cause, and a recommendation that follows from the numbers.

Markdown. No sign-up, no email.

This is an illustrative example. Every figure below is invented to show the shape of a useful report. Nothing here describes a real system. Copy the structure; produce your own numbers.

The point of the format is one thing most RAG evaluations get wrong: retrieval and generation are scored separately. A single "accuracy" number cannot tell you whether the model reasoned badly or was handed the wrong passages, and those two problems have nothing in common to fix.


Internal knowledge assistant — evaluation, cycle 4#

SystemInternal policy and procedure assistant
Evaluated2026-07-28 to 2026-08-01
Question set180 questions — 120 sampled from real usage, 60 written to cover known gaps
Judged byTwo reviewers independently; disagreements resolved by a third
Compared againstCycle 3 (2026-06-30), same question set

1. Headline#

MeasureCycle 3Cycle 4Change
Answer correct and complete61%74%+13 pts
Answer correct but incomplete18%14%−4 pts
Answer wrong14%7%−7 pts
Declined to answer7%5%−2 pts

The improvement came from one change: adding a reranking step. No prompt was edited and the model was not changed between cycles.

2. Retrieval, scored on its own#

Measured before the model sees anything: for each question, was the passage containing the answer retrieved at all?

MeasureCycle 3Cycle 4
Answer present in top 1084%86%
Answer present in top 358%81%
Answer ranked first41%66%

Reading this correctly matters. Recall at 10 barely moved — the right passage was already being found. What changed is where it ranked. Cycle 3 retrieved the answer and then buried it beneath four plausible near-misses that filled the prompt. The model was not the bottleneck; the ordering was.

The remaining 14% where the answer is not in the top 10 is a different problem entirely, and reranking cannot touch it. See section 4.

3. Generation, given correct passages#

Restricted to the 155 questions where the answer was demonstrably in the retrieved set.

OutcomeCountShare
Correct, with a citation that supports it12883%
Correct, but cited the wrong passage96%
Missed an answer that was present128%
Contradicted the passage64%

The 9 mis-citations matter more than their count suggests. An answer with a citation that does not support it is worse than no citation, because a reader who checks one and finds it reasonable stops checking.

The 6 contradictions all shared a shape: two retrieved passages disagreed, one current and one superseded, and the model reconciled them rather than flagging the conflict. Neither passage carried a visible effective date.

4. Failures grouped by cause#

Grouping by cause, not by symptom, is what makes a report actionable.

CauseQuestionsWhat it looks likeFixable by
Content genuinely absent11Confident answer from adjacent materialWriting the missing page
Answer split across sections8Half an answer, correctly citedChunking on structure
Superseded content still indexed6Correct-sounding, out of dateEffective dates + retirement
Table separated from its heading5Numbers without their meaningChunking on structure
Question needed context from earlier4Answer to a different questionQuery rewriting
Ambiguous question3Reasonable answer to one readingAsking back

Two of these — chunking on structure and effective dates — account for 19 of the 37 failures, and both are index-side. They cost nothing at query time.

5. What we are not measuring yet#

Stated explicitly, because an evaluation that hides its gaps is worse than a smaller honest one.

  • Latency is not in this cycle. Reranking added a step; nobody measured what it cost.
  • Cost per question is not tracked.
  • Real-world satisfaction is unknown. The 120 sampled questions came from logs, but nobody asked the people who asked them whether the answer helped.
  • The question set over-represents policy questions because that is what early users asked. It is not yet a fair sample of current usage.

6. Recommendation#

  1. Re-chunk on document structure rather than fixed length. Addresses 13 of 37 failures and requires no query-path change.
  2. Add effective dates to the index and retire superseded content. Addresses 6 failures and removes the class where the answer is confidently wrong.
  3. Measure latency and cost per question before the next cycle — reranking has been shipped without either being known.
  4. Do not change the model. The generation lane is performing well on correct passages, and changing it now would make the next comparison uninterpretable.

Not recommended this cycle: query rewriting. It addresses 4 failures and adds a step to the latency budget we have not yet measured.


Notes on using this format#

Three properties make the difference between this and a dashboard nobody reads.

Score the halves separately. Every decision above follows from splitting retrieval from generation. Combine them and the only available conclusion is "it got better", which is not a plan.

Group failures by cause. Thirty-seven individual failures are a list. Six causes are a backlog, ordered by how many failures each one closes.

Change one thing per cycle. This cycle changed reranking alone, which is why the +13 points can be attributed at all. Two changes at once and the report can describe what happened but not why.

Back to RAG