A coverage check asks one question per answer: did the response contain every fact the query requires? To answer it you first need the list of required facts. Most teams start by writing that list by hand, query by query, because it is the obvious thing to do and it works for ten queries. It stops working at a few hundred. The work is tedious, the rubric drifts between reviewers, and every new query or document re-run adds another list to maintain.
The same bottleneck appears in retrieval evaluation. Building a ground-truth set that maps each query to the documents containing the answer is, in Evidently AI's words, "very time-consuming," and the definition of what you are looking for can shift as you experiment with chunking or retrieval strategies (Evidently AI's RAG evaluation guide). Retrieval teams solve this with a golden set of 50 to 200 query-document pairs drawn from the real corpus, gating every change on a retrieval metric before touching prompts (DataAIHub's retrieval evaluation guide). The lesson transfers directly: you do not need a labeled set for every query, you need one small labeled set that tells you whether the generator is doing its job.
The direction of the dependency matters. Facts are the input to the coverage checker, so an error at this stage silently propagates: a hallucinated fact will be scored as missing in every correct answer, and a dropped fact will be scored as covered in every answer. That is why generation and verification should be different passes. Elastic's engineering team makes this explicit: generation and verification are different jobs, and a model asked to produce output should never also be the authority that grades its own completeness (Elastic's atomic claim checking writeup).
There is a measurement side to this too. When a RAG answer is wrong, the failure usually sits in one of three places: the right document was never retrieved, it was retrieved but ranked too low, or the model ignored the context (DataAIHub). A fact list that is wrong adds a fourth failure mode that looks exactly like the first three from the outside, which is why validating it is not optional.



