Inferensys

Prompt

Score Normalization Across Judges Prompt Template

A practical prompt playbook for harmonizing scores from LLM judges with different scale usage patterns using z-score, min-max, or rank-based transformations in production evaluation pipelines.
DevOps engineer deploying LLM to production on laptop, Kubernetes dashboards visible, late night deployment session.
PROMPT PLAYBOOK

When to Use This Prompt

Define the job, required inputs, and constraints for score normalization across LLM judges.

This prompt is for evaluation infrastructure teams who run multiple LLM judges and discover that raw scores are not directly comparable. One judge might use the full 1–5 scale while another clusters around 3–4, making it impossible to aggregate scores or set uniform thresholds. The job-to-be-done is harmonizing score distributions across judges so that a '4' from Judge A means the same thing as a '4' from Judge B. You need this when you are building automated evaluation pipelines, computing inter-rater reliability metrics, or preparing judge scores for downstream consumption by dashboards, CI/CD gates, or model selection workflows.

Use this prompt when you already have a raw score matrix—multiple judges scoring the same items—and you need to apply a transformation that preserves relative ordering while removing scale bias. The prompt expects you to provide the raw scores, scale metadata (min/max per judge, whether the scale is ordinal or interval), and your preferred normalization method (z-score, min-max, or rank-based). It produces normalized scores plus a transformation rationale you can audit. Do not use this prompt when judges are scoring entirely different items, when you lack scale metadata, or when you need to detect why judges disagree—that belongs to the Disagreement Root Cause Analysis or Judge Bias Detection playbooks.

This prompt is a statistical harmonization tool, not a judge quality evaluator. It assumes your judges are competent but differently calibrated. If your judges are producing random or adversarial scores, normalization will mask the problem rather than fix it. Always run inter-rater agreement checks before normalization. The output includes before/after distribution summaries so you can verify the transformation didn't distort relative rankings. For high-stakes evaluation pipelines where normalized scores feed automated decisions, require human review of the transformation rationale and spot-check at least 5% of normalized scores against the original judgments.

PRACTICAL GUARDRAILS

Use Case Fit

Where score normalization across judges delivers value and where it introduces risk.

01

Good Fit: Multi-Judge Evaluation Fleets

Use when: You have 3+ LLM judges scoring the same outputs and need to compare or aggregate scores. Normalization corrects for judges who use different parts of the scale (e.g., one judge clusters at 7-9 while another spreads across 2-8). Guardrail: Always compute and report pre-normalization agreement metrics alongside normalized scores so stakeholders can see what changed.

02

Bad Fit: Single-Judge or Identical-Model Setups

Avoid when: You only have one judge or all judges are the same model with identical prompts. Normalization cannot correct for systematic bias when there is no between-judge variance to measure. Guardrail: If you suspect scale drift in a single judge, use judge drift monitoring over time instead of cross-sectional normalization.

03

Required Inputs: Raw Score Matrix and Scale Metadata

What you need: A complete matrix of raw scores (items × judges), the scale range for each judge (min/max), and the intended output scale. Missing scores break most normalization methods. Guardrail: Validate input completeness before normalization. For sparse matrices, use pairwise complete observations and flag items with fewer than 3 overlapping judges.

04

Operational Risk: Masking Real Disagreement

Risk: Normalization can hide genuine disagreement by forcing scores into alignment. If judges disagree because they interpret the rubric differently, normalization papers over the problem instead of surfacing it. Guardrail: Run disagreement root cause analysis on items with large pre-normalization score variance before applying normalization. Normalize only when variance is attributable to scale usage, not content disagreement.

05

Method Selection Risk: Wrong Transformation for the Distribution

Risk: Applying z-score normalization to highly skewed score distributions produces misleading normalized values. Min-max normalization amplifies outlier effects. Rank-based methods discard magnitude information. Guardrail: Include distribution diagnostics (histograms, skewness, outlier counts) in the normalization harness. Let the prompt select and justify the transformation method based on observed distribution properties.

06

Downstream Risk: Normalized Scores Without Audit Trail

Risk: Consumers of normalized scores treat them as ground truth without understanding the transformation. When scores feed into leaderboards, model selection, or policy decisions, the normalization method becomes a hidden assumption. Guardrail: Always output transformation rationale, before/after distribution comparisons, and a reversibility note. Store raw scores alongside normalized scores in your evaluation database.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt template for normalizing raw scores from multiple judges into a harmonized, comparable scale with transformation rationale.

