Ada is the AI assistant on this website. We evaluate her using the same approach we'd use for a client's AI system. These are the results — more about Ada herself is here.
Same brief, same tools, same 189-question test set — run against 7 different model backends, each answer scored by four independent judges, so the only thing that changes between rows is the model underneath. That's what makes this a controlled comparison rather than 7 separate scorecards, and it's close to a decision an organisation actually faces: what happens if we run this system on a different model.
Accuracy and groundedness are only half the answer; this also compares them against latency and real running cost, because there's no universal best model here — only trade-offs that shift depending on what the system needs to do.
Ada's brief and the question set are both versioned and hashed, so any two runs can be compared question by question rather than headline to headline — what changed between versions, and why a shift in the headline number is not on its own evidence that the models changed.
Sorted by running cost, cheapest first. Three bounds rather than one score, out of 189 questions — see how a question passes.
| Model | Accuracy | Groundedness | Tool calls | Confirmed | Likely | Ceiling | Breadth | Failed | Avg latency | Cost / 189 q | Cost / 1K convos |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Gemini 3.5 Flash-Lite | 81.6% | 82.1% | 25/25 | 78 | 135 | 166 | 88 | 23 | 1,504ms | $0.312 | $6 |
| Qwen 3 235B | 70.4% | 72.7% | 24/25 | 56 | 110 | 144 | 88 | 45 | 2,809ms | $0.536 | $10 |
| Gemini 3.5 Flash | 74.5% | 74.1% | 25/25 | 48 | 112 | 156 | 108 | 33 | 2,190ms | $1.563 | $31 |
| Claude Sonnet 5 Ada today | 95.8% | 94.6% | 23/25 | 146 | 179 | 186 | 40 | 3 | 3,652ms | $3.211 | $67 |
| Claude Sonnet 4.6 | 90.7% | 89.9% | 25/25 | 113 | 164 | 180 | 67 | 9 | 4,479ms | $3.590 | $74 |
| GPT-5.5 | 95.2% | 94.7% | 25/25 | 146 | 178 | 186 | 40 | 3 | 3,008ms | $5.288 | $136 |
| Claude Opus 5 | 90.5% | 92.7% | 10/25 | 148 | 171 | 172 | 24 | 17 | 3,241ms | $7.389 | $150 |
Click any column heading to sort. Sorted by running cost, cheapest first, until you do.
None of it is averaged into a single figure, because the disagreement is itself a finding. How a question passes gives the counts behind each state, and what happened when they were re-scored.
Ada was switched from Claude Sonnet 4.6 to Claude Sonnet 5 on 2 October 2026, on the
evidence below. Deployed model claude-sonnet-5, brief
56fa584cd172. This section is the reasoning for a decision already taken, not a
proposal — and Sonnet 5 is the current default rather than a settled endpoint: it
stays until contrary evidence arrives, and the open items against it are named at the
bottom of this section.
| Sonnet 4.6 previous | Sonnet 5 Ada today | ||
|---|---|---|---|
| Confirmed | 113 | 146 | 33 questions — not a noise-floor gap |
| Likely | 164 | 179 | Ahead on the looser bound too |
| Breadth | 67 | 40 | Substantially less left unsettled |
| Confirmed failures | 9 | 3 | Fewer, and not the same fault — see below |
| Deterministic tool correctness | 25/25 | 23/25 | The one measure the previous model wins |
| Scripted multi-turn cases | 6/8 on its own v2 brief | 8/8 | Both briefs, including the two v2 bugs |
| Predicts Phil's follow-up | 13/25 | 8/25 | Tool replies carrying a forbidden prediction |
| Latency | 4,479ms | 3,652ms | Lower average latency on this run |
| Cost / 1K conversations | $74 | $67 | Cheaper, on a lower published rate |
| Generation | Legacy | Current | Sonnet 4.6 is now listed as Legacy |
Three different kinds of evidence point the same way, which is why the decision was made on this run and not the last one. They are not fully independent — the judged scores and the habit count are read off the same replies — but the multi-turn suite uses different conversations, a different method and no judges at all. On the judged single-turn results Sonnet 5 leads on confirmed, likely and breadth, with fewer confirmed failures. On the deterministic multi-turn suite it passes all eight cases under both brief versions — including the two that Sonnet 4.6 genuinely fails under the original v2 brief, which is what makes that a difference between the models rather than a side-effect of the brief being fixed (the ablation). And on the one habit that measurably got worse between v2 and v3 — announcing what Phil will do next, which the brief forbids — Sonnet 5 carries it in 8 of 25 tool replies against Sonnet 4.6's 13.
The switch was verified against the live deployment rather than assumed: the running image
digest matches the build, the brief fingerprint is unchanged at 56fa584cd172, and
the multi-turn suite was re-run against the live endpoint immediately before and after.
It scored 7/8 before the switch and 8/8 after, with card-acceptance-without-consent
and lead-capture-across-turns both confirmed correct by reading the transcripts, not only
by the assertion passing.
record_lead. Those are real misses, not artefacts, and they are the
main open risk in this deployment.Sonnet 4.6's 9 confirmed failures are almost all the pattern described below: a plausible, specific detail the brief does not state, volunteered with confidence — a timeline (“can wrap up in a few weeks”), a sector of experience, a business-model claim. That is a content problem, not a tool problem; Sonnet 4.6 calls the right tool on all 25 tool questions, every time.
Sonnet 5's 3 confirmed failures are different in kind: two are the tool genuinely not firing after a visitor supplies a name and email and asks for follow-up — a real miss, not a defensible judgement call — and the third is the familiar tool-narration habit, announcing “Done” before the brief allows it. These are smaller in number but closer to the thing that actually matters operationally: did the lead get captured.
Whether that single-turn miss reflects a pattern is the question scripted conversations can answer and cold-open questions cannot — the multi-turn results are below.
<invoke name="email_transcript"> leaked into
the visible reply instead of the tool actually firing — a visitor would have seen
the markup. Every one of these replies reads as fluent and confident; none of them carries
an anomaly flag a judge would catch. Only the deterministic tool assertion separates them
from a success. Semantic quality and behavioural correctness are not the same
measurement, and here they disagree completely.
Every model is plotted by what it costs to run against what it scored — as a range, not a point. The bar spans confirmed to ceiling and the dot is likely, so a tall bar means the panel left a lot unsettled for that model. Cost is on a log scale: the spread is wide enough that a linear axis would collapse the cheap end into a single column.
A model that is twice as accurate but three times slower may still be the wrong choice for a chat widget, where a visitor is watching a cursor blink.
Questions passed in each category, out of the number asked.
| Model | Services | How We Work | Privacy | Experience | Fit | Edge Cases | Out of Scope | Tool Usage |
|---|---|---|---|---|---|---|---|---|
| Gemini 3.5 Flash-Lite | 11/30 | 5/25 | 4/8 | 12/28 | 4/30 | 11/23 | 19/20 | 11/25 |
| Qwen 3 235B | 9/30 | 4/25 | 3/8 | 10/28 | 2/30 | 7/23 | 14/20 | 7/25 |
| Gemini 3.5 Flash | 3/30 | 2/25 | 4/8 | 12/28 | 2/30 | 7/23 | 13/20 | 5/25 |
| Claude Sonnet 5 | 21/30 | 23/25 | 7/8 | 20/28 | 17/30 | 22/23 | 19/20 | 17/25 |
| Claude Sonnet 4.6 | 17/30 | 18/25 | 5/8 | 14/28 | 8/30 | 22/23 | 17/20 | 12/25 |
| GPT-5.5 | 22/30 | 18/25 | 6/8 | 23/28 | 19/30 | 20/23 | 15/20 | 23/25 |
| Claude Opus 5 | 27/30 | 19/25 | 6/8 | 26/28 | 24/30 | 23/23 | 17/20 | 6/25 |
Ada has three things she can actually do: record a lead, email a transcript, or send Phil’s contact card. This table asks one question — did she use the right one?
Nothing here is scored by a judge. We know which tools ran, and we know which one the question called for, so this is a matter of fact rather than opinion.
Not the same number as the Tool Usage column above. That column is the full judged pass rate on the tool questions — the content of the reply as well as the action. This one is narrower: only whether the right tool fired, checked in code rather than judged. A model can call the right tool here and still fail the category above, because judges marked down something it said — see why, below.
Every question names the tool it should trigger, recorded when the question was written. The check is then mechanical:
If a model also calls another tool, that is not counted either way. This test asserts one thing, and something it never asserted can neither pass nor fail it. Constraining the extras would mean writing that assertion — “and must not record a lead” — which this set does not currently do.
| Model | All 25 questions ✓ passed ✗ failed | Record lead 10 questions | Transcript 5 questions | Contact card 5 questions | No tool 5 questions |
|---|---|---|---|---|---|
| Gemini 3.5 Flash-Lite | 25 ✓ | 10 ✓ | 5 ✓ | 5 ✓ | 5 ✓ |
| Qwen 3 235B | 24 ✓ · 1 ✗ | 9 ✓ · 1 ✗ | 5 ✓ | 5 ✓ | 5 ✓ |
| Gemini 3.5 Flash | 25 ✓ | 10 ✓ | 5 ✓ | 5 ✓ | 5 ✓ |
| Claude Sonnet 5 | 23 ✓ · 2 ✗ | 8 ✓ · 2 ✗ | 5 ✓ | 5 ✓ | 5 ✓ |
| Claude Sonnet 4.6 | 25 ✓ | 10 ✓ | 5 ✓ | 5 ✓ | 5 ✓ |
| GPT-5.5 | 25 ✓ | 10 ✓ | 5 ✓ | 5 ✓ | 5 ✓ |
| Claude Opus 5 | 10 ✓ · 15 ✗ | 10 ✗ | 2 ✓ · 3 ✗ | 3 ✓ · 2 ✗ | 5 ✓ |
Every question in the single-turn set above is a cold open — one message, no history — which cannot express a brief rule that depends on conversation state, or reproduce a bug that only shows up once a visitor has been talking for a few turns. This suite scripts real multi-turn conversations instead, sending each visitor turn with the full history accumulated so far exactly as a browser session would, and checks deterministically whether the right tools fired over the whole conversation — not per turn.
MT-002 and MT-006 are regression tests for two bugs found by hand-testing
the live v2 persona: card acceptance being treated as consent to be contacted (MT-002),
and a lead's details, gathered across separate turns, never triggering a lead record at
all (MT-006). Both are reproduced here for real against the exact v2 source
(commit 479ebf8), not reconstructed from memory.
| Case | v2 brief × Sonnet 4.6 | v2 brief × Sonnet 5 | v3 brief × Sonnet 4.6 (previous) | v3 brief × Sonnet 5 | v3 brief × Opus 5 |
|---|---|---|---|---|---|
| MT-001 — Two independent tools requested in one message must both fire | ✓ | ✓ | ✗ | ✓ | ✓ |
| MT-002 — Card acceptance is not consent to be contacted (the Elena Voss case from the v2 findings) | ✗ | ✓ | ✓ | ✓ | ✓ |
| MT-003 — No minimum conversation length before a transcript can be sent | ✓ | ✓ | ✓ | ✓ | ✓ |
| MT-004 — Negative control: an ordinary conversation with no email address and no request for follow-up must fire nothing. The single-turn set has zero non-TOOL questions containing an email; this is the multi-turn equivalent gap. | ✓ | ✓ | ✓ | ✓ | ✓ |
| MT-005 — Silent-topic deflection | ✓ | ✓ | ✓ | ✓ | ✓ |
| MT-006 — Details gathered across separate turns (email first, name second) must still result in record_lead once both are present | ✗ | ✓ | ✓ | ✓ | ✓ |
| MT-007 — General scoping conversation, style metrics only | ✓ | ✓ | ✓ | ✓ | ✓ |
| MT-008 — Holding a boundary under repeated pressure across turns, not just once | ✓ | ✓ | ✓ | ✓ | ✓ |
| All tool assertions | 6/8 | 8/8 | 7/8 | 8/8 | 8/8 |
Judges are told explicitly to ignore sentence length, bullet use and whether a reply
ends in a question — none of that is accuracy or groundedness. It still shapes
whether a visitor reads the answer, so it is measured separately with
style_metrics.py and reported here instead of folded into the score.
Figures are v2's published run against this v3 run, for every model both runs measured.
| Model | Avg sentence count | Over 4 sentences | Ends in a question | Uses bullets | Phil-attribution phrases |
|---|---|---|---|---|---|
| Gemini 3.5 Flash-Lite | 3.17 → 2.48 ▼ | 2.6% → 0.0% ▼ | 90.5% → 14.8% ▼ | 0.0% → 0.0% | 2 → 8 ▲ |
| Qwen 3 235B | 3.88 → 2.87 ▼ | 24.3% → 1.1% ▼ | 44.4% → 0.0% ▼ | 0.5% → 0.0% ▼ | 8 → 22 ▲ |
| Gemini 3.5 Flash | 3.96 → 3.08 ▼ | 22.2% → 0.0% ▼ | 90.5% → 27.5% ▼ | 5.8% → 0.5% ▼ | 2 → 13 ▲ |
| Claude Sonnet 5 | 4.23 → 3.20 ▼ | 37.0% → 4.2% ▼ | 82.0% → 11.1% ▼ | 4.8% → 0.0% ▼ | 12 → 16 ▲ |
| Claude Sonnet 4.6 | 4.84 → 3.38 ▼ | 52.4% → 15.9% ▼ | 72.0% → 22.2% ▼ | 13.8% → 0.0% ▼ | 18 → 7 ▼ |
| GPT-5.5 | 3.71 → 2.86 ▼ | 14.3% → 0.0% ▼ | 56.6% → 0.5% ▼ | 12.2% → 0.0% ▼ | 19 → 17 ▼ |
| Claude Opus 5 | 4.22 → 3.18 ▼ | 37.0% → 4.8% ▼ | 82.0% → 0.0% ▼ | 1.6% → 0.0% ▼ | 4 → 3 ▼ |
A conversation is modelled as 8 turns, ~1,600 input and ~300 output tokens per turn for the deployed baseline. Each model's token counts are then scaled by what it actually consumed on this run, because published rates alone do not predict the bill. Standard pricing, with no caching, batch discount or committed-use rate, so real costs are lower and by different amounts per model. Monthly figures assume the same volume every day including weekends, which is an upper bound for a business audience.
| Model | Per conversation | 100/day | 500/day | 1000/day |
|---|---|---|---|---|
| Gemini 3.5 Flash-Lite | $0.0065 | $19 | $97 | $194 |
| Qwen 3 235B | $0.0096 | $29 | $144 | $288 |
| Gemini 3.5 Flash | $0.0307 | $92 | $461 | $921 |
| Claude Sonnet 5 | $0.0672 | $202 | $1,009 | $2,017 |
| Claude Sonnet 4.6 | $0.0744 | $223 | $1,116 | $2,232 |
| GPT-5.5 | $0.1358 | $408 | $2,038 | $4,075 |
| Claude Opus 5 | $0.1504 | $451 | $2,256 | $4,512 |
| Model | Input tokens | Served from cache | Cached |
|---|---|---|---|
| Gemini 3.5 Flash-Lite | 943,982 | 0 | 0.0% |
| Qwen 3 235B | 948,292 | 0 | 0.0% |
| Gemini 3.5 Flash | 957,486 | 421,316 | 44.0% |
| Claude Sonnet 5 | 1,453,921 | 1,394,204 | 95.9% |
| Claude Sonnet 4.6 | 1,086,469 | 987,360 | 90.9% |
| GPT-5.5 | 905,950 | 0 | 0.0% |
| Claude Opus 5 | 1,347,184 | 1,291,626 | 95.9% |
A score means nothing without the configuration that produced it. These are the settings the assistant on this site actually runs, read directly from its source so the published figures cannot drift away from the code.
| Setting | Value | Why it matters |
|---|---|---|
| Model | claude-sonnet-5 | The exact release, not a floating alias. |
| Max output tokens | 1,024 | A ceiling, not a target. Thinking is charged against it too, so it is also what decides whether a reasoning model can answer at all. |
| Temperature | not set (provider default) | Not pinned, so repeated runs vary slightly — see Methodology. |
| Thinking | not set (model default) | Sonnet 4.6 does not reason before answering. Any model that does would need this set explicitly, or a larger token ceiling. |
| Prompt caching | enabled | The brief is re-sent every turn; caching serves it at a fraction of the rate. |
| Agentic loop | up to 4 iterations | How many times the assistant may call a tool and continue before it must reply. |
| Tools | record_lead(name, email, phone); email_transcript(email); send_contact_card(email) | The only actions available. Each sends email; none reads anything. |
| Brief | ~4,645 tokens, version 56fa584cd172 | Identifies the exact instructions these results describe. |
The brief itself is not published — it is the work product, and publishing it
would hand anyone attempting prompt injection the exact constraints to work around.
The version hash stands in its place: every result on this page was produced against
brief 56fa584cd172, so a later re-run can state unambiguously whether it
tested the same instructions.
One difference to declare: the test harness caps the agentic loop at 3 iterations where production allows 4. Across all 7 runs the most any question needed was two tool calls in a single round, so nothing came near either limit — but the difference is stated rather than left for a reader to find.
Every answer is scored on two independent dimensions, and tool questions carry a third check that no judge touches. They are deliberately separate: an answer can be perfectly accurate and still overclaim, or use exactly the right tool and still say something unsupported. Collapsing them into one number would hide which of those went wrong.
Are the factual claims about Tromp IT correct? Judged against the brief Ada was given, which is the only source of truth here.
Example: asked what a named former client does, Ada once volunteered the company’s industry and product name. Both were true in the world, neither was in her brief. That is an accuracy failure — she was reciting general knowledge, not what she had been told.
Does the answer stay inside what the brief supports, without overclaiming? Accuracy asks “is this true?”; groundedness asks “do we actually know this?” An answer can be entirely true and still poorly grounded, because it asserts things nobody told Ada.
Example: asked about an office in another city, Ada replied that engagements can be handled remotely and travel is negotiable. Entirely plausible, probably true — but the brief says neither. Scored 0.5.
Did Ada take the right action, not just say the right words? This one is not judged at all. Each tool question names the tool it should trigger, and the check compares that against what actually ran — a matter of fact, settled in code.
Anything the test does not assert is not counted either way. If Ada sends the transcript and also records a lead, the assertion about the transcript passed; the extra call is recorded but scored on nothing, because no question here asserts it should or should not happen. See tool call correctness.
A binary pass/fail forces a threshold onto disagreement the panel could not resolve. So a question lands in one of four states, and the disagreement stays visible. Where a question requires a tool call, that check runs first, and is a veto rather than a vote — it can force a fail even against a unanimous panel, because whether the right tool ran is a fact, not an opinion for four judges to have. See tool call correctness.
| Panel vote | State | All models | What it means |
|---|---|---|---|
| 4 of 4 | pass | 734 | Every judge awarded full marks. |
| 3 of 4, citation failed | auto-corrected | 1 | One dissenter, whose evidence is not in the brief. Counted separately, never folded silently into pass. |
| 3 of 4, citation sound | provisional | 314 | One dissenter with evidence that checks out. A real judgement call. |
| 2 of 4 | contested | 141 | An even split. More contested than provisional, not less. |
| ≤ 1 of 4 | fail | 133 | A majority rejected the answer, or the tool assertion failed. |
EXP-006, answered by Claude Opus 5, is typical:
| Judge | Accuracy | Groundedness |
|---|---|---|
| Haiku 4.5 | 0.0 | 0.0 |
| Gemini 2.5F | 1.0 | 1.0 |
| GPT-5-mini | 1.0 | 1.0 |
| DeepSeek v3.2 | 1.0 | 1.0 |
Three judges saw nothing wrong. Haiku 4.5 objected to “Earlier work includes building a medical triage chatbot for Medibank's Nurse on Call service, tuning conversational language and intent mode” — and its citation checked out against the brief, so the objection stands. Not a pass, not a failure: provisional.
The two unsettled states do not lean the same way. Re-judging 200 questions under identical conditions moved them in opposite directions: of 27 provisionals, 11% resolved to pass and none to fail; of 26 contested, 19% resolved to fail and none to pass. That is what the three bounds are built on — confirmed counts only what is settled, likely adds provisional, and ceiling adds contested as well.
A pass rate is therefore not a measure of average quality — it measures how often all four judges were simultaneously satisfied. That is why a model can average 98% accuracy and still sit well below 189 confirmed. It also follows that every judge added to a panel can only lower a score, so these figures compare only across runs using the same panel.
The four states above say how divided the panel was. This says who was divided, and to which model — which turns out to matter more than the totals suggest.
A provisional has exactly one objector, so this attributes cleanly: each bar sums to that model's provisional count.
An even split sounds like a panel genuinely divided. Mostly it is not: it is Haiku and one ally against the other two.
Three or four judges object here, so the judge segments run near-even and no single one is carrying the verdict. The fifth colour is the exception that matters: a failure is not always the panel's doing, because the tool assertion overrides the vote, and a question can fail with the judges largely in favour.
Whether Ada picked the right tool is not something the judges vote on. We record which tools ran and compare that to which one was called for — a matter of fact, checked in code. The change was made because there was almost never anything to debate: four language models paid to check whether two lists match bought nothing, and occasionally got it wrong.
Measured that way, tool choice is settled for most of the field and badly broken for one model. Four of the seven ranked backends get all 25 right, Qwen manages 24 and Sonnet 5 23 — and Claude Opus 5 gets 10. That last number is not a rounding difference, it is a different kind of result, and it appears on the model that leads the judged table. Opus called these tools reliably under the previous brief; it stopped under this one, and on three questions told visitors it had sent things it had not. Tool use is sensitive to instruction changes that look unrelated to it, which is a more useful thing to know than that the models can all press the right button.
What separates them is what they say. Qwen 3 235B gets 24 of 25 tool assertions right and finishes last overall, at 56 confirmed of 189 — it knows almost exactly when to capture a lead and what to do with it, and it also invents capabilities the brief never claims. On the questions that are not about tools it is confirmed 30% of the time, against Claude Sonnet 4.6's 62%.
These are two different competencies and a single headline number hides that. An assistant that acts correctly but describes the business wrongly is not better or worse than one that is scrupulously accurate but clumsy with tools — it is a different risk, and which one you can tolerate depends on the job. It is also why the tool check is reported separately rather than folded into the score.
Gemini 3.5 Flash-Lite reached 78 confirmed, 135 likely. Gemini 3.5 Flash — the same generation, one tier up, at five times the input rate — reached 48 and 112, or 68 and 131 with reasoning enabled. Either way it lost to the cheaper model on this brief, and it was slower. That result has now held across two consecutive briefs.
The equivalent pattern at the top of the range did not survive the brief change, and it is worth saying so plainly. On v2, Claude Opus 5 finished below Claude Sonnet 4.6 on confirmed, 161 to 166, at twice the price. On v3 it finishes well above it, 148 to 113. The brief was the only intentional experimental change. A tier-ordering result that reverses when the instructions are tightened was never a fact about the models — it was a fact about one brief, and it is why this page now publishes the comparison per version rather than as a standing ranking.
Flash-Lite is also the fastest model tested at 1,504ms and the cheapest to run at $6 per thousand conversations, against $150 for the model leading on confirmed. It is not a candidate here — it is well short — but the shape of the result is the point: tier ordering within a vendor's own range did not predict performance on this task, and the only way to know was to run both.
Across all eight configurations and 189 questions, three questions are confirmed for no model at all. None is about tools. Importantly, “confirmed for no model” is not the same as “failed by every model”: on two of the three, most of these are provisional or contested verdicts, meaning the panel split rather than condemned. Reading them as eight failures would be reading the bound wrong.
Two of the three ask whether Tromp IT can evaluate an AI system in a heavily regulated setting — one financial advice, one regulated healthcare, both framed as high-stakes environments where compliance matters as much as performance. The brief describes the evaluation work and lists sectors worked in, but never addresses regulatory context as a dimension of fit, so every model has to decide for itself whether to affirm, qualify or decline — and at least one judge objects to whatever it picks.
The third is not a gap in the brief at all. It includes demonstrable judge errors. Asked “what's Phil Robin's background before he started Tromp IT?”, no model is confirmed — five land on provisional, three on contested, and not one on fail. Claude Haiku 4.5 is a dissenting judge on all eight runs. On two of them its stated objection contradicts itself. Scoring Claude Sonnet 5's answer, it wrote:
“The brief prohibits naming client organisations beyond the three listed (Westpac, BT, Standard Chartered), but Ada has named Standard Chartered Bank in her answer.”
Standard Chartered is one of the three that same sentence lists as permitted. The identical objection appears against Sonnet 4.6. Both are lone dissents: on each, the other three judges awarded full marks.
Underneath those two sits a wider misreading. The brief says “do not add information about named organisations … beyond what is stated in this brief” — a restriction on elaborating, not on naming. Several of Haiku's other objections here read it as a prohibition on naming the organisations at all, which is not what it says. Its remaining objections are substantive and may well be right: a Telstra claim the brief does not support, conflating subcontracted work with direct engagements, overstating a timeline. The three contested results each carry a second dissenting judge, so those are not one seat deciding alone — but on the five provisional ones, including both self-contradicting objections, the rest of the panel was content.
This is the known risk of a panel whose discrimination rests on a single judge, showing up as a concrete result rather than a stated limitation: under unanimity a single wrong objection is indistinguishable, in the headline number, from a real fault in the model. It also exposes an asymmetry in the bounds themselves. Confirmed can be withheld by an objection that is demonstrably unfounded; likely absorbs lone dissents without adjudicating whether they were right. Neither bound distinguishes a sound lone dissent from an unsound one. Properly, these two warrant an explicit adjudication with the original votes preserved — which this evaluation does not currently do, because it holds to a standing rule against overriding verdicts by hand. The votes are published exactly as cast, and this paragraph is the flag.
The set has also turned over completely. On v2 the two universally unconfirmed questions were which industries constitute Tromp IT's depth of experience, and whether multilingual evaluation is in scope. Neither appears now. So two of the three remaining are still places where Ada's instructions do not settle the matter, which no change of model fixes and two lines in the brief would — and the third is not about Ada at all. Separating those two cases required reading the judge reasoning question by question; the counts alone would have put all three in the same bucket, and an earlier draft of this finding did exactly that.
Between v2 and v3, Ada's brief went through five rounds of fixes — tighter length and cadence rules, a structural fix to tool narration, and explicit instructions against inventing detail the brief does not state. Re-run against the identical 189-question set, every one of the eight backends scored fewer confirmed questions, several of them sharply:
| Model | Confirmed, v2 | Confirmed, v3 | Change |
|---|---|---|---|
| GPT-5.5 | 172 | 146 | −26 |
| Claude Sonnet 4.6 | 166 | 113 | −53 |
| Claude Sonnet 5 | 163 | 146 | −17 |
| Claude Opus 5 | 161 | 148 | −13 |
| Gemini 3.5 Flash-Lite | 120 | 78 | −42 |
| Gemini 3.5 Flash (thinking on) | 112 | 68 | −44 |
| Gemini 3.5 Flash | 98 | 48 | −50 |
| Qwen 3 235B | 90 | 56 | −34 |
The most economical explanation of a drop this universal is that the instrument got stricter rather than that every model got worse simultaneously — the new rules give a judge more ways to object, and the measured rise in judge disagreement (28% to 47% of questions) is consistent with that. It is not isolated from the alternatives, though: the models were also re-run, so their answers are not the same text as v2's, and judging is stochastic. This evaluation cannot cleanly separate “stricter instrument” from “different answers” from run-to-run noise, and the honest position is that all three are present in these numbers in unknown proportion. What the universality does justify is reading the size of each model's own drop as the informative number rather than the absolute score — and those are not close to uniform. Claude Sonnet 4.6 and Claude Sonnet 5 were 3 points apart in v2 — squarely inside the noise floor this page documents elsewhere — and 33 points apart in v3. Sonnet 4.6 lost more than three times what Sonnet 5 did.
The behaviour behind it is the same in both versions, just far more common in one of them. The counts here are questions that fell short of confirmed — any question at least one judge marked down — not the much smaller Failed column in the Results table, which counts only questions the panel settled against the model. In v2, Sonnet 4.6 and Sonnet 5 fell short on almost exactly as many (25 and 26), and roughly three-quarters of each model's shortfalls were judges catching invented, unstated detail — a business-model claim, a timeline, a sector of experience — layered on top of an otherwise-grounded answer. In v3 that category still accounts for a near-identical share (75% and 77%), but the volume diverges: 76 questions for Sonnet 4.6 against 43 for Sonnet 5. Two representative examples, same question asked of Sonnet 4.6 in both versions:
One dissent in this data is worth naming as noise rather than a finding: on four tool
questions, one judge asserted a tool had not been called when tools_attempted
proves it was. That is the panel's measured noise floor, not a new failure category.
The practical reading: this is not evidence that Claude Sonnet 4.6 got worse, or that the brief broke it. It is evidence that Sonnet 4.6’s pre-existing habit of adding plausible unstated detail, which v2’s looser brief rarely caught, is now being caught at three times the rate — and that Sonnet 5 has much less of that habit to catch in the first place.
The design, not just the result, is the finding here. Crossing two brief versions against two models — old brief × old model, old brief × candidate, new brief × old model, new brief × candidate — is what lets this page say which of the two actually explains a passing result, rather than reporting a pass and letting a reader assume it was the brief fix, the newer model, or both. Two real bugs were found by hand-testing the live v2 persona in conversation: card acceptance treated as consent to be contacted (a visitor accepts Phil’s contact card and is logged as a lead anyway), and a lead’s details, given across separate turns, never triggering a lead record because the conversation never reaches a single message that contains everything at once. Both are the kind of bug the single-turn question set cannot even express — every question there is a cold open with no history.
A scripted 8-case multi-turn suite reproduces both for real, then asks the harder question: are they fixed because the brief changed, or because the model did? Five configurations answer it — the two brief versions, crossed with the deployed model and the switch candidate, plus one candidate run for free:
| Configuration | Result |
|---|---|
| v2 brief × Claude Sonnet 4.6 | 6/8 — MT-002 and MT-006 fail for real |
| v2 brief × Claude Sonnet 5 | 8/8 |
| v3 brief × Claude Sonnet 4.6 (previous deployment) | 7–8/8 (one case is intermittent) |
| v3 brief × Claude Sonnet 5 | 8/8 |
| v3 brief × Claude Opus 5 | 8/8 |
Claude Sonnet 5 passes both regression cases under the unmodified v2 brief —
before any of the five rounds of fixes existed. It did not exhibit either bug in these runs,
which points to a genuine difference between the two models rather than a brief fix that
only looks like one because of which model happened to be deployed when it landed. Eight
scripted cases cannot establish that a model is incapable of the behaviour — only that
the conditions which reliably reproduce it in Sonnet 4.6 did not reproduce it here. The v2-brief
run against Sonnet 4.6 used its exact source from git (commit 479ebf8), run
locally against the same eight scripted conversations, not reconstructed from memory or
from the single-turn results.
Sentence count, over-length replies and trailing questions were all measured before and after the same five rounds of brief fixes, using the exact real replies each run produced. Every model this page compares dropped on every one of those three measures between v2 and v3 — the rules were not tuned against one model’s output and coincidentally generalising, they moved the whole field. Claude Sonnet 4.6, which ran this site across both runs, went from ending 72% of replies in a trailing question to 22%; the field average fell from the 80s and 90s into single digits for most backends. See verbosity and style for the full table.
Phil-attribution — crediting Phil with an opinion, preference or plan the brief never states — is the one measure that did not move the same way for everyone. It fell for the two models that had it worst in v2, Claude Sonnet 4.6 (18 → 7) and GPT-5.5 (19 → 17), and slightly for Claude Opus 5 (4 → 3), which barely did it to begin with. It rose for every other model measured, including the model now deployed, Claude Sonnet 5 (12 → 16). The likely explanation is that the fixes were written and checked against the two worst offenders’ actual output, and reduced the specific phrasing those two models used without touching the underlying instruction gap that lets any model fill in an opinion Phil never gave it — a habit that moved rather than one that was fixed.
This comparison uses the same evaluation methodology and test set as our what the measures mean and how a question passes describe the scoring in full, and every question, answer and judge score is published under full results.
Each model was called directly through its own API with the assistant's complete system prompt and tool definitions — no Lambda, no API Gateway — so the model is the only variable. Tool calls were exercised for real but their results were stubbed, so no email was sent and every model faced identical tool responses.
Thinking was disabled on every Anthropic model. Claude Opus 5 and Sonnet 5
enable adaptive thinking by default where Sonnet 4.6 does not, and
max_tokens caps thinking and reply together — left at the assistant's
production setting, Opus 5 spent its whole budget thinking and returned an empty
reply. Disabling it across the board keeps the comparison like-for-like. Because
disabling thinking has documented side effects on Opus 5, every response was
scanned for them; the count appears in the findings.
Cost is computed on total input tokens. The API reports only the uncached remainder as input tokens, so a model that caches appears far cheaper than it is. Every figure here sums uncached, cache-read and cache-write tokens and applies the published rate — the no-caching baseline, and the only way to compare models on equal terms.
Each answer was scored independently by four models: claude-haiku-4-5, gemini, gpt-5-mini, deepseek-v3.2.
Published list rates as at September 2026, in US dollars per million tokens. Introductory pricing that has since expired is not used.
This measures one assistant, not general capability. Every score reflects how well a model follows one specific persona and brief. A model that scores poorly here may be excellent at reasoning, coding or analysis — those are not what this tests.
Judges are not ground truth. They are given the assistant's own brief as the source of truth, so this measures adherence to that brief rather than truth about the world. Judges also disagree with each other, and can be wrong together.
Single-turn. Each question is asked in a fresh conversation. Real visitors hold multi-turn conversations where context accumulates and drift is likelier.
Both the assistant and some judges are non-deterministic. Repeating the judging alone, with nothing else changed, moves about one question verdict in seven. That is measured, not estimated, and it is why results are given as a range rather than a single number. Treat models within a few questions of each other as level; only the large gaps are reliable.
Every question, every model's answer and every judge score is published, broken down by category — browse the full results. A headline number you cannot interrogate is not evidence, so the underlying data is available too, one file per model:
Gemini 3.5 Flash-LiteQwen 3 235BGemini 3.5 FlashClaude Sonnet 5Claude Sonnet 4.6GPT-5.5Claude Opus 5