This prompt is designed for data analysts, verification engineers, and pipeline builders who need to programmatically check whether a quantitative claim is supported by provided source data. It handles tolerance windows, unit normalization, calculation verification, and structured pass/fail/marginally-supported verdicts. Use this when you have a specific numerical assertion and a dataset or reference value to check it against. This is not a general-purpose data analysis prompt; it assumes the claim has already been extracted and the evidence has already been retrieved. The prompt belongs in the verification step of a fact-checking pipeline, after claim extraction and evidence matching.
Prompt
Statistical Claim Verification Prompt Template

When to Use This Prompt
Understand the job-to-be-done, ideal user, required context, and when not to use this prompt.
The ideal user has already isolated a single, atomic numerical claim—such as 'revenue grew 12% year-over-year' or 'the median response time is 340ms'—and has retrieved the relevant source data or reference values needed to verify it. The prompt expects structured inputs: the claim text, the evidence data (with units and time periods), and a tolerance specification that defines acceptable deviation. It does not perform retrieval, claim extraction, or source authority assessment. Those steps must happen upstream. If you need to extract claims from a document, match them to evidence, or assess source credibility, use the appropriate upstream prompts from the claim extraction and evidence matching playbooks instead.
Do not use this prompt when the claim is qualitative, opinion-based, or predictive without a defined evaluation horizon. It is not suitable for verifying statements like 'our product is the best on the market' or 'we expect growth to accelerate.' It also should not be used when the evidence is incomplete, when units cannot be normalized to a common basis, or when the tolerance window cannot be specified in advance. In regulated or high-risk domains—such as financial reporting, clinical data, or safety-critical metrics—always route the verification output to human review and maintain an audit trail of the claim, evidence, tolerance, and verdict. The prompt produces a structured result, not a final decision.
Use Case Fit
Where the Statistical Claim Verification Prompt Template delivers reliable results and where it introduces unacceptable risk.
Good Fit: Structured Source Data
Use when: The claim references a specific dataset, table, or structured source that can be provided alongside the prompt. Guardrail: Always include the raw data or a deterministic query path. The model verifies calculations, not data existence.
Bad Fit: Ambiguous or Unverifiable Claims
Avoid when: Claims use vague language ('most', 'significant', 'many') without a defined numerical threshold or when no source data is available. Guardrail: Route these to an 'unsupported statement' flagging prompt instead of attempting numerical verification.
Required Input: Tolerance Windows
Risk: Without a defined tolerance (e.g., ±0.5%), the model may flag a rounding difference as a factual error. Guardrail: Always specify a [TOLERANCE] variable. Use tighter windows for financial data, wider for survey estimates.
Required Input: Unit Normalization Rules
Risk: Comparing 'millions' to 'billions' or 'USD' to 'EUR' without explicit conversion rules leads to false negatives. Guardrail: Provide a [UNIT_MAP] or explicit conversion factor. If conversion is ambiguous, the prompt must flag it as 'needs clarification'.
Operational Risk: Calculation Hallucination
Risk: The model may invent intermediate calculation steps or fabricated source values to reach a conclusion. Guardrail: Require the output to include a [CALCULATION_TRACE] that can be programmatically re-executed. Use a code interpreter tool for the actual math.
Operational Risk: Base Rate Neglect
Risk: The model verifies a percentage change but ignores whether the base value is logically sound (e.g., 200% increase from 0). Guardrail: Add a pre-check step in the harness to validate the denominator. If the base is zero or undefined, short-circuit the verification.
Copy-Ready Prompt Template
A reusable prompt template for verifying quantitative claims against source data with tolerance windows, unit normalization, and calculation checks.
This prompt template is designed to be copied directly into your prompt layer and adapted for your specific verification workflow. It takes a statistical claim, source data, and verification parameters as inputs, then produces a structured verification result. The template uses square-bracket placeholders that your application must replace with actual values before sending the request to the model. Each placeholder represents a distinct input that shapes how the model evaluates the claim.
textYou are a statistical claim verification assistant. Your task is to evaluate a quantitative claim against provided source data and produce a structured verification result. ## CLAIM TO VERIFY [CLAIM_TEXT] ## SOURCE DATA [DATA_SOURCE] ## VERIFICATION PARAMETERS - Tolerance: [TOLERANCE_PERCENT]% relative difference allowed - Units: [EXPECTED_UNITS] - Confidence level required: [CONFIDENCE_LEVEL] - Comparison type: [COMPARISON_TYPE] (exact_match | directional | range_check | calculation_verify) ## OUTPUT SCHEMA Return a JSON object with these fields: { "claim_id": "[CLAIM_ID]", "verification_result": "supported" | "contradicted" | "insufficient_evidence" | "calculation_error" | "unit_mismatch", "computed_value": number | null, "claimed_value": number | null, "absolute_difference": number | null, "relative_difference_percent": number | null, "within_tolerance": boolean | null, "units_detected": "string", "units_normalized_to": "string", "calculation_steps": ["step1", "step2"], "evidence_excerpt": "string", "confidence_score": 0.0-1.0, "limitations": ["limitation1"], "requires_human_review": boolean } ## CONSTRAINTS [CONSTRAINTS] ## EXAMPLES [EXAMPLES] ## INSTRUCTIONS 1. Parse the claim to identify the asserted value, metric, and any comparison or trend language. 2. Extract the relevant data points from the source data. 3. Normalize units before comparison. If units cannot be normalized, flag as unit_mismatch. 4. Perform any required calculations to derive the computed value from source data. 5. Compare computed value to claimed value using the specified tolerance. 6. If the source data is insufficient to verify the claim, set verification_result to "insufficient_evidence". 7. If the claim contains a calculation error in how it was derived from the same source data, set verification_result to "calculation_error". 8. Set requires_human_review to true if confidence_score is below [HUMAN_REVIEW_THRESHOLD] or if [RISK_LEVEL] is "high". 9. Include all calculation steps so the result is auditable. 10. Do not invent data. If evidence is missing, say so.
To adapt this template, replace each square-bracket placeholder with values from your application context. For [CLAIM_TEXT], provide the exact claim string. For [DATA_SOURCE], include the raw data, table, or dataset the claim references. Set [TOLERANCE_PERCENT] based on your domain's acceptable error margin—financial audits might use 0.1%, while market size estimates might allow 5%. The [CONSTRAINTS] placeholder should contain domain-specific rules like rounding conventions, acceptable source age, or required calculation methods. For [EXAMPLES], include one or two few-shot examples showing correct verification outputs for claims similar to what you expect in production. The [RISK_LEVEL] and [HUMAN_REVIEW_THRESHOLD] placeholders control when the workflow escalates to a human reviewer. Always validate the model's output against the schema before accepting it, and log both the prompt and response for audit trails when verifying claims with compliance implications.
Prompt Variables
Replace each placeholder before sending the prompt to the model. The application layer is responsible for populating these variables with validated, typed values.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CLAIM] | The quantitative assertion to verify | Revenue grew 34% YoY to $4.2M in Q3 | Must be a single, atomic claim. Reject if multiple claims or no numerical component detected. |
[SOURCE_DATA] | The reference dataset or values to check the claim against | {"Q3_2023": 3.13, "Q3_2024": 4.20} | Must be valid JSON or CSV. Schema check: requires comparable period values with unit labels. Null allowed only if verifying claim absence. |
[TOLERANCE_PCT] | Acceptable percentage deviation for numerical match | 2.5 | Must be a positive float. Default 1.0 if not specified. Reject if negative or >100. |
[UNITS] | Unit specification for normalization | USD millions | Must be a non-empty string. Used to normalize [CLAIM] and [SOURCE_DATA] before comparison. Mismatch triggers unit-conversion warning. |
[COMPARISON_PERIOD] | Time window for the claim | Q3 2024 vs Q3 2023 | Must parse to a valid date range. Used to select the correct slice of [SOURCE_DATA]. Reject if ambiguous. |
[OUTPUT_SCHEMA] | Expected JSON structure for the verification result | {"claim": "string", "calculated_value": "number", "match": "boolean", "deviation_pct": "number", "tolerance_exceeded": "boolean", "evidence": "string"} | Must be a valid JSON Schema object. Used to constrain the model response format. Reject if schema is not parseable. |
[CONSTRAINTS] | Additional rules for the verification | Flag if base-year value is zero. Require explicit formula in evidence field. | Must be a list of strings or null. Each constraint must be actionable. Reject constraints that contradict tolerance or units. |
Implementation Harness Notes
How to wire the Statistical Claim Verification prompt into an application with validation, retries, and structured logging.
This prompt is designed to be called as a step within a larger verification pipeline, not as a standalone chat interaction. The application layer is responsible for extracting the claim, retrieving the source data, and assembling the [CLAIM] and [SOURCE_DATA] variables before invoking the model. The model's output is a structured JSON object that downstream systems consume for automated decision-making, routing, or audit logging. Treat the prompt as a deterministic function: given the same inputs and model version, the output schema should be stable enough for programmatic parsing.
Implement a validation layer immediately after the model response. Parse the JSON output and check for the presence of required fields: claim_id, verification_status, calculated_value, tolerance_window, unit_match, and evidence. If the JSON is malformed, retry once with a repair prompt that includes the raw output and a strict schema reminder. For numerical fields, validate that calculated_value is a number, tolerance_window is a positive number, and unit_match is a boolean. If verification_status is UNVERIFIABLE or CONTRADICTED, route the claim to a human review queue with the full prompt context and model output attached. Log every verification attempt—including the model, prompt version, input claim, source data hash, output, and validation result—to enable regression testing and audit trails.
Model choice matters for numerical reasoning. Prefer models with strong quantitative performance and consistent JSON output, such as gpt-4o or claude-3-opus. Avoid models known to hallucinate calculations or struggle with unit conversions. Set the temperature to 0 for deterministic outputs. If your source data is large, pre-process it to extract only the relevant rows, columns, or summary statistics needed for the specific claim, rather than passing entire datasets. For claims involving currency or time-sensitive rates, include the conversion rate and its effective date in the [SOURCE_DATA] block to prevent the model from using stale internal knowledge. Never allow the model to perform live data retrieval; all evidence must be provided in the prompt to maintain a closed, auditable verification boundary.
Expected Output Contract
Fields, format, and validation rules for the JSON output of the Statistical Claim Verification Prompt. Use this contract to build post-processing validators and ensure downstream systems receive predictable, machine-readable verification results.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
verification_id | string (UUID v4) | Must be a valid UUID v4 string. Generate if not provided in the prompt. | |
claim_text | string | Must exactly match the [CLAIM] input text. Fail if altered or truncated. | |
claim_type | enum: [statistic, percentage, trend, correlation, distribution, significance, forecast, other] | Must be one of the listed enum values. Reject unknown values. | |
verification_status | enum: [verified, contradicted, unverifiable, out_of_scope] | Must be one of the listed enum values. If status is 'unverifiable', the evidence_sufficiency_score must be below the configured threshold. | |
numerical_value_claimed | number or null | Parse the claimed number from [CLAIM]. If no numerical value is present, set to null. If present, validate it is a finite number. | |
numerical_value_verified | number or null | If a verified value exists, it must be a finite number. If null, the verified_value_tolerance must also be null. | |
verified_value_tolerance | number or null | If present, must be a positive finite number representing the acceptable absolute or relative deviation window. Required if numerical_value_verified is not null. | |
unit_normalization_applied | boolean | Must be true if the claim required unit conversion or normalization before comparison. Must be false otherwise. If true, the normalization_method field is required. | |
normalization_method | string or null | Required if unit_normalization_applied is true. Must describe the conversion or normalization step. Set to null if no normalization was needed. | |
evidence_sources | array of objects | Must contain at least one object if status is 'verified' or 'contradicted'. Each object must have 'source_id' (string) and 'relevance_score' (number 0-1) fields. Array can be empty if status is 'unverifiable' or 'out_of_scope'. | |
calculation_check_performed | boolean | Must be true if the claim involved a derived metric (e.g., percentage, ratio, CAGR). Must be false for directly observed values. If true, the calculation_method field is required. | |
calculation_method | string or null | Required if calculation_check_performed is true. Must describe the formula or logic used to re-derive the claimed value. Set to null if no calculation was checked. | |
confidence_score | number (0.0 to 1.0) | Must be a float between 0.0 and 1.0 inclusive. Represents the model's confidence in the verification outcome. Scores below the [CONFIDENCE_THRESHOLD] should trigger human review. | |
human_review_required | boolean | Must be true if confidence_score is below the configured threshold, if sources conflict, or if the claim is high-risk per policy. Must be false otherwise. | |
review_reason | string or null | Required if human_review_required is true. Must state the specific reason (e.g., 'Low confidence', 'Conflicting evidence'). Set to null if no review is needed. |
Common Failure Modes
What breaks first when verifying statistical claims and how to guard against it. Each failure mode includes a detection method and a mitigation strategy.
Tolerance Window Mismatch
What to watch: The model accepts a claim as verified when the calculated value falls within a default tolerance that is inappropriate for the domain. A 5% tolerance might be fine for market size estimates but disastrous for financial audit figures or medical dosing. Guardrail: Require an explicit tolerance_pct or absolute_tolerance parameter in the prompt template. Validate that the provided tolerance matches the claim's domain precision requirements before accepting a match. Log all near-miss values that fall just inside the tolerance boundary for human spot-checking.
Unit Normalization Drift
What to watch: The model compares values without normalizing units, leading to false negatives (claim says '10K' but source says '10,000') or false positives (claim says '5%' and source says '5 percentage points'). Currency conversions, timezone alignment, and rate vs. absolute value confusion are common failure points. Guardrail: Add a dedicated unit normalization step before comparison. Require the model to explicitly state the normalized units for both the claim and the evidence in its output. Implement a pre-check that flags unit mismatches before the verification logic runs.
Base Rate and Denominator Blindness
What to watch: The model verifies a percentage or rate claim as mathematically correct but fails to check whether the denominator is appropriate. A claim of '50% increase in efficiency' might be arithmetically true but based on a cherry-picked baseline period or an irrelevant denominator. Guardrail: Require the prompt to extract and validate the base period, denominator definition, and comparison population before confirming the calculation. Add a specific output field for denominator_valid with a required justification. Flag claims where the base rate is not explicitly stated in the source.
Spurious Precision Acceptance
What to watch: The model treats a claim with excessive significant figures as verified because the calculation matches, ignoring that the source data doesn't support that level of precision. A claim of '37.42% market share' from a survey of 200 people passes calculation checks but misleads on precision. Guardrail: Add a significant figures check that compares the claim's precision to the source data's granularity. Require the output to flag when claimed precision exceeds source precision. Include a precision_appropriate boolean field with a rule that precision cannot exceed the least precise input.
Temporal Misalignment
What to watch: The model verifies a claim against source data from a different time period without detecting the mismatch. A claim about 'Q3 2024 revenue' verified against Q2 2024 data produces a false confirmation. This is especially dangerous with automated retrieval where the model trusts whatever date range the search returns. Guardrail: Require explicit date range extraction from both the claim and the evidence source. Add a temporal_alignment check that compares claim period to evidence period. If periods don't match within a specified window, escalate for human review rather than silently proceeding.
Aggregation Level Confusion
What to watch: The model compares a claim about a subgroup against aggregate data, or vice versa. A claim about 'US West Coast revenue' verified against total North American revenue produces a misleading confirmation. Simpson's paradox cases where subgroup trends reverse at the aggregate level are entirely missed. Guardrail: Add an aggregation level check that extracts the population scope from the claim and verifies it matches the evidence scope. Require the output to include claim_scope and evidence_scope fields. Flag any scope mismatch as unverifiable rather than attempting comparison.
Evaluation Rubric
Run these checks against a golden dataset of claims with known verification outcomes. Each criterion targets a specific failure mode in statistical claim verification. Use the test methods to build automated eval harnesses before shipping.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Tolerance window appropriateness | Selected tolerance matches claim precision and domain convention (e.g., ±0.1% for percentage claims with one decimal) | Tolerance is zero when claim uses rounded values, or tolerance exceeds 10× the claim's implied precision | Golden set contains claims with known acceptable tolerance ranges; assert selected tolerance falls within expected bounds for each claim type |
Unit normalization correctness | All compared values use the same unit after conversion; conversion factors are explicitly stated and correct | Comparison performed across incompatible units (e.g., USD vs EUR without rate), or conversion factor is inverted | Golden set includes cross-unit claims with verified conversion results; assert normalized values match expected within floating-point epsilon |
Calculation verification accuracy | Derived value matches golden computation within tolerance; intermediate steps are traceable | Result differs from golden by more than tolerance, or calculation steps contain arithmetic errors | Pre-compute expected results for each golden claim; assert model output matches within specified tolerance and intermediate steps are logically consistent |
Source data grounding | Every numerical input used in verification is cited to a specific source row, column, or data point | Verification uses values not present in provided source data, or cites source sections that don't contain the referenced numbers | Include source data with known values in golden set; assert all cited values exist in source and match exactly |
Confidence score calibration | Confidence score correlates with actual correctness: high confidence (>0.9) corresponds to >95% accuracy on golden set | High-confidence outputs are frequently wrong, or low-confidence outputs are frequently correct, indicating miscalibration | Bin outputs by confidence level; assert accuracy per bin matches confidence range (e.g., 0.8-0.9 bin has 80-90% accuracy across golden set) |
Null handling for missing data | Returns explicit 'insufficient data' verdict when required source values are absent, rather than fabricating or assuming values | Produces a verification result using assumed or hallucinated values when source data is incomplete | Golden set includes claims where required source data is deliberately omitted; assert output verdict is 'insufficient data' or equivalent abstention signal |
Rounding and precision consistency | Reported result precision does not exceed input precision; rounding method is stated and correctly applied | Output shows more significant figures than inputs support, or rounding propagates errors across intermediate steps | Golden set includes claims with known precision boundaries; assert output precision matches input precision and rounding follows stated convention |
Statistical test appropriateness | Selected test matches claim type (e.g., t-test for mean comparison, chi-square for proportions) with assumptions checked | Test applied to data violating its assumptions without flagging, or wrong test used for claim type (e.g., correlation test for causation claim) | Golden set pairs claims with known appropriate tests; assert model selects correct test and flags assumption violations when present |
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
Use the base prompt with a single model call and manual review of outputs. Replace [TOLERANCE_WINDOW] with a fixed percentage (e.g., 5%). Skip structured output enforcement initially—accept markdown tables or bullet lists while iterating on the verification logic. Focus on getting the reasoning chain right before locking down the schema.
Watch for
- Tolerance windows that are too tight or too loose for the claim domain
- Unit mismatches when the claim uses percentages but source data is in absolute values
- The model accepting the claim's framing without checking the denominator or base period
- Missing explicit 'insufficient evidence' verdicts when source data is incomplete

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