Claude Haiku 5.5 vs GPT-OSS 120B (Workers AI)
Reading a 26.2K-token pull request costs $0.0092 on GPT-OSS 120B (Workers AI), 3.5× the $0.0026 it costs on Claude Haiku 5.5. Above 100K tokens long-context rates apply, and GPT-OSS 120B (Workers AI) becomes the cheaper one. Both sit in the economy price tier, so the choice between them is about review quality more than budget. The benchmark cannot separate their recall: Claude Haiku 5.5 minus GPT-OSS 120B (Workers AI) is +24 pts (95% interval +10 pts to +37 pts).
Side by side
| Figure | Claude Haiku 5.5 | GPT-OSS 120B (Workers AI) |
|---|---|---|
| Price tier | Economy | Economy |
| Bugs caughtshare of known bugs | 64% (better) | 40% |
| False alarmsper clean PR | 1.4 (better) | 2.5 |
| Cost per reviewmeasured | $0.0038 (better) | $0.0075 |
| Cost per bug caught | $0.0064 (better) | $0.0189 |
| Exact linecatches on the expected lines | 82% (better) | 49% |
| Review timemean | 15s (better) | 55s |
| Typical review calllist price | $0.0038 (better) | $0.011 |
| Input / 1M tokens | $0.10 (better) | $0.35 |
| Output / 1M tokens | $0.50 (better) | $0.75 |
| Context window | 1M | 128K |
- Above 100K tokens, long-context rates mean GPT-OSS 120B (Workers AI) 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 Haiku 5.5 | 64% | 83% | 75% | 40% | 75% | 67% | 33% | 67% | 100% | 39% | 67% | 67% | 50% | 0% |
| GPT-OSS 120B (Workers AI) | 40% | 42% | 13% | 46% | 71% | 41% | 11% | 44% | 33% | 78% | 33% | 44% | 33% | 0% |
Of the 42 known bugs both were scored on, both caught 23 and neither caught 8. Claude Haiku 5.5 caught 5 bugs that GPT-OSS 120B (Workers AI) missed: 1 in Go, 1 in JavaScript, 1 in PHP, 1 in Swift and 1 in TypeScript. GPT-OSS 120B (Workers AI) caught 6 bugs that Claude Haiku 5.5 missed: 2 in Java, 1 in JavaScript, 1 in Python, 1 in Swift and 1 in TypeScript.
On pull requests with no known bug, Claude Haiku 5.5 raised 1.4 false alarms per review and GPT-OSS 120B (Workers AI) 2.5. A measured review cost $0.0038 on Claude Haiku 5.5, 49% less than $0.0075 on GPT-OSS 120B (Workers AI).
| Pull request | Language · kind | Claude Haiku 5.5 | GPT-OSS 120B (Workers AI) |
|---|---|---|---|
| colinhacks/zodfeat(v4): parse input containing reference cycles | TypeScript · Resource handling | 1/1 | 0/6 |
| groue/GRDB.swiftDatabaseQueue and DatabaseSnapshot reads can access task locals | Swift · Concurrency | 1/1 | 0/3 |
| nodejs/undicifeat: add configurable maxPayloadSize for WebSocket | JavaScript · Security | 1/1 | 0/3 |
| symfony/symfony[Security] Allow multiple OIDC discovery endpoints | PHP · Security | 1/1 | 0/3 |
| traefik/traefikAdd the option to define custom cipher suites for backend serversTransport | Go · API misuse | 1/1 | 0/6 |
| TanStack/queryfix(query-core): fix hydration bugs for already resolved promises | TypeScript · Logic | 0/1 | 1/6 |
| aio-libs/aiohttpkeep websocket compression state across interleaved control frames | Python · Logic | 0/1 | 2/6 |
| jhy/jsoupStore cached child els in Attributes, not field | Java · Concurrency | 0/2 | 3/6 |
| mockito/mockitoAdd core API to enable Kotlin singleton mocking | Java · API misuse | 0/1 | 1/6 |
| pinojs/thread-streamrefactor: replace setTimeout with Atomics.waitAsync | JavaScript · Concurrency | 0/1 | 1/3 |
| pointfreeco/swift-navigationUIKit: Fix switch presented child double dismiss | Swift · Logic | 0/1 | 1/3 |
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 GPT-OSS 120B (Workers AI).