Inferensys

Prompt

Source Support Scoring Prompt

A practical prompt playbook for using Source Support Scoring Prompt in production AI workflows.
Operations team reviewing AI workflow automation on laptop, workflow builder visible, casual office setup.
PROMPT PLAYBOOK

When to Use This Prompt

Understand the job-to-be-done, ideal user, required context, and when not to use the Source Support Scoring Prompt.

This prompt is designed for evaluation engineers and RAG quality teams who need to move beyond binary 'supported/unsupported' flags and into calibrated, numerical measurement of evidence quality. The core job-to-be-done is assigning a support score to each claim-source pair, measuring how directly a cited passage substantiates a specific statement. This is an offline evaluation tool, not a real-time filtering component. You should use it when building automated evaluation pipelines, conducting inter-annotator agreement studies to calibrate human reviewers against model judgments, or performing regression testing to detect when a change to your retrieval or generation stack silently degrades evidence quality. The ideal user is someone who owns a ground-truth dataset of claim-source pairs and needs repeatable, structured scoring to monitor system health over time.

The prompt requires a specific set of inputs to function reliably. You must provide the claim to be evaluated, the full text of the cited source passage, and a detailed scoring rubric that defines what each numerical score means in terms of evidence strength. Without a clear rubric, the model will default to inconsistent, uncalibrated judgments that cannot be compared across runs. The output is structured JSON containing the numerical score, a concise justification tied to specific rubric criteria, and optional fields for confidence and evidence span references. This structured output is designed to be consumed directly by evaluation scripts, inserted into databases for trend analysis, or used as input to an inter-annotator agreement calculator. Do not use this prompt for end-user-facing answer generation, real-time retrieval filtering where latency is measured in milliseconds, or any workflow where the model's reasoning is shown directly to non-technical users without review.

The primary constraint is that this prompt measures support, not truth. A passage can receive a high support score for a claim that is factually incorrect if the passage genuinely and directly supports it. This prompt does not perform fact-checking against external knowledge; it only evaluates the relationship between the provided claim text and the provided source text. If you need to verify factual accuracy, you must pair this prompt with a separate fact-checking or claims verification workflow. Additionally, this prompt is sensitive to rubric design. A vague rubric like 'score 1-5 for support' will produce noisy, unusable results. Invest time in defining each score level with concrete criteria, such as 'Score 4: The passage explicitly states the claim using substantially similar language' versus 'Score 2: The passage mentions a related concept but requires inference to connect to the claim.' Start by running the prompt against a small, human-annotated calibration set, measure agreement, and iterate on your rubric definitions before scaling to your full dataset.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Source Support Scoring Prompt delivers reliable evidence alignment scores and where it introduces risk. Use these cards to decide if this prompt fits your evaluation pipeline before investing in calibration.

01

Good Fit: RAG Quality Monitoring

Use when: you need automated, claim-level support scoring across thousands of RAG outputs to track grounding quality over time. Guardrail: calibrate the scoring rubric against human-annotated samples and monitor score drift weekly.

02

Bad Fit: Substituting Human Review in Regulated Domains

Avoid when: the support score directly gates compliance decisions, clinical claims, or legal filings without human review. Guardrail: route low-support scores to a human review queue and never auto-reject regulated content based solely on an LLM score.

03

Required Input: Claim-Source Pairs with Full Context

Risk: scoring fails when claims are extracted without surrounding context or when source passages are truncated. Guardrail: always include the full sentence or paragraph for each claim and at least 2-3 surrounding sentences for each source passage.

04

Operational Risk: Rubric Drift Across Evaluators

Risk: different human annotators or model versions apply the support rubric inconsistently, making scores incomparable across batches. Guardrail: run inter-annotator agreement checks every scoring cycle and recalibrate when agreement drops below 0.7 Cohen's kappa.

05

Operational Risk: Over-Confidence on Ambiguous Support

Risk: the model assigns high support scores to claims that are only tangentially related to the source, inflating grounding metrics. Guardrail: include explicit rubric anchors for partial support and require the model to quote the specific evidence span justifying each score.

06

Bad Fit: Real-Time Scoring in Latency-Sensitive Paths

