Recall: measure what the system missed
Recall is the fraction of actual positives that a system finds. Unlike precision, its denominator includes the positives the system never selected.
For retrieval, recall@k asks how many relevant documents appear among the first k results. Returning a few excellent matches can still leave the evidence needed to answer a question outside the model's context.
Measure the candidate stage separately
This compact Python example evaluates a ranked candidate list against an illustrative set of known relevant document IDs.
relevant = {"doc-a", "doc-c", "doc-f"}
ranked = ["doc-b", "doc-a", "doc-d", "doc-c", "doc-e", "doc-f"]
recall_at = {
k: len(set(ranked[:k]) & relevant) / len(relevant)
for k in (2, 4, 6)
}
Recall rises from one third at two results to two thirds at four, then reaches one at six. Precision moves differently because extra results can be irrelevant.
In a retrieval-augmented system, poor candidate recall creates a ceiling: a later reranker cannot promote a document it never receives. Improve the candidate pool before spending more computation on ranking it.
A measured recall requires known relevant items. An incomplete relevance set can make an apparently precise score misleading.