This template is the core instruction set you will send to an LLM to perform score normalization across a fleet of judges. It accepts a raw score matrix, metadata about each judge's scale usage, and a target normalization method. The prompt is designed to produce not just normalized scores but also the transformation parameters and a before/after distribution summary, making the normalization process auditable and reproducible. Use this template as the starting point for building a normalization microservice or a step in your evaluation pipeline.

code
You are a statistical normalization engine. Your task is to harmonize scores from multiple judges who used different scale ranges, distributions, or severity patterns.

## INPUT DATA

### Raw Score Matrix
[JUDGE_SCORE_MATRIX]

### Judge Scale Metadata
[JUDGE_METADATA]

### Target Normalization Method
[NORMALIZATION_METHOD]

### Constraints
[CONSTRAINTS]

## OUTPUT SCHEMA

Return a single JSON object with the following structure:
{
  "normalization_method": "string (the method applied)",
  "transformation_parameters": {
    // Method-specific parameters, e.g., mean, std_dev for z-score; min, max for min-max
  },
  "normalized_scores": {
    "judge_id": [array of normalized scores in the same order as input]
  },
  "distribution_comparison": {
    "before": {
      "judge_id": {
        "mean": number,
        "std_dev": number,
        "min": number,
        "max": number,
        "q1": number,
        "median": number,
        "q3": number
      }
    },
    "after": {
      "judge_id": {
        "mean": number,
        "std_dev": number,
        "min": number,
        "max": number,
        "q1": number,
        "median": number,
        "q3": number
      }
    }
  },
  "transformation_rationale": "string explaining why this method was chosen and any caveats",
  "warnings": ["array of strings flagging potential issues like small sample size or extreme outliers"]
}

## NORMALIZATION METHODS

- **z-score**: Transform each judge's scores to have mean 0 and standard deviation 1 using their own distribution. Use when judges have different means and variances but you assume the underlying quality distribution is similar.
- **min-max**: Scale each judge's scores to [0, 1] using their observed min and max. Use when judges use different scale ranges but you want to preserve relative ordering within each judge.
- **rank-based**: Replace scores with percentile ranks within each judge's distribution. Use when you want to eliminate scale effects entirely and only preserve ordering.

## RULES

1. Normalize each judge independently using only their own score distribution.
2. If a judge has fewer than [MIN_SAMPLE_SIZE] scores, include a warning and use the method cautiously.
3. If the chosen method is inappropriate for the data (e.g., min-max with a single unique value), flag it in warnings and fall back to rank-based normalization.
4. Preserve the original item ordering so normalized scores can be aligned with the input matrix.
5. Round normalized scores to [DECIMAL_PLACES] decimal places.
6. If [CONSTRAINTS] specifies a target range, apply an additional linear transformation after the primary method.

## EXAMPLE

Input:
- Judge A scores: [8, 9, 7, 8, 9] (scale 1-10)
- Judge B scores: [3, 4, 2, 5, 4] (scale 1-5)
- Method: z-score

Output:
{
  "normalization_method": "z-score",
  "transformation_parameters": {
    "judge_A": {"mean": 8.2, "std_dev": 0.84},
    "judge_B": {"mean": 3.6, "std_dev": 1.14}
  },
  "normalized_scores": {
    "judge_A": [-0.24, 0.95, -1.43, -0.24, 0.95],
    "judge_B": [-0.53, 0.35, -1.40, 1.23, 0.35]
  },
  "distribution_comparison": { ... },
  "transformation_rationale": "Z-score normalization was applied to center both judges at mean 0 with unit variance, removing scale and location differences while preserving relative distances.",
  "warnings": []
}

Now process the input data above and return only the JSON object.

To adapt this template for your pipeline, replace the square-bracket placeholders with live data. [JUDGE_SCORE_MATRIX] should be a JSON object mapping judge IDs to arrays of numeric scores. [JUDGE_METADATA] should include each judge's declared scale range and any known calibration offsets. [NORMALIZATION_METHOD] accepts one of the three supported methods, but you can extend the method list if your use case requires robust scaling or quantile normalization. [CONSTRAINTS] allows you to specify a target output range (e.g., "scale all scores to 0-100") or exclude specific judges from normalization. The [MIN_SAMPLE_SIZE] and [DECIMAL_PLACES] tokens let you tune the prompt for statistical rigor versus readability. Always validate the output JSON against the schema before passing normalized scores to downstream evaluation metrics or dashboards.

