Claude Sonnet 5.5 vs Gemini 3.1 Pro
Claude Sonnet 5.5 and Gemini 3.1 Pro charge practically the same to read a 26.2K-token pull request ($0.0524). Above 200K tokens long-context rates apply, and Claude Sonnet 5.5 becomes the cheaper one. Both sit in the mid-range price tier, so the choice between them is about review quality more than budget. The benchmark cannot separate their recall: Claude Sonnet 5.5 minus Gemini 3.1 Pro is +10 pts (95% interval −6 pts to +27 pts).
Side by side
| Figure | Claude Sonnet 5.5 | Gemini 3.1 Pro |
|---|---|---|
| Price tier | Mid-range | Mid-range |
| Bugs caughtshare of known bugs | 77% (better) | 67% |
| False alarmsper clean PR | 2.0 | 0.8 (better) |
| Cost per reviewmeasured | $0.0571 (better) | $0.2499 |
| Cost per bug caught | $0.083 (better) | $0.4134 |
| Exact linecatches on the expected lines | 82% | 89% (better) |
| Review timemean | 11s (better) | 349s |
| Typical review calllist price | $0.0766 (better) | $0.0814 |
| Input / 1M tokens | $2.00 | $2.00 |
| Output / 1M tokens | $10.00 (better) | $12.00 |
| Context window | 1M | 1M |
- Above 200K tokens, long-context rates mean Claude Sonnet 5.5 is the cheaper of the two.
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 Sonnet 5.5 | 77% | 83% | 50% | 45% | 100% | 56% | 100% | 67% | 67% | 67% | 100% | 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 26 and neither caught 3. Claude Sonnet 5.5 caught 7 bugs that Gemini 3.1 Pro missed: 2 in JavaScript, 1 in C++, 1 in Go, 1 in Kotlin, 1 in PHP and 1 in TypeScript, most of them security bugs. Gemini 3.1 Pro caught 6 bugs that Claude Sonnet 5.5 missed: 2 in Java, 1 in Go, 1 in Kotlin, 1 in PHP and 1 in Python.
On pull requests with no known bug, Claude Sonnet 5.5 raised 2 false alarms per review and Gemini 3.1 Pro 0.8. A measured review cost $0.0571 on Claude Sonnet 5.5, 77% less than $0.2499 on Gemini 3.1 Pro.
| Pull request | Language · kind | Claude Sonnet 5.5 | Gemini 3.1 Pro |
|---|---|---|---|
| colinhacks/zodfeat(v4): parse input containing reference cycles | TypeScript · Resource handling | 1/1 | 0/1 |
| ggml-org/llama.cpprpc : cache and reuse compute graphs | C++ · Security | 1/1 | 0/1 |
| go-chi/chifeat: middleware.ClientIP, a replacement for middleware.RealIP | Go · Security | 1/1 | 0/1 |
| kotest/kotestFix DataClassEq comparator | Kotlin · Logic | 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 |
| aio-libs/aiohttpkeep websocket compression state across interleaved control frames | Python · Logic | 0/1 | 1/2 |
| doctrine/ormFix collection filtering API for IN/NOT IN comparisons that require type conversions | PHP · Logic | 0/1 | 1/1 |
| iBotPeaches/Apktoolrefactor: Improve renaming/injection of resources in stripped APKs | Java · Security | 0/1 | 2/2 |
| jhy/jsoupStore cached child els in Attributes, not field | Java · Concurrency | 0/2 | 1/2 |
| ktorio/ktorKTOR-9171 Redesign ByteReadChannel.readUTF8Line API | Kotlin · Logic | 0/1 | 1/1 |
| traefik/traefikAdd the option to define custom cipher suites for backend serversTransport | Go · API misuse | 0/1 | 1/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 Sonnet 5.5 and Gemini 3.1 Pro.