Skip to content

Build1 publisher3 min readPublished

JetBrains' Kotlin leaderboard prices the same 86 solved tasks at 3.7x apart

The Kotlin Benchmark grades agents on 105 verified repository tasks. Its token column shows setups that solve within a few tasks of each other burning between 66,000 and 777,000 tokens per fix.

The Engineer · Build desk

Illustration accompanying JetBrains' Kotlin leaderboard prices the same 86 solved tasks at 3.7x apart

What happened

  • JetBrains published the Kotlin Benchmark, an official leaderboard for AI coding agents, with Claude Code on Opus 4.7 xhigh top at 85.7 percent and Junie and Codex at 81.9 percent.
  • The dataset is 105 engineering tasks pulled from active open-source Kotlin repositories, scored by SWE-bench methodology at repository level rather than on isolated function completion.
  • A task counts as resolved only when the agent's patch passes the repository's own tests inside a containerised environment, so nothing on the board is self-reported.
  • Tokens per solved task across the top twenty setups run from about 66,000 to 777,000, a 12x spread among entries whose resolution rates differ by roughly 20 percentage points.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • decision With two setups tied at 86 tasks and 3.7x apart on tokens, picking an agent stops being a question of which model is smartest and becomes a question of which harness wastes fewer turns getting there.
  • constraint A cheap per-token model no longer implies a cheap run: the Flash entries burned the most tokens on the board, so budget forecasts built from list prices per million tokens will miss by an order of magnitude.
  • exposure The per-task figures come from one writer's sums over JetBrains' published leaderboard, by their own statement unverified by an independent run, so anyone budgeting off them is trusting a single harness's accounting.

Start with the two entries that tied. Codex with GPT 5.5 xHigh solved 86 tasks on 38.78M tokens, or about 451,000 per solved task [9]. Junie with Opus 4.7 max solved the same 86 on 19.98M tokens, about 232,000 each, and took 19 hours 58 minutes of wall clock [8]. The token bill differs by 3.7x [10].

The gap comes from the loop, not the weights. Each task hands the agent a real issue description, and the agent has to navigate the project and produce a patch that passes the repository's own tests inside a containerised environment [3][4]. Every wrong file read, every re-listed directory, every retry after a failing test run is billed input. None of that shows up in the resolution rate; it shows up in tokens per solved task. A harness that re-reads context on each turn pays for the same source file many times.

The reasoning-effort dial shows the same thing in one product family. Claude Code with Opus 4.7 medium solved 80 tasks on 5.31M tokens, about 66,000 per task [6]. The xhigh setting solved 90 on 10.59M tokens, about 118,000 per task [7]. The delta is 10 extra tasks for 5.28M extra tokens [11], which is 528,000 tokens per marginal task [12], roughly eight times the medium setup's average [13]. That premium is worth paying when the last ten tasks are the ones blocking a release. It is not worth paying on a backlog of small fixes, because medium already solved those at a sixth of the marginal rate.

The cheap-model assumption fails here too. Junie with Gemini 3 Flash solved 64 tasks and burned 40.17M tokens, about 628,000 per solved task [14]. Gemini CLI with Gemini 3 Flash finished last on quality at 47 tasks and 777,000 tokens per solved task [15], about 12x the per-task cost of the Opus 4.7 medium entry [16].

For these numbers to transfer to your repository, your tasks would need the same difficulty distribution as 105 issues drawn from active open-source Kotlin projects [3][2]. Your prompts and tool configuration would need to match what JetBrains ran, since the harness is what the 3.7x measures. And your economics would need tokens to be the binding constraint. Wall clock is a separate column: the same Codex 5.5 run finished in 8 hours 30 minutes while the more token-frugal Junie entry took nearly 20 [9][8]. If engineer waiting time is what you are paying for, the ranking flips.

The benchmark itself is honest work. It follows SWE-bench methodology at repository level [3], runs on the open-source Multi-SWE-bench infrastructure, and JetBrains published the datasets, test harnesses and leaderboard along with a methodology page and the GitHub repository [5]. The dev.to writeup that resorted the board by tokens per solved task states plainly that the author has not run the evaluations and that the token math is theirs, drawn from the official leaderboard and announcement post [17]. The leaderboard reports tokens, not dollars, so converting a Flash loop's 40.17M tokens into a comparable spend against an Opus loop is still work you have to do yourself [14].

What to watch

  • Whether JetBrains adds a cost or dollar column to the leaderboard so a Flash loop can be compared against an Opus loop directly.
  • Whether the 12x token spread survives a refreshed or expanded task set beyond the current 105 issues.
  • Whether any vendor publishes token counts from its own runs that disagree with the JetBrains harness figures.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories