DASS › AI evaluation › Compare two models

AI evaluation · free tool

Is model A really better than model B?

When two models answer the same eval items, a gap in accuracy can be real or just luck of the draw. Enter how often each model got items right and you get the gap with a confidence interval and a paired significance test.

Your eval results

How do you want to enter results?

Number of items in each cell. Every item is scored right or wrong for both models.

Model B rightModel B wrong Model A right Model A wrong

The shaded cells are the items where the models disagree. They decide the test.

Confidence level

Result

Summary you can paste into a report

Detailed results

Why a two-point lead often proves nothing

Suppose model A scores 87.0% on a 200-item eval and model B scores 84.5%. It looks like A is better. But the two models agreed on 177 of the 200 items, both right or both wrong, and those items say nothing about which is better. The comparison rests on the 23 items where they disagreed: A alone was right on 14, B alone on 9. A 14-to-9 split is well within what you would see if the models were equally good (mid-p = .31), and the 95% interval for A's true advantage runs from about −2.3 to +7.2 points. This eval cannot tell the two models apart. On a 500-item eval with a similar gap, 83.0% against 79.4% and a 38-to-20 split of the disagreements, it can (mid-p = .018). The calculator above starts with the 200-item example; replace it with your own counts.

Why the test has to be paired

Both models answered the same items, so their scores are not independent: easy items tend to be easy for both. A test that treats the two accuracies as separate samples, such as a two-proportion z-test, ignores that and usually overstates the uncertainty, hiding real differences. The paired approach, McNemar's test, looks only at the items where the models disagree, which is where the information is.

What the calculator reports

Before you trust the result

Checked against R and Python

The calculations run in your browser and were compared case by case with R (binom.test, mcnemar.test, qnorm) and with SciPy (binomtest, chi2.sf, norm.ppf) across 369 scenarios, from 10 to 20,000 items. Every p-value agreed to within 1 part in a billion and every interval bound to within 10−12. The code panel above reproduces your result in either language.

Sources

Common questions

Why can't I just compare the two accuracy scores?

Both models answered the same items, so their scores are not independent. Only the items where they disagree carry information. In the page's example the models agreed on 177 of 200 items, and a 14-to-9 split on the rest (mid-p = .31) is well within what equally good models would produce.

Which test does the calculator use?

McNemar's test, reported as a mid-p value (the exact and chi-square versions are listed for reference), plus an Agresti–Min confidence interval for the accuracy gap. Fagerland and colleagues (2013) found the mid-p version stays close to its nominal error rate in small and large samples.

How many items do I need?

It depends on the gap and on how often the models disagree. In the page's example, a 200-item eval could not separate scores of 87.0% and 84.5%, while a 500-item eval with a similar gap and a 38-to-20 split could (mid-p = .018). See How many test items does an AI eval need?

What can make the result unreliable?

Items that are not independent (such as several questions about one document), sampled outputs with only one run per item, many comparisons that inflate false wins, and prompts or settings tuned on the same eval. Hold out items you never looked at.

Is my data sent anywhere?

No. The calculations run in your browser, and nothing you enter or paste is sent anywhere or stored.

How was the calculator checked?

Its calculations were compared case by case with R and SciPy across 369 scenarios, from 10 to 20,000 items. Every p-value agreed to within 1 part in a billion.