Avoid when: you need support scores in the critical path of a user-facing response under 500ms. Guardrail: run scoring asynchronously in an offline eval pipeline and use the results to improve retrieval and generation, not to block responses.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

Paste this prompt into your evaluation harness to score how directly a cited passage supports a specific claim.

This prompt template is designed to be dropped directly into an evaluation harness for source support scoring. It accepts a claim and a source passage, then returns a numerical support score along with a structured justification. The template uses square-bracket placeholders that you replace with your data before each evaluation run. The rubric is calibrated for inter-annotator agreement, making it suitable for both human review and LLM-as-judge pipelines.

text
You are an evidence evaluation specialist. Your task is to score how directly a cited source passage supports a specific claim.

## INPUT
Claim: [CLAIM_TEXT]
Source Passage: [SOURCE_PASSAGE_TEXT]
Source Metadata: [SOURCE_METADATA]

## SCORING RUBRIC
Score the claim-source pair on a 1-5 scale:
- 5 (Directly Supports): The passage explicitly states the claim or provides direct evidence that proves it.
- 4 (Strongly Implies): The passage does not state the claim verbatim but contains information from which the claim follows logically with minimal inference.
- 3 (Partially Supports): The passage provides some relevant evidence but requires significant inference, or only supports part of the claim.
- 2 (Weakly Related): The passage is on the same topic but does not provide meaningful evidence for or against the claim.
- 1 (No Support / Contradicts): The passage either provides no relevant information or actively contradicts the claim.

## CONSTRAINTS
- Score based ONLY on the provided passage, not external knowledge.
- If the passage is insufficient to evaluate the claim, score 1 and explain why.
- Do not infer information not present in the passage.
- Consider both explicit statements and necessary logical implications.

## OUTPUT_SCHEMA
Return valid JSON with this exact structure:
{
  "score": <integer 1-5>,
  "support_level": "<Directly Supports|Strongly Implies|Partially Supports|Weakly Related|No Support / Contradicts>",
  "rationale": "<2-4 sentence explanation citing specific passage content>",
  "key_evidence": "<direct quote or paraphrase from the passage that most supports this score>",
  "missing_information": "<what the passage would need to contain for a higher score, or null if score is 5>",
  "confidence": <float 0.0-1.0 indicating scorer confidence in this assessment>
}

## EXAMPLES
Example 1:
Claim: "The company reported revenue of $4.2 billion in Q3 2024."
Source Passage: "Acme Corp announced third-quarter revenue of $4.2 billion, up 12% year-over-year, driven by strong cloud services growth."
Output:
{
  "score": 5,
  "support_level": "Directly Supports",
  "rationale": "The passage explicitly states 'third-quarter revenue of $4.2 billion,' which directly matches the claim. No inference is required.",
  "key_evidence": "Acme Corp announced third-quarter revenue of $4.2 billion",
  "missing_information": null,
  "confidence": 0.98
}

Example 2:
Claim: "The company's cloud division is its fastest-growing segment."
Source Passage: "Cloud services revenue grew 12% year-over-year, while hardware revenue grew 3% and consulting declined 2%."
Output:
{
  "score": 4,
  "support_level": "Strongly Implies",
  "rationale": "The passage shows cloud services growing at 12%, which is higher than hardware (3%) and consulting (-2%). While it doesn't explicitly state cloud is the fastest-growing, the comparative growth rates strongly imply this conclusion.",
  "key_evidence": "Cloud services revenue grew 12% year-over-year, while hardware revenue grew 3% and consulting declined 2%",
  "missing_information": "Explicit statement that cloud is the fastest-growing segment",
  "confidence": 0.85
}

Example 3:
Claim: "The CEO announced plans to acquire a competitor."
Source Passage: "In the earnings call, the CEO discussed expanding market share through organic growth and strategic partnerships."
Output:
{
  "score": 1,
  "support_level": "No Support / Contradicts",
  "rationale": "The passage discusses organic growth and partnerships, which are alternatives to acquisition. It does not mention any acquisition plans and the emphasis on organic growth may weakly contradict the claim.",
  "key_evidence": "expanding market share through organic growth and strategic partnerships",
  "missing_information": "Any mention of acquisition plans, target companies, or M&A strategy",
  "confidence": 0.92
}

