
Image by Author
Model A scores 87.3% accuracy. Model B scores 87.9%. Should you switch?
If you’ve spent time evaluating models, you’ve faced some version of this question. A leaderboard shows two models separated by a fraction of a percent, and you need to decide whether that gap is meaningful. The uncomfortable truth is that most benchmark comparisons skip the one step that would answer this directly: quantifying uncertainty. This article explains what benchmark scores actually are statistically, how confidence intervals change the way you read them, and how to compare two models without fooling yourself.
What a Benchmark Score Actually Is
A benchmark score, whether accuracy, F1, AUC, or anything else, is a sample statistic. It’s an estimate computed on a finite test set, not a fixed property of the model itself.
This distinction matters. If you evaluated the same model on a different random sample drawn from the same population, you’d get a slightly different number. The score you observe is just one draw from a distribution of possible scores. Like any sample statistic, it carries sampling variability, and that variability depends heavily on how large your test set is.
A useful analogy: flip a fair coin 100 times and get 53 heads. Your estimate of the true probability is 0.53, but the true value is 0.50. The difference isn’t a property of the coin; it’s noise from a small sample. Benchmark scores work the same way.
Confidence Intervals Around Benchmark Metrics
A confidence interval gives you a range that, at a chosen confidence level, is likely to contain the true model performance. Instead of reporting “87.9% accuracy,” you report “87.9% accuracy (95% CI: 85.8% to 89.8%).”
For accuracy, which is a proportion, the Wilson score interval is the standard approach. It performs well even with smaller samples and avoids the odd behavior that simpler approximations produce near 0% or 100%.
For metrics like AUC or F1, which aren’t simple proportions, bootstrapping is the way to go. The idea is straightforward: resample your test set with replacement many times, compute the metric on each resample, then take the 2.5th and 97.5th percentiles of that distribution as your 95% confidence interval. This approach makes no assumptions about the metric’s distribution and works for almost any evaluation measure you might use.
The width of a confidence interval also tells you something important about the reliability of a benchmark. A test set of 1,000 examples produces much wider intervals than one of 10,000. Many public benchmarks use test sets in the 1,000 to 5,000 range, which means adjacent scores on leaderboards are often separated by less than the margin of error.
Comparing Two Models Statistically
Once you have confidence intervals, a practical rule of thumb applies: if the intervals of two models overlap substantially, the difference between them isn’t meaningful. You can’t distinguish their true performance based on that data alone.
When you want a formal test, the right method depends on what you’re measuring and how the data are structured.
For binary classifiers evaluated on the same test set, McNemar’s test is the right tool. It focuses specifically on the examples where the two models disagree. If Model A gets 50 examples right that Model B misses, and Model B gets 50 right that Model A misses, the disagreements are balanced and there’s no evidence of a real difference. If the disagreements are lopsided, say Model A gets 80 right that Model B misses while Model B only gets 20 that Model A misses, that asymmetry is evidence of a genuine gap.
The reason to use a paired test like McNemar’s, rather than two independent proportion tests, is that both models are evaluated on the same examples. Those observations are correlated, and ignoring that correlation leads to misleading results.
For regression metrics or any custom evaluation measure, a bootstrap permutation test offers the most flexibility. You permute the assignment of predictions to models many times to build a null distribution, then check where the observed difference falls within it.
A More Honest Way to Read Leaderboards
Consider three models with the following scores on a 1,000-example test set:
| Model | Accuracy | 95% CI |
|---|---|---|
| Model A | 87.9% | 85.8% to 89.8% |
| Model B | 87.3% | 85.2% to 89.3% |
| Model C | 85.1% | 82.8% to 87.3% |
The point estimates rank the models A, B, C. But the confidence intervals tell a different story. Models A and B are statistically indistinguishable; their intervals overlap almost entirely. Model C may genuinely be worse, though its upper bound still reaches Model B’s lower bound.
Leaderboards that show only point estimates hide this. They encourage decisions based on differences that are entirely consistent with random variation in the test set.
One more trap worth knowing: if you compare many models against each other, you’ll eventually find a “significant” difference by chance. Testing 20 models at a significance level of 0.05 gives you roughly a one-in-three chance of at least one false positive. When evaluating a large pool of candidates, adjust your significance threshold or apply a correction like Bonferroni to account for the number of comparisons.
Conclusion
Benchmark scores are estimates, not ground truth. Getting into the habit of computing confidence intervals before making deployment decisions adds almost no overhead and substantially cuts the risk of switching models for no real reason. Before acting on a leaderboard gap, ask whether it exceeds what sampling variability alone could explain. Most of the time, it doesn’t.

This article motivates me to try these techniques, but I feel too much like a novice. I wish the author had provided some data sets to illustrate his teachings.
Hi Norman…Thank you for your feedback! Let us know specifically what you would like to investigate further and we can help with recommendations.