Ten models plan a change to a spreadsheet: which do it in under a minute, traced call by call
A biotech investor keeps a deal pipeline as a spreadsheet: one row per company, its status, its drugs. They type a request over it, such as "find all companies who sell what this one sells", and want to see what it would change before anything does: rows added, statuses set, research started. Writing that plan is a small piece of knowledge work, and someone is waiting for it, so it has to be done in about a minute.
We gave the same request to 10 models, each driving the same agent harness, Claude Code, with the same tools and the same written method. 6 of them wrote the plan; we ran those three times each and read every call they made.
What we found:
- Every plan that was written said the same thing. The models differed in how long they took and how they got there, not in the answer.
- Qwen3 235B was the fastest, with a median of 27 s. It and GLM-5.2 were the only models to finish inside a minute more than once. Gemini 3.8 Flash, the default model for our workbooks, took 57 s at the median; plans now run on Qwen3 235B.
- Run time follows the number of model calls more than the speed of each one: the fastest runs made 6 calls, the slowest 16.5. Each call re-reads the whole conversation, about 16k tokens, and none of it was cached.
- 4 models never wrote anything, and three of the six that did failed at least once, each in a different way.
The task
The request named a company already on the pipeline: a private vaccine developer with three candidates against herpes simplex. Each run was given the request, every one of the pipeline's 14 companies with its status and its drugs as text, and the name of a written method: the shape a plan takes, the fixed list of actions it may use (add a company, set a status, add a drug, start a workbook and so on), and the order they must go in. It was told to plan from what it was given and search nothing.
The right plan is one step: a find companies step for companies developing vaccines or antivirals for herpes simplex, which a person approves and which then starts the research. Nothing in the request can be planned beyond that without searching, and the models were told not to.
Each run had 180 seconds. When the limit is reached the harness keeps whatever plan has been written, so a run that wrote early and kept improving still counts. Making the plan's workbook and starting its run took about 8 more seconds before the run's own clock started.
How long each took
| Model | Plans · runs | Seconds: median (fastest–slowest) | Within a minute | Model calls, median | Prompt tokens, median |
|---|---|---|---|---|---|
| Qwen3 235B | 2 · 3 | 27 (21–32) | 2 of 3 | 6 | 88k |
| GLM-5.2 | 3 · 3 | 48 (45–96) | 2 of 3 | 8 | 117k |
| Gemini 3.8 Flash | 3 · 3 | 57 (53–66) | 0 of 3 | 10 | 138k |
| Claude Opus 5 | 3 · 3 | 94 (79–109) | 0 of 3 | 7 | 166k |
| DeepSeek V4.1 Flash | 2 · 3 | 119 (66–171) | 0 of 3 | 14 | 250k |
| Hunyuan 4 Preview | 2 · 3 | 183 (183–183) | 0 of 3 | 16.5 | 297k |
Seconds are the run's own clock, for the runs that wrote a plan. "Within a minute" adds the 8 seconds before the run starts, so it counts runs a person would have seen finish in 60 seconds or less. Red dots are runs that delivered nothing.
Where the seconds went
Each traced run's time, split into the time waiting for the model, the time its tools took, and the rest: starting the harness and passing results back and forth. The bar's full width is the 180-second limit.
- One long call decides the slow runs. In GLM-5.2's 96-second run, one call took 49.8 s, 56% of its model time; that is the call that writes the plan. Gemini's longest calls took 23.6 s and 23.9 s, Opus's 20.0 s and 21.4 s. Qwen3 235B's longest took 3.4 s.
- The same model can be slow in different places. GLM-5.2's 45-second run spent only 10.0 s in the model but 30.8 s in its 14 tool calls, where its slower run spent 3.9 s in 10.
- Opus thinks longest per call: a median of 10.8 s and 8.3 s a call, against 1.5 s for Qwen3 235B. It makes few calls, so it still beats the models that make many.
How they worked
The harness offers two ways to work with files: its own tools (read, list, write) and a shell. Every run first looked for the written method and loaded it; after that the models split into styles.
| Run | Tool calls | Shell commands | Methods loaded | Tokens written | Tool calls failed |
|---|---|---|---|---|---|
| Qwen3 235B · 21 s | 8 | 0 | 1 | 744 | 0 |
| GLM-5.2 · 96 s | 10 | 3 | 1 | 7,242 | 0 |
| GLM-5.2 · 45 s | 14 | 2 | 2 | 3,304 | 0 |
| Gemini 3.8 Flash · 66 s | 9 | 0 | 1 | 868 | 0 |
| Gemini 3.8 Flash · 57 s | 9 | 0 | 1 | 841 | 0 |
| Claude Opus 5 · 79 s | 7 | 4 | 1 | 5,404 | 2 |
| Claude Opus 5 · 109 s | 13 | 4 | 2 | 7,452 | 2 |
| DeepSeek V4.1 Flash · 66 s | 23 | 18 | 2 | 4,665 | 5 |
| DeepSeek V4.1 Flash · 53 s ✕ | 21 | 16 | 2 | 5,363 | 2 |
| Hunyuan 4 Preview · 184 s ✕ | 41 | 17 | 13 | 7,164 | 0 |
| Hunyuan 4 Preview · 183 s | 29 | 11 | 13 | 8,171 | 0 |
- What they had in common. Every run that wrote a plan loaded the plan's method, used no web search, and wrote the same single step. Prompt tokens a call were close across models (13k to 25k): most of each call is the conversation so far, not the model's own words.
- File tools or the shell. Qwen3 235B, Gemini and GLM-5.2 worked through the harness's own read, list and write tools and used the shell little or not at all. DeepSeek did nearly everything in the shell: 18 and 16 commands a run, and 23 and 21 tool calls, the most of the models that finished in time.
- Terse or wordy. Gemini wrote 868 and 841 tokens across a whole run and Qwen3 235B 744; Opus, GLM-5.2 and Hunyuan wrote 3,000 to 8,000. Only Gemini was both terse and among the slower: it spends its time in the one long call, not in writing.
- Wandering. Hunyuan loaded 13 methods in each run, most of them for researching a company in depth rather than for planning, and in the run that delivered nothing it searched the web 6 times though it had been told not to.
How they failed
- Never wrote. GPT-6 Luna, GLM-5.3, GLM-5.3 Flash, gpt-oss-120b each left the plan exactly as it was handed over, for as long as they ran. gpt-oss-120b, served fast, stopped after nine seconds having loaded no method; GPT-6 Luna used all 180. None of the four can drive this harness, and hedwigai's workbooks no longer offer them.
- Refused by a check. One DeepSeek run wrote a complete, correct plan, then gave the written method as one of its sources. A method is an instruction, not evidence, and hedwigai refuses a delivery that cites one, so the plan was not kept. The model could do the work; its citations could not pass.
- Ran out of time. Hunyuan's slower runs reached the 180-second limit. One had written its plan by then and kept it; the other had spent the time loading methods and searching, and had written nothing.
- Left no record. One Qwen3 235B run delivered nothing, and nothing about why survived: a run's trace was held only in the server's memory until the next deploy, and a run that wrote no version left nothing behind. Since then every run keeps its own record as it goes, finished or not, so the next failure like it can be read.
What can still go wrong
- This is a small test. One request, three runs a model for six models and one for four. The same model varied by a factor of two between runs, so the order of the middle models could change with more.
- Speed depends on who serves the model. Each model was reached through hedwigai's portal and its provider at the time; another provider of the same model can be faster or slower.
- One harness. Every model drove Claude Code. A model that fails here may work in a harness written for it, and the other way round.
- An easy right answer. The plan was one step. Requests that come to many steps, in an order, will separate the models on correctness, which this one did not.
- Run on 15 October 2026 as hedwigai workbook runs in harnessroom, the harness Claude Code, each model reached through hedwigai's portal. The model ids: qwen/qwen3-235b-a22b-2507, zai-org/GLM-5.2, google/gemini-3.8-flash, anthropic/claude-opus-5, deepseek-ai/DeepSeek-V4.1-Flash, tencent/hy4-preview, openai/gpt-6-luna, zai-org/GLM-5.3, zai-org/GLM-5.3-Flash, openai/gpt-oss-120b.
- Each run had a 180-second limit, except gpt-oss-120b, tried once with 40 seconds. Seconds, model calls and prompt tokens are each run's own record; the traces, read through hedwigai's MCP tool get_trace, give each model call's milliseconds and tokens and each tool call. The first round's traces were lost to a deploy, so its runs have totals only.
- Time in model calls and in tools is summed from the trace; calls do not overlap within a run. "The rest of the harness" is what is left of the run's clock.
- The account the pipeline belongs to is not named, nor are its companies.
More head-to-head evals
| Measure | SubQ | jev | Decider | Nimble |
|---|---|---|---|---|
| Found, mean of five columns at section length | 64% | 65% | 66% | 68% |
| Mechanism of action, found at section length | 57% | 51% | 61% | 54% |
| Measure | ask | Apollo | treg |
|---|---|---|---|
| Usable leads | 13 of 40 | 7 of 40 | 6 of 28 |
| Cost per usable lead | $0.037 | $0.27 | $0.23 |
| Measure | ask with jev | ask with Decider |
|---|---|---|
| Questions right, of 92 | 89 | 89 |
| Wrong answers | 1 | 2 |
| Measure | jev | ask |
|---|---|---|
| Our 370 clinical decisions, right | 94.6% | 93.0% |
| PubMedQA, right (best EdgeEvals scored: 62.2%) | 77.0% | 74.4% |
| Measure | ask | Claude Opus 5.5 |
|---|---|---|
| Questions right, of 95 | 59 | 63 |
| Small companies right, of 20 | 13 | 9 |
| Measure | realestate-us | Best of four assistants |
|---|---|---|
| Floor-plan rents right, of 26 | 26 | 23 |
| Amenities claimed the listing doesn't state | 12 | 129 |
| Measure | ask | jev |
|---|---|---|
| Right, of the questions answered | 98% | 79% |
| Wrong answers, of 92 | 2 | 19 |
| Measure | Trained localiser | Best of four frontier models |
|---|---|---|
| Mean overlap with the defect (IoU, 0 to 1) | 0.421 | 0.109 |