To adapt this template, replace the placeholders with your evaluation data. [CLAIM_TEXT] should contain a single factual claim extracted from a model output. [SOURCE_PASSAGE_TEXT] should contain the full text of the cited passage. [SOURCE_METADATA] is optional but useful for tracking source authority, date, and document context. For batch evaluation, wrap this prompt in a loop that processes claim-source pairs and aggregates scores. If you are using this for inter-annotator agreement, run the same pairs through multiple evaluators and compute Cohen's kappa or Krippendorff's alpha on the score distribution.

Before deploying this prompt in production, validate that the output JSON parses correctly and that scores align with human-annotated ground truth on at least 50 claim-source pairs. Watch for common failure modes: the model may score based on its own knowledge rather than the provided passage, or it may inflate scores for partially relevant passages. Add a post-processing check that rejects outputs where the rationale references information not present in the source passage. For high-stakes domains such as legal or medical verification, always include human review of low-confidence scores and any score of 3 or below.

IMPLEMENTATION TABLE

Prompt Variables

Required inputs for the Source Support Scoring Prompt. Each placeholder must be populated before the prompt is sent. Missing or malformed inputs are the most common cause of scoring failures in production.

PlaceholderPurposeExampleValidation Notes

[CLAIM]

The single factual statement to evaluate for source support

The patient's HbA1c decreased from 8.2% to 6.9% over 12 weeks

Must be a single atomic claim. Reject if input contains multiple claims or is empty. Length check: 10-500 characters.

[SOURCE_TEXT]

The full text of the cited passage that allegedly supports the claim

At week 12, mean HbA1c was 6.9% (SD 0.4) compared to 8.2% (SD 0.6) at baseline, p<0.001

Must be non-empty. Reject if under 20 characters. Truncate at model context limit minus prompt overhead. Strip non-printable characters.

[SOURCE_ID]

Unique identifier for the source document or passage

pmid_3928174_para_3

Must be a non-empty string. Used for traceability in output. Validate against source registry if available. Format: alphanumeric with underscores and hyphens only.

[RUBRIC_LEVEL]

The scoring rubric detail level to apply

detailed

Must be one of: basic, standard, detailed. Controls output verbosity and number of scoring dimensions. Default to standard if not specified.

[SCORE_THRESHOLD]

Minimum support score required to consider a claim as supported

3

Must be an integer from 1 to 5. Used for binary pass/fail decisions downstream. Default to 3 if not specified. Reject values outside 1-5 range.

[DOMAIN]

Optional domain context for calibrating support expectations

clinical_trial

Must be from approved domain list if provided: clinical_trial, legal_document, financial_report, technical_doc, general. Null allowed. Affects rubric interpretation of partial support.

[PREVIOUS_SCORES]

Optional array of prior scores for inter-annotator calibration

[{"annotator":"A","score":4,"rationale":"Direct match"}]

Must be valid JSON array or null. Each object requires annotator, score, and rationale fields. Used for agreement checks. Reject if malformed JSON.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Source Support Scoring Prompt into an evaluation pipeline with validation, calibration, and inter-annotator agreement checks.

The Source Support Scoring Prompt is not a user-facing prompt; it is an evaluation instrument designed to run inside an automated quality monitoring pipeline. Its primary job is to assign a numerical support score to each claim-source pair, measuring how directly a cited passage supports a specific statement. In production, this prompt typically runs after a RAG system has generated an answer with citations, and its output feeds into a grounding verification dashboard, a regression test suite, or a pre-release quality gate. The harness must treat each scoring call as a measurement that requires validation, not as a conversational completion.

Wire the prompt into your evaluation pipeline by wrapping it in a function that accepts a list of claim-source pairs and returns a structured scoring record. Each call should include: the claim text, the source passage text, the scoring rubric (with anchor definitions for each score level), and the expected output schema. Implement a JSON schema validator on the response to enforce the required fields: claim_id, source_id, support_score, rationale, and key_evidence_span. If the model returns a score outside the defined range or omits the rationale, reject the response and retry with a stricter schema reminder. Log every raw response, validation failure, and retry attempt for later failure mode analysis. For high-stakes domains such as healthcare or legal review, route all scores below a configurable threshold to a human review queue before they are accepted into the evaluation dataset.

