I gave three AI models problems hard enough to fail. Two of them did, and one was still 100% sure of every wrong answer.
The last note ended on a failure I owed a follow-up. I had tried to measure whether these models know what they don’t know, and I could not, because two of the three never got anything wrong. You cannot measure calibration on a model that does not make mistakes. The fix was obvious and annoying: I needed problems hard enough to actually make them fail. This is that.
It worked, and the answer is sharper than I expected. Of the two models I got to fail, one could not tell at all (it was, if anything, a touch more confident on its wrong answers than its right ones) and the other flinched only a little. The third did not fail at all.
How you make a model with a calculator fail
The hard part is not “hard problems.” These tools can run code, so any arithmetic question is a calculator away from solved, and a perfect score tells you nothing about the model. The trick is to make the difficulty live in reading the problem, not computing the answer. A calculator cannot help you if you have set up the wrong calculation.
So the bank is twenty-two problems where the trap is the formulation: subtle counting (how many ways to seat seven people if two refuse to sit together), counterintuitive probability (the famous two-children-one-is-a-boy-born-on-Tuesday), knights-and-knaves logic, and a few honest traps (the snail climbing out of a well, the clock-hands angle at 3:15). Every answer key is computed in Python by brute force, by enumeration or exact fraction arithmetic, so the keys are provably correct and carry none of my own recall error. That matters more than usual here, for a reason I will get to.
The design check came before the experiment: I had the audit model (GPT-5.5, with code execution, thinking hard) solve all twenty-two. It got four wrong. Good. A bank that a tool-using frontier model fails is a bank that can finally measure something.
The result: failure, and what the models did with it
Three models, each through its normal command-line tool, each problem answered three times with a stated confidence. The scoring is deterministic, no judge.
| model | accuracy | overconfidence | can its confidence tell right from wrong? |
|---|---|---|---|
| Gemini 3.1 | 22 / 22 | none, never wrong | no errors to tell apart |
| GPT-5.5 | 0.94 | +0.06 | no (0.48, below a coin flip) |
| Opus 4.8 | 0.95 | +0.04 | a little (0.70) |
Two of those columns need a plain-words gloss. Overconfidence is just the average confidence minus the average accuracy: how much more sure the model claims to be than it has earned. A +0.06 means it stated, on average, six points more confidence than its hit rate justified. The last column is the discrimination score: the probability that a model was more confident on a right answer than on a wrong one. Half is a coin flip, meaning confidence tells you nothing about correctness. One is perfect. Read it as “if I picked one answer it got right and one it got wrong, how often is it more sure of the right one.”
- GPT-5.5 got four answers wrong and stated 100% confidence on every single one. Its average confidence on those wrong answers (100.0) is, if anything, a hair higher than on its right ones (99.97, where a couple of correct answers earned a 99). That tiny gap runs the wrong way, and it is what tips its discrimination score just under a coin flip, to 0.48. With only four misses that figure is noise, not a real anti-signal, so do not over-read the exact number. But the plain fact under it holds: nothing in its confidence tells its wrong answers apart from its right ones. The misses were not careless, either: a round-table count it set up wrong (it answered 360, the answer is 480), a card-probability it got wrong twice (11/100 and 11/425, the answer is 22/425), and the logic puzzle below. It was 100% sure of all of them.
- Opus 4.8 got three wrong, all of them the same knights-and-knaves puzzle below, and it lowered its confidence on them: 95, 99, 99, against a 99 average on the ones it got right. A small gap. But it is the only real calibration signal in either of these two studies, the only case where a model’s confidence leaned, even slightly, toward its own mistakes.
- Gemini 3.1 did not fail at all. It aced all twenty-two of even these problems, with its tools, and stamped 100% on every answer. Still untestable by ceiling, still the most pinned model I have measured.

The picture is the whole finding. Each mark is one answer; green is right, a red X is wrong. For GPT the red sits at 100%, buried in the green. For Opus the red slides left, away from the green. For Gemini there is no red.
The hardest problem, and the moment I had to distrust my own answer key
One problem did most of the damage: a knights-and-knaves puzzle, the kind where knights always tell the truth and knaves always lie. A says “B is a knave.” B says “A and I are of opposite types.” What is B? Opus got it wrong all three times, GPT once, and the audit model got it wrong too. The answer, they all agreed, was knave.
My Python said knight.
This is exactly the situation the whole method exists for. When the thing being measured disagrees with the measurer, the smart money is on the measurer being wrong. So I did not trust my script. I re-derived it by hand, twice. If A is a knight, then “B is a knave” is true, so B is a knave, so B’s statement must be a lie, but “A and I are opposite types” is true when A is a knight and B is a knave, so a knave told the truth, which is a contradiction. If A is a knave, then “B is a knave” is a lie, so B is a knight, and B truthfully says they are opposite types, which they are. Only the second world holds. B is a knight. The key is right, and two distinct models share the same wrong answer on it: Opus 4.8, and GPT-5.5 twice over, once as a graded subject and once in its audit configuration (the audit model here is GPT-5.5 with tools, not a third family).
That is its own small finding, and it is the reason I brute-force every key and re-check the ones the models contest. The cheap version of this study would have “corrected” my key to match the models and reported a clean null. The honest version keeps the key and reports that the models were confidently, agreeably wrong.
What it adds
The first calibration note found an expression gradient with no errors to test it against: Gemini said 100% to everything, GPT nearly so, Opus used a range. This note has the errors, and the gradient holds as a real calibration ordering. When there is finally something to get wrong, Gemini still does not get it wrong, GPT gets it wrong with total confidence, and Opus gets it wrong and is the only one that flinches. The same ordering keeps surfacing across this series, Gemini and GPT pinned and Opus the one that moves, now with the one thing the earlier calibration note was missing: actual mistakes to measure against.
Honest limits
The wrong-answer counts are small, four for GPT and three for Opus, so those discrimination scores are estimates over a handful of misses, not precise numbers; what I would stand behind is the direction and the gap between the models, not the second decimal. The same caution applies to the overconfidence figures, whose error bars comfortably include zero. Gemini is still untestable, its 100%-everywhere an expression fact rather than a measured calibration. These are production command-line tools with code execution available, which I logged rather than disabled, and which only sharpens the point: even with a calculator in reach, GPT and Opus failed problems they had to read correctly first, and GPT could not tell it had. Twenty-two items, three reps, same deterministic scorer as before with the same confidence-parsing fix carried over.
The next bank does not need to be harder. This one made the point. The point is that for the one model I could make fail confidently, the willingness to say “100%” survived being wrong completely; the other model that failed barely flinched; and the third did not fail at all. None of the three got loud about its own uncertainty when it mattered.
Method, for anyone who wants to check it. Three models through their normal command-line tools, $0, no API keys. Twenty-two formulation-hard items with answers computed by brute force in Python (enumeration and exact fractions), independently re-solved by the audit model before any confidence number was read, and the one all-models-disputed item re-derived twice by hand. Each item answered three times per model with a stated confidence; scoring is deterministic, no judge, so it reproduces from the saved responses. The generator (which both writes the questions and proves their keys), the runner, the deterministic metrics, and the figure script are in the experiment directory.
This is the seventh in a series on how AI models behave when you measure them honestly. The others, and the through-line, are on the trutina landing page.