TOOL | Eval statistics
How inflated is your eval score after reusing the same set?
Enter your set size, how many candidates you scored, and the gap you can live with. See how much selection inflated the winner and how many more looks the set supports.
Enter your set size and candidates scored. The page reports expected optimism, the look budget and a corrected lower bound, grounded in our eval-statistics research and the split our contamination research draws between data leaking in and you leaking yourself in. The version tracker records that the set changed; this page prices what happens when it stays fixed and candidates keep coming. Gaming a harness is the agent exploiting the test; this page measures the tuner wearing it out.
Showing your last valid result. Update the inputs above to recompute.
over budget
Expected optimism from k looks
4.31 pp
At 20 looks and a standard error of 2.31 pp, the expected optimism is 4.31 pp.
Every figure this page computes, with the label it carries in the export
| Figure | Value | What it is |
|---|---|---|
| Sampling noise on this set | 2.31 pp | Standard error of a single pass rate on n items, in percentage points. |
| Expected optimism from k looks | 4.31 pp | Average score inflation from picking the best of k candidates scored on the same set. |
| Look budget | 2 | Largest number of candidates whose expected optimism stays within the stated tolerance. |
| Looks remaining | 0 | Candidates still scorable before the expected optimism exceeds the tolerance. |
| Adaptive worst case | about 26 pp | Order-of-magnitude ceiling on optimism when you tune adaptively, in percentage points. |
| Confidence interval (uncorrected) | [75.1%, 84.1%] | Wilson interval on the observed pass rate at the stated confidence level. Selection is not accounted for. |
| Selection-adjusted floor | 72.2% | Bonferroni-corrected lower bound, holding simultaneously over all k candidates. |
| Bias-corrected point estimate | 75.7% | Observed rate minus the expected optimism, floored at zero. A point correction with no interval of its own. |
| Fresh-set size needed | 1,397 | A set this big would have absorbed k looks at the stated tolerance. |
These figures are a worked example at 300 items, 80% observed rate, 20 candidates, 2 pp tolerance, select-only practice and 95% confidence. Replace every field with your own numbers.
expected optimism = σ · m(k), m(k) = Φ⁻¹((k − 0.375) / (k + 0.25))How?
How this is calculated
The standard error. On a pass/fail set of n items with observed rate p, the sampling noise in one score is sigma = sqrt(p(1 - p) / n). This is the ordinary binomial standard error, expressed as a share of items. A set of 300 items at an 80% rate gives a standard error of about 2.3 percentage points, which means a single score on this set will typically land about 2.3 points from the true rate even with no selection at all.
Expected optimism. Score k candidates on the same set. Even if every candidate performs identically, the best-of-k score runs above the true rate by sigma times the expected maximum of k standard normals. For k = 1 that maximum is zero: one candidate, no selection, no inflation. For k = 10 it is about 1.55, so the best-of-10 score overshoots by roughly 1.55 times sigma. The calculator uses Blom's approximation to the expected maximum: m(k) = inverse-normal-CDF((k - 0.375) / (k + 0.25)), which matches the exact expected maximum to about two decimal places above k = 3. The approximation is labeled as one on the page.
The look budget. Blom's formula inverts in closed form. The largest k whose expected optimism stays within your tolerance is the look budget, which equals floor((0.375 + 0.25q) / (1 - q)), where q = normal-CDF(tolerance / sigma), clamped to at least 1. At n = 1,000, p = 0.80, and a tolerance of 2 pp the budget is 10 looks. At 5 pp on the same set the budget jumps past 1,000, because the tolerance is wide relative to the set's own noise. Past that point the page reports "more than 1,000" rather than printing the raw inverse, which steepens near vertically and implies a precision the model does not carry.
The adaptive ceiling. When you edit the system in response to what the holdout said, the selection bound becomes a floor. The worst-case bound from the adaptive data analysis literature (Dwork, Feldman, Hardt, Pitassi, Reingold and Roth, 2015) grows as sqrt(k / n). This is an order-of-magnitude ceiling. The page reports it beside the selection figures, never as the headline and never inverted into a budget. At n = 1,000 and a tolerance of 2 pp the inverse gives less than one look, which says nothing useful. The ceiling exists so a reader who admits they are tuning adaptively can see the gap between the best case and the worst case.
The corrected interval. The ordinary Wilson interval treats the observed rate as a single measurement. To correct for selection, the calculator applies a Bonferroni correction: the confidence level becomes 1 minus the error rate divided by k, so the resulting lower bound holds simultaneously over all k candidates. At large k the corrected level hits the library ceiling of 99.99% and stops tightening; the page notes this when it happens. The bias-corrected point estimate (observed rate minus the expected optimism, floored at zero) is shown separately, without an interval of its own, because shifting both Wilson endpoints down by the bias would invent coverage the construction does not have.
The fresh-set size. A reader whose budget is spent can ask how big a clean set would need to be: the fresh-set size needed equals ceil(p(1 - p)(m(k) / tolerance)^2). At p = 0.80 and a tolerance of 2 pp, a 10-look history needs about 957 items; 30 looks needs about 1,666. The number rises slowly because the fresh-set size needed grows roughly as log(k) through the m(k) squared term.
Formula: expected optimism = σ · m(k), m(k) = Φ⁻¹((k − 0.375) / (k + 0.25))
Questions
What is the difference between holdout reuse and benchmark contamination?
Contamination is data from the test set leaking into the training corpus, so the model has already seen the answers. Holdout reuse is a selection problem: the developer scores many candidates on the same items, and the best-of-k average drifts upward whether or not the candidates genuinely differ. Our benchmark-contamination research documents how leakage works. This page measures what repeated selection costs.
Can I keep using a set I have already tuned against?
Yes, and this page tells you the cost. Each additional candidate you score on it adds a small amount of expected optimism. The look budget tells you how many more candidates you can score before the optimism exceeds your tolerance. Once the budget is spent, score the next candidate on a set this tuning has not touched.
What does the adaptive worst-case ceiling mean?
When you edit the prompt, the retrieval, or the rubric in response to what the holdout said, you are making adaptive queries against it. The worst-case bound, from Dwork et al. (2015), grows as the square root of looks over items, and at realistic set sizes it can exceed the tolerance after a handful of rounds. The page reports the ceiling beside the selection bound so you can see both.
How is this different from a plain pass-rate confidence interval?
The pass-rate CI calculator gives the interval for one candidate scored once. This page starts there and adds a correction for the fact that you chose the candidate with the highest score from a family of k. The correction is a Bonferroni adjustment that widens the interval to hold simultaneously over all k candidates.
Can I extend the budget by adding new items to the set?
Adding fresh items reduces the standard error and buys more looks, but only items that have never been scored count. The fresh-set-size figure tells you how large a clean set would need to be; how much statistical power a set that size carries depends on the drop you want to detect. The golden-set size planner helps you decide how many items that fresh set should hold. If the set itself has changed between runs, the version tracker records what moved.
My score reads high but the data has not leaked. Could there be another cause?
If training data and eval data overlap, the score is inflated for a different reason entirely. The cross-split overlap checker tests for that. This page assumes the set is clean and measures how repeated selection inflates the winner.