This prompt is for evaluation platform teams who need to measure how consistently their fleet of LLM judges scores the same outputs. The job-to-be-done is calculating agreement coefficients across multiple judges, identifying which evaluation dimensions produce the most disagreement, and surfacing outlier judges whose scoring patterns diverge from the group. The ideal user is an MLOps engineer, evaluation infrastructure lead, or AI quality engineer responsible for maintaining a trustworthy automated evaluation pipeline. Required context includes a dataset of scored items where each item has been evaluated by at least two LLM judges on the same rubric dimensions, along with the raw scores and any judge-provided justifications.
Prompt
Inter-Rater Reliability Calculation Prompt for LLM Judges

When to Use This Prompt
Define the job, reader, and constraints for the inter-rater reliability calculation prompt.
Do not use this prompt when you only have a single judge, when you need real-time scoring latency guarantees, or when the evaluation dimensions are purely objective and deterministic (e.g., exact string match, regex validation). This prompt is designed for subjective quality dimensions where inter-rater agreement is a meaningful signal. It is also not a replacement for human calibration studies—use the LLM Judge Calibration Against Human Ratings Prompt Template for that workflow. The prompt assumes your judges are already producing structured scores; it does not design the rubric or fix broken judge instructions. For misalignment diagnosis, pair this with the Score Discrepancy Root Cause Analysis Prompt.
Before running this prompt, ensure your input data includes judge identifiers, item identifiers, per-dimension scores, and optional justifications. The prompt produces agreement coefficients (such as Cohen's kappa, Fleiss' kappa, or Krippendorff's alpha depending on your judge count), a disagreement breakdown by score range and dimension, and pairwise judge similarity metrics. Acceptable agreement thresholds should be configured per dimension based on your downstream decision impact—a pass/fail gate for production releases demands higher agreement than an exploratory quality dashboard. Escalation criteria for low-agreement dimensions should route to human review or trigger the Judge Instruction Rewriting Prompt After Misalignment Detection. Always log the raw agreement outputs and threshold decisions for audit trails; this workflow is high-risk when automated scores gate production deployments.
Use Case Fit
Where this prompt works and where it does not. Use these cards to decide if inter-rater reliability calculation is the right tool for your evaluation pipeline.
Good Fit: Multi-Judge Evaluation Fleets
Use when: you run 3+ LLM judges scoring the same outputs and need to measure whether they agree. Why: this prompt computes Cohen's Kappa, Fleiss' Kappa, and pairwise agreement matrices that single-judge pipelines don't need. Guardrail: run this before trusting any aggregate score—low agreement means your scores aren't reproducible.
Bad Fit: Single-Judge or Human-Only Evaluation
Avoid when: you have only one LLM judge or are comparing a single judge against human annotations. Why: inter-rater reliability requires multiple raters scoring the same items. For single-judge calibration, use the Judge Calibration Against Human Ratings prompt instead. Guardrail: check your pipeline architecture before reaching for this prompt—it answers a specific multi-rater question.
Required Inputs: Score Matrix and Judge Metadata
What you need: a complete score matrix with [JUDGE_ID], [ITEM_ID], [SCORE], and optional [DIMENSION] fields for every rating. Missing data breaks agreement calculations. Guardrail: validate that every item has ratings from every judge before running—partial matrices produce misleading agreement statistics. Add a pre-check step that rejects incomplete data.
Operational Risk: Small Sample Instability
Risk: agreement coefficients become unreliable with fewer than 30 rated items, producing false confidence or false alarms. Guardrail: configure a minimum sample size threshold in your harness. If the item count is below 30, flag the result as 'insufficient data' and escalate to human review rather than trusting the coefficient.
Operational Risk: Score Range Collapse
Risk: when all judges assign similar scores (e.g., everything is 4/5), agreement appears artificially high but the metric is meaningless—there's no variance to measure. Guardrail: compute score distribution variance before calculating agreement. If score standard deviation is below a configured threshold, flag 'low variance—agreement uninformative' and request more diverse test items.
Escalation Trigger: Low-Agreement Dimensions
Risk: overall agreement can mask per-dimension failures where judges systematically disagree on specific criteria like 'tone' or 'accuracy.' Guardrail: configure per-dimension agreement thresholds. When a dimension falls below the acceptable floor (e.g., Kappa < 0.4), auto-escalate to the Judge Instruction Rewriting prompt and flag for rubric clarification before the next evaluation cycle.
Copy-Ready Prompt Template
A reusable prompt template for calculating inter-rater reliability metrics across a fleet of LLM judges.
This template is designed to be dropped into an evaluation pipeline that already has multiple LLM judge outputs for the same set of items. It expects structured input containing per-judge scores, item metadata, and the evaluation rubric that was used. The prompt instructs the model to act as a measurement analyst, not as a judge itself—its job is to compute agreement statistics, identify disagreement patterns, and flag dimensions or judge pairs that fall below acceptable reliability thresholds. Use this when you need a programmatic reliability report before trusting aggregated judge scores in production.
codeYou are a measurement analyst calculating inter-rater reliability for a fleet of LLM judges. Your task is to produce a structured reliability report from raw judge scores. Do not re-score any items. Do not express opinions about the rubric quality. Only compute and report agreement metrics. ## INPUT DATA ### Evaluation Rubric [RUBRIC_DEFINITION] ### Items and Judge Scores [ITEMS_WITH_SCORES] Each item includes: - item_id: unique identifier - scores: object mapping judge_id to score (numeric or categorical per rubric) - [OPTIONAL_ITEM_METADATA] ### Configuration - Agreement coefficient: [COEFFICIENT_TYPE] (e.g., "kappa", "weighted_kappa", "icc", "krippendorff_alpha", "percent_agreement") - Acceptable threshold: [AGREEMENT_THRESHOLD] - Disagreement severity levels: [SEVERITY_LEVELS] - Minimum items per judge: [MIN_ITEMS] ## OUTPUT SCHEMA Return a JSON object with this exact structure: { "report_metadata": { "coefficient_type": "string", "acceptable_threshold": number, "total_items": number, "total_judges": number, "score_type": "numeric | categorical | ordinal", "computation_timestamp": "ISO 8601" }, "overall_agreement": { "coefficient_value": number, "confidence_interval_95": [number, number], "interpretation": "poor | fair | moderate | substantial | almost_perfect", "meets_threshold": boolean }, "per_dimension_agreement": [ { "dimension": "string", "coefficient_value": number, "meets_threshold": boolean, "item_count": number } ], "pairwise_judge_similarity": [ { "judge_a": "string", "judge_b": "string", "coefficient_value": number, "shared_items": number, "interpretation": "string" } ], "disagreement_breakdown": [ { "score_range": "string", "disagreement_rate": number, "item_count": number, "example_item_ids": ["string"] } ], "low_agreement_dimensions": [ { "dimension": "string", "coefficient_value": number, "gap_to_threshold": number, "contributing_judge_pairs": ["string"] } ], "outlier_judges": [ { "judge_id": "string", "mean_pairwise_agreement": number, "deviation_from_fleet_mean": number, "severity_tendency": "harsh | lenient | inconsistent", "affected_dimensions": ["string"] } ], "escalation_required": boolean, "escalation_items": [ { "trigger": "string", "severity": "warning | critical", "detail": "string", "recommended_action": "string" } ] } ## COMPUTATION RULES 1. Compute the specified agreement coefficient across all judges for all items. 2. For per-dimension agreement, group scores by dimension and compute separately. If a judge did not score a dimension, exclude that judge from that dimension's calculation. 3. For pairwise similarity, compute the coefficient for every judge pair that shares at least [MIN_ITEMS] items. 4. Disagreement breakdown: group items by their score range (e.g., "1-2", "3-4", "5") and compute the proportion of items where judges disagreed by more than 1 point (or 1 category). 5. Flag any dimension where the coefficient falls below [AGREEMENT_THRESHOLD] as low_agreement. 6. Identify outlier judges as those whose mean pairwise agreement with all other judges falls more than 2 standard deviations below the fleet mean. 7. Set escalation_required to true if any dimension fails the threshold OR any judge is flagged as an outlier. 8. For each escalation trigger, provide a severity level and a concrete recommended action (e.g., "review judge instructions for dimension X", "recalibrate judge Y against human ratings", "investigate items in score range Z for rubric ambiguity"). ## CONSTRAINTS - Do not fabricate item_ids or scores. Use only the data provided. - If fewer than 3 judges or fewer than [MIN_ITEMS] items are provided, set overall_agreement.coefficient_value to null and include an escalation item explaining insufficient data. - If the score type is categorical and the coefficient requires numeric input, use one-hot encoding and note this in report_metadata. - Round all coefficient values to 4 decimal places. - If a judge has missing scores for some items, handle pairwise deletion (exclude only the missing pair, not the entire judge). ## EXAMPLES [FEW_SHOT_EXAMPLES]
Adapt this template by replacing each square-bracket placeholder with values from your evaluation pipeline. [RUBRIC_DEFINITION] should contain the exact scoring dimensions, scale anchors, and criteria that judges used—this context helps the model interpret score ranges correctly. [ITEMS_WITH_SCORES] is typically a JSON array generated by your judge orchestration layer; ensure each item has a stable item_id and that judge identifiers are consistent across items. [COEFFICIENT_TYPE] must match your score type: use weighted kappa or ICC for ordinal/numeric scales, Fleiss' kappa for categorical, Krippendorff's alpha for incomplete designs. Set [AGREEMENT_THRESHOLD] based on your use case risk tolerance—0.61 for moderate agreement is a common starting point, but raise it to 0.81 for high-stakes evaluation dimensions. [FEW_SHOT_EXAMPLES] should include 1-2 worked examples showing correct coefficient computation and escalation logic for your specific rubric structure.
Before wiring this into production, validate the output against a known statistical library (e.g., irr in R, statsmodels in Python, or pingouin) on a small test batch. The LLM is computing approximations—not running a statistical package—so discrepancies above 0.05 on any coefficient warrant human review or switching to a code-based computation step. For high-stakes evaluation pipelines where judge reliability directly gates model releases, use this prompt as a diagnostic layer that flags problems, then confirm findings with deterministic statistical code before taking action.
Prompt Variables
Required inputs for the inter-rater reliability calculation prompt. Each variable must be populated before the prompt is assembled. Missing or malformed inputs are the most common cause of invalid agreement coefficients.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[JUDGE_SCORES] | Matrix of scores where rows are items and columns are judges | {"item_1": {"judge_a": 4, "judge_b": 3, "judge_c": 4}, "item_2": {"judge_a": 2, "judge_b": 2, "judge_c": 1}} | Must be valid JSON with at least 2 judges and 5 items. All scores must be numeric and on the same scale. Null values allowed for missing ratings but must be explicitly null, not empty string. |
[SCORE_SCALE] | The numeric range judges used for scoring | {"min": 1, "max": 5, "type": "ordinal"} | Type must be one of: ordinal, interval, ratio. Min and max must be integers. If type is ordinal, Cohen's kappa variants are preferred over ICC. |
[COEFFICIENT_TYPE] | Which agreement coefficient to calculate | fleiss_kappa | Must be one of: fleiss_kappa, cohens_kappa_pairwise, icc_two_way, krippendorff_alpha, kendall_w, percent_agreement. Selection must match score scale type and number of judges. |
[JUDGE_METADATA] | Per-judge context for disagreement analysis | {"judge_a": {"model": "gpt-4o", "temperature": 0}, "judge_b": {"model": "claude-3.5-sonnet", "temperature": 0}} | Optional but recommended. Must be valid JSON with judge IDs matching keys in [JUDGE_SCORES]. Used for severity analysis and outlier detection. |
[THRESHOLD_CONFIG] | Acceptable agreement thresholds for pass/fail decisions | {"excellent": 0.81, "good": 0.61, "acceptable": 0.41, "unacceptable_below": 0.41} | All thresholds must be floats between 0.0 and 1.0. excellent > good > acceptable > unacceptable_below must hold. Used to classify agreement strength in output. |
[DISAGREEMENT_BREAKDOWN] | Whether to produce per-item and per-score-range disagreement analysis | Must be boolean. When true, output includes item-level disagreement counts and score-range heatmaps. Increases token usage significantly for large matrices. | |
[PAIRWISE_DETAIL] | Whether to compute pairwise judge similarity metrics | Must be boolean. When true, output includes a pairwise agreement matrix and per-judge-pair coefficient. Requires at least 3 judges to be meaningful. Set false for 2-judge scenarios. |
Implementation Harness Notes
How to wire the inter-rater reliability prompt into an evaluation pipeline with validation, retries, and escalation logic.
This prompt is designed as a batch processing step within an LLM evaluation platform, not a one-off chat interaction. It expects a structured payload of judge scores and produces a structured reliability report. The implementation harness must validate both the input payload before calling the model and the output JSON after receiving it. Because the prompt performs statistical calculations (agreement coefficients, pairwise similarity), the harness should treat any malformed output or missing required field as a hard failure that triggers a retry or escalation—never a silent fallback to a default value.
Wire the prompt into a pipeline stage that runs after all judges have scored a batch of items. The input assembler must collect per-item scores from each judge, validate that all judges scored all items (no missing data), and format the [JUDGE_SCORES] array. Before calling the model, run a structural pre-check: confirm the number of judges is at least 2, the number of items is at least 5 for meaningful agreement statistics, and all scores fall within the declared [SCORE_RANGE]. If any pre-check fails, abort and return a clear error to the pipeline orchestrator rather than sending bad data to the model. After receiving the model response, validate the output JSON against the expected schema: required fields include agreement_coefficient, pairwise_similarity_matrix, disagreement_breakdown, and low_agreement_dimensions. If validation fails, retry once with the same input and a stronger format constraint appended to the prompt. If the retry also fails, log the raw output and escalate to a human reviewer with the failed validation details.
For model choice, prefer a model with strong JSON-following behavior and sufficient context window to hold the full score matrix. If the score matrix is large (many judges × many items), consider splitting by evaluation dimension and running the prompt once per dimension, then aggregating results in application code. Log every invocation: input hash, model version, output schema validation status, agreement coefficient, and any retry events. This log becomes audit evidence for judge fleet health over time. Set an alert threshold on the agreement coefficient—if it drops below your organization's minimum (commonly 0.7 for Cohen's kappa or 0.8 for percent agreement, depending on domain risk), trigger a review of judge instructions and calibration data. Do not use this prompt's output to automatically override individual judge scores; it is a monitoring and diagnosis tool, not a correction mechanism.
Expected Output Contract
Fields, types, and validation rules for the inter-rater reliability calculation output. Use this contract to parse and validate the LLM judge's response before ingesting results into dashboards or alerting systems.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
agreement_coefficient | number (0.0–1.0) | Must be a float between 0 and 1 inclusive. Reject if negative or >1. Round to 4 decimal places for comparison. | |
coefficient_type | string (enum) | Must match one of: 'cohens_kappa', 'fleiss_kappa', 'krippendorff_alpha', 'icc', 'percent_agreement'. Case-sensitive. | |
pairwise_agreement_matrix | array of objects | Each object must contain 'judge_a' (string), 'judge_b' (string), 'agreement_score' (number 0.0–1.0), and 'comparison_count' (integer >=1). Matrix must be symmetric. | |
disagreement_breakdown | array of objects | Each object must contain 'score_range' (string like '0-2'), 'disagreement_rate' (number 0.0–1.0), and 'sample_count' (integer >=0). Ranges must be contiguous and non-overlapping. | |
low_agreement_dimensions | array of strings | Each string must match a dimension name from the input [EVALUATION_DIMENSIONS] list. Empty array is valid if no dimensions fall below threshold. | |
escalation_required | boolean | Must be true if any dimension's agreement falls below [ESCALATION_THRESHOLD] or if overall coefficient < [MINIMUM_ACCEPTABLE_AGREEMENT]. Otherwise false. | |
judge_count | integer | Must equal the number of unique judges in the input [JUDGE_SCORES] array. Reject if mismatch detected. | |
calculation_notes | string or null | If present, must be a non-empty string explaining edge cases, excluded samples, or methodological choices. Null allowed when no notes needed. |
Common Failure Modes
Inter-rater reliability prompts fail in predictable ways. These cards cover the most common failure modes when calculating agreement between LLM judges, why they happen, and how to guard against them before scores reach a dashboard.
Agreement Inflation from Restricted Range
What to watch: When all judges assign scores in a narrow band (e.g., 3-4 on a 1-5 scale), agreement coefficients like Cohen's kappa or ICC can appear high while masking real disagreements. This happens when the evaluation task is too easy or the rubric lacks discrimination at the tails. Guardrail: Pre-check score distribution variance before calculating agreement. If the standard deviation across judges is below a configured threshold, flag the batch as 'low-discrimination' and require rubric tightening or harder calibration examples before trusting the reliability metric.
Pairwise Agreement Masking Systematic Bias
What to watch: High pairwise agreement percentages can hide systematic bias where all judges consistently over-score or under-score relative to human ground truth. Two judges agreeing at '4' when the reference is '2' produces perfect reliability but zero validity. Guardrail: Always pair inter-rater reliability calculation with a calibration check against human-verified reference labels. If agreement is high but calibration error exceeds threshold, flag the dimension for judge instruction review rather than accepting the reliability score.
Sample Size Instability for Rare Categories
What to watch: Agreement coefficients become unstable when score categories have fewer than 5-10 examples. A single disagreement on a rare '1' or '5' rating can swing kappa from 0.8 to 0.4, producing misleading reliability reports. Guardrail: Include a minimum-sample-per-category check before calculating agreement. If any score bucket falls below the configured minimum, suppress the coefficient for that dimension and return a 'low-confidence' flag with the sample count. Require stratified sampling in calibration set construction to prevent this.
Judge Drift Between Calculation Windows
What to watch: Reliability looks stable within a single calculation window but degrades across windows as individual judges drift in different directions. A prompt that reports 'kappa = 0.75' this week and 'kappa = 0.74' next week may hide one judge shifting +0.5 and another shifting -0.5 while aggregate agreement stays flat. Guardrail: Track per-judge agreement trends across time windows, not just fleet-level aggregates. If any judge's pairwise agreement with peers drops by more than a configured delta between windows, trigger a judge-specific drift alert before the fleet metric moves.
Disagreement Concentration in Specific Score Boundaries
What to watch: Overall agreement looks acceptable, but nearly all disagreements cluster at a critical decision boundary—such as pass/fail at score 3 vs 4. A kappa of 0.7 with 80% of disagreements at the pass/fail cutoff is far more operationally dangerous than evenly distributed disagreements. Guardrail: Include a boundary-proximity breakdown in the reliability output. Calculate agreement specifically for adjacent score pairs that cross decision thresholds. If boundary-disagreement rate exceeds the overall disagreement rate by a configured factor, escalate for boundary recalibration before trusting pass/fail decisions.
Prompt Sensitivity Producing Unstable Agreement
What to watch: Small wording changes in the reliability calculation prompt—such as how 'agreement' is defined or what constitutes a 'disagreement'—produce different coefficients from the same raw scores. Teams inadvertently compare kappa values calculated with different operational definitions. Guardrail: Version-lock the agreement definition in the prompt template and include the definition hash in the output metadata. Before comparing reliability scores across runs, validate that the same calculation definition was used. If definitions differ, require explicit acknowledgement before comparison.
Evaluation Rubric
Criteria for testing whether the inter-rater reliability calculation prompt produces trustworthy agreement metrics before shipping to production evaluation pipelines.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Coefficient calculation correctness | Fleiss' kappa or Krippendorff's alpha matches manual calculation within 0.01 tolerance on a 3-judge, 5-item test set | Computed coefficient deviates from ground-truth calculation by more than 0.02 | Run prompt against a pre-computed test set with known agreement values; compare output coefficient to reference implementation |
Disagreement breakdown completeness | Output includes per-score-range disagreement counts that sum to total pairwise comparisons across all judges | Missing score ranges, counts that don't sum to expected total, or ranges present with zero items when disagreements exist | Validate that sum of all disagreement bucket counts equals total pairwise comparisons; check that every score range present in input appears in breakdown |
Pairwise judge similarity matrix validity | Matrix is symmetric, diagonal values equal 1.0, and all off-diagonal values fall in [0.0, 1.0] | Asymmetric matrix, diagonal not equal to 1.0, values outside valid range, or missing judge pairs | Parse output matrix; assert symmetry with tolerance 0.001; assert diagonal equals 1.0; assert all values between 0.0 and 1.0 inclusive |
Low-agreement dimension flagging | Any dimension with agreement below [AGREEMENT_THRESHOLD] is flagged with dimension name, score, and recommended action | Dimension below threshold present in input but absent from flags; flag present for dimension above threshold | Inject test case with one dimension at 0.3 agreement and one at 0.8; verify only the 0.3 dimension appears in escalation output |
Escalation criteria application | Output includes escalation recommendation when overall agreement falls below [CRITICAL_THRESHOLD] and omits it when above | Escalation recommended when agreement is above critical threshold; no escalation when agreement is critically low | Run two test cases: one with overall kappa at 0.4, one at 0.85; verify escalation present only in the 0.4 case |
Output schema conformance | All required fields present with correct types: coefficient (float), breakdown (array), similarity_matrix (array of arrays), flags (array), escalation (string or null) | Missing required field; field has wrong type; null provided for non-nullable field | Validate output against JSON schema; assert all required fields present; assert type correctness per field |
Judge count handling | Prompt handles 2 to [MAX_JUDGES] judges without error and produces valid agreement metrics for all valid judge counts | Error or invalid coefficient for edge case judge counts (2 judges, [MAX_JUDGES] judges); output shape changes with judge count | Run prompt with 2 judges, 5 judges, and [MAX_JUDGES] judges; verify output schema consistent and coefficient valid for each |
Missing data handling | Prompt produces partial results with explicit null markers and a warning when judge scores are missing for some items | Silent failure, hallucinated scores, or crash when input contains missing judge-item pairs | Inject input where one judge has missing score for one item; verify output includes null handling note and does not fabricate scores |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

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

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a single judge pair. Use a small sample of 20-30 scored items with known human ratings. Skip formal agreement coefficients initially—just compute raw agreement percentage and a confusion matrix. Replace [JUDGE_A_SCORES] and [JUDGE_B_SCORES] with inline JSON arrays rather than file references. Drop the escalation criteria section and focus on getting the output format stable.
Prompt modification
Remove the disagreement_breakdown and pairwise_similarity_matrix fields from [OUTPUT_SCHEMA]. Keep only agreement_coefficient, percent_agreement, and items_with_disagreement. Add a note: If you cannot determine the appropriate coefficient, default to Cohen's kappa for binary scales and weighted kappa for ordinal scales.
Watch for
- Model confusing agreement types (use Cohen's kappa for 2 raters, not Fleiss' kappa)
- Missing handling for tied scores in ordinal scales
- Overconfident threshold recommendations without statistical context
- JSON output that nests score arrays inconsistently

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