Resource library

QA How-To

Evaluating RAG retrieval precision (2026)

Learn evaluating RAG retrieval precision with qrels, precision at k, reranker tests, runnable metrics, slice analysis, and production-ready release gates.

23 min read | 3,509 words

TL;DR

Evaluating RAG retrieval precision means measuring what fraction of the chunks admitted to the generation context are actually relevant to the query. Build versioned qrels, calculate precision at the real cutoff, inspect recall and ranking metrics, test each retrieval stage, and gate stale, unauthorized, or misleading context separately.

Key Takeaways

  • Evaluate retrieval independently from answer generation so irrelevant context cannot be hidden by a fluent model.
  • Create graded query-document relevance judgments with explicit scope, time, authority, and answer-support rules.
  • Report precision at the actual context cutoff, plus recall, MRR, and nDCG where they match the product need.
  • Slice results by query type, corpus, freshness, permissions, language, and difficulty instead of trusting one average.
  • Test chunking, metadata filters, hybrid search, and reranking as separate pipeline stages.
  • Include zero-result, no-answer, duplicate, stale, and access-controlled cases in the benchmark.
  • Use paired regression tests and production signals, while retaining human relevance review for critical queries.

Evaluating RAG retrieval precision tells you how much of the context sent to a language model is useful for answering the user's query. If five chunks are retrieved and only two are relevant, precision at five is 0.4. That simple ratio is valuable, but a production evaluation must also define relevance carefully, handle graded evidence and duplicate chunks, preserve access controls, and analyze the query slices hidden by the average.

Retrieval deserves its own test program. A capable generator can sometimes answer correctly despite weak retrieval, while a weak answer can waste excellent evidence. End-to-end answer scores cannot tell those cases apart. This guide builds a query and relevance-judgment dataset, implements standard ranking metrics in runnable Python, tests dense, lexical, hybrid, filtering, and reranking stages, and turns results into a release decision.

TL;DR

Metric Question answered Use it when
Precision@k What fraction of the top k results is relevant? Context space and distraction matter
Recall@k How much known relevant evidence appears in top k? Missing evidence is costly
MRR How early is the first relevant result? One good result often suffices
nDCG@k Are highly relevant results ranked above partial ones? Relevance is graded
Hit rate@k Does top k contain at least one relevant result? Binary task success is useful
Unauthorized rate Did retrieval expose prohibited content? Permissions or tenancy apply

Always report the cutoff that the application actually uses. Precision@20 can look acceptable while only the first five chunks fit into the generation context.

1. Evaluating RAG Retrieval Precision Requires a Clear Unit

Define what the retriever returns: document, page, passage, chunk, row, image region, or a grouped parent document. Precision is calculated over those units. If the system retrieves chunks but labels only whole documents, every chunk from a relevant handbook may be marked relevant even when most chunks cannot support the answer. That inflates the result.

Define the query too. It may be the raw user text, a rewritten standalone question, multiple subqueries, or a structured filter plus text. Store all forms and evaluate the stage you intend to improve. A rewrite can damage entity, date, negation, or user-scope constraints before search begins. Calling that a vector-search failure sends engineering toward the wrong component.

Write a relevance rule. A chunk is usually relevant when it contains evidence that directly supports an acceptable answer or a necessary step in reasoning. Topic similarity is insufficient. For Can contractors carry over leave in India?, a generic leave-policy introduction is topically related but not answer-supporting if it never mentions employment type, geography, or carryover.

Include temporal and authority constraints. An obsolete policy may contain a direct answer but be ineligible because a newer approved policy supersedes it. A forum reply may be relevant for discovery but unacceptable as authoritative evidence. Label relevant but ineligible separately so ranking and corpus-governance defects remain visible.

Finally, state the decision. Comparing embedding models, changing chunk size, adding a reranker, or approving a full release requires different experiments. The primary metric and cutoff should follow the user experience and context budget, not whichever number is easiest to improve.

2. Define Binary and Graded RAG Relevance Judgments

Binary qrels, short for query relevance judgments, mark each query-result pair relevant or not relevant. They are simple and work well for precision, recall, and hit rate. Graded labels preserve more information when some chunks directly answer while others provide only necessary background.

A practical scale is: 0 not useful, 1 related but insufficient, 2 supporting evidence, and 3 directly answers with the required scope and authority. Define whether label one counts as relevant for each metric. Publish that threshold. Do not switch it silently between experiments.

