This prompt is for evaluation infrastructure teams who need to determine whether scores from different LLM judges—such as GPT-4, Claude, Gemini, or open-weight models—are interchangeable. The primary job-to-be-done is producing a statistical agreement analysis that answers one question: 'If I swap Judge A for Judge B, will my evaluation results mean the same thing?' Use this prompt when you are migrating between judge models, running a multi-model evaluation fleet, or auditing whether your judge ensemble produces consistent results. The prompt assumes you have already collected raw scores from each judge on a shared set of evaluation items. It does not help you design the scoring rubric, calibrate a single judge, or evaluate the underlying task outputs directly; those belong to separate calibration and scoring playbooks.
Prompt
Cross-Model Judge Agreement Comparison Prompt Template

When to Use This Prompt
Determine whether scores from different LLM judges are interchangeable before migrating, expanding, or auditing your evaluation fleet.
The ideal user is an AI engineer or evaluation lead who already has a score matrix—rows of evaluation items, columns of judges, cells containing numeric or categorical scores—and needs to quantify agreement before making a production change. The prompt requires you to supply the raw score data, judge identifiers, score scale metadata (e.g., 1-5 Likert, binary pass/fail, categorical labels), and any known judge characteristics such as model version or temperature settings. The output is not a single number but a structured agreement report containing a pairwise agreement matrix, model-specific bias profiles, and a migration risk assessment that flags which judge pairs are safe to swap and which require further calibration. This is a diagnostic tool, not a decision automator; the migration risk assessment should inform human judgment, not replace it.
Do not use this prompt when you have only one judge, when you are evaluating the quality of the task outputs themselves, or when your judges use incompatible scoring scales without normalization. If your judges produce free-text rationales without structured scores, use the Judge Rationale Consistency Check prompt first to extract structured scores before running agreement analysis. If you suspect a specific judge is an outlier, pair this prompt with the Outlier Judge Detection prompt to isolate problematic judges before computing fleet-wide agreement. For production environments where agreement is monitored continuously, integrate the output schema from this prompt into the Continuous Monitoring Pipeline prompt to automate agreement threshold alerts. The next section provides the copy-ready prompt template you can adapt to your judge fleet.
Use Case Fit
Where the Cross-Model Judge Agreement Comparison prompt delivers value and where it introduces risk. Use this to decide if a multi-model judge fleet is right for your evaluation pipeline.
Good Fit: Multi-Model Evaluation Infrastructure
Use when: you run a judge fleet with GPT-4, Claude, and Gemini and need to know if scores are interchangeable before migrating or load-balancing. Guardrail: Run this prompt on a fixed calibration set before every model version upgrade to detect silent score drift.
Bad Fit: Single-Judge Quick Checks
Avoid when: you only use one model as a judge and have no plans to add or switch models. Guardrail: This prompt adds statistical overhead without benefit for single-judge setups. Use a simpler score calibration prompt instead.
Required Inputs: Score Matrix and Judge Metadata
Risk: Incomplete or sparse score matrices produce misleading agreement statistics. Guardrail: Require a complete score matrix with all judges rating all items, plus model version, temperature, and prompt template metadata for each judge column.
Operational Risk: Statistical Misinterpretation
Risk: Teams treat high agreement as proof of interchangeability without checking edge cases or bias profiles. Guardrail: Always pair agreement metrics with the bias profile and migration risk assessment outputs. Never rely on a single agreement number.
Scale Sensitivity: Ordinal vs. Continuous Scores
Risk: Applying Pearson correlation to Likert-scale scores inflates agreement estimates. Guardrail: The prompt harness must detect score type and select appropriate agreement metrics—Cohen's Kappa for categorical, Spearman for ordinal, ICC for continuous. Validate this selection in eval checks.
Human-in-the-Loop Gate: Migration Decisions
Risk: Automated pipelines treat statistical equivalence as a green light for judge replacement without human review. Guardrail: Require human approval before acting on migration recommendations. The prompt output is an evidence packet for a decision, not the decision itself.
Copy-Ready Prompt Template
A multi-model evaluation harness that collects scores from different LLM judges on the same items and produces a structured agreement matrix with bias profiles and migration risk flags.
This prompt template is designed to be deployed inside an evaluation harness that sends identical scoring requests to multiple LLM judges—such as GPT-4, Claude, Gemini, or open-weight models—and collects their outputs for comparison. The template expects a set of items to evaluate, a scoring rubric, and a list of judge model identifiers. It returns a structured agreement matrix, per-judge bias profiles, and a migration risk assessment that tells you whether swapping one judge for another would break your score continuity. Use this when you are building or maintaining an automated evaluation pipeline and need to know whether your judge fleet produces interchangeable results.
textYou are an evaluation meta-analyst. Your task is to compare scores assigned by multiple LLM judges to the same set of evaluation items and produce a structured agreement analysis. ## INPUTS - Evaluation Items: [ITEMS] Each item includes: - item_id: string - input: the original prompt or conversation that was evaluated - output: the model-generated response that was scored - reference_answer: (optional) ground-truth or reference answer if available - Judge Scores: [JUDGE_SCORES] A mapping of judge_model_id -> list of score objects, where each score object contains: - item_id: string - score: number or categorical value - rationale: string (the judge's explanation for the score) - confidence: number (0.0 to 1.0, optional) - Scoring Rubric: [RUBRIC] Description of the scoring scale, criteria, and what each score level means. - Comparison Configuration: [COMPARISON_CONFIG] - agreement_metric: one of ["cohens_kappa", "fleiss_kappa", "percent_agreement", "krippendorff_alpha", "all"] - agreement_threshold: number (minimum acceptable agreement, e.g., 0.7) - bias_checks: list of bias dimensions to analyze, from ["leniency_severity", "position_bias", "length_bias", "confidence_calibration"] - migration_risk_threshold: number (maximum acceptable score distribution shift for judge replacement, e.g., 0.1) ## OUTPUT SCHEMA Return a JSON object with this exact structure: { "agreement_matrix": { "metric_used": string, "pairwise_agreement": { "[judge_a]_vs_[judge_b]": { "agreement_score": number, "interpretation": "high" | "moderate" | "low" | "poor", "sample_size": number, "confidence_interval_95": [number, number] } }, "overall_fleet_agreement": number, "agreement_pass": boolean }, "bias_profiles": [ { "judge_model_id": string, "leniency_score": number, "severity_score": number, "position_bias_detected": boolean, "length_bias_detected": boolean, "confidence_calibration_error": number | null, "bias_flags": [string] } ], "migration_risk_assessment": { "replacement_candidates": [ { "source_judge": string, "target_judge": string, "score_distribution_shift": number, "risk_level": "low" | "medium" | "high" | "critical", "recommendation": string, "requires_recalibration": boolean } ], "overall_migration_readiness": "ready" | "caution" | "not_ready" }, "divergence_diagnostics": [ { "item_id": string, "judge_pair": string, "score_difference": number, "possible_cause": string, "evidence_excerpts": [string] } ], "summary": string } ## CONSTRAINTS - Do not fabricate agreement scores. Only compute from the provided [JUDGE_SCORES] data. - If fewer than 10 items are provided, flag this in the summary and note that agreement metrics have wide confidence intervals. - If any judge is missing scores for items that other judges scored, note the sparsity pattern in divergence_diagnostics. - For categorical rubrics, use appropriate agreement metrics (e.g., Cohen's Kappa for two judges, Fleiss' Kappa for three or more). - If confidence scores are not provided by all judges, skip confidence_calibration_error and note the omission. - Flag any judge whose leniency_score or severity_score deviates more than 0.2 from the fleet mean. - For migration_risk_assessment, a score_distribution_shift above [MIGRATION_RISK_THRESHOLD] must produce a risk_level of "high" or "critical". - Include specific item_ids and evidence excerpts in divergence_diagnostics for any item where judges disagree by more than 1 standard deviation of the score distribution. ## EVALUATION CHECKS (run after output generation) 1. Verify that every judge_model_id in [JUDGE_SCORES] appears in bias_profiles. 2. Verify that pairwise_agreement covers all unique judge pairs. 3. Verify that agreement_pass is true only if overall_fleet_agreement >= [AGREEMENT_THRESHOLD]. 4. Verify that no fabricated item_ids appear in divergence_diagnostics. 5. If sample_size < 30, verify that confidence_interval_95 is appropriately wide.
To adapt this template, replace the square-bracket placeholders with your actual evaluation data. The [ITEMS] array should contain the prompts and outputs your judges scored. The [JUDGE_SCORES] mapping should include every judge you want to compare, with their scores and rationales aligned by item_id. Set [RUBRIC] to the exact scoring instructions your judges received—this context helps the meta-analyst interpret divergence. Configure [COMPARISON_CONFIG] with your preferred agreement metric and thresholds. After running the prompt, apply the evaluation checks listed at the bottom of the template to validate the output before trusting the agreement matrix. For high-stakes evaluation pipelines where judge agreement directly affects product decisions, always run this analysis on a held-out calibration set before promoting any judge replacement.
Prompt Variables
Required inputs for the Cross-Model Judge Agreement Comparison prompt. Each placeholder must be populated before execution to ensure reliable multi-model score collection and statistical comparison.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[EVALUATION_ITEMS] | Array of items to be scored by all judges. Each item must include an ID and the content to evaluate. | [{"id": "item-001", "output": "The response generated by the system...", "context": "Optional grounding context"}] | Must be valid JSON array. Minimum 30 items for statistical power. Each item requires a unique id field. Null or empty array triggers abort. |
[JUDGE_MODELS] | List of judge model identifiers to compare. Defines which models participate in the agreement study. | ["gpt-4-turbo", "claude-3-opus", "gemini-1.5-pro"] | Must contain at least 2 model identifiers. Each identifier must match a supported model in the execution harness. Unknown models cause configuration error. |
[RUBRIC_DEFINITION] | Scoring criteria and scale that all judges must apply. Ensures judges evaluate the same dimensions. | {"criteria": [{"name": "accuracy", "scale": {"min": 1, "max": 5}, "description": "Factual correctness..."}]} | Must be valid JSON with at least one criterion. Each criterion requires name, scale min/max, and description. Ambiguous criteria increase divergence risk. |
[JUDGE_SYSTEM_PROMPT] | System-level instructions that define the judge role, output format, and behavioral constraints. | "You are an expert evaluator. Score each item on a 1-5 scale for each criterion. Return JSON with item_id and scores." | Must include explicit output format instruction. Must not contain model-specific features that bias one judge. Test for instruction leakage before full run. |
[OUTPUT_SCHEMA] | Expected JSON schema for each judge's scoring output. Enforces consistent parseable responses across models. | {"type": "object", "properties": {"item_id": {"type": "string"}, "scores": {"type": "object"}}} | Must be valid JSON Schema. All judges must be capable of producing this shape. Schema violations trigger retry or exclusion from agreement calculation. |
[AGREEMENT_METRICS] | Statistical measures to compute across judge pairs. Defines what agreement means for this comparison. | ["cohens_kappa", "percent_agreement", "krippendorff_alpha", "spearman_rho"] | Must include at least one metric. Each metric must be implemented in the analysis harness. Unsupported metrics cause runtime error. |
[SIGNIFICANCE_THRESHOLD] | P-value or confidence level for statistical equivalence testing between judge pairs. | 0.05 | Must be a float between 0 and 1. Lower values increase stringency. Null defaults to 0.05. Values above 0.10 produce unreliable equivalence claims. |
[MAX_RETRIES_PER_ITEM] | Maximum retry attempts when a judge produces an unparseable or schema-invalid response. | 3 | Must be a positive integer. Retries exhausted without valid output mark item as missing for that judge. Set to 0 to disable retries and fail fast. |
Implementation Harness Notes
How to wire the cross-model judge agreement prompt into a production evaluation pipeline with validation, retries, and statistical checks.
This harness transforms the cross-model judge agreement prompt from a one-off experiment into a repeatable, auditable pipeline. The core workflow collects scores from multiple LLM judges on the same set of evaluation items, then feeds those scores into the agreement analysis prompt. The harness must handle model invocation, response parsing, score matrix construction, and statistical validation before the agreement prompt ever runs. Without this scaffolding, teams risk comparing scores collected under different conditions, with different parsing rules, or after silent model failures—producing agreement metrics that look precise but are meaningless.
The implementation requires a score collection loop that iterates over evaluation items and target judge models. For each (item, model) pair, call the judge with a consistent rubric prompt, parse the numeric score from the response using a strict schema validator, and log the raw response alongside the parsed score. Use a retry wrapper with exponential backoff (max 3 attempts) for transient failures, but escalate to a dead-letter queue if the model returns unparseable output after retries. Store results in a structured format: {item_id, judge_model, score, timestamp, raw_response, parse_success}. Before constructing the agreement matrix, run a completeness check—if any judge has missing scores for more than 5% of items, abort and alert rather than computing agreement on sparse data. For the agreement prompt itself, assemble the score matrix as a JSON input, include metadata about which models were compared and how many items were evaluated, and pass it to a single high-capability model (GPT-4 or Claude 3.5 Sonnet) for the analysis. Validate the output against an expected schema containing agreement_matrix, bias_profiles, migration_risk_assessment, and statistical_equivalence_flags.
After receiving the agreement analysis, run statistical sanity checks outside the LLM: compute Cohen's Kappa and percent agreement independently using a deterministic library, and compare against the LLM's reported values. If the LLM's numbers deviate by more than 0.05, flag the analysis for human review—the model may have hallucinated the statistics. Log every run with a unique comparison_id, the prompt version hash, the score matrix, and the full analysis output. For high-stakes decisions like judge replacement or evaluation pipeline migration, require human sign-off on the agreement report before acting on the LLM's recommendations. Avoid running this pipeline on fewer than 50 evaluation items; small samples produce unstable agreement estimates that can mislead teams into trusting or distrusting judges based on noise.
Expected Output Contract
Fields, format, and validation rules for the JSON response returned by the Cross-Model Judge Agreement Comparison prompt. Use this contract to parse, validate, and store the output before downstream analysis.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
agreement_matrix | object | Must be a JSON object where keys are model-pair strings (e.g., 'gpt-4_claude-3') and values are objects containing 'agreement_score' (float 0-1), 'kappa' (float -1 to 1), and 'items_compared' (int > 0). | |
agreement_matrix.[pair_key].agreement_score | float | Must be between 0.0 and 1.0 inclusive. Represents the proportion of items where both judges assigned the same score. | |
agreement_matrix.[pair_key].kappa | float | Must be between -1.0 and 1.0 inclusive. Cohen's or Fleiss' Kappa as specified in [STATISTIC_TYPE]. Null allowed if calculation is invalid due to zero variance. | |
bias_profile | array | Must be an array of objects, one per model in [MODEL_LIST]. Each object must contain 'model_id' (string), 'mean_score' (float), 'score_variance' (float), and 'leniency_index' (float). | |
bias_profile.[].leniency_index | float | Must be a float where positive values indicate leniency and negative values indicate severity relative to the fleet mean. Validate that fleet mean of leniency_index is approximately 0. | |
migration_risk_assessment | object | Must contain 'risk_level' (enum: LOW, MEDIUM, HIGH, CRITICAL), 'score_correlation' (float 0-1), and 'breaking_items_count' (int >= 0). | |
migration_risk_assessment.risk_level | string | Must be one of: LOW, MEDIUM, HIGH, CRITICAL. Determined by score_correlation and breaking_items_count thresholds defined in [RISK_THRESHOLDS]. | |
per_item_disagreements | array | If present, each item must contain 'item_id' (string), 'disagreeing_models' (array of strings), 'score_range' (float), and 'root_cause_hypothesis' (string). Null allowed if no disagreements found. |
Common Failure Modes
When running cross-model judge agreement comparisons, these failures surface first in production. Each card identifies a specific breakage pattern and the operational guardrail that catches it before scores become unreliable.
Scale Usage Drift Between Models
What to watch: GPT-4 clusters scores in the top third of your scale while Claude spreads across the full range, producing artificially low agreement metrics even when both judges prefer the same outputs. This inflates false-positive divergence alerts and masks true ranking consensus. Guardrail: Normalize scores using z-score transformation per judge before computing agreement. Add a pre-check that compares raw score distributions with a Kolmogorov-Smirnov test and flags judge pairs with p < 0.05 for scale recalibration.
Position Bias in Pairwise Judgments
What to watch: Judges consistently favor the first-presented output regardless of quality, inflating agreement when both judges see the same order but creating false divergence when presentation order differs across models. This is especially dangerous in champion-challenger pipelines where position bias masquerades as quality preference. Guardrail: Randomize output order per judge and compute position-bias scores (preference-for-first minus 0.5). Flag any judge with position bias exceeding 0.15 for exclusion from agreement calculations until the bias is corrected through prompt redesign.
Context Truncation Silently Skews Scores
What to watch: Different models have different context windows, and when long outputs or evidence passages get truncated, judges score what they can see rather than the full content. Agreement metrics appear to drop, but the root cause is input inequality, not judgment divergence. Guardrail: Add a pre-scoring validation step that checks token counts per judge-model pair and flags any item where one judge received truncated input. Exclude truncated items from agreement calculations and log them separately as input-inequality failures rather than judge disagreement.
Rubric Ambiguity Amplifies Model Differences
What to watch: Vague criteria like 'is the response helpful' produce high agreement on obviously good or bad outputs but low agreement in the middle range where models interpret 'helpful' differently. This creates misleadingly high overall agreement metrics that collapse when you filter for borderline cases—exactly where judge reliability matters most. Guardrail: Run a rubric-clarity diagnostic that computes agreement per criterion and per score tier. Flag criteria with agreement below 0.6 in the middle two score tiers for rewording. Add behavioral anchors (example outputs at each score level) to disambiguate the scale.
Length Bias Produces Spurious Agreement
What to watch: Longer outputs receive higher scores across all judges, inflating agreement metrics when outputs vary in length. Two judges can show high agreement simply because both reward verbosity, not because they agree on quality. This masks real divergence on concise outputs where quality differences are harder to hide behind extra words. Guardrail: Stratify agreement calculations by output length quartile. If agreement in the shortest quartile drops below 0.7 while the longest quartile stays above 0.85, flag length bias as a confound. Add a length-neutrality check to the evaluation harness before reporting overall agreement.
Temporal Drift in Closed-Source Judges
What to watch: API-hosted judges like GPT-4 and Claude receive model updates that silently change scoring behavior. Agreement metrics that were stable last month suddenly degrade without any prompt changes, creating false alarms or masking real regressions in the system being evaluated. Guardrail: Pin judge model versions where possible and maintain a calibration set of 50-100 items with known score distributions. Run this calibration set weekly and trigger an alert if any judge's mean score shifts by more than 0.3 standard deviations from baseline. Treat version-locked judges as the control group for detecting provider-side drift.
Evaluation Rubric
Criteria for validating the cross-model judge agreement prompt before deployment. Each row defines a pass standard, a failure signal, and a concrete test method to run in your evaluation harness.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Output Schema Validity | Response is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present | JSON parse error, missing required fields, or type mismatches in agreement matrix | Schema validator applied to 100 test runs across 3 model pairs |
Pairwise Agreement Matrix Completeness | Matrix contains agreement scores for every model pair in [JUDGE_MODELS] with no null or missing cells | Missing model pairs, null values in matrix cells, or extra undefined models in output | Automated matrix shape check: NxN dimensions match len([JUDGE_MODELS]) |
Agreement Metric Calculation Accuracy | Cohen's Kappa and percent agreement values match reference implementation within 0.02 tolerance | Metric values deviate from ground-truth calculation by more than 0.02 on known test data | Compare output against scikit-learn cohen_kappa_score on 20 pre-computed score pairs |
Bias Profile Completeness | Each model in [JUDGE_MODELS] has a bias profile with leniency_score, severity_score, and scale_usage_pattern | Missing bias profiles for any judge model, or profile fields contain null when data is available | Field presence check and null audit across all judge models in output |
Statistical Equivalence Test Output | Equivalence test section includes test_statistic, p_value, confidence_interval, and equivalence_conclusion for each pair | Missing statistical fields, p_value of null, or equivalence_conclusion that contradicts p_value | Validate all four fields present per pair and check conclusion logic: reject if p<0.05 but conclusion says equivalent |
Migration Risk Assessment Actionability | Risk level is one of [low, medium, high, critical] and includes specific risk_factors array with at least one item when risk is medium or above | Risk level not in enum, empty risk_factors when risk is medium or higher, or generic risk text without specific factors | Enum check on risk_level and conditional array length check on risk_factors |
Score Distribution Divergence Detection | Divergence flags correctly identify pairs where score distribution KS statistic exceeds [DIVERGENCE_THRESHOLD] | False negatives: failing to flag pairs with known divergent distributions in test data | Inject 5 known-divergent score pairs and verify all are flagged; inject 5 known-similar pairs and verify none flagged |
Confidence Interval Reporting | All agreement metrics include 95% confidence intervals with lower_bound and upper_bound fields | Missing confidence intervals, bounds that are equal, or intervals that don't contain the point estimate | Field presence check and validate lower_bound < point_estimate < upper_bound for all metrics |
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 a single judge model and a small sample of 20-50 outputs. Use the base prompt template but replace the full agreement matrix with a simpler pairwise comparison. Drop statistical equivalence testing and focus on raw percent agreement and a qualitative summary of divergence patterns. Use [JUDGE_MODEL_A] and [JUDGE_MODEL_B] placeholders for the two models under test.
Watch for
- Small sample sizes producing unstable agreement estimates
- Over-interpreting agreement on easy items while ignoring hard-edge-case divergence
- Missing systematic bias signals that only emerge with larger, stratified samples

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