Designing Evaluation Criteria and Scoring Rubrics
A single overall evaluation score can reverse the ranking that subgroup results show, which is the core of Simpson's paradox, so slices must be checked before concluding anything.
The Single Number That Feels Fair
When two versions of an application are compared, the most natural move is to look for the one number that summarizes performance and pick the winner. One overall score feels clean, fair, and easy to defend. The belief behind this habit is that the overall number tells you how the system does for everyone, so a higher number means a better system across the board. This article tests that belief, because evaluation practice contains a case where it breaks down.
What do you think happens?
Model A and Model B are tested on the same 350 examples, split into two groups. Looking only at the overall score, which model would you ship?
Reveal answer
The overall score favors Model B, but Model A is higher in both groups. The overall number can point in the wrong direction.
The per-group figures and the overall figure disagree because the two models put different numbers of examples into each group. The next sections show exactly how that happens.
Reading the Groups Before the Overall Number
The overall column is only a summary. To see what it hides, read each group on its own: first the group-level percentages, then the raw counts that produced them. The source gives a concrete setup. Both models were tested on a set of 350 examples. Model A has 87 examples in Group 1 and 263 in Group 2. Model B has 270 examples in Group 1 and 80 in Group 2. The two models are therefore not measured on the same mix of cases, even though they share one test set.
Tracing the reversal step by step
Model A and Model B are each tested on 350 examples split into Group 1 and Group 2. Which model has the higher per-group accuracy in each group, and which has the higher overall accuracy?
- 1Compare Group 1
Model A gets 85 of 87 correct, about 97.7 percent. Model B gets 256 of 270 correct, about 94.8 percent. Model A is higher.
- 2Compare Group 2
Model A gets 158 of 263 correct, about 60.1 percent. Model B gets 40 of 80 correct, exactly 50 percent. Model A is higher again.
- 3Add up the totals for Model A
85 plus 158 is 243 correct out of 350 examples, about 69.4 percent overall.
- 4Add up the totals for Model B
256 plus 40 is 296 correct out of 350 examples, about 84.6 percent overall. This is higher than Model A's total, even though Model B lost both groups.
Model A wins every subgroup, but Model B wins the overall comparison. A decision made from the overall column alone would ship the weaker model in both groups.
Why the Overall Number Reverses
This pattern is Simpson's paradox. A group-level advantage can disappear, or flip, when the groups are combined into one total. The source's explanation is that the overall figure is not an average that can be trusted to reflect each group, because the groups contain different numbers of examples. Model B has most of its examples in Group 1, where the scores are high. Model A has most of its examples in Group 2, where the scores are lower. The overall percentage mostly reflects where each model's examples happened to fall.
In this formula, n_g is the number of examples in group g and c_g is the number of those examples answered correctly. The overall score weights each group by its size, not by the importance of that group to your users. A model that is strong on a large group and weak on a small group can therefore look better overall than a model that is stronger on every group. Neither the per-group numbers nor the overall number is wrong on its own terms. The problem is treating the overall number as if it answered the question of which system is better for everyone.
A higher overall score does not guarantee a better system for every group. Check the groups before concluding anything.
Slicing the Evaluation Set
The defense against Simpson's paradox is slicing. Slicing means separating your data into subsets and looking at your system's performance on each subset separately. Slicing is not a special technique reserved for paradoxes. It is a general habit that gives a finer-grained view of how the system behaves. Each slice is a subset of the evaluation set, and the per-slice results can be read individually and also combined into the single aggregate number.
Slices can be drawn from many dimensions. The source mentions paying users versus free users, traffic from mobile versus web, and usage patterns. Each of these splits can reveal a group where performance differs from the total. Slicing only helps when you choose slices that matter for your users, so the choice of dimension is part of the evaluation design rather than an afterthought.
A single evaluation set rarely answers every question, so the source recommends maintaining several sets, each with a different purpose. One set should represent the distribution of actual production data, so you can estimate how the system does overall. Other sets should represent specific slices, so you can see how it performs on the cases that matter most. The source states the principle directly: if you care about something, put a test set on it.
Choosing a Method for Each Criterion
Different criteria often need different evaluation methods. The source gives three examples. A small, specialized toxicity classifier suits toxicity detection. Semantic similarity can measure relevance between the response and the user's original question. An AI judge can measure factual consistency between the response and the whole context. Specialized scorers and AI judges both depend on an unambiguous scoring rubric and on examples to work well.
| Criterion | Method that fits | What it measures | Dependency |
|---|---|---|---|
| Toxicity | Small specialized classifier | Whether a response is toxic | Clear rubric and examples |
| Relevance | Semantic similarity | How close the response is to the user's question | Reference content to compare against |
| Factual consistency | AI judge | Whether the response agrees with the whole context | Clear rubric and examples |
| Open-ended quality | Human experts reviewing a subset | Changes or unusual patterns in production outputs | Expert time |
Matching evaluation methods to criteria, based on the methods the source describes
Methods can also be mixed for the same criterion. A cheap classifier can give a low-quality signal on all of your data, while an expensive AI judge gives a high-quality signal on a small fraction, such as one percent. This combination gives a reasonable level of confidence while keeping costs manageable. When logprobs are available, the source recommends using them, because they measure how confident a model is about a generated token. This is especially useful for classification: if the three class probabilities are each between 30 and 40 percent, the model is not confident, and if one class is at 95 percent, the model is highly confident.
Building Annotated Evaluation Data
An evaluation method needs data with trustworthy labels to score against. You need annotated data for each component of your system and for each criterion, whether the application is evaluated turn by turn in a conversation or as a whole task. The build process follows a sequence of steps, and the scoring rubric matters at every one of them.
- 1Start from production data where possible, because it reflects the real distribution of inputs.
- 2Check whether the application already has natural labels, and use them if it does.
- 3If no natural labels exist, have humans or AI label the sampled data against the scoring rubric.
- 4Make the scoring rubric clear before labeling, because labelers cannot apply an ambiguous standard consistently.
- 5Keep the annotation guideline, since it can later be reused to create instruction data for finetuning if you decide to finetune.
The rubric is the link between the criterion and the label. A rubric defines what each score level means for a criterion, and it is the document labelers and automated judges both rely on. The source does not describe a further adjudication stage in this material, so the process above is the sequence to keep in mind: sample, label against a clear rubric, and keep the guideline for reuse.
Bootstrapping to Test Set Size
An evaluation set should be large enough that its result is reliable, but small enough to remain affordable to run. The source offers a practical check using bootstraps. Imagine an evaluation set of 100 examples, and you want to know whether a different set of 100 examples would produce a different result. You build bootstrap samples by drawing from your set with replacement, then score each one.
Suppose one bootstrap gives 90 percent and another gives 70 percent. Those two results come from resampling the same 100-example set, and they differ by 20 points. The source's reading is that the evaluation pipeline is not trustworthy at that size. Bootstrapping tests reliability, not the truth of any single number. Stable bootstrap results suggest the set is large enough for this purpose, while wildly varying results are a signal to collect more examples.
How Many Examples Are Enough
Sample size also matters when comparing two systems. Suppose a new prompt scores 10 percent higher than the old one. In theory, a statistical significance test can compute the sample size needed for a given confidence level, such as 95 percent, if you know the score distribution. In practice that distribution is hard to know, so the source offers a rough guide from OpenAI. Its rule of thumb is that for every threefold decrease in the score difference, the number of samples needed increases about tenfold. Small differences therefore demand much larger evaluation sets.
For reference, the source notes that among benchmarks in Eleuther's lm-evaluation-harness, the median benchmark has 1,000 examples and the average has 2,159. The organizers of the Inverse Scaling prize suggested 300 examples as an absolute minimum and preferred at least 1,000, especially when examples are synthesized.
Mistakes That Hide Reversals
Common mistake Choosing the winner from the overall score alone
What it looks likeModel B is selected because its overall total is higher, even though Model A is higher in both groups.
Why it failsThe overall number is weighted by how many examples fall into each group, so it can reverse the per-group ranking.
Do this insteadRead each group's percentages and counts before comparing the totals.
Common mistake Slicing on dimensions that do not matter to users
Why it failsSlicing only helps when the chosen slices reflect what your users care about, so the choice of dimension is part of the design.
Do this insteadPick slices such as user tier or traffic source that correspond to real differences in your user population.
Common mistake Treating one bootstrap result as the true score
What it looks likeA single resample gives 90 percent and the team reports 90 percent as the system's performance.
Why it failsBootstrapping tests reliability, and a single run does not show how much the result would move with a different set.
Do this insteadRun many bootstrap samples and check the spread before trusting the number.
Common mistake Using one evaluation set for every question
Why it failsA single set rarely answers every question, so it cannot represent both overall production behavior and the specific cases that matter most.
Do this insteadMaintain several sets, one representing production data and others representing important slices.
Common mistake Labeling data against an ambiguous rubric
Why it failsLabelers cannot apply an ambiguous standard consistently, so the labels will disagree with each other.
Do this insteadWrite a clear rubric that defines what each score level means before annotation begins.
Checking Your Own Evaluation
Model X scores 92 percent on Group 1 and 61 percent on Group 2, with Group 1 containing 300 of 350 examples. Model Y scores 90 percent on Group 1 and 65 percent on Group 2, with Group 1 containing 100 of 350 examples. Without calculating the totals, predict which model has the higher overall score and explain what would have to be true for the per-group ranking to disagree with the overall ranking.
Hints
- Ask which model has most of its examples in the group where its score is higher.
- Compare how much each model's overall number is pulled toward the Group 1 percentage versus the Group 2 percentage.
- Then check the arithmetic: Model X gets 0.92 times 300 plus 0.61 times 50 out of 350 examples.
A team wants to decide whether a new prompt is better than the old one, and the difference on a 100-example set is 3 percentage points. Using the rule of thumb that each threefold decrease in the score difference raises the required samples about tenfold, explain why a 100-example set is unlikely to settle this question, and suggest what a bootstrap check would show before the team trusts any result.
Hints
- Compare the 3-point difference with the 10-point difference used in the source example.
- Think about whether a set of 100 examples is close to the 1,000-example benchmark median the source mentions.
Summary of the Evaluation Chain
Trace the evaluation chain in order. Start with the overall score, then read every subgroup to see whether the ranking holds. Slice the evaluation set along dimensions that matter to users, and keep several sets for different purposes. Choose a method that fits each criterion, mix cheap and expensive signals where that helps, and build annotated data against a clear rubric. Before trusting the result, run bootstraps to check stability and consider how many examples a small difference would require.
At a glance
- A single overall evaluation score can reverse the ranking that subgroup results show, which is the core of Simpson's paradox.
- Overall scores weight each group by its size, so compare per-group results and counts before choosing a winner.
- Slice the evaluation set along dimensions that matter to users, and maintain several evaluation sets with different purposes.
- Match methods to criteria, build annotated data against a clear rubric, and use bootstrapping to check whether the set is large enough.