Grade Meaning Example for a password-reset query
0 Unrelated or misleading Password complexity for administrators
1 Same topic, no usable answer Overview of account security
2 Supports part of the answer Identity verification prerequisites
3 Direct, current, scoped evidence Approved reset steps for the user's account type

Add orthogonal tags: stale, duplicate, unauthorized, wrong locale, wrong product, wrong version, contradictory, or low authority. A result can earn topical relevance and still be prohibited from context. Security and freshness failures deserve dedicated gates, not a reduced relevance score that an average can hide.

Create labels at the retrieved unit and preserve the parent document ID. This lets you calculate chunk precision, parent diversity, and duplicate dominance. If adjacent chunks repeat the same relevant paragraph, raw precision can be high while evidence diversity is poor.

Use at least two trained judges on a representative sample. Give them the query, conversation constraints, source metadata, and the chunk, but hide retrieval score and system identity. Calibrate with anchors and adjudicate disagreement. Low agreement may reveal vague queries or insufficient domain context, which should be tagged rather than forced into false certainty.

3. Build a Retrieval Evaluation Dataset and Qrels

Start with sanitized production queries, support searches, known-answer questions, and observed failures. Add designed cases for rare risks. Preserve natural language, misspellings, abbreviations, identifiers, and terse follow-ups. Synthetic questions written from documents are useful for coverage but often mirror source wording, making retrieval unrealistically easy. Mark their origin and report them separately.

Create query slices: exact identifier, lexical phrase, paraphrase, multi-hop, comparison, temporal, numeric, negated, ambiguous, conversational follow-up, no-answer, multilingual, and adversarial. Add corpus slices for product, document type, owner, authority, age, and access level. A balanced challenge set reveals capability, while a traffic-weighted set estimates operational behavior. Keep both views.

For each query store expected scope, eligible corpus, relevant unit IDs, graded labels, mandatory evidence, valid alternatives, prohibited sources, and reason. Multi-hop questions may need two complementary chunks, so represent evidence groups. Plain recall can say both chunks were retrieved without proving that one valid group is complete.

Finding all relevant documents is expensive. Use pooling: collect the top results from several retriever variants, deduplicate them, randomize presentation, and judge the union. This creates deeper qrels than labeling one system's results. It is still incomplete, so recall estimates should acknowledge unjudged relevant material. Never automatically treat every unjudged result as definitely irrelevant in a changing corpus.

Split development and holdout queries by intent or source family to limit leakage. Version the corpus snapshot, extraction, chunking, metadata, and qrels. Stable query IDs alone are not enough because the same chunk ID can contain different text after reindexing. Langflow advanced RAG testing gives a practical system context for the components being evaluated.

4. Calculate Precision@k and Companion Ranking Metrics

Precision@k is relevant results in the first k positions divided by k. If fewer than k results are returned, choose and document a denominator policy. Dividing by returned count measures purity of what was shown; dividing by k penalizes insufficient results. For context packing, purity among admitted chunks is usually intuitive, while zero-result rate is tracked separately.

Recall@k is relevant results retrieved in top k divided by the known relevant results for that query. It matters when several evidence pieces exist. Hit rate@k assigns one when any relevant result appears. Mean reciprocal rank uses the inverse position of the first relevant result and favors getting one useful result early.

nDCG supports graded relevance. Discounted cumulative gain adds each result's gain with a logarithmic position discount, then normalization divides by the ideal ordering for that query. State the gain formula because grade and 2^grade - 1 weight high grades differently.

Do not treat metrics as interchangeable. A troubleshooting assistant may need one direct procedure, making reciprocal rank useful. A policy comparison may need evidence from both jurisdictions, making evidence-group recall essential. A small context budget makes precision at admitted token count more meaningful than precision at a fixed number of uneven chunks.

Report macro averages, which weight queries equally, plus traffic-weighted values where justified. Always show distributions, zero-result count, and slice tables. A popular easy intent can dominate a traffic-weighted score and hide failure on critical rare queries.

5. Run a Reproducible Retrieval Metrics Script

The following Python 3 program uses only the standard library. It expects a qrels JSON file mapping query IDs to document grades, and a run JSON file mapping query IDs to ranked document ID arrays. It reports macro precision, recall, reciprocal rank, hit rate, and nDCG at a chosen cutoff. Save it as retrieval_metrics.py and run python retrieval_metrics.py qrels.json run.json 5.