Calibration is the hardest part of this harness. Before trusting automated scores, run the prompt against a golden dataset of 50-100 claim-source pairs that have been independently scored by at least two human annotators. Calculate Cohen's kappa or Krippendorff's alpha between the model's scores and the human consensus. If agreement falls below 0.7, adjust the rubric anchors, add few-shot examples of borderline cases, or tighten the definition of each score level. Recalibrate after any prompt change, model upgrade, or retrieval pipeline modification. Store calibration results alongside prompt version hashes so you can detect drift over time. The harness should also compute inter-annotator agreement across multiple model runs with different temperature settings to quantify score stability.

Integrate the scoring output into your broader evaluation system by aggregating scores per claim, per source, and per answer. A single unsupported claim in an otherwise well-grounded answer is a red flag that should trigger a deeper faithfulness check. Use the key_evidence_span field to power a citation precision metric: if the model identifies a supporting span but that span does not actually contain the claim's factual content, the citation is misleading even if the score is high. Build a dashboard that tracks support score distributions over time, broken down by retrieval strategy, document source, and model version. When scores degrade, the harness should alert the team and surface the lowest-scoring claim-source pairs for manual review. Avoid the temptation to treat the support score as a single pass/fail gate; it is a diagnostic signal that works best when combined with hallucination detection, citation verification, and human spot-checking in a layered evaluation architecture.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the required structure, types, and validation rules for the Source Support Scoring Prompt response. Use this contract to parse, validate, and integrate the model's output into downstream evaluation pipelines.

Field or ElementType or FormatRequiredValidation Rule

claim_id

string

Must match a claim_id from the input [CLAIMS] array. Fail if not found in input set.

source_id

string

Must match a source_id from the input [SOURCES] array. Fail if not found in input set.

support_score

integer

Must be an integer between 1 and 5 inclusive. Fail if out of range or non-integer.

score_rationale

string

Must be a non-empty string (min 10 chars). Fail if null, empty, or whitespace-only.

directly_supported_quote

string

If provided, must be a verbatim substring of the source text. Fail if quote not found in source.

partial_support_flags

array of strings

If provided, each element must be from the allowed enum: ['missing_detail', 'tense_mismatch', 'entity_mismatch', 'implied_only', 'contradicts_other_source']. Fail on unknown values.

confidence

float

Must be a float between 0.0 and 1.0. Fail if out of range. Warn if confidence > 0.95 and score < 5.

inter_annotator_note

string

If provided, must not contain PII or evaluator names. Fail if regex matches email, phone, or name patterns.

PRACTICAL GUARDRAILS

Common Failure Modes

Source support scoring fails in predictable ways. These are the most common failure modes, why they happen, and how to guard against them before they reach production.

01

Score Inflation for Vague Claims

What to watch: The model assigns high support scores to vague or generic claims that any passage could loosely match. A claim like 'the system processes data efficiently' gets a 4/5 from a passage about unrelated throughput because the model conflates topical overlap with actual support. Guardrail: Include negative examples in the rubric showing vague claims that should score low. Require the model to quote the specific evidence span before scoring, and flag scores above 2 when no direct quote exists.

02

Rubric Drift Across Long Batches

What to watch: When scoring hundreds of claim-source pairs, the model's interpretation of the rubric shifts. Early pairs get strict scoring while later pairs become lenient, or vice versa. This destroys inter-annotator agreement and makes batch scores unreliable. Guardrail: Insert calibration pairs with known ground-truth scores every 20-30 items. Monitor score distribution drift. If calibration scores deviate by more than 1 point, pause and reset with a fresh rubric prompt.

03

Partial Support Scored as Full Support

What to watch: A source partially supports a multi-part claim but the model assigns a high score as if the entire claim is supported. For example, a passage confirms the 'when' but not the 'why' of a claim, yet receives a 4/5. Guardrail: Require claim decomposition before scoring. Break compound claims into atomic sub-claims and score each independently. The final score should be the minimum across sub-claims, not an average.

04

Source-Answer Contradiction Missed

What to watch: The model assigns a moderate or high support score even when the source directly contradicts the claim, because it focuses on topical similarity rather than logical consistency. A source saying 'revenue decreased' gets scored as supporting a claim that 'revenue increased' because both discuss revenue. Guardrail: Add an explicit contradiction check step before scoring. If the source negates or conflicts with the claim, the score must be 0 regardless of topical overlap. Use a separate contradiction detection prompt as a pre-filter.

