CodePanel

Claude Haiku 5.5 vs Gemini 3.5 Flash-Lite

Reading a 26.2K-token pull request costs $0.0079 on Gemini 3.5 Flash-Lite, 3.0× the $0.0026 it costs on Claude Haiku 5.5. Above 100K tokens long-context rates apply, and Gemini 3.5 Flash-Lite becomes the cheaper one. Both sit in the economy price tier, so the choice between them is about review quality more than budget. In the benchmark Claude Haiku 5.5 caught 53 percentage points more of the known defects than Gemini 3.5 Flash-Lite (95% interval +37 pts to +67 pts, a − b).

Side by side

Claude Haiku 5.5 and Gemini 3.5 Flash-Lite side by side
FigureClaude Haiku 5.5Gemini 3.5 Flash-Lite
Price tierEconomyEconomy
Bugs caughtshare of known bugs64% (better)11%
False alarmsper clean PR1.40.4 (better)
Cost per reviewmeasured$0.0038 (better)$0.0059
Cost per bug caught$0.0064 (better)$0.0528
Exact linecatches on the expected lines82%83% (better)
Review timemean15s (better)103s
Typical review calllist price$0.0038 (better)$0.0139
Input / 1M tokens$0.10 (better)$0.30
Output / 1M tokens$0.50 (better)$2.50
Context window1M1M
  • Above 100K tokens, long-context rates mean Gemini 3.5 Flash-Lite 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.

Of 42 known bugs both were scored on: Both 6Only Claude Haiku 5.5 22Only Gemini 3.5 Flash-Lite 0Neither 14

By language

Share of known bugs each model caught, by language
ModelAllTypeScript6 bugsGo4 bugsJava4 bugsRust4 bugsC#3 bugsJavaScript3 bugsKotlin3 bugsPHP3 bugsPython3 bugsRuby3 bugsSwift3 bugsC++2 bugsC1 bug
Claude Haiku 5.564%83%75%40%75%67%33%67%100%39%67%67%50%0%
Gemini 3.5 Flash-Lite11%33%0%5%0%0%0%33%0%17%0%0%50%0%

Where they differ

Of the 42 known bugs both were scored on, both caught 6 and neither caught 14. Claude Haiku 5.5 caught 22 bugs that Gemini 3.5 Flash-Lite missed: 3 in Go, 3 in PHP, 3 in Rust, 3 in TypeScript, 2 in C#, 2 in Ruby, 2 in Swift, 1 in Java, 1 in JavaScript, 1 in Kotlin and 1 in Python.

On pull requests with no known bug, Claude Haiku 5.5 raised 1.4 false alarms per review and Gemini 3.5 Flash-Lite 0.4. A measured review cost $0.0038 on Claude Haiku 5.5, 35% less than $0.0059 on Gemini 3.5 Flash-Lite.

Each known bug, and how often each model caught it
Pull requestLanguage · kindClaude Haiku 5.5Gemini 3.5 Flash-Lite
MudBlazor/MudBlazorRefactor: MudDebouncedInput, ThrottleDispatcher and DebounceDispatcherC# · Concurrency3/30/3
OrchardCMS/OrchardCoreSimplify using `StringValues` in Liquid templatesC# · Security1/10/1
better-auth/better-authfix(saml): IdP-Initiated Callback RoutingTypeScript · Security1/10/2
colinhacks/zodfeat(v4): parse input containing reference cyclesTypeScript · Resource handling1/10/1
denoland/denoperf(libs/core): poll only ready handles and yield between I/O batchesRust · Concurrency1/10/1
doctrine/ormFix collection filtering API for IN/NOT IN comparisons that require type conversionsPHP · Logic1/10/1
go-gitea/giteaperf(gitdiff): optimize inline diff highlighting using cacheGo · Error handling1/10/1
golang/gocrypto/tls: add LocalCertificate to ConnectionStateGo · Logic1/10/1
groue/GRDB.swiftDatabaseQueue and DatabaseSnapshot reads can access task localsSwift · Concurrency1/10/1
iBotPeaches/Apktoolrefactor: Improve renaming/injection of resources in stripped APKsJava · Security1/10/1
ktorio/ktorKTOR-9171 Redesign ByteReadChannel.readUTF8Line APIKotlin · Logic1/10/1
laravel/framework[12.x] Colocate Container build functions with the `Buildable` interfacePHP · Error handling1/10/1
nodejs/undicifeat: add configurable maxPayloadSize for WebSocketJavaScript · Security1/10/1
pointfreeco/swift-composable-architectureRemove child store from parent when invalidatedSwift · Resource handling1/10/1
rack/rackApply bytesize and number of param limits in QueryParserRuby · Security1/10/1
rustls/rustlsAffix `Protocol` at top of client handshakeRust · Logic1/10/1
socketry/asyncBarrier wait in completion order + `Queue#close`.Ruby · Concurrency1/10/1
symfony/symfony[Security] Allow multiple OIDC discovery endpointsPHP · Security1/10/1
tokio-rs/tokiotime: move lazy-registration state into `Sleep`Rust · Logic1/10/1
traefik/traefikAdd the option to define custom cipher suites for backend serversTransportGo · API misuse1/10/1
trpc/trpcfix(server): pass maxDurationMs timeout signal to subscription handlersTypeScript · Concurrency1/10/1
django/djangoFixed #36226 -- Accepted str or bytes for password and salt in password hashers.Python · Error handling2/30/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 Haiku 5.5 and Gemini 3.5 Flash-Lite.