from __future__ import annotations

import json
import math
import statistics
import sys
from pathlib import Path

def dcg(grades: list[int]) -> float:
    return sum((2**grade - 1) / math.log2(rank + 2) for rank, grade in enumerate(grades))

def per_query(qrels: dict[str, int], ranked: list[str], k: int) -> dict[str, float]:
    top = ranked[:k]
    relevant = {doc_id for doc_id, grade in qrels.items() if grade >= 2}
    hits = [doc_id for doc_id in top if doc_id in relevant]
    first = next((rank for rank, doc_id in enumerate(top, 1) if doc_id in relevant), None)
    grades = [qrels.get(doc_id, 0) for doc_id in top]
    ideal = sorted(qrels.values(), reverse=True)[:k]
    ideal_dcg = dcg(ideal)
    return {
        "precision": len(hits) / len(top) if top else 0.0,
        "recall": len(set(hits)) / len(relevant) if relevant else 1.0,
        "reciprocalRank": 1 / first if first else 0.0,
        "hitRate": 1.0 if hits else 0.0,
        "nDCG": dcg(grades) / ideal_dcg if ideal_dcg else 1.0,
    }

def evaluate(all_qrels: dict[str, dict[str, int]], run: dict[str, list[str]], k: int) -> dict[str, object]:
    rows = {qid: per_query(qrels, run.get(qid, []), k) for qid, qrels in all_qrels.items()}
    metric_names = ("precision", "recall", "reciprocalRank", "hitRate", "nDCG")
    macro = {name: round(statistics.fmean(row[name] for row in rows.values()), 4) for name in metric_names}
    return {"k": k, "queryCount": len(rows), "macro": macro, "perQuery": rows}

if __name__ == "__main__":
    if len(sys.argv) != 4 or int(sys.argv[3]) < 1:
        raise SystemExit("usage: python retrieval_metrics.py QRELS.json RUN.json K")
    qrels = json.loads(Path(sys.argv[1]).read_text(encoding="utf-8"))
    run = json.loads(Path(sys.argv[2]).read_text(encoding="utf-8"))
    print(json.dumps(evaluate(qrels, run, int(sys.argv[3])), indent=2))

This implementation defines grades two and three as relevant for binary metrics, uses returned-count precision, and treats a no-relevant-document qrel as recall one. Those are explicit policy choices, not universal truths. Adapt them to your benchmark and test the metric code with hand-calculated examples.

Check duplicate result IDs before scoring. The example uses a set for recall so duplicates do not create extra hits, but precision still counts duplicate relevant IDs as hits. A production evaluator should reject duplicate ranked IDs or collapse them according to the application's actual context behavior.

6. Test Chunking, Metadata, and Corpus Quality

Chunking determines the units available to retrieval. Compare strategies on the same query set: fixed tokens with overlap, structure-aware sections, semantic boundaries, parent-child retrieval, or whole-document retrieval where documents are short. Measure answer-supporting precision, evidence completeness, duplicate overlap, average tokens admitted, and parent-document diversity.

Tiny chunks can retrieve precise phrases without enough context to interpret them. Large chunks may contain the answer plus unrelated text, consuming context and lowering evidence density. Label both direct support and self-sufficiency. A chunk that begins with it is allowed for 30 days is not self-sufficient if the subject appears only in a previous chunk.

Metadata filters can improve precision and cause catastrophic recall loss. Test product, locale, date, access group, document status, and tenant filters independently. Include missing, malformed, multi-valued, and conflicting metadata. A strict locale filter might exclude a globally applicable English policy; a loose tenant filter may expose unauthorized content.

Audit the corpus before blaming the retriever. Duplicate pages, stale drafts, failed OCR, boilerplate navigation, truncated tables, and incorrect access labels shape every search result. Track ingestion success, extraction warnings, document lineage, effective dates, supersession, and tombstones for deleted content.

Create ingestion regression cases with representative PDFs, tables, code, lists, and scanned content. Retrieval precision cannot exceed the quality of searchable units. The RAG chatbot testing guide helps connect corpus tests to end-to-end behavior.

7. Compare Lexical, Dense, Hybrid, and Reranked Search

Lexical search is strong for exact identifiers, uncommon names, error codes, and phrases. Dense retrieval helps with paraphrase and conceptual similarity. Hybrid systems combine candidate scores or ranks, while a reranker applies a richer query-document model to a smaller candidate set. Evaluate each stage rather than describing one as universally superior.

