TOOL | Judge reliability
LLM Judge Bias Correction Calculator
Correct an LLM judge's raw pass rate for its measured sensitivity and specificity (the Rogan-Gladen correction), then report a calibration-aware confidence interval on the true rate.
Your LLM judge has its own error rate, and every error skews the reported pass rate. Enter that rate with a human-labeled calibration set; the page applies the Rogan-Gladen correction, returning an interval carrying test-set and calibration-set error, following our LLM-as-a-judge reporting method. For agreement on those counts use the two-rater Cohen's kappa calculator; for confidence against correctness, the Brier score and calibration error calculator. The acceptable error rate calculator checks whether the corrected rate clears the bar automation needs.
Showing your last valid result. Update the inputs above to recompute.
Bias-corrected pass rate
73.3%
95% eval-CI [66.0%, 80.7%]
What the judge reported versus what the correction recovers.
| Estimate | Rate | Interval |
|---|---|---|
| Naive judge rate | 70.0% | [67.1%, 72.8%] |
| Bias-corrected rate | 73.3% | [66.0%, 80.7%] |
Judge diagnostics
- Sensitivity (Se) judge catches a real pass
- 90.0%
- Specificity (Sp) judge catches a real fail
- 85.0%
- Youden's J Se + Sp - 1, must be > 0
- 0.750
- Bias removed corrected minus naive
- +3.3 pp
- Calibration labels pass class / fail class
- 100 / 100
The correction divides every source of error by Youden's J, so a weaker judge widens all three.
| Where the width comes from | Share of variance |
|---|---|
| Test set (n items) | 27% |
| Specificity (fail-class labels) | 12% |
| Sensitivity (pass-class labels) | 62% |
The pass-class calibration labels drive the width. Spend your next human labels there.
Grade the judge against your expert's labels, with failure as the positive class: the catch rate on real failures and pass accuracy on real passes.
The numbers below come from the returns-desk example: 80 labeled outputs, 40 items on each of two versions of the returns assistant, graded by one judge. Change any input and this note disappears.
Showing your last valid result. Update the inputs above to recompute.
Catch rate and pass accuracy
- Catch rate (true positive rate)
- Pass accuracy (true negative rate)
Youden's J
- Judge fail rate
- Positive predictive value (share of judge fails that are real failures)
- Negative predictive value (share of judge passes that are real passes)
- Missed failures per 1,000 outputs
- False flags per 1,000 outputs
Per-version accuracy, with intervals. The J check compares the two selected versions.
| Version | Catch rate | Pass accuracy | Youden's J |
|---|
The Corrected rate panel counts pass as positive, so the button maps real passes the judge passed to its true positives and real failures the judge passed to its false positives.
The scorecard leaves the pass rate uncorrected. To correct one with these counts, use the button that sends them to the Corrected rate panel.
Check whether a new judge prompt grades your labeled items more accurately than the old one, overall and class by class.
The numbers below come from the returns-desk example: 80 labeled outputs graded by a baseline and a candidate judge. Change any input and this note disappears.
Showing your last valid result. Update the inputs above to recompute.
Accuracy change, candidate minus baseline
Catch rate change
Pass accuracy change
Items whose correctness changed between the baseline and the candidate. Direction says whether the candidate fixed or broke the item. The first 50 are listed; the download holds every one.
| Item | System version | Expert label | Baseline verdict | Candidate verdict | Direction |
|---|
This panel compares two judge versions on the same labeled items. Comparing two versions through one judge happens in the Compare systems panel.
The judge reports Youden's J times the real gap between two versions of your system. Enter the calibration counts and each version's judge passes to recover it.
The numbers below come from the returns-desk example: two versions, each with its own calibration set. Change any input and this note disappears.
Showing your last valid result. Update the inputs above to recompute.
Corrected difference
Each version corrected with its own calibration, then the difference taken with MOVER on the two eval-CIs. This treats the versions as independent, which is conservative when they share items.
| Version | Corrected rate | Eval-CI |
|---|
This panel sizes nothing; the items a comparison through this judge needs are sized on the sample size and power page.
θ̂ = (p + Sp - 1) / (Se + Sp - 1); eval-CI = θ̂ ± z·SEHow?
How this is calculated
An LLM judge is an imperfect classifier, so its raw pass rate is a biased estimate of the true rate. This tool runs the same procedure worked end to end in Reporting LLM-as-a-judge evaluations: correct the raw rate with the judge's measured sensitivity and specificity, then attach an interval that carries both the test-set and the calibration-set uncertainty.
The correction. From the calibration set you get
sensitivity Se = TP / (TP + FN) (the pass-class hit rate) and
specificity Sp = TN / (TN + FP) (the fail-class hit rate). The
judge says pass at rate p = c / n. Inverting the linear
relationship between the observed rate and the true rate gives the
Rogan-Gladen estimate θ̂ = (p + Sp - 1) / (Se + Sp - 1). The
denominator is Youden's J, the judge's informativeness. It has to be
positive (the judge beats a coin) or the correction is undefined; the
smaller it is, the harder the judge amplifies every source of error.
The interval. The corrected rate depends on three
estimated quantities, each with its own sampling error: the naive rate from
n test items, and the two calibration rates from the human labels.
Propagating all three through θ̂ with the first-order delta method gives
Var(θ̂) ≈ [ Var(p) + (1-θ̂)²·Var(Sp) + θ̂²·Var(Se) ] / J², with Var(p) = p(1-p)/n, Var(Se) = Se(1-Se)/nSe,
and Var(Sp) = Sp(1-Sp)/nSp. The eval-CI is
θ̂ ± z·√Var(θ̂), clamped to [0, 1]. The naive rate keeps its
own Wilson interval, which stays inside [0, 1] near the boundaries where the
textbook normal interval does not.
Which method, and why. The delta-method interval is the one derived for LLM judges by Lee and colleagues and the one the host analysis reports, and it yields the additive variance split above, which tells you which calibration class to label next. It is a choice: the score-style Lang-Reiczigel interval has better small-sample coverage, but the delta interval already tends to overcover when calibration sets are small, so it runs conservative rather than optimistic. The tool surfaces that as a note instead of swapping the method.
Worked example (the defaults shown). With c = 700 of n = 1,000, 90 true positives and 10 false negatives on the pass class, and 85 true negatives and 15 false positives on the fail class: p = 0.70, Se = 0.90, Sp = 0.85, so J = 0.75 and θ̂ = (0.70 + 0.85 - 1) / 0.75 = 0.55 / 0.75 = 0.7333. The standard error is 0.0373, so the 95% eval-CI is [0.660, 0.807]. The naive Wilson interval is [0.671, 0.728]: the corrected interval is centered about three points higher and roughly two and a half times wider. The sensitivity term carries 61.7% of that width and the specificity term 11.6%, even though both classes got the same 100 labels, so the next human label is worth most on the pass class.
What the correction cannot fix. It removes only the bias you measure. It assumes the calibration labels are correct and that sensitivity and specificity are stable across the outputs you score, and it cannot touch a judge grading output from its own model family. Keep the judge independent of the system under test. The calibration set this page asks for is a sample of human-labeled items; a different sense of the word, judge calibration, asks whether the judge's stated confidence tracks how often it turns out to be right, and that one is scored in the Brier score and calibration error calculator.
Catch rate and pass accuracy. The catch rate is the share of real failures the judge flagged: items both your expert and the judge marked fail, over every item your expert marked fail. Pass accuracy is the share of real passes the judge passed: items both marked pass, over every item your expert marked pass. Each gets a Wilson score interval at the stated confidence level, two-sided.
Youden's J and its interval. J = catch rate + pass accuracy - 1. It runs from -1 (perfect disagreement) to 1 (perfect agreement) and equals zero when the judge is at chance. Its interval uses MOVER (the method of variance estimates recovery), which combines the two independent Wilson intervals, since the two classes are drawn from disjoint items.
At a stated failure rate. The page uses the production
failure rate you enter, or the sample's share when the field is blank, and
computes point values only, since that rate is an assumption. The judge
fail rate is catch rate x failure rate + (1 - pass accuracy) x (1 -
failure rate). The positive predictive value is the share of judge
fails that are real failures; the negative predictive value is the share
of judge passes that are real passes. Missed failures per 1,000 outputs
are 1,000 x failure rate x (1 - catch rate), and false flags
per 1,000 are 1,000 x (1 - failure rate) x (1 - pass
accuracy).
Cohen's kappa. Raw agreement is the share of items where
the judge and your expert gave the same label. Kappa adjusts for chance
agreement: (observed - expected) / (1 - expected), where
expected agreement uses the marginal proportions. The band is from the
Landis and Koch scale, printed with its own source line.
Stratified labels. When an inclusionProbability
column holds more than one value, each row is weighted by 1 /
inclusionProbability and the page shows weighted point values only.
Intervals for a sample drawn at unequal rates need a stratified method,
which this scorecard leaves out.
Judge version comparison. The overall 2x2 counts items both versions got right, only the baseline got right, only the candidate got right, and neither got right. Overall accuracy for each version is its correct count over the total. The difference and its interval use Newcombe's method 10 for paired proportions, two-sided, since both judge versions grade the same items.
The test. The McNemar test asks whether the items only the candidate got right outnumber the items only the baseline got right, or the reverse, by more than chance would produce. It is printed in two forms, mid-p and exact. The mid-p form holds its stated error rate where the exact conditional form runs conservative (Fagerland, Lydersen and Laake 2013). A verdict rests on the interval; when the test disagrees, one line says so.
Per-class changes. The same paired difference and mid-p are computed within each class separately. These are unadjusted for multiplicity and labeled per class.
Attenuation. The observed difference between two versions equals Youden's J times the true difference, exactly when both versions share the same sensitivity and specificity. Dividing by J recovers the corrected difference. The items multiplier is at least 1/J squared: this judge needs at least that many times the items a perfect judge would need to see the same true difference.
The corrected-difference interval. The variance of the
corrected difference carries both test-set and calibration-set error
through the delta method: Var = Var(observed) / J^2 + observed^2
Var(J) / J^4, where Var(J) = catch rate x (1 - catch rate) /
failures + pass accuracy x (1 - pass accuracy) / passes.
Var(observed) depends on the design: pA(1 - pA)/nA + pB(1 -
pB)/nB for separate items, and [(b + c)/n - ((c -
b)/n)^2]/n for the same items, where b and c count the items the
judge passed for only one version. The interval is left unclamped, since a
true difference can sit anywhere from -1 to 1.
The per-version check. When calibration is per version, the page computes J for each version with its own labels, then tests whether J differs using a MOVER difference on their two intervals. When the interval excludes zero, one J would bias the corrected difference; each version's rate is corrected separately with the page's Rogan-Gladen correction, and the difference of the two corrected rates gets a MOVER interval on the two eval-CIs.
The lower-bound warning. When J is positive and above the weak-judge threshold, but its interval reaches zero or below at the stated confidence level, the direction of the correction is not established. The warning fires on both the single-rate correction and the two-version comparison, and it is suppressed when the page already says the correction is undefined or the judge is weak.
Formula: θ̂ = (p + Sp - 1) / (Se + Sp - 1); eval-CI = θ̂ ± z·SE
Questions
Why not just report the judge's raw pass rate?
Because the judge is a classifier with its own error rates, its raw pass rate estimates the classifier's behavior, and a release gate reads it as the model's accuracy. The two differ by a bias you can measure from a small human-labeled calibration set and remove. On the defaults, the raw 70.0% understates a corrected 73.3%; more test data narrows the raw interval but never removes that gap.
How many human labels do I need in each calibration class?
Enough that Youden's J is comfortably positive and the interval is usable, then allocated by the variance split, not evenly. This tool shows each class's share of the interval width; spend your next labels on the class with the larger share. Fewer than about 30 labels in a class triggers the overcoverage note, because the Rogan-Gladen interval runs conservative on small calibration sets (Chen et al., preprint, cited below).
What does an undefined correction mean?
Youden's J is sensitivity plus specificity minus one. When it is zero or negative the judge is at or below chance, the inversion divides by a non-positive number, and there is no valid corrected rate. The fix is a better judge or more calibration labels, not a different formula.
Why is my corrected estimate pinned at 0% or 100%?
The Rogan-Gladen estimate can fall outside [0, 1] when the naive rate is inconsistent with the calibrated error rates, most often on a small calibration set. The tool clamps the estimate and any interval bound back into [0, 1] and flags it, since the delta approximation is already unreliable at the boundary.
Is reliability@k or pass^k the same thing?
No. Those are the lane's terms for aggregating pass or fail outcomes across a task suite, and the pass^k and reliability@k estimator does that aggregation. The corrected per-task rate here is the input to it: feed it uncorrected judge labels and the same bias enters the aggregate one task at a time. Correct first, aggregate second.
Why does the scorecard count failure as the positive class?
With pass as the positive class, a real failure the judge passes is a false positive, which reads backward when that miss is the error you are guarding against. With failure as the positive class, that miss is a false negative, and the catch rate is the true positive rate. The toggle switches the convention and relabels the rates. J, kappa and the corrected rate do not change. The Corrected rate panel keeps pass as the positive class, as its labels show.
How do I tell whether a new judge prompt is better?
Run both judge versions on the same items your expert labeled, then open the Compare judges panel. It computes the paired accuracy difference with its interval and the McNemar test in its mid-p and exact forms. When the interval on the difference sits above zero, the new version is more accurate on these items; when the test disagrees, one line says so. When one class improves and the other worsens, and at least one of those changes clears its interval, the page calls it a trade-off and shows both.
Why does the judge make the gap between two versions look smaller?
Every judge error pulls the two versions' pass rates toward each other, so when both share the judge's error rates the observed difference is Youden's J times the true one. Dividing by J recovers the true difference, and a smaller J amplifies both the estimate and its uncertainty. The items multiplier is at least 1/J squared: at J = 0.7, this judge needs at least about twice the items a perfect judge would need to see the same true difference.
When should I calibrate the judge per version?
When the two versions are graded by different judge prompts, or when you suspect the judge's accuracy depends on the version it grades. The per-version calibration gives each version its own J. If the two J values differ, the page warns and corrects each version separately. If they are consistent, the pooled J is used.
Sources
- Rogan & Gladen (1978), Estimating prevalence from the results of a screening test
- Lee et al. (2026), How to Correctly Report LLM-as-a-Judge Evaluations (ICML 2026)
- Chen et al. (2026), Efficient Inference for Noisy LLM-as-a-Judge Evaluation (preprint)
- NIST/SEMATECH e-Handbook of Statistical Methods, 7.2.4.1
- Fagerland, Lydersen and Laake (2013), The McNemar test for binary matched-pairs data: mid-p and asymptotic are better than exact conditional