This prompt is a surgical instrument for verification engineers and analysts who need to extract only the checkable, atomic factual claims from a body of text. Its sole job is to strip away all interpretation, opinion, prediction, and rhetorical framing, producing a filtered list of discrete claims, each anchored to its source text span. Use it as a pre-processing step in a fact-checking pipeline, immediately before evidence retrieval and matching. The ideal user is someone building an automated verification system who understands that downstream accuracy depends entirely on clean claim boundaries. If you feed a fact-checking model a sentence that blends a fact with an opinion, you will get unreliable verification results. This prompt prevents that contamination at the source.
Prompt
Verifiable Statement Isolation Prompt Template

When to Use This Prompt
Defines the precise job-to-be-done for the Verifiable Statement Isolation prompt, its ideal user, and the critical boundaries where it should not be applied.
You should deploy this prompt when you have unstructured content—news articles, reports, transcripts, or model outputs—and you need to isolate statements that can be objectively checked against an external source. For example, from the sentence 'The company's revenue grew 15% last quarter, which was a disappointing result,' this prompt extracts only 'The company's revenue grew 15% last quarter' and discards the interpretive framing. It handles embedded factual assertions within complex sentences, numerical claims, and attributed statements. The output is a structured list of claims with their exact text spans, ready to be passed to an evidence retrieval system or a claim-matching prompt. This prompt does not classify the type of content, summarize it, or evaluate its argumentative structure. It does one job: isolate verifiable statements.
Do not use this prompt when you need to understand the author's argument, assess the overall credibility of a document, or generate a summary. It is not designed for sentiment analysis, stance detection, or narrative evaluation. It will deliberately ignore the rhetorical purpose of the text, which is a feature for verification pipelines but a bug for content analysis workflows. Also avoid this prompt when the input contains no factual claims—it will correctly return an empty set, but that may not be the behavior you want if you are expecting some output. For high-risk domains like healthcare or legal, always route the extracted claims to a human review step before treating them as verified, because the isolation step itself does not check truth, only checkability.
Use Case Fit
Where the Verifiable Statement Isolation Prompt Template delivers reliable results and where it introduces operational risk.
Good Fit: Pre-Verification Claim Extraction
Use when: you need to isolate atomic, checkable claims from mixed-content documents before routing them to an evidence-matching or fact-checking pipeline. Guardrail: always validate that extracted claims retain their original source span and context; stripped claims without provenance are unverifiable.
Bad Fit: Real-Time Conversational Filtering
Avoid when: latency budgets are under 500ms or the input is a live chat stream where sentences are incomplete. Guardrail: batch process transcripts asynchronously; do not inline this prompt into a synchronous chat agent loop.
Required Inputs
What you must provide: a complete document or passage with stable text, a defined claim atomicity standard, and an output schema specifying required fields (claim text, source span, claim type). Guardrail: reject runs where the input text is truncated mid-sentence or contains unresolved template tokens.
Operational Risk: False Negatives on Embedded Facts
What to watch: factual assertions buried inside interpretive sentences (e.g., 'The alarming 40% increase suggests policy failure') may be missed. Guardrail: add a secondary pass prompt that specifically targets sentences containing both quantitative expressions and opinion language, flagging them for human review.
Operational Risk: Over-Extraction of Pseudo-Facts
What to watch: the model may extract statements that sound factual but are unverifiable in practice (predictions, hypotheticals, or statements about future intent). Guardrail: implement a post-extraction classifier that rejects claims with future-tense verbs, modal qualifiers, or missing source attribution before they enter the verification pipeline.
Scale Risk: Batch Processing Drift
What to watch: extraction quality degrades when processing large document batches due to context-window truncation or inconsistent atomicity standards across chunks. Guardrail: chunk documents with overlap, deduplicate claims by normalized text, and run a consistency eval on a random sample of each batch before releasing results downstream.
Copy-Ready Prompt Template
A model-agnostic prompt that isolates only verifiable factual statements from input text, excluding analysis, opinion, and interpretation.
This prompt template is designed to be dropped directly into your AI system. It forces the model to act as a strict extraction engine, returning only atomic, checkable claims with their exact source text spans. The instructions are written to be model-agnostic, but you should test them against your specific model's tendencies, particularly its inclination to over-include interpretive language or to fragment compound facts. Before using this in production, run it against the failure mode tests described in the full playbook to calibrate your acceptance thresholds.
textYou are a strict claim extraction engine. Your only job is to identify and isolate statements of verifiable fact from the provided text. You must ignore all analysis, opinion, prediction, interpretation, rhetorical questions, and commentary. A verifiable factual statement is a claim that can be proven true or false using external evidence, regardless of whether that evidence is currently available to you. It must be a concrete assertion about reality, not a belief, judgment, or hypothetical. # INPUT [INPUT_TEXT] # OUTPUT_SCHEMA Return a JSON object with a single key "verifiable_claims" containing an array of claim objects. Each claim object must have the following fields: - "claim_text": The atomic factual statement, rewritten as a single, self-contained assertion in the present tense. - "source_span": The exact verbatim text from the input that contains the factual assertion. - "span_start_index": The starting character index of the source_span within the original input. - "span_end_index": The ending character index of the source_span within the original input. If no verifiable factual statements are found, return an empty array. # CONSTRAINTS - Do not include any statement that contains hedging language (e.g., "may," "could," "suggests," "likely"). - Do not include predictions about the future, even if stated confidently. - Do not include statements of value, quality, or sentiment (e.g., "is the best," "is terrible"). - Do not include statements that are true by definition or unfalsifiable. - Break down compound sentences with multiple facts into separate claim objects. - The "claim_text" must be understandable without the surrounding context. - Do not add any commentary, preamble, or postamble outside the JSON object. # EXAMPLES Input: "The company, founded in 2012 by Jane Doe, released its flagship product last quarter. Analysts believe it could disrupt the market." Output: { "verifiable_claims": [ { "claim_text": "The company was founded in 2012.", "source_span": "founded in 2012", "span_start_index": 16, "span_end_index": 30 }, { "claim_text": "The company was founded by Jane Doe.", "source_span": "by Jane Doe", "span_start_index": 31, "span_end_index": 41 }, { "claim_text": "The company released its flagship product in the quarter before the statement was made.", "source_span": "released its flagship product last quarter", "span_start_index": 43, "span_end_index": 82 } ] } Input: "This is the most innovative solution on the market. Everyone should switch immediately." Output: { "verifiable_claims": [] } # RISK_LEVEL [RISK_LEVEL] If RISK_LEVEL is "HIGH", you must also include a "confidence" field ("HIGH" or "LOW") for each claim, and you must strictly prefer under-extraction to over-extraction.
To adapt this template, start by replacing [INPUT_TEXT] with your content source. Set [RISK_LEVEL] to "HIGH" for regulated domains like healthcare or finance, where a false positive (treating an opinion as a fact) is more dangerous than a false negative. For lower-stakes content triage, you can omit the confidence field to reduce output token usage. The most common adaptation is adjusting the constraint list: if your domain considers well-sourced analyst projections as verifiable, you would remove the prediction exclusion. Always run the adapted prompt against a golden test set of 20-30 examples that include tricky boundary cases before deploying.
Prompt Variables
Required and optional inputs for the Verifiable Statement Isolation prompt. Each placeholder must be populated before the prompt is sent to the model. Validation notes describe how to check that the input is well-formed before execution.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[SOURCE_TEXT] | The full document or passage from which verifiable factual statements will be extracted | The company reported Q3 revenue of $12.4B, which the CEO called a remarkable achievement in a challenging market. | Must be non-empty string. Check length does not exceed model context window minus prompt overhead. Null or whitespace-only input should trigger early rejection. |
[EXTRACTION_GRANULARITY] | Controls whether output claims are sentence-level, clause-level, or atomic proposition-level | atomic_proposition | Must be one of: sentence, clause, atomic_proposition. Invalid values should default to atomic_proposition with a warning log entry. |
[DOMAIN] | Optional domain context that helps the model recognize domain-specific factual patterns and terminology | financial_reporting | Null allowed. If provided, must match a known domain slug from the verification taxonomy. Unrecognized domains should trigger a fallback to general extraction without error. |
[INCLUDE_SPANS] | Boolean flag controlling whether source character offsets or text spans are included in the output | Must be true or false. When true, output schema must include span_start and span_end fields. When false, span fields may be omitted to reduce output size. | |
[CONFIDENCE_THRESHOLD] | Minimum confidence score for a statement to be included in the output. Statements below this threshold are excluded or routed to human review. | 0.7 | Must be a float between 0.0 and 1.0. Values outside range should be clamped with a warning. Null defaults to 0.5. Thresholds above 0.9 may produce empty outputs on ambiguous content. |
[EXCLUSION_PATTERNS] | List of regex patterns or keyword signals that identify interpretive language to exclude from factual extraction | ["appears to be", "likely reflects", "suggests that", "in our view"] | Null allowed. If provided, must be a valid JSON array of strings. Invalid JSON should trigger parse error before prompt assembly. Patterns are applied as soft guidance, not hard filters. |
[OUTPUT_FORMAT] | Specifies the output structure: flat list of claims or grouped by source paragraph with context preservation | grouped_by_paragraph | Must be one of: flat_list, grouped_by_paragraph. Invalid values should default to flat_list with a warning. Grouped format requires paragraph indexing in source text. |
[MAX_CLAIMS] | Upper bound on the number of extracted claims returned. Prevents runaway extraction on long documents. | 50 | Must be a positive integer. Null means no hard limit but model may truncate. Values above 200 should trigger a warning about potential output truncation. Used for cost and latency control in batch pipelines. |
Implementation Harness Notes
How to wire the Verifiable Statement Isolation prompt into a production application with validation, retries, and human review.
The Verifiable Statement Isolation prompt is designed to be a pre-processing step in a larger fact-checking pipeline. It should be called before evidence matching, scoring, or report generation. The prompt expects raw text input and returns a structured list of atomic claims with source spans. In production, you will typically call this prompt via an API (OpenAI, Anthropic, or a self-hosted model) and parse the JSON output into your verification database. The prompt's value is in its strict filtering: it discards analysis, opinion, and rhetorical framing, leaving only statements that can be checked against external evidence. This makes downstream verification steps more reliable because they are not wasting compute on unverifiable content.
Validation and Schema Enforcement: The prompt template includes an [OUTPUT_SCHEMA] placeholder that should be replaced with a strict JSON schema. Use a library like pydantic or zod to validate the model's response before accepting it. Each claim object must have a non-empty statement string, a source_span with valid start and end character offsets, and a claim_type enum value. If validation fails, do not silently drop the record. Instead, implement a retry loop (max 2-3 attempts) that feeds the validation error back to the model with a repair instruction: "Your previous output failed schema validation. The field 'source_span.start' was missing for claim index 4. Please regenerate the full output with all required fields." Log every validation failure and retry attempt for observability. For high-stakes domains like legal or medical content, route any output that fails validation after max retries to a human review queue rather than proceeding with partial data.
Model Choice and Latency Budgeting: This prompt works best with frontier models (GPT-4o, Claude 3.5 Sonnet) because the task requires nuanced linguistic judgment to distinguish factual assertions from interpretive language. Smaller models (GPT-4o-mini, Claude Haiku) can be used for high-throughput, lower-stakes content, but expect higher false-positive rates on interpretive statements. If you are processing long documents, chunk the input into sections of 2,000-4,000 characters with overlapping windows of 200 characters to avoid splitting claims at chunk boundaries. Run the prompt on each chunk in parallel, then deduplicate claims that appear in overlapping windows by matching on normalized statement text and source span proximity. Logging and Traceability: Store every prompt input, raw model output, validated output, and any retry attempts in your observability platform. Attach a prompt_version and model_id to each record so you can trace regressions when the prompt or model changes. For audit-heavy workflows, also store the full prompt template with all variables resolved so reviewers can reconstruct exactly what the model saw.
Next Steps After Isolation: Once you have a validated list of atomic claims, the typical next step is to route them to an evidence matching prompt or a retrieval system. Do not pass the full original document to the evidence matcher—only pass the isolated claims. This prevents the evidence system from being distracted by interpretive language. If your pipeline includes a confidence scoring step, use the claim_type field to adjust scoring thresholds: numerical claims may require tighter tolerance windows, while attribution claims may require exact quote matching. Finally, build a dashboard that tracks the ratio of isolated claims to total input length over time. A sudden drop in claim density may indicate a model behavior change or a shift in your input content type, both of which warrant investigation.
Expected Output Contract
Defines the shape, types, and validation rules for the output of the Verifiable Statement Isolation prompt. Use this contract to build a parser, validator, or retry condition in your application harness.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
verifiable_statements | Array of objects | Must be a non-null array. If no verifiable statements are found, return an empty array, not null. | |
verifiable_statements[].id | String | Must match the pattern | |
verifiable_statements[].statement | String | Must be a single, atomic, self-contained factual assertion. Cannot contain conjunctions like 'and' or 'but' joining two distinct claims. Length must be > 10 characters. | |
verifiable_statements[].source_span | String | Must be an exact, verbatim substring of [INPUT_TEXT]. Validation must confirm the span exists in the source using a direct string match. | |
verifiable_statements[].category | String | Must be one of the allowed enum values: | |
verifiable_statements[].checkable_question | String | Must be a yes/no question that directly rephrases the statement. Must end with a question mark. Must not introduce external entities not present in the statement. | |
excluded_elements | Array of objects | Must be an array. Each object must have | |
excluded_elements[].text | String | Must be an exact substring from [INPUT_TEXT] that was classified as non-verifiable. | |
excluded_elements[].reason | String | Must be one of the allowed enum values: |
Common Failure Modes
What breaks first when isolating verifiable statements and how to guard against it.
Interpretive Language Passes as Fact
What to watch: The model extracts phrases like 'the market responded positively' or 'significant improvement was observed' as verifiable facts. These contain embedded judgment, not atomic checkable claims. Guardrail: Add negative examples in the prompt that explicitly flag evaluative adjectives and interpretive verbs. Require the model to justify why each extracted statement is verifiable before including it.
Embedded Factual Assertions Are Missed
What to watch: A sentence like 'Despite the challenging quarter, revenue grew 12% year-over-year' yields only the revenue claim, missing the implicit factual assertion about the quarter being challenging. Guardrail: Instruct the model to decompose compound sentences and extract all atomic claims, including those in subordinate clauses. Test with sentences that bury facts inside rhetorical framing.
Source Span Drift Under Paraphrase
What to watch: The model extracts a claim but the source span points to a paraphrased or summarized version rather than the exact original text. Downstream evidence matching then operates on degraded input. Guardrail: Require verbatim source spans with character offsets. Add a validation step that checks extracted spans against the original text for exact match before proceeding to verification.
Prediction and Forward-Looking Statements Leak Through
What to watch: Statements like 'we expect growth to accelerate' or 'the trend suggests continued decline' are extracted as checkable facts. These are forecasts, not verifiable claims about the present or past. Guardrail: Add explicit exclusion rules for future-tense verbs, modal verbs indicating uncertainty, and predictive language. Include few-shot examples showing predictions being correctly excluded with rationale.
Opinion Framed as Objective Observation
What to watch: 'The CEO gave a disappointing presentation' is extracted as a fact about the presentation. The disappointment is subjective judgment, not a verifiable claim. Guardrail: Require the model to strip attribution framing and test whether the core claim can be checked against external evidence. If the claim requires knowing someone's internal state or subjective evaluation, exclude it.
Claim Granularity Inconsistency
What to watch: The model sometimes extracts broad summary claims ('the company performed well') and other times atomizes to micro-claims ('Q3 revenue was $1.2B'). Inconsistent granularity breaks downstream evidence matching. Guardrail: Define an atomicity standard in the prompt: one verifiable predicate per claim. Add a post-extraction check that rejects compound claims and requests decomposition before proceeding.
Evaluation Rubric
Use this rubric to test the Verifiable Statement Isolation prompt before shipping. Each criterion targets a known failure mode: false positives on interpretive language, false negatives on embedded factual assertions, and boundary precision where fact and interpretation mix in the same sentence.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Factual Recall on Embedded Assertions | Prompt extracts at least 95% of atomic factual claims embedded within interpretive sentences | Factual claims inside sentences like 'The alarming 15% drop in Q3 revenue signals a market shift' are missed | Run against a golden dataset of 50 mixed-content sentences with known factual claim counts; measure recall |
Interpretation False Positive Rate | Fewer than 5% of extracted statements are interpretive, opinion, or predictive language misclassified as factual | Sentences like 'This strategy will likely improve retention' appear in the factual output | Run against a curated set of 30 purely interpretive sentences; count any extracted claim as a false positive |
Atomicity of Extracted Claims | Each extracted claim contains exactly one verifiable proposition; no compound claims | Output contains claims like 'Revenue grew 12% and customer churn decreased to 3.2%' as a single item | Parse output claims; flag any claim containing coordinating conjunctions joining two independently verifiable assertions |
Source Span Accuracy | Every extracted claim includes a source span that exactly matches the originating text substring | Source span is truncated, paraphrased, or points to the wrong sentence in the input | For each extracted claim, verify the source span exists verbatim in the input text using exact string match |
Exclusion of Rhetorical Framing | Zero extracted claims from purely rhetorical or framing language | Claims extracted from sentences like 'In an unprecedented move, the company announced...' where only the announcement itself is factual | Run against 20 rhetorical-framing-only sentences; require zero claims in output |
Prediction and Forward-Looking Statement Exclusion | Zero forward-looking statements classified as verifiable factual claims | Statements containing 'expects', 'projects', 'anticipates', or 'guidance' appear in factual output | Run against 15 forward-looking statement examples from earnings calls; require zero claims extracted |
Boundary Precision for Mixed Sentences | When fact and interpretation appear in the same sentence, only the factual portion is extracted with correct span boundaries | Extracted span includes interpretive language adjacent to the factual claim, or cuts off part of the factual assertion | Run against 25 sentences with fact-interpretation adjacency; human reviewer checks span boundaries for precision |
Null Output Handling | Prompt returns an empty claims array with a reason when no verifiable factual statements exist in the input | Prompt hallucinates claims from interpretive content or returns an error when input contains only opinion | Feed 10 purely opinion or rhetorical documents; verify output is an empty array with a non-null reason field |
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 small sample of mixed content. Remove the strict JSON output schema initially and ask for a simple markdown list of atomic claims with source spans. Focus on getting the separation logic right before adding validation.
codeExtract only verifiable factual statements from [INPUT_TEXT]. For each, include the original text span. Exclude opinions, predictions, analysis, and rhetorical framing.
Watch for
- False positives on interpretive language phrased as fact (e.g., "the market responded poorly")
- False negatives on factual claims embedded in opinion sentences
- Inconsistent claim granularity (some too broad, some too narrow)

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