# Numerical Hallucination

Produces a number, metric, count, date, measurement, or quantitative claim that is not grounded in the input, sources, or a valid computation.

Unlike Arithmetic Error, the problem is that the number lacks support, not that a supplied numeric operation was computed incorrectly. Unlike Date/Deadline Confusion, it is about unsupported quantitative content rather than misreading a temporal boundary in the task.

## Metadata
- ID: `numerical-hallucination`
- Status: published
- Taxonomy-Version: 0.0.1
- Last-Modified: 2026-06-13T09:00:00-04:00
- Category: Fabrication (`fabrication`)
- HTML: https://failmodes.com/failure-modes/numerical-hallucination
- JSON: https://failmodes.com/failure-modes/numerical-hallucination.json
- Markdown: https://failmodes.com/failure-modes/numerical-hallucination.md

## Search Phrases
- made up a number
- invented a statistic
- unsupported number
- fabricated a metric

## Why It Happens
1. Numbers are stored poorly in model weights. Tokenizers split numbers into arbitrary fragments, and nearby values look almost identical to the model, so precise figures are remembered fuzzily at best (Nogueira et al., 2021, "Investigating the Limitations of Transformers with Simple Arithmetic Tasks").
2. Statistics in training data are contradictory by nature — populations, prices, and benchmarks change over time and differ between sources. The model averages over all of it, so the number it produces may match no real source.
3. Quantitative writing has a strong style, and the model learned it. Sentences like "grew 23% year over year" are common patterns, so a precise-sounding figure can be a fluency move rather than a retrieved fact — and human raters reward the specific "41,200" over the honest "about 40,000" (Sharma et al., 2023, "Towards Understanding Sycophancy in Language Models").
4. The model generates numbers the same way it generates words — by sampling likely tokens — with no calculator or lookup step involved unless the system adds one.

## Examples

### Invented statistic
- Kind: fail
- Summary: Produces a precise figure with a confident frame. The number matches no real source — it is quantitative style, not retrieval.

```text
User: What percentage of customer-support tickets get fully resolved by chatbots?
Assistant: Industry-wide, chatbots fully resolve 67% of support tickets without human escalation.
```

### Ungrounded number from context
- Kind: fail
- Summary: Asked about a document it was given, the model emits a figure that appears nowhere in it — averaging its training-data priors instead of reading the source.

```text
[… uploaded report states headcount grew "from 240 to 310" …]
User: How much did headcount grow according to this report?
Assistant: The report shows headcount grew 23% year over year, from 240 to 295.
```

### Hedged but still fabricated
- Kind: warn
- Summary: Softens the figure with "around," but the underlying number is still ungrounded — the hedge changes the tone, not the support.

```text
User: What percentage of customer-support tickets get fully resolved by chatbots?
Assistant: Studies generally put it at around 65–70% of tickets.
```

### Declines the fake number
- Kind: ok
- Summary: Says the honest thing — the figure varies too much for a single number — and points at where a grounded one would come from.

```text
User: What percentage of customer-support tickets get fully resolved by chatbots?
Assistant: There's no reliable single figure — published numbers vary widely by industry and by how "resolved" is defined. Your own deflection rate from your helpdesk analytics is the number worth using.
```

## Detection Approaches
- **Claim-to-source verification**: Extract every number, percentage, date, and metric from the output and trace each one to the input, a retrieved source, or a valid computation. A figure that traces to nothing — like a growth rate that appears nowhere in the report it summarizes — is fabricated regardless of how plausible it looks.
- **LLM-as-judge evaluation**: Run a judge prompted to flag quantitative claims stated with more precision than the evidence supports, including hedged forms like "around 65–70%" where the range itself is ungrounded — softened tone is not support.
- **Golden-set evals**: Maintain questions where no reliable single figure exists — contested statistics, source-dependent metrics, values that change over time — and regression-test whether the model declines or gives ranges instead of emitting a confident invented number.

## Mitigation Approaches
- **Retrieval grounding**: Require every number to come from the input, a retrieved source, or an explicit computation — never from parametric memory, where precise figures are stored fuzzily and the model averages over contradictory training data.
- **Tool-backed lookup**: Route quantitative questions to a search, database, or analytics tool so figures are copied from a live source rather than sampled. A statistic the system cannot retrieve is one it should not state.
- **Instruction constraints**: Instruct the model to match its precision to its support — ranges or "no reliable single figure" when the evidence is weak — so preference-tuned pressure toward "67%" stops beating the honest "it varies by industry."
- **Self-check pass**: Before answering, have the model trace each number, percentage, and date in its draft back to a source or computation, and downgrade any it cannot trace — including hedged forms like "around 65–70%", where the range itself is ungrounded.

## Related Modes
- **Arithmetic Error** (`arithmetic-error`)
  HTML: https://failmodes.com/failure-modes/arithmetic-error
  JSON: https://failmodes.com/failure-modes/arithmetic-error.json
- **Specificity Hallucination** (`specificity-hallucination`)
  HTML: https://failmodes.com/failure-modes/specificity-hallucination
  JSON: https://failmodes.com/failure-modes/specificity-hallucination.json
- **Date/Deadline Confusion** (`date-deadline-confusion`)
  HTML: https://failmodes.com/failure-modes/date-deadline-confusion
  JSON: https://failmodes.com/failure-modes/date-deadline-confusion.json
- **Unknown-Answer Fabrication** (`unknown-answer-fabrication`)
  HTML: https://failmodes.com/failure-modes/unknown-answer-fabrication
  JSON: https://failmodes.com/failure-modes/unknown-answer-fabrication.json