05

Implicit Inference Scored as Explicit Support

What to watch: The model treats reasonable inferences as direct support. A source says 'the team worked overtime' and the model scores it as supporting 'the project was behind schedule' because the inference is plausible, even though the source never states it. Guardrail: Distinguish 'explicit support' from 'plausible inference' in the rubric. Require the model to mark whether support is direct or inferential. Downstream systems should treat inferential support as lower confidence and flag it for human review.

06

Irrelevant Source Authority Overweighting

What to watch: The model inflates support scores because the source is authoritative or high-quality, even when the specific passage doesn't support the claim. A peer-reviewed paper gets a high support score for a claim it doesn't address, simply because the venue is credible. Guardrail: Separate authority assessment from support scoring. Authority should be a separate dimension, not a multiplier on support. The support score must reflect content alignment only. Use a two-pass approach: score support first, then assess authority independently.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to evaluate the quality of source support scores produced by the prompt. Each criterion defines a pass standard, a failure signal, and a test method for automated or human review.

CriterionPass StandardFailure SignalTest Method

Score Calibration

Support scores align with a pre-calibrated human-annotated reference set within a ±1 tolerance on a 1-5 scale for 90% of pairs.

Systematic over-scoring (leniency bias) or under-scoring (strictness bias) relative to the reference set.

Calculate Mean Absolute Error (MAE) against a golden dataset of 50+ claim-source pairs with expert annotations.

Direct Quotation Support

Score of 5 is assigned only when the source passage contains a verbatim or near-verbatim quote that directly states the claim.

Score of 5 assigned to a passage that requires inference or paraphrasing to reach the claim.

Sample 20 pairs scored 5; manually verify each source contains a direct quote matching the claim.

Contradiction Detection

Score of 1 is assigned when the source passage explicitly contradicts the claim.

Contradictory source receives a score of 2 or higher, indicating failure to detect negation or factual conflict.

Curate 15 claim-source pairs with known contradictions; verify all receive a score of 1.

Irrelevance Handling

Score of 1 is assigned when the source passage shares no topical overlap with the claim.

Topically unrelated source receives a score of 2 or higher due to superficial keyword matching.

Curate 15 pairs with zero topical overlap; confirm all receive a score of 1.

Partial Support Granularity

Scores of 2, 3, or 4 are assigned with a written justification that correctly identifies which part of the claim is supported and which is not.

Partial support scores lack justification or misidentify the supported vs. unsupported claim components.

Review 30 partial-support pairs (scores 2-4); check that justification text correctly maps evidence to claim sub-parts.

Inter-Annotator Agreement

Pairwise Cohen's Kappa between two independent model runs (or model vs. human) is ≥ 0.7 on the 1-5 scale.

Kappa below 0.6 indicates unacceptable scoring inconsistency across runs or raters.

Run the prompt twice with temperature=0 on the same dataset; compute weighted Cohen's Kappa between the two score sets.

Schema Compliance

Output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present and no extra fields.

Missing required fields, malformed JSON, or hallucinated field names.

Validate output with a JSON Schema validator against the defined [OUTPUT_SCHEMA] for every response.

Refusal on Missing Source

When [SOURCE_TEXT] is empty or null, the output contains a null score and a refusal reason instead of guessing.

Model assigns a score or fabricates source content when [SOURCE_TEXT] is missing.

Send 10 requests with empty or null [SOURCE_TEXT]; verify all return null score and a valid refusal reason.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a single model and a small hand-labeled dataset. Start with a 1–5 Likert scale instead of the full 0–100 range. Skip inter-annotator agreement checks initially. Focus on getting the rubric language right before adding calibration.

Prompt modification

Replace the 0–100 score range with a 1–5 ordinal scale. Remove the calibration examples section. Simplify the output schema to {"claim_id": "...", "source_id": "...", "support_score": 1-5, "rationale": "..."}.

Watch for

  • Score inflation on short or vague claims
  • Model conflating relevance with support
  • No baseline to detect drift when you move to production
Prasad Kumkar

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.