IMPLEMENTATION TABLE

Prompt Variables

Required inputs for the Score Normalization Across Judges prompt. Each variable must be populated before the prompt can produce reliable normalized scores. Missing or malformed inputs will cause the transformation logic to fail silently or produce misleading distributions.

PlaceholderPurposeExampleValidation Notes

[RAW_SCORE_MATRIX]

Tabular input of raw scores where rows are items and columns are judges. Each cell contains the score assigned by a judge to an item.

{"item_1": {"judge_a": 8, "judge_b": 6, "judge_c": 9}, "item_2": {"judge_a": 4, "judge_b": 3, "judge_c": 5}}

Must be valid JSON. All values must be numeric or null. Null cells allowed for missing ratings. Minimum 2 judges and 5 items required for reliable normalization. Reject if any cell contains non-numeric strings.

[JUDGE_SCALE_METADATA]

Defines the minimum and maximum possible score for each judge. Required for min-max normalization and scale-aware transformations.

{"judge_a": {"min": 1, "max": 10}, "judge_b": {"min": 0, "max": 7}, "judge_c": {"min": 1, "max": 5}}

Must include every judge present in RAW_SCORE_MATRIX. Min must be less than max. Reject if any judge is missing or if min equals max. Integer or float values accepted.

[NORMALIZATION_METHOD]

Specifies which transformation to apply: z-score, min-max, or rank-based. Controls the output distribution shape and interpretation.

z_score

Must be one of: z_score, min_max, rank. Case-insensitive. Default to z_score if omitted, but emit a warning in the transformation rationale. Reject unrecognized values.

[TARGET_SCALE]

Optional output scale range for min-max normalization. Defines the [low, high] bounds the normalized scores should map into.

[0, 1]

Required only when NORMALIZATION_METHOD is min_max. Must be a two-element array with numeric values where low < high. Default to [0, 1] if omitted for min_max. Ignored for z_score and rank methods.

[INCLUDE_RATIONALE]

Boolean flag controlling whether the output includes a human-readable explanation of the transformation applied, including per-judge shift and scale factors.

Must be true or false. When true, output includes a rationale field with per-judge statistics and transformation details. When false, only the normalized matrix is returned. Default to true if omitted.

[OUTPUT_FORMAT]

Controls the structure of the returned normalized scores. Dictates whether scores are returned as a matrix, per-judge arrays, or both.

matrix_and_per_judge

Must be one of: matrix_only, per_judge_only, matrix_and_per_judge. matrix_only returns the full item-by-judge matrix. per_judge_only returns separate arrays keyed by judge. Default to matrix_and_per_judge if omitted.

[HANDLE_MISSING]

Strategy for handling null or missing scores in the input matrix. Controls whether missing values are excluded, imputed, or cause an error.

exclude_pairwise

Must be one of: exclude_pairwise, impute_median, error. exclude_pairwise drops missing pairs from calculations without imputation. impute_median fills missing values with the judge's median score. error halts processing and returns an error message. Default to exclude_pairwise if omitted.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the score normalization prompt into an evaluation pipeline with validation, retries, and distribution comparison.

The Score Normalization Across Judges prompt is designed to sit between raw judge score collection and downstream decision-making. It accepts a matrix of raw scores from multiple judges, scale metadata, and a normalization method, then returns transformed scores with before/after distribution summaries and transformation rationale. This harness is critical when judges use different scale ranges, exhibit leniency or severity skew, or apply inconsistent score spacing—problems that make raw score aggregation unreliable.

Wire the prompt into your evaluation pipeline as a post-collection transformation step. After all judges have scored a batch of items, construct the input payload: a raw_score_matrix where rows are items and columns are judges, a scale_metadata object specifying each judge's min/max/type (e.g., Likert 1-5, 0-100 slider, binary pass/fail), and a normalization_method parameter (z-score, min-max, or rank-based). Validate the input before calling the model: check that the matrix has no missing cells beyond a configurable threshold (sparse matrices with >20% missing values should trigger imputation or exclusion), that scale types are compatible with the chosen method (rank-based normalization handles mixed scale types; z-score assumes interval scales), and that at least three judges are present for meaningful distribution comparison. Log the raw matrix, metadata, and method choice as an immutable record before transformation.

