DASS › AI evaluation › Compare two models
AI evaluation · free tool
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.
The shaded cells are the items where the models disagree. They decide the test.
Two columns, A then B: 1/0, true/false, pass/fail or correct/incorrect, separated by a comma, tab or space. A header row is fine. Paste straight from a spreadsheet.
Confidence level
Result
Summary you can paste into a report
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.
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.
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.
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.
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.
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?
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.
No. The calculations run in your browser, and nothing you enter or paste is sent anywhere or stored.
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.