Approach Typical strength Typical precision risk Essential slice
Lexical Exact terms and IDs Vocabulary mismatch Paraphrases
Dense Semantic similarity Topical but non-answering chunks Scope and negation
Hybrid Broader candidate coverage Score-fusion imbalance Mixed exact and conceptual queries
Reranker Better top-order discrimination Latency and truncation Long chunks and close distractors

Log candidate sets before filtering, after filtering, and after reranking. If the relevant document never enters the candidate pool, tuning the reranker cannot help. If it enters at rank 10 and falls to 40, the reranker caused the regression. If it ranks well but context packing removes it, retrieval metrics alone are not the full story.

Tune fusion and candidate depth on the development set, then freeze settings for holdout evaluation. Report latency distributions and resource use alongside quality, but do not trade unauthorized retrieval for speed. Compare paired query-level changes and inspect wins plus losses.

Reranker input length matters. Long chunks may be truncated before the answer span. Record truncation policy and add cases where relevant text appears near the end. Avoid inventing a score threshold that assumes scores are calibrated across queries unless you have verified calibration.

8. Evaluate Multi-Hop, No-Answer, Freshness, and Permissions

Multi-hop questions require complementary evidence. For Which current plans include SSO and cost less than the legacy enterprise plan?, retrieval may need current feature and price sources. Label acceptable evidence groups and calculate group completeness. High chunk precision with only half the required evidence will still fail the task.

No-answer queries test restraint. The corpus may not contain the requested fact, or the user may ask about a nonexistent policy. The ideal retriever can return no result or low-confidence candidates that the downstream system treats as insufficient. Measure false evidence admission, not recall, because no relevant qrels exist. Include topically similar distractors that tempt an answer.

Freshness tests require effective dates, not merely ingestion timestamps. Create pairs with superseded and current documents and query language such as current, in 2024, or as of last quarter. The expected source changes with the requested date. Gate stale authoritative conflicts separately from ordinary relevance.

Permissions are nonnegotiable. Run the same query under users with different tenants, roles, and groups. Unauthorized chunks must never enter candidates, logs, caches, or context. Calculate unauthorized retrieval rate and require zero in the controlled benchmark. Verify filter behavior under missing claims and index-update lag.

Ambiguous queries may need diverse retrieval rather than narrow precision so a clarification can be formed. Evaluate whether candidates represent plausible interpretations without crossing access boundaries. Relevance is workflow-dependent: the best evidence for answering differs from the best evidence for asking a useful clarification.

9. Connect Retrieval Precision to Answer Quality

After component evaluation, run an end-to-end experiment that records retrieved units, packed context, citations, answer, and answer labels. Join results by query ID. This allows four diagnostic quadrants: good retrieval and good answer, good retrieval and bad answer, bad retrieval and apparently good answer, and bad retrieval plus bad answer.

Good answers with bad retrieval deserve caution. The model may rely on memorized general knowledge, guess correctly, or exploit leakage from the query. Change entities and facts in a synthetic controlled corpus to test whether the answer follows retrieved evidence. For high-stakes or private data, unsupported correctness is not acceptable.

Good retrieval with bad answers points toward context ordering, prompt instructions, citation handling, reasoning, or generation. Inspect whether packing truncated critical text or duplicated one source until it displaced another. Precision should be calculated both before and after context packing.

Use answer-supported precision: among admitted chunks, how many are cited or substantively used in a correct answer? Citation alone does not prove support, so sample citation entailment. Conversely, an uncited relevant chunk may still influence the model. Treat this as a diagnostic view rather than an unquestionable metric.

Keep chatbot answer relevancy evaluation separate but linked. Retrieval relevance asks whether evidence supports the query. Answer relevance asks whether the response satisfies the user's intent. Their combination explains far more than one end-to-end score.

10. Evaluating RAG Retrieval Precision in CI

Freeze a corpus snapshot or create a reproducible test index. Run ingestion, query construction, candidate retrieval, filtering, reranking, and packing with versioned settings. Export ranked IDs and scores, then calculate metrics against qrels. Keep raw runs so metric changes can be recalculated without repeating retrieval.

Use hard gates for unauthorized chunks, current-versus-stale conflicts, and mandatory evidence on critical queries. Use paired thresholds for precision@k, evidence-group recall, nDCG, and zero-result behavior. Require no material regression in important slices even if macro precision improves. Define material from baseline variation and business risk, not a convenient round number.