After receiving the model's output, run structural validation: confirm the normalized_scores matrix has the same dimensions as the input, verify that transformation_rationale is present and non-empty, and check that distribution_comparison contains before/after summary statistics (mean, std, min, max, quartiles) for each judge. If the output fails structural checks, retry once with the same prompt and a [CONSTRAINTS] addition emphasizing dimension preservation. For high-stakes evaluation pipelines—such as model quality gates, safety assessments, or regulatory evidence—route outputs with anomalous distribution shifts (e.g., a judge's normalized scores showing >2 standard deviation change in rank order) to a human reviewer before accepting the transformation. Store the normalized scores alongside the raw scores, preserving full lineage for auditability.

Model choice matters: use a model with strong numerical reasoning and instruction-following (GPT-4, Claude 3.5 Sonnet, or equivalent). Avoid small or quantized models that may miscalculate z-scores or mishandle edge cases like zero-variance judge columns. Set temperature to 0 for deterministic transformations. If your pipeline processes hundreds of items, batch the score matrix into chunks of 50-100 items to stay within context windows while maintaining per-batch distribution fidelity. Do not use this prompt for real-time scoring adjustments without caching—the transformation should be computed once per evaluation batch, not per user request. The normalized scores become the input for downstream agreement metrics (Cohen's Kappa, Fleiss' Kappa) and consensus derivation, so treat this step as a data integrity boundary: if normalization fails, halt the pipeline rather than propagating distorted scores.

IMPLEMENTATION TABLE

Expected Output Contract

Fields, types, and validation rules for the normalized score output. Use this contract to parse and validate the model response before downstream consumption.

Field or ElementType or FormatRequiredValidation Rule

normalization_method

enum: z-score | min-max | rank

Must match one of the allowed enum values. Reject with retry if missing or unrecognized.

raw_scores

array of objects

Each object must contain judge_id (string), item_id (string), raw_score (number). Array length must equal input item count.

normalized_scores

array of objects

Each object must contain judge_id, item_id, normalized_score (number). Normalized_score must fall within the expected range for the declared normalization_method.

transformation_rationale

string

Must be non-empty and reference the chosen normalization_method. Flag for human review if rationale contradicts the declared method.

distribution_summary

object

Must contain before (object with mean, std_dev, min, max) and after (object with mean, std_dev, min, max). All numeric fields required.

outlier_flags

array of objects

If present, each object must contain judge_id, item_id, and reason (string). Null allowed if no outliers detected.

confidence_notes

string

If present, must describe uncertainty about the normalization. Required when fewer than 5 judges or items exist. Null allowed otherwise.

PRACTICAL GUARDRAILS

Common Failure Modes

Score normalization across judges fails silently when assumptions about scale usage, distribution shape, or judge behavior are wrong. These cards cover the most common production failure modes and how to guard against them before normalized scores enter downstream decisions.

01

Normalization Hides Systematic Bias

What to watch: Z-score or min-max normalization can mask a judge who consistently scores one demographic, style, or content type lower. The normalized scores look comparable, but the underlying raw scores carry systematic unfairness. Guardrail: Run bias detection on raw scores before normalization. Flag judge-attribute interactions with statistical significance tests. Never normalize away a fairness problem.

02

Small Sample Collapse in Per-Judge Statistics

What to watch: Computing z-scores per judge requires enough ratings to estimate mean and standard deviation reliably. With fewer than 20-30 ratings per judge, normalization amplifies noise rather than removing it. Guardrail: Enforce a minimum sample size threshold before per-judge normalization. Fall back to fleet-wide statistics or rank-based methods when samples are sparse. Log and alert when judges fall below the threshold.

03

Distribution Shape Mismatch Breaks Z-Score Assumptions

What to watch: Z-score normalization assumes roughly symmetric, unimodal score distributions. Judges who use extreme values, bimodal patterns, or highly skewed scales produce misleading normalized scores. A judge who only uses 1 and 5 breaks z-score math. Guardrail: Run distribution shape checks before choosing a normalization method. Use Shapiro-Wilk or visual inspection. Fall back to rank-based normalization when distributions are non-normal. Document the method choice per judge.

04

Scale Range Drift After Normalization Calibration

What to watch: Normalization parameters computed on historical data go stale when judge behavior changes. A judge who tightens their scale over time will produce increasingly extreme normalized scores as the old mean and standard deviation no longer apply. Guardrail: Recompute normalization parameters on a rolling window. Monitor the stability of per-judge mean and standard deviation over time. Trigger recalibration alerts when drift exceeds a configured threshold.

