This prompt is designed for evidence conflict resolution and fact-checking system builders who need to distinguish genuine contradictions from temporal progression when multiple sources report different facts, figures, or events for the same time period. The ideal user is an AI engineer or pipeline architect integrating this into a production system where source disagreement must be surfaced rather than silently resolved. You need this when your retrieval set contains documents that appear to conflict—one source says revenue was $4.2B while another says $3.8B for the same quarter—and you must determine whether this is a real discrepancy requiring human review or simply one source reporting preliminary results before a later revision.
Prompt
Temporal Contradiction Detection Prompt

When to Use This Prompt
Define the job, reader, and constraints for temporal contradiction detection.
Use this prompt when you have at least two sources covering the same temporal scope and you need a structured contradiction report with source comparison and resolution recommendations. The prompt expects pre-retrieved evidence passages with known publication dates, source identifiers, and the specific claims or figures in question. It works best when the temporal scope is explicit—a specific quarter, day, event, or reporting period—rather than vague time references. Do not use this prompt for general fact-checking against a knowledge base, for single-source verification, or when the temporal relationship between sources is unknown. It is not a replacement for temporal relevance scoring or recency-aware ranking; those are upstream concerns that should filter and order evidence before contradiction detection runs.
The prompt produces a structured contradiction report that classifies each conflict as genuine contradiction, temporal progression, reporting lag, definitional difference, or correction. For each conflict, it identifies the conflicting claims, the sources, their publication dates, and a resolution recommendation. This output is designed to feed into downstream human review queues, automated fact-checking dashboards, or evidence synthesis prompts that need to know which sources to trust. The resolution recommendations are advisory—they suggest which source is likely more authoritative or current—but the prompt explicitly avoids making final determinations that should require human judgment, especially for high-stakes domains like financial reporting or clinical data.
Before deploying this prompt, ensure your retrieval pipeline has already selected temporally relevant passages and extracted publication dates. The prompt assumes clean date metadata; garbage dates produce garbage contradiction classifications. You should also implement a validation layer that checks the output schema, verifies that every flagged conflict cites specific sources and claims, and escalates reports with high-severity contradictions to human review. For regulated domains, always require human approval before acting on contradiction reports. The test harness included in this playbook covers known temporal conflict scenarios—preliminary vs. final earnings, corrected press releases, timezone edge cases, and definitional mismatches—so run those evals before shipping.
Use Case Fit
Where the Temporal Contradiction Detection Prompt delivers value and where it introduces risk. Use these cards to decide if this prompt fits your pipeline before integrating it.
Good Fit: Multi-Source Fact-Checking Pipelines
Use when: you have 2+ sources reporting on the same event or time period and need to surface factual disagreements. Guardrail: always provide full source text and publication dates; the prompt cannot detect contradictions without complete context.
Bad Fit: Single-Source Summarization
Avoid when: only one source is available or the task is pure summarization without comparison. Guardrail: route single-document tasks to a dedicated summarization prompt instead; this prompt requires at least two distinct sources to produce meaningful output.
Required Input: Timestamped Source Pairs
What to watch: the prompt depends on accurate publication or event timestamps to distinguish genuine contradictions from temporal progression. Guardrail: validate that every input source includes a machine-readable date before invoking the prompt; reject or flag sources with missing or ambiguous dates.
Operational Risk: False Contradiction Flags
What to watch: the model may flag sequential updates (e.g., revised earnings, evolving casualty counts) as contradictions rather than temporal progression. Guardrail: include explicit instructions and few-shot examples that distinguish 'same fact, different time' from 'same time, conflicting fact.'
Operational Risk: Missed Genuine Contradictions
What to watch: subtle contradictions using different terminology or units may be missed, especially when sources use domain-specific language. Guardrail: pair this prompt with a domain-specific terminology map or normalization step before contradiction detection runs.
Scale Consideration: Pairwise Explosion
What to watch: running contradiction detection across many sources creates O(n²) pairwise comparisons, increasing cost and latency. Guardrail: pre-filter sources by topic clustering or temporal window before invoking this prompt; only compare sources covering the same event and time range.
Copy-Ready Prompt Template
A reusable prompt template with square-bracket placeholders for detecting temporal contradictions across multiple sources.
This section provides a copy-ready prompt template for detecting when multiple sources report conflicting facts, figures, or events for the same time period. The template is designed to distinguish genuine contradictions—where sources disagree about what happened at a specific point in time—from temporal progression, where newer sources update or supersede older information. Use this prompt when you need to surface conflicts in evidence sets before generating answers, produce structured contradiction reports for downstream resolution, or build automated fact-checking pipelines that must identify temporal discrepancies.
The prompt template below uses square-bracket placeholders for all variable inputs. Replace each placeholder with your application's actual values before sending the prompt to the model. The template expects a set of source passages with publication dates, a target time period or claim to evaluate, and an output schema specification. It instructs the model to compare sources pairwise, identify contradictions, classify their type, and recommend resolution actions. The prompt includes explicit instructions for handling edge cases such as missing dates, partial temporal overlap, and sources that describe different aspects of the same event without actually conflicting.
textYou are a temporal contradiction detection system. Your task is to analyze multiple source passages and identify genuine contradictions—where sources disagree about facts, figures, or events for the same time period—while distinguishing these from temporal progression where newer information updates older information. ## INPUT **Target Time Period or Claim:** [TARGET_TIME_PERIOD_OR_CLAIM] **Source Passages:** [SOURCE_PASSAGES] - Format: Each source must include a unique ID, publication date, and full text. - Example: [SOURCE_ID] | [PUBLICATION_DATE] | [SOURCE_TEXT] **Domain Context:** [DOMAIN_CONTEXT] - Describe the domain, expected rate of change, and any known data revision patterns. ## OUTPUT SCHEMA Return a JSON object with the following structure: [OUTPUT_SCHEMA] - Example fields: contradictions (array), temporal_progressions (array), unresolved (array), resolution_recommendations (array), confidence_scores (object) ## CONSTRAINTS [CONSTRAINTS] - Example: Do not flag sources as contradictory if they describe different time points within the target period. - Example: Treat a newer source that explicitly supersedes an older source as temporal progression, not contradiction. - Example: Flag as unresolved any conflict where neither source has clear authority or corroboration. ## EXAMPLES [EXAMPLES] - Provide 2-3 few-shot examples showing input source sets and correct contradiction detection outputs. - Include both clear contradiction cases and temporal progression cases. ## INSTRUCTIONS 1. Parse all source passages and extract their publication dates and key factual claims relevant to the target time period. 2. Group claims by the specific time point or event they describe. 3. For each group, compare claims across sources pairwise. 4. Classify each comparison as: - **contradiction**: Sources disagree on facts for the same time point. - **temporal_progression**: A newer source updates or supersedes an older source. - **complementary**: Sources describe different aspects without conflict. - **unresolved**: Insufficient information to determine the relationship. 5. For each contradiction, identify the specific conflicting claims, the sources involved, and the type of contradiction (factual, numerical, event description, attribution). 6. For each temporal progression, note which source supersedes which and why. 7. Generate resolution recommendations: which source to prefer, whether to seek additional sources, or whether to present both versions to the user with uncertainty. 8. Assign confidence scores to each classification. 9. Return the complete analysis in the specified output schema. ## RISK LEVEL [RISK_LEVEL] - If HIGH: Flag all contradictions for human review before any downstream use. - If MEDIUM: Auto-resolve clear temporal progressions; flag contradictions for review. - If LOW: Auto-resolve where confidence exceeds threshold; log all decisions.
After copying the template, replace the placeholders with your application's actual values. For [SOURCE_PASSAGES], ensure each source includes a reliable publication date—sources without dates should be flagged in preprocessing rather than passed to the model. For [OUTPUT_SCHEMA], define a JSON schema that your downstream systems can parse and act on. For [CONSTRAINTS], add domain-specific rules such as 'financial restatements supersede original filings' or 'peer-reviewed sources take precedence over preprints for the same time period.' For [EXAMPLES], curate few-shot examples from your actual domain to improve accuracy. For [RISK_LEVEL], set the threshold based on your use case's tolerance for unresolved contradictions reaching end users. Always validate the model's output against your schema before passing results downstream, and log contradiction reports for audit and model improvement.
Prompt Variables
Required inputs for the Temporal Contradiction Detection Prompt. Each placeholder must be populated before the prompt is sent. Validation notes describe how to verify the input is well-formed before execution.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CLAIM_A] | First claim to compare for temporal contradiction | Revenue grew 12% in Q3 2024 | Must be a single declarative sentence. Reject if empty or exceeds 500 characters. Parse check: contains a subject and a temporal marker. |
[CLAIM_B] | Second claim to compare against Claim A | Revenue declined 8% in Q3 2024 | Must be a single declarative sentence. Reject if identical to [CLAIM_A]. Parse check: contains a subject and a temporal marker that overlaps with [CLAIM_A]. |
[SOURCE_A] | Source document or passage supporting Claim A | Earnings report filed 2024-10-15: 'Q3 revenue reached $4.2B, a 12% increase YoY' | Must be a non-empty string. Validation: if source contains a date, extract and compare to claim's temporal scope. Null allowed if claim is unsourced. |
[SOURCE_B] | Source document or passage supporting Claim B | Analyst note dated 2024-11-01: 'Revised Q3 estimates show 8% decline after restatement' | Must be a non-empty string. Validation: if source contains a date, extract and compare to claim's temporal scope. Null allowed if claim is unsourced. |
[TEMPORAL_SCOPE] | Explicit time period under examination | Q3 2024 (2024-07-01 to 2024-09-30) | Must be a date range or period label. Parse check: attempt ISO 8601 extraction. If unparseable, flag for human review. Reject if scope is broader than 10 years without explicit justification. |
[DOMAIN] | Subject domain for contradiction resolution rules | financial_reporting | Must match an allowed enum value: financial_reporting, clinical_trial, legal_filing, scientific_publication, news_media, technical_specification, null. If null, apply general contradiction detection rules. |
[RESOLUTION_PREFERENCE] | Instruction for how to handle unresolved contradictions | prefer_most_recent_source | Must match an allowed enum value: prefer_most_recent_source, prefer_highest_authority, flag_for_human_review, present_both_with_confidence, null. If null, default to present_both_with_confidence. |
[OUTPUT_SCHEMA] | Expected structure for the contradiction report | See output contract: contradiction_type, temporal_alignment, resolution_recommendation, confidence_score | Must be a valid JSON Schema object or a reference to a named schema. Validation: parse as JSON and confirm it contains required fields. Reject if schema is malformed. |
Implementation Harness Notes
How to wire the Temporal Contradiction Detection Prompt into an application with validation, retries, and human review.
The Temporal Contradiction Detection Prompt is designed to operate as a post-retrieval analysis step in a fact-checking or evidence conflict resolution pipeline. It should not be called directly on raw user input. Instead, feed it a curated set of temporally-scoped evidence passages that have already passed through relevance and freshness filters. The prompt expects a structured [CLAIM] under investigation and a [SOURCE_SET] containing at least two sources with explicit publication dates or temporal markers. Without these inputs, the model cannot distinguish genuine contradictions from temporal progression.
Wiring the prompt into an application requires a wrapper that performs pre-validation, model invocation, and post-processing. Before calling the model, validate that [SOURCE_SET] contains at least two entries, each with a non-null date field and a unique source_id. If the input fails validation, return a structured error to the caller rather than invoking the model. After receiving the model's response, parse the JSON output and run a schema validator that checks for required fields: contradiction_detected (boolean), contradiction_type (enum: genuine_contradiction, temporal_progression, methodological_difference, no_contradiction), conflicting_sources (array of source_id pairs), resolution_recommendation (string), and confidence_score (float 0-1). If the model output fails schema validation, implement a single retry with the validation error message appended to the prompt as [PREVIOUS_ERROR]. After two consecutive failures, escalate to a human review queue with the original inputs and both failed outputs attached.
Model choice and tool use matter here. This prompt benefits from models with strong reasoning capabilities (GPT-4, Claude 3.5 Sonnet, or equivalent) because temporal contradiction detection requires comparing multiple fact patterns across time. Do not use lightweight or local models for this task unless you have calibrated their performance against a labeled contradiction dataset. The prompt does not require external tools or RAG at runtime—it operates on pre-retrieved evidence. However, you should log every invocation with: claim_id, source_set_hash, model_version, output_contradiction_type, confidence_score, and latency_ms. This logging enables regression testing when the prompt or model changes. For high-stakes domains (financial reporting, legal evidence, clinical claims), always route genuine_contradiction outputs with confidence_score < 0.85 to a human analyst before surfacing results to end users.
Common failure modes to monitor in production: (1) The model conflates temporal progression with contradiction when sources report different figures for different time periods—mitigate by ensuring each source in [SOURCE_SET] has a precise reporting_period field. (2) The model misses contradictions when sources use different units, currencies, or measurement methodologies—add a [NORMALIZATION_NOTES] field to the input schema. (3) Confidence scores drift upward over time as the model becomes overconfident on familiar patterns—run periodic calibration checks against a golden dataset of known temporal conflicts. Build a dashboard that tracks contradiction detection rate, human override rate, and confidence score distribution by contradiction type. If the human override rate exceeds 15%, revisit your input schema, prompt instructions, or model selection.
Common Failure Modes
What breaks first when detecting temporal contradictions and how to guard against it in production.
False Contradictions from Temporal Progression
What to watch: The model flags two sources as contradictory when they actually report the same metric at different points in time (e.g., Q2 revenue vs. Q3 revenue). This produces noisy, low-value alerts that erode user trust. Guardrail: Require the prompt to extract and compare explicit time periods before declaring a contradiction. Add a pre-check step: 'Do these sources refer to the same time period? If not, classify as temporal progression, not contradiction.'
Unit and Definition Mismatch Blindness
What to watch: Sources report different numbers for the same entity because they use different units (millions vs. billions), definitions (GAAP vs. non-GAAP), or geographic scopes. The model treats these as factual contradictions rather than presentation differences. Guardrail: Include a normalization instruction that requires the model to identify and reconcile unit, definition, and scope differences before comparing values. Add a 'reconcilable difference' category to the output schema.
Single-Source Dominance in Multi-Source Comparison
What to watch: When one source is significantly more detailed or authoritative, the model may anchor on it and dismiss legitimate conflicting evidence from other credible sources as errors. This masks real contradictions. Guardrail: Structure the prompt to require pairwise comparison of each source against every other source before synthesizing a conclusion. Add an explicit instruction: 'Evaluate each source independently before comparing. Do not default to the most detailed source.'
Hallucinated Resolution Explanations
What to watch: When the model cannot determine which source is correct, it may fabricate a plausible-sounding resolution (e.g., 'Source A likely includes one-time items') without any evidence to support that explanation. Guardrail: Add a strict constraint: 'If you cannot determine the cause of a discrepancy from the provided evidence alone, mark it as unresolved and do not speculate about the reason. State: Insufficient evidence to resolve.' Include this in the output schema as a required field.
Implicit Date Assumption Drift
What to watch: Sources without clear publication or effective dates are assumed to be current, leading to false contradictions when an old source is compared against a new one. The model fails to flag the missing temporal metadata. Guardrail: Add a pre-processing instruction: 'For each source, extract or flag the absence of a publication date and effective date. If a date is missing, mark the source's temporal relevance as uncertain and do not use it for contradiction detection without explicit human confirmation.'
Over-Classification of Minor Numerical Variance
What to watch: The model flags trivial rounding differences or immaterial numerical variances as contradictions, flooding the output with low-severity findings that obscure genuine conflicts. Guardrail: Introduce a materiality threshold in the prompt: 'Only flag numerical differences exceeding [X]% relative variance as contradictions. Differences below this threshold should be classified as immaterial variance and noted but not escalated.' Make the threshold configurable per domain.
Evaluation Rubric
Use this rubric to evaluate the quality of temporal contradiction reports before shipping. Each criterion includes a pass standard, a failure signal, and a test method that can be automated or run manually against a golden dataset.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Contradiction Detection Recall | All genuine temporal contradictions in the test set are identified with a contradiction_type label | A known contradiction is labeled as 'temporal_progression' or 'consistent' | Run against a golden dataset of 20+ source pairs with known contradiction labels; measure recall >= 0.95 |
Temporal Progression Discrimination | Events that occur in sequence across different dates are correctly classified as 'temporal_progression', not 'contradiction' | A sequential event (e.g., Q2 vs Q3 earnings) is flagged as a contradiction | Test with 10+ temporal progression examples where facts differ but dates explain the difference; false positive rate < 5% |
Source Date Extraction Accuracy | Publication dates and effective dates are extracted correctly for all sources in the test set | A source date is missing, wrong by more than 1 day, or assigned to the wrong source | Parse [SOURCE_DATE] fields from output; compare against ground-truth dates; accuracy >= 0.98 |
Conflict Resolution Recommendation Quality | Resolution recommendations are actionable, specific, and grounded in the evidence comparison | Recommendation is generic (e.g., 'check sources'), contradicts the evidence, or is missing | LLM-as-judge evaluation using a 3-point rubric on a held-out set of 15 contradiction reports; average score >= 2.5 |
Source Comparison Completeness | Every contradiction report includes a side-by-side comparison of the conflicting claims with source attribution | A report omits one source's claim, misattributes a claim, or fails to quote the conflicting text | Schema check: [CONFLICTING_CLAIMS] array must contain >= 2 entries, each with source_id and quoted_text; pass rate = 100% |
Confidence Score Calibration | Confidence scores correlate with actual correctness; high-confidence reports are correct >= 90% of the time | High-confidence (>= 0.9) reports contain false positives or misclassifications | Bucket reports by confidence decile; measure accuracy per bucket; high-confidence bucket accuracy >= 0.90 |
Output Schema Compliance | Every output strictly matches the [OUTPUT_SCHEMA] with all required fields present and correctly typed | A required field is missing, null when not allowed, or has an incorrect type | Validate output against JSON Schema; run on 50+ test cases; schema compliance = 100% |
Edge Case Handling: Missing Dates | When a source lacks a publication date, the report includes a date_missing flag and does not fabricate a date | A fabricated or hallucinated date appears in the output for a source with no date | Test with 10 source pairs where one or both sources have no date; check for date_missing = true and no fabricated dates |
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 pair of contradictory sources. Skip structured output enforcement and manually review the contradiction report. Focus on testing whether the model correctly distinguishes genuine contradictions from temporal progression.
code[SOURCE_A]: "Q3 revenue was $12M" [SOURCE_B]: "Q3 revenue was $14M" [TIME_PERIOD]: Q3 2024
Watch for
- Model conflating temporal progression with contradiction when dates differ
- Missing distinction between factual conflict and reporting lag
- Overly verbose explanations that bury the contradiction finding

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