Test deterministic pipeline components on every pull request. Run a representative benchmark on merges and the full holdout before release. External hosted embeddings or rerankers can change, so record model identifiers and schedule monitoring even when repository code is unchanged. Cache carefully because cached embeddings can conceal model-version differences.

A regression report should list configuration, corpus and qrels versions, macro and slice deltas, worst losses, new unauthorized or stale results, latency, and artifact links. Assign ownership for each failure. Require explicit review when changes to the benchmark, relevance threshold, or metric policy alter historical comparability.

Release initially in shadow or limited traffic. Capture privacy-safe search signals, result selections where observable, citation use, rephrases, and downstream answer failures. Production signals suggest new benchmark cases, but clicks alone are not relevance ground truth.

11. Monitor Drift and Improve the Benchmark

Retrieval changes when the corpus grows, terminology evolves, documents expire, permissions change, or user intents shift. Monitor query mix, zero-result rate, score distributions, filter outcomes, source concentration, and age of retrieved content. Alert on security and freshness anomalies separately from gradual quality drift.

Sample queries by traffic and risk for periodic human judgment. Oversample low-confidence, high-disagreement, newly introduced terms, and explicit user corrections. Add adjudicated failures to a rotating regression set, but keep a sealed holdout to prevent repeated optimization on the same cases.

Analyze source dominance. One large document or duplicated site can occupy most top positions and make precision appear stable while evidence diversity collapses. Track unique parent sources, duplicate text fingerprints, and authority distribution. Review whether diversity helps the task rather than enforcing a universal quota.

Revisit qrels when policy or product facts change. Preserve old snapshots for reproducibility and create effective-dated labels for temporal queries. Never overwrite history and compare a new corpus with old labels as if no semantic change occurred.

A mature program treats evaluation failures as assets. Each one gains a stable query, corpus fixture, relevance rationale, expected pipeline state, and owner. That is how retrieval quality improves through product evolution instead of resetting at every model change.

Interview Questions and Answers

These questions focus on the measurement and debugging decisions an SDET should be able to defend.

Q: What is precision@k in RAG retrieval?

It is the fraction of the first k retrieved units that meet the defined relevance threshold. I report it at the application's actual cutoff and document how short result lists are handled. I pair it with recall or evidence completeness because perfect precision can still miss necessary sources.

Q: Why evaluate retrieval separately from generation?

A generator can guess a correct answer with poor evidence, or fail despite excellent evidence. Component labels identify whether to fix query rewriting, search, filters, reranking, packing, or generation. They also prevent fluency from hiding unauthorized or stale context.

Q: How do you create qrels?

I pool results from multiple retriever variants, deduplicate them, blind system identity, and ask calibrated domain reviewers to assign anchored grades and eligibility tags. I store judgments at chunk level with parent IDs, rationale, corpus version, and adjudication.

Q: When would you prefer nDCG over precision?

I use nDCG when relevance is graded and the ordering of highly useful versus partially useful evidence matters. Precision is easier for a binary admitted-context decision. Reporting both can reveal a pure result set whose best evidence is still ranked too low.

Q: How do you test a reranker?

I preserve the candidate set, score rankings before and after reranking, and inspect paired query wins and losses. I add close distractors, long chunks, negation, and scope cases, and record truncation plus latency. A reranker cannot recover evidence absent from its candidate pool.

Q: What should happen for a no-answer query?

The system should avoid admitting topically similar but unsupported evidence as if it answers the question. I measure false evidence admission, score distributions, and downstream abstention or clarification. The expected behavior is defined for the product, not inferred from a universal similarity threshold.

Q: Which retrieval failures should block release?

Any unauthorized result should block release, as should stale evidence that conflicts with current policy on critical queries. Missing mandatory evidence for high-impact workflows can also be a hard gate. Aggregate precision cannot offset those failures.

Common Mistakes

  • Labeling whole documents when the system retrieves smaller chunks.
  • Defining relevance as shared topic or vocabulary instead of answer-supporting evidence.
  • Reporting precision without the cutoff and short-list denominator policy.
  • Optimizing precision while ignoring missing mandatory evidence and recall.
  • Treating every unjudged result as certainly irrelevant in an incomplete pool.
  • Averaging across queries without inspecting permissions, freshness, language, and query-type slices.
  • Evaluating only search output and ignoring filters, reranking, and context packing.
  • Letting duplicated chunks inflate precision and dominate the context.
  • Using synthetic questions that copy source wording as the only benchmark.
  • Comparing systems on different corpus snapshots or qrels versions.
  • Trusting clicks as unquestioned relevance labels.

