Recall@k is a binary metric. For each query, it asks a single question: was the target chunk in the top k results? If yes, the query scores 1. If no, it scores 0. Across a test set, you average those scores (the DataAIHub retrieval guide). The Evidently AI guide describes the same ground-truth approach, where each query has a set of known relevant documents and recall@k checks whether they were retrieved (Evidently AI).
This is a useful gate. If the target chunk is not in the top k at all, no prompt or model upgrade can recover it, because the generator never sees the text. Retrieval evaluation exists precisely to catch that failure before you start rewriting prompts (the DataAIHub guide).
The problem is that recall@k treats position one and position ten as identical. The classic worked example from a retrieval metrics tutorial makes the gap concrete: a recipe system evaluated on 100 queries reached Recall@1 of 0.52, Recall@3 of 0.71 and Recall@5 of 0.83 (the Recall@k and MRR tutorial). Recall@5 told the team that 83 percent of queries found their target somewhere in the top five. It said nothing about how many of those targets were sitting in first place where the generator would weight them most heavily.
That distinction matters in RAG because context order influences how the model uses its input. A chunk at rank five sits behind four competitors. Anthropic's Contextual Retrieval work reports that adding contextual prefixes to chunks reduced failed retrievals by 49 percent, and combining context with reranking pushed the improvement to 67 percent (Anthropic engineering). Reranking is by definition a position change: the same chunks arrive, but in a different order. Recall@k is blind to that change, so a reranker can improve real answer quality while leaving your headline retrieval number flat.
A note on vocabulary. The Claude Cookbook uses a metric it calls Pass@k, which checks whether the golden chunk was present in the first k results, and reports that contextual embeddings raised Pass@10 from roughly 87 percent to roughly 95 percent on a nine-codebase dataset with 248 queries (the Claude Cookbook). That is recall@k under another name. It is a good presence check. It is not a ranking check.
Decision rule: keep recall@k as a deployment gate (if it drops, something is broken in the index or the embedding step), but never use it alone to decide whether a ranking change is an improvement. Add a position metric before you tune rerankers, chunk sizes or hybrid weights.



