Use this prompt when an AI system generates or reports numerical values that must be verified against a source of truth. This is a model-graded evaluation prompt designed for finance, analytics, and data-heavy applications where a single incorrect digit can break downstream decisions. The prompt compares a target claim against source data, applying tolerance-aware logic to detect value errors, unit mismatches, rounding inconsistencies, and fabricated statistics. It belongs in automated evaluation pipelines, CI/CD gates for RAG systems, and any workflow where numerical groundedness is a hard requirement before an output reaches a user or database.
Prompt
Numerical Claim Verification Prompt

When to Use This Prompt
Identify the specific production scenarios where numerical claim verification is a hard requirement and where it is not the right tool.
The ideal user is an AI engineer or technical decision maker who already has a system producing numerical outputs—such as a financial report generator, an analytics chatbot, or a RAG pipeline answering quantitative questions—and needs an automated gate to catch errors before they propagate. The prompt requires two concrete inputs: a target claim containing the numerical assertion to verify, and source data that serves as the authoritative reference. It works best when the source data is structured or semi-structured (tables, JSON, clearly formatted text) and the claim is specific enough to match against it. Do not use this prompt for subjective assessments, qualitative fact-checking, or scenarios where the source data itself is ambiguous or incomplete.
This prompt is not a replacement for schema validation, unit tests, or deterministic calculation checks. If you can verify a number with a simple equality check or a database query, do that first. Reserve this prompt for cases where the claim and source are in natural language, where tolerance matters, or where unit conversion and rounding logic require semantic reasoning. In high-stakes domains like financial reporting or clinical data, always route verification failures to a human review queue rather than auto-correcting values. The prompt is a detection tool, not an auto-repair tool. Pair it with logging that captures the claim, source, and verdict for audit trails.
Use Case Fit
Where the Numerical Claim Verification Prompt works and where it introduces risk. Use this to decide if the prompt fits your workflow before integrating it into a production harness.
Good Fit: Structured Source Data
Use when: source documents contain tables, financial statements, or structured numerical data. Why: the prompt excels at extracting and comparing discrete values against a tolerance. Guardrail: pre-parse PDFs and spreadsheets into markdown tables before sending them to the model to reduce extraction errors.
Bad Fit: Subjective Projections
Avoid when: verifying forward-looking statements, market estimates, or opinion-based numbers. Risk: the model may treat speculative figures as verifiable claims and hallucinate a comparison. Guardrail: route subjective claims to a human review queue and restrict the prompt to historical, reported, or audited values.
Required Inputs
What you must provide: a source document with ground-truth numbers and a target text containing numerical claims. Critical dependency: the source must be authoritative for the verification to be meaningful. Guardrail: validate source freshness before running verification; stale source data produces false positives.
Operational Risk: Unit Mismatch
What to watch: claims in millions compared against source data in thousands, or currency conversions applied inconsistently. Guardrail: include explicit unit declarations in the prompt template and add a pre-processing step that normalizes units before verification.
Operational Risk: Tolerance Drift
What to watch: acceptable tolerance changing meaning across contexts—a 5% variance in revenue is material, but in user counts it may be noise. Guardrail: define tolerance per metric type in the prompt schema and log tolerance decisions for auditability.
Not a Replacement for Database Reconciliation
Avoid when: you need exact ledger-level reconciliation or regulatory filing accuracy. Risk: LLM-based verification is probabilistic and can miss small discrepancies. Guardrail: use this prompt as a triage filter; flag mismatches for deterministic reconciliation in a downstream system of record.
Copy-Ready Prompt Template
A production-ready prompt for verifying numerical claims against source data with tolerance-aware comparison logic.
This prompt template is designed to be copied directly into your evaluation harness or LLM invocation pipeline. It instructs the model to act as a numerical verification judge, comparing a set of target claims against provided source data. The prompt enforces structured output, explicit tolerance handling, and detailed reasoning for every comparison. Before using it, ensure you have identified the specific numerical claims to verify, gathered the authoritative source data, and defined your acceptable tolerance thresholds for each metric type.
textYou are a numerical claim verification system. Your task is to compare numerical claims against provided source data and determine whether each claim is accurate, inaccurate, or unverifiable. ## INPUT [CLAIMS] [SOURCE_DATA] ## TOLERANCE CONFIGURATION - Percentage values: ±[TOLERANCE_PERCENT] percentage points - Currency values: ±[TOLERANCE_CURRENCY] in the reported currency - Counts and integers: exact match required unless otherwise specified - Custom tolerances: [CUSTOM_TOLERANCES] ## OUTPUT SCHEMA Return a JSON object with the following structure: { "verification_results": [ { "claim_id": "string", "claim_text": "string", "claimed_value": "number or string", "source_value": "number or string or null", "source_reference": "string or null", "verdict": "accurate|inaccurate|unverifiable", "deviation": "number or null", "deviation_unit": "absolute|percentage_points|percent_change|null", "within_tolerance": "boolean or null", "reasoning": "string explaining the comparison, tolerance application, and verdict" } ], "summary": { "total_claims": "number", "accurate": "number", "inaccurate": "number", "unverifiable": "number", "overall_reliability_note": "string" } } ## CONSTRAINTS - For each claim, locate the corresponding value in the source data. If the value cannot be found, mark it as unverifiable. - Apply the correct tolerance from the tolerance configuration based on the value type. - Calculate deviation precisely. For percentages, report deviation in percentage points. For other values, report absolute deviation and percent change where meaningful. - If a claim involves a calculation or derived metric, verify the computation logic against the source data. - Flag any unit mismatches explicitly in the reasoning field. - Flag any apparent rounding issues that could explain minor deviations. - Do not invent source values. If the source data is ambiguous, mark the claim as unverifiable and explain why. - If the source data contains conflicting values for the same metric, report the conflict and mark the claim as unverifiable. ## EXAMPLES [EXAMPLES] ## RISK LEVEL [RISK_LEVEL]
To adapt this template for your workflow, replace each square-bracket placeholder with runtime values. The [CLAIMS] field should contain a structured list of claims with unique IDs. The [SOURCE_DATA] field must include the authoritative dataset, document, or reference values. Configure tolerances based on your domain's acceptable error margins—financial reporting may require tighter tolerances than market sizing estimates. The [EXAMPLES] placeholder is critical for few-shot calibration; include at least two examples showing accurate, inaccurate, and unverifiable verdicts with correct tolerance application. Set [RISK_LEVEL] to high if the verification output drives automated decisions, which should trigger human review for any inaccurate or unverifiable claims. For production deployments, validate the output JSON against the schema before accepting results, and log all verification runs with the prompt version, input claims, and verdicts for audit trails.
Prompt Variables
Inputs the Numerical Claim Verification Prompt needs to work reliably. Validate these before each call to prevent tolerance mismatches, unit errors, and source misalignment.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CLAIM] | The numerical statement to verify against source data | Q3 revenue grew 12.4% to $847.2M | Must contain at least one numeric value. Reject empty or purely qualitative claims. Parse check: extract numeric tokens before sending. |
[SOURCE_DATA] | The ground-truth data containing the correct values | {"q3_revenue": 847200000, "q2_revenue": 754100000, "unit": "USD"} | Must be structured JSON or tabular format. Schema check: confirm presence of fields referenced in claim. Null allowed only if source explicitly states value is unknown. |
[TOLERANCE] | Acceptable deviation for numeric comparison as percentage or absolute value | 0.01 for 1% relative tolerance or 100000 for $100K absolute | Must be a positive float. Default to 0.005 if unspecified. Validation: reject negative or zero values. Document which tolerance type is active per comparison. |
[UNIT_MAPPING] | Mapping of unit labels to canonical units for comparison | {"M": "millions", "B": "billions", "K": "thousands"} | Required when claim and source use different unit representations. Schema check: all claim units must have entries. Missing mapping triggers pre-flight error. |
[COMPARISON_TYPE] | Whether to use relative or absolute difference for verification | "relative" or "absolute" | Must be one of enum: relative, absolute. Default to relative for growth rates and percentages, absolute for raw values. Mismatch with claim type triggers warning. |
[ROUNDING_POLICY] | How many decimal places to preserve during comparison | 2 for two decimal places or null for exact match | Integer 0-6 or null. Null means exact comparison. Validation: if claim uses 3 decimal places and policy is 2, log precision mismatch warning before comparison. |
[CONTEXT_WINDOW] | Additional source rows or metadata needed to interpret the claim | {"fiscal_year": 2024, "currency": "USD", "restated": false} | Optional but recommended. Include restatement flags, seasonality notes, or non-GAAP adjustments. Null allowed. If restated is true, require human approval flag. |
[OUTPUT_SCHEMA] | Expected structure for the verification result | {"claim_value": float, "source_value": float, "match": bool, "deviation": float, "within_tolerance": bool} | Must be a valid JSON Schema. Validation: parse schema before prompt assembly. Reject schemas missing required fields: claim_value, source_value, match, within_tolerance. |
Implementation Harness Notes
How to wire the Numerical Claim Verification Prompt into an application or evaluation pipeline with validation, retries, and human review.
The Numerical Claim Verification Prompt is designed to operate as a structured evaluation step within a larger pipeline, not as a standalone chat interaction. To integrate it, you'll need to programmatically assemble the prompt with the [SOURCE_DATA], [CLAIM], and [TOLERANCE_CONFIG] variables, then parse the structured JSON output for downstream decision-making. The prompt expects the source data to be provided as structured text—typically a CSV excerpt, a JSON payload, or a formatted table—and the claim to be a single, self-contained numerical assertion. The tolerance configuration should specify acceptable percentage or absolute deviation for each metric being verified, as financial and analytical use cases rarely require exact equality.
For production use, implement a validation layer that parses the model's JSON response and checks for the required fields: claim_verdict, extracted_value, source_value, deviation, and tolerance_check. If the output fails schema validation, retry once with a repair prompt that includes the original response and the specific validation errors. Log every verification attempt—including the input claim, source data snapshot, model response, and final verdict—to create an audit trail for compliance and debugging. For high-stakes financial or clinical applications, route any verdict marked "uncertain" or where the deviation falls within a configurable gray zone to a human review queue rather than accepting the model's binary pass/fail decision automatically.
Model choice matters significantly for this task. Use a model with strong numerical reasoning capabilities and explicit support for structured JSON output modes. Avoid models that tend to hallucinate calculations or paraphrase numbers. If your pipeline processes high volumes of claims, implement batching where multiple claims against the same source data are verified in a single request to reduce latency and cost. For evaluation pipelines, pair this prompt with a golden dataset of known claim-source pairs to measure precision and recall of the verification verdicts, and monitor for drift in the model's tolerance sensitivity over time.
Expected Output Contract
Validation rules for the JSON response produced by the Numerical Claim Verification Prompt. Use this contract to parse, validate, and route outputs in production.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
verification_id | string (UUID v4) | Must match regex ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ | |
claim_summary | string | Length between 10 and 500 characters; must contain the extracted numerical value | |
extracted_value | number | Must parse as float; null not allowed; must match the numeric value found in [CLAIM_TEXT] | |
extracted_unit | string or null | Must match a known unit from [ALLOWED_UNITS] if provided; null if claim has no unit | |
source_value | number or null | Must parse as float if source evidence exists; null if no source evidence found for this claim | |
source_unit | string or null | Must match a known unit from [ALLOWED_UNITS] if source_value is not null; null otherwise | |
tolerance | number | Must be >= 0; derived from [TOLERANCE_CONFIG]; default 0.0 for exact match requirements | |
deviation_percent | number or null | If present, must be >= 0; calculated as abs((extracted_value - source_value) / source_value) * 100; null if source_value is null | |
verdict | string (enum) | Must be one of: 'VERIFIED', 'MISMATCH', 'UNVERIFIABLE', 'FABRICATED', 'ROUNDING_DIFFERENCE', 'UNIT_MISMATCH' | |
confidence | number | Must be between 0.0 and 1.0 inclusive; values below [CONFIDENCE_THRESHOLD] should trigger human review | |
source_evidence | string or null | If verdict is not 'UNVERIFIABLE' or 'FABRICATED', must contain a direct quote from [SOURCE_DATA]; null otherwise | |
source_location | string or null | If source_evidence is not null, must reference a section, row, or paragraph identifier from [SOURCE_DATA]; null otherwise | |
discrepancy_reason | string or null | Required if verdict is 'MISMATCH', 'UNIT_MISMATCH', or 'ROUNDING_DIFFERENCE'; must explain the specific mismatch found |
Common Failure Modes
Numerical claim verification fails in predictable ways. These are the most common production failure modes and the specific guardrails that catch them before they reach users.
Unit Mismatch Blindness
What to watch: The model confirms a numerical match without detecting unit differences—comparing millions to billions, dollars to euros, or percentages to basis points. A claim that revenue grew 10% passes verification against source data showing $10M growth on a $100M base because the model sees '10' and stops thinking. Guardrail: Require explicit unit extraction and normalization before comparison. Add a pre-check step that parses units from both claim and source, converts to a canonical unit, and flags mismatches for human review.
Tolerance Collapse
What to watch: The model applies a single rigid tolerance across all claim types—flagging a 0.1% rounding difference in revenue with the same severity as a 0.1% difference in a safety threshold. This produces either noise floods from overly strict checks or missed errors from overly loose ones. Guardrail: Define tolerance tiers by claim category. Financial totals might allow 1% variance, while regulatory thresholds require exact match. Encode these tiers in the prompt as explicit tolerance rules per field type.
Context Window Truncation
What to watch: Source documents exceed the context window, and the model verifies claims against only the visible prefix—missing contradictory data buried deeper in the document. A claim that 'all Q3 targets were met' passes because the model only sees the first five targets in context, missing the sixth that failed. Guardrail: Chunk source documents and run verification per chunk, then aggregate results. If any chunk contradicts a claim, flag it. Log chunk coverage to detect when source material was truncated.
Fabricated Precision
What to watch: The model invents specific numbers to 'verify' a vague claim, hallucinating source data that doesn't exist. A claim that 'costs decreased significantly' gets verified with a fabricated 'costs decreased by 23.7%' pulled from the model's parametric knowledge rather than the provided source. Guardrail: Require exact source quoting for every verified number. If the model cannot locate a specific figure in the source, it must output 'insufficient evidence' rather than generating a number. Add a citation-existence check that validates quoted text appears verbatim in the source.
Aggregation Drift
What to watch: The model verifies a claim about an aggregate metric by checking individual line items and summing them incorrectly—or verifies individual line items against an aggregate without decomposing it. A claim that 'total revenue is $50M' gets verified against three source line items that actually sum to $47M because the model doesn't perform the arithmetic check. Guardrail: When a claim references an aggregate, require the model to extract all constituent values from the source, compute the sum explicitly, and compare. Output the calculation steps so reviewers can trace the arithmetic.
Temporal Anchoring Failure
What to watch: The model matches numbers without verifying they refer to the same time period—comparing Q2 2024 claims against Q2 2023 source data, or fiscal year against calendar year figures. The numbers match but the periods don't, producing false verification. Guardrail: Require explicit date or period extraction from both claim and source before comparison. Add a temporal alignment check that flags mismatched periods. When periods differ, output 'temporal mismatch' rather than 'verified' or 'contradicted.'
Evaluation Rubric
Use this rubric to test the Numerical Claim Verification Prompt before shipping. Each criterion targets a specific failure mode in numerical verification. Run these checks against a golden dataset of 20-50 claim-source pairs with known ground truth.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Value Match Detection | Prompt correctly identifies exact numerical matches between claim and source, including identical values with same units and precision. | Prompt flags a matching value as mismatched or reports a false discrepancy. | Run 10 claim-source pairs with identical values. Assert match_status is 'match' for all. Measure false positive rate; target 0%. |
Value Mismatch Detection | Prompt correctly identifies when a claimed numerical value differs from the source value beyond the specified tolerance. | Prompt reports a match when values differ by more than the tolerance threshold. | Run 10 claim-source pairs with known mismatches exceeding tolerance. Assert match_status is 'mismatch'. Measure false negative rate; target <5%. |
Unit Conversion Handling | Prompt correctly compares values with different but compatible units by converting to a common unit before comparison. | Prompt reports a mismatch when values are equivalent after unit conversion, or fails to flag a mismatch due to incorrect conversion. | Run 5 claim-source pairs with unit differences requiring conversion. Assert correct match_status and verify conversion_factor in output. Spot-check conversion math. |
Tolerance-Aware Comparison | Prompt applies the specified tolerance correctly, treating values within tolerance as matches and values outside as mismatches. | Prompt ignores tolerance and uses exact equality, or applies tolerance inconsistently across test cases. | Run 5 pairs with values within tolerance and 5 pairs just outside tolerance. Assert match_status aligns with tolerance boundary. Check that tolerance_value from input is reflected in output reasoning. |
Rounding and Precision Handling | Prompt correctly handles values with different decimal precision, recognizing that 3.50 and 3.5 are equivalent when precision difference is cosmetic. | Prompt flags cosmetic precision differences as mismatches, or fails to detect genuine rounding errors that exceed tolerance. | Run 5 pairs with precision differences within tolerance and 5 with rounding errors exceeding tolerance. Assert correct classification for each. |
Fabricated Value Detection | Prompt correctly identifies when a claim contains a numerical value that has no corresponding value in the source, flagging it as fabricated rather than mismatched. | Prompt reports a mismatch instead of fabrication, or attempts to compare a fabricated value against an unrelated source number. | Run 5 claim-source pairs where the claimed value is entirely absent from source. Assert verification_status is 'fabricated' and source_value is null. Check that reasoning explains absence. |
Source Grounding Citation | Prompt cites the exact source location where the reference value was found, including section, paragraph, or line reference. | Prompt provides a vague or incorrect source location, or fails to cite where the reference value was extracted. | Run 10 pairs and manually verify that source_location in output correctly identifies where the value appears in the source text. Target >90% citation accuracy. |
Ambiguous Value Handling | Prompt correctly flags when the source contains multiple plausible reference values or the mapping between claim and source is unclear. | Prompt picks an arbitrary source value without noting ambiguity, or reports high confidence on an ambiguous comparison. | Run 5 pairs with deliberately ambiguous source data. Assert confidence_score is below 0.7 and ambiguity_notes field is populated with explanation of the ambiguity. |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a single tolerance threshold. Use a simple JSON schema with claim, source_value, generated_value, match, and delta. Run against 10-20 known examples manually.
code[SYSTEM] You are a numerical claim verifier. Compare each claim against the provided source data. [INPUT] Claim: [CLAIM] Source Data: [SOURCE_DATA] Tolerance: [TOLERANCE]% [OUTPUT_SCHEMA] {"claim": "...", "source_value": ..., "generated_value": ..., "match": true/false, "delta_pct": ...}
Watch for
- Unit mismatches (millions vs billions) passing naive comparison
- Missing source data silently treated as match
- Tolerance applied inconsistently across orders of magnitude

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us