Conclusion

Evaluating RAG retrieval precision starts with a well-defined query, retrieval unit, relevance threshold, cutoff, and corpus snapshot. Graded qrels, standard ranking metrics, stage-level logs, and risk slices show whether useful evidence reaches the generator without stale, duplicate, or unauthorized noise.

Build a pooled labeled set, run the executable metrics, and compare candidate changes against the current pipeline on identical queries. Gate high-consequence failures separately, then monitor drift and turn newly adjudicated failures into regression cases. That gives RAG teams a retrieval signal they can explain and improve.

Interview Questions and Answers

How would you evaluate RAG retrieval precision?

I would define the retrieved unit, query form, relevance threshold, corpus snapshot, and application cutoff. Then I would create pooled, graded qrels and calculate precision@k with recall, MRR, nDCG, zero-result, freshness, and permission measures. I would compare paired query results by slice and investigate each pipeline stage before setting release gates.

What is the difference between precision@k and recall@k?

Precision@k measures the purity of the first k results. Recall@k measures how much of the known relevant evidence appears within those results. Context-limited RAG needs precision, while multi-evidence questions also need recall or evidence-group completeness.

Why are graded relevance judgments useful?

They distinguish direct answer evidence from partial background and unrelated text. This supports ranking metrics such as nDCG and better diagnosis. I still publish the grade threshold used for binary precision and recall.

How do you reduce bias when labeling RAG results?

I hide system scores and identity, randomize pooled candidates, give reviewers anchored relevance and eligibility rules, and measure agreement. Disagreements are adjudicated with a recorded rationale. I also include multiple retrievers in the pool so one system does not define the judgment universe.

How would you debug a precision regression after adding a reranker?

I compare candidate retrieval and post-reranker ranks for the same queries. If relevant evidence was never a candidate, the base retrieval or filters failed; if it fell after reranking, I inspect score behavior, query scope, chunk truncation, and distractors. I also verify context packing because a well-ranked chunk can still be removed later.

How should no-answer queries be scored?

I label them explicitly and measure whether irrelevant topical chunks are admitted, plus whether the downstream system abstains or clarifies. I do not assign recall over an empty relevant set as the primary signal. Threshold behavior is validated per query slice rather than assumed to be globally calibrated.

Which RAG retrieval defects are release blockers?

Unauthorized retrieval is a blocker, including exposure in candidates, logs, caches, or context. Current-versus-stale conflicts on critical policies and missing mandatory evidence for high-impact queries can also block. A better macro precision score cannot compensate for these consequences.

Frequently Asked Questions

What is RAG retrieval precision?

RAG retrieval precision is the fraction of retrieved units at a chosen cutoff that are relevant under a defined judgment rule. The unit may be a chunk, passage, page, or document, and it should match what the system sends to generation.

How do you calculate precision@k for RAG?

Count relevant results in the first k ranks and divide by the documented denominator, usually k or the number actually returned. State the relevance threshold, cutoff, and policy for short result lists.

Is high retrieval precision enough for a good RAG system?

No. High precision can coexist with low recall, missing multi-hop evidence, stale sources, or poor generation. Measure evidence completeness, freshness, permissions, ranking, and final answer quality separately.

What are qrels in RAG evaluation?

Qrels are query-to-result relevance judgments used as evaluation ground truth. Good qrels include graded relevance, eligibility tags, corpus version, retrieved-unit IDs, and documented reviewer adjudication.

Should RAG relevance be binary or graded?

Binary labels are simple for precision and recall, while graded labels distinguish direct evidence from partial support. Many teams store graded judgments and publish the threshold used to convert them for binary metrics.

How do you evaluate RAG retrieval when no answer exists?

Create no-answer queries with tempting topical distractors and measure false evidence admission, zero-result behavior, and downstream abstention or clarification. Recall is not meaningful when no relevant document exists.

How often should RAG retrieval be reevaluated?

Run deterministic regression tests with retrieval changes, a full holdout before releases, and periodic production sampling. Reevaluate after corpus, embedding, reranker, metadata, permission, or chunking changes, including silent hosted-model revisions.

Related Guides