Claude Opus 5.5 vs Gemini 3.1 Pro
Reading a 26.2K-token pull request costs $0.1048 on Claude Opus 5.5, 2.0× the $0.0524 it costs on Gemini 3.1 Pro. Claude Opus 5.5 is a frontier model and Gemini 3.1 Pro a mid-range one. In the benchmark Claude Opus 5.5 caught 23 percentage points more of the known defects than Gemini 3.1 Pro (95% interval +11 pts to +35 pts, a − b).
Side by side
| Figure | Claude Opus 5.5 | Gemini 3.1 Pro |
|---|---|---|
| Price tier | Frontier | Mid-range |
| Bugs caughtshare of known bugs | 90% (better) | 67% |
| False alarmsper clean PR | 1.7 | 0.8 (better) |
| Cost per reviewmeasured | $0.1525 (better) | $0.2499 |
| Cost per bug caught | $0.1921 (better) | $0.4134 |
| Exact linecatches on the expected lines | 89% | 89% |
| Review timemean | 33s (better) | 349s |
| Typical review calllist price | $0.1532 | $0.0814 (better) |
| Input / 1M tokens | $4.00 | $2.00 (better) |
| Output / 1M tokens | $20.00 | $12.00 (better) |
| Context window | 1M | 1M |
- Above 200K tokens, long-context rates mean the two cost the same.
Head to head
The known bugs both were scored on, by who caught each in at least one run.
By language
| Model | All | TypeScript6 bugs | Go4 bugs | Java4 bugs | Rust4 bugs | C#3 bugs | JavaScript3 bugs | Kotlin3 bugs | PHP3 bugs | Python3 bugs | Ruby3 bugs | Swift3 bugs | C++2 bugs | C1 bug |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Claude Opus 5.5 | 90% | 100% | 50% | 78% | 100% | 100% | 100% | 67% | 100% | 100% | 89% | 100% | 100% | 100% |
| Gemini 3.1 Pro | 67% | 67% | 38% | 78% | 88% | 56% | 33% | 67% | 67% | 67% | 100% | 100% | 50% | 50% |
Of the 42 known bugs both were scored on, both caught 32 and neither caught 3. Claude Opus 5.5 caught 7 bugs that Gemini 3.1 Pro missed: 2 in JavaScript, 2 in TypeScript, 1 in C++, 1 in C# and 1 in PHP.
On pull requests with no known bug, Claude Opus 5.5 raised 1.7 false alarms per review and Gemini 3.1 Pro 0.8. A measured review cost $0.1525 on Claude Opus 5.5, 39% less than $0.2499 on Gemini 3.1 Pro.
| Pull request | Language · kind | Claude Opus 5.5 | Gemini 3.1 Pro |
|---|---|---|---|
| TanStack/queryfix(query-core): fix hydration bugs for already resolved promises | TypeScript · Logic | 1/1 | 0/1 |
| colinhacks/zodfeat(v4): parse input containing reference cycles | TypeScript · Resource handling | 1/1 | 0/1 |
| dotnet/orleansfix(serialization): cap codec allocations | C# · Logic | 1/1 | 0/1 |
| ggml-org/llama.cpprpc : cache and reuse compute graphs | C++ · Security | 1/1 | 0/1 |
| nodejs/undicifeat: add configurable maxPayloadSize for WebSocket | JavaScript · Security | 1/1 | 0/1 |
| sindresorhus/p-throttleAdd `weight` option | JavaScript · Logic | 1/1 | 0/1 |
| symfony/symfony[Security] Allow multiple OIDC discovery endpoints | PHP · Security | 1/1 | 0/1 |
Defects caught over all runs: a PR reviewed three times with one known bug shows 3/3 when it was caught every time.
Every bug each was scored on: Claude Opus 5.5 and Gemini 3.1 Pro.