05

Rank Normalization Destroys Absolute Thresholds

What to watch: Rank-based normalization converts scores to percentiles, which removes all information about absolute quality levels. A percentile of 90 means different things for a lenient judge versus a strict judge. Pass/fail thresholds defined on normalized ranks become meaningless. Guardrail: Never apply rank normalization when downstream decisions require absolute quality thresholds. Reserve rank methods for relative comparisons. Pair rank-normalized scores with raw-score pass/fail gates calibrated per judge.

06

Cross-Batch Normalization Inconsistency

What to watch: Normalizing each batch independently produces scores that aren't comparable across batches. An item scored 0.8 in one batch might score 0.6 in another because the batch composition changed the normalization parameters. Guardrail: Use a stable reference distribution for normalization rather than per-batch statistics. Maintain a calibration set with known score distributions. Validate cross-batch comparability with anchor items scored in every batch.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to test whether the Score Normalization prompt produces correct, trustworthy, and production-ready output before integrating it into an automated evaluation pipeline.

CriterionPass StandardFailure SignalTest Method

Normalized Score Range

All normalized scores in [NORMALIZED_SCORES] fall within the target range specified in [TARGET_RANGE] (e.g., 0-1 or 1-5).

Output contains scores outside the target range or includes null values where a score is expected.

Parse the output and assert min([NORMALIZED_SCORES]) >= [TARGET_RANGE_MIN] and max([NORMALIZED_SCORES]) <= [TARGET_RANGE_MAX].

Transformation Method Adherence

The [TRANSFORMATION_METHOD] field matches the requested method in [METHOD] (e.g., z-score, min-max, rank).

The method field is missing, misspelled, or describes a different transformation than requested.

Exact string match or enum check against the set: ['z-score', 'min-max', 'rank'].

Rationale Grounding

The [TRANSFORMATION_RATIONALE] references specific properties of the input score distribution (e.g., presence of outliers, skew) to justify the method.

The rationale is generic (e.g., 'this is the best method') or hallucinates distribution properties not present in [RAW_SCORE_MATRIX].

LLM-as-judge check: prompt a second model to verify that each claim in the rationale is supported by the provided raw score statistics.

Input-Output Cardinality Match

The number of scores in [NORMALIZED_SCORES] equals the number of scores in [RAW_SCORE_MATRIX].

The output has missing or extra scores, indicating a data processing error.

Count assertion: len([NORMALIZED_SCORES]) == len(flatten([RAW_SCORE_MATRIX])).

Distribution Comparison Accuracy

The [DISTRIBUTION_COMPARISON] summary correctly identifies whether the shape of the distribution changed (e.g., 'preserved' for linear transforms, 'altered' for non-linear).

The summary incorrectly claims distribution preservation for a rank-based transform or vice-versa.

Unit test with a known input: provide a uniform distribution and a min-max request; assert the comparison states 'distribution shape preserved'.

Outlier Handling

If [RAW_SCORE_MATRIX] contains extreme outliers, the [TRANSFORMATION_RATIONALE] explicitly addresses their impact and the chosen method's robustness.

Outliers are ignored in the rationale, or a method highly sensitive to outliers (e.g., z-score) is chosen without justification.

Inject a synthetic outlier into a test matrix. Assert the rationale contains a substring like 'outlier' or 'robust'.

Scale Metadata Preservation

The output includes the original [SCALE_METADATA] (min, max, type) alongside the normalized data for auditability.

The [SCALE_METADATA] field is missing, incomplete, or altered.

Schema validation: assert the output JSON contains a scale_metadata object with min, max, and type keys matching the input.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Start with the base normalization prompt and a small raw score matrix (3–5 judges, 10–20 items). Use a single transformation method (z-score) and skip distribution comparison. Replace the full output schema with a simpler structure:

code
{
  "normalized_scores": [[normalized_value, ...], ...],
  "method": "z-score"
}

Remove the transformation rationale and before/after distribution sections. Run with a frontier model and spot-check 3–5 normalized values against manual calculation.

Watch for

  • Division by zero when all judges give identical scores (standard deviation = 0)
  • Missing scale metadata causing incorrect normalization assumptions
  • Single-method bias: z-score fails on non-normal distributions; min-max fails with outliers
  • No validation that normalized scores fall within expected ranges
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.