Engineering
8 min read

Your fastest model is probably not your fastest model

Tokens per second measures how fast a model emits, not how fast it finishes. Our 13-model probe shows the gap that flips both the speed + cost leaderboards.

Evan Marshall
Evan MarshallCTO

What shows up on LLM leaderboards and benchmark pages doesn't always match what you experience in practice.

For instance, the third-fastest model we tested actually finished tenth.

Unfortunately, the LLM leaderboards we all eagerly check as all the new models drop don't measure task completion time, and the gap between what they show and what your task actually takes is bigger than most teams expect.

Two numbers dominate model selection pages: tokens per second and dollars per million tokens. Both are denominated in tokens (roughly a word or word fragment), yet tokens aren't a unit of work.

We asked fourteen models to do the same job and they used anywhere from 1,800 to 6,400 tokens to finish it, which obviously makes a big difference in both cost and time to complete the task.

The truth is: a model that emits fast but thinks in paragraphs can take longer, and cost more, than one that emits slowly and gets to the point.

That's why we made our own benchmark to test all these new models like Luna, Grok 4.5, DeepSeek V4, MiniMax M3, Kimi K3, and Fable.

Our test structure:

We measured this the way a customer would experience it: One fixed task (review a Python function, write an improved version with tests) sent to fourteen current models through OpenRouter.

Specifically:

  • For each model, we gave them three runs capped short to probe speed, and three runs uncapped, so each model finished naturally.
  • Speed and latency come from OpenRouter's own per-generation statistics, so they reflect the provider the router actually selected.
  • Token counts are native counts including reasoning tokens.
  • Prices are based on OpenRouter's list price.

Best of all, this is the kind of test anyone can afford to run, even for your side project: The whole experiment cost under three dollars.

Here's what we learned...

Dividing by tokens per task reorders the leaderboard

Bar chart showing task completion time for 14 models, where the 3rd-fastest emitter (KAT-Coder) finishes 10th by actual task time
Median seconds to complete one fixed coding task; each model's headline emission rate in parentheses. Fourteen models, six runs each, July 2026. MiniMax M3 uses our internal Together AI measurement of 90 tokens/sec.
$/Mtok outtps (measured)Tokens for taskSeconds to finishCost to finish
GPT-5.6 Luna$6.001312,01115$0.012
Grok 4.5$6.001142,60723$0.016
Claude Sonnet 5$10.00922,40326$0.024
GPT-5.6 Terra$15.001012,77728$0.042
DeepSeek V4 Pro$0.87651,97331$0.0017
Claude Sonnet 4.6$15.00732,23531$0.034
Claude Fable 5$50.00762,47933$0.124
GPT-5.5$30.00501,77735$0.053
MiniMax M3$1.2090*14,36448$0.0052
KAT-Coder-Pro V2.5$2.961135,53649$0.016
GLM-5.2$2.64382,06054$0.0055
GPT-5.6 Sol$30.00452,64459$0.079
Kimi K2.7 Code$3.49412,95271$0.010
Kimi K3$15.00366,384176$0.096
1Our internal production median on Together AI; the OpenRouter median across its routed providers was 53 tokens/sec.

Surprisingly, GPT-5.6 Luna won both columns: fastest emitter (131 tps) and fastest to finish (15s).

Below it the two rankings disagree, in places by seven positions.

KAT-Coder-Pro V2.5, the third-fastest emitter at 113 tps, finished tenth: it generated 5,536 tokens where GPT-5.5 needed only 1,777. That verbosity (using over 3X the tokens) costs more time than a fast emission rate saves. Meanwhile, despite a lot of hype, Kimi K3 was both the slowest emitter and the most verbose model in the set, finished last at 11.5x Luna's time.

The harsh reality: Speed rankings on model pages don't predict the finish order on real tasks. Verbosity determines how long a model actually takes.

Dumbbell chart: raw emission speed vs task-normalized speed, showing verbose models drop in rank and terse models rise
Measured tokens/sec (gray) vs the same figure divided by tokens used relative to GPT-5.6 Terra on the fixed task (blue). Models terser than Terra normalize upward; more verbose ones downward.

The reordering happens inside a single product line, too.

GPT-5.6 ships in three tiers, and on this task the cheapest finished first:

  • Luna took 15s and $0.012
  • Terra 28s and $0.042
  • Sol, the $30/Mtok flagship tier, 59s and $0.079

Paying 5x more per token bought 3.8x more waiting.

Slower and more expensive.

This is why you have to take a more nuanced approach to choosing the right model for the right task.

Cheap tokens are not cheap tasks

Bar chart: output tokens per task for 14 models, showing KAT-Coder using 3x more tokens than GPT-5.5 on identical work
Median output tokens, including reasoning tokens, to complete one fixed coding task; multiple of the tersest model in parentheses. Fourteen models, three uncapped runs each, July 2026.

The same split we just saw also applies to price.

Kimi K2.7 Code's tokens cost more than KAT's ($3.49 vs $2.96 per Mtok), but Kimi finished the task for 37% less, because it used half the tokens.

GLM-5.2's tokens cost 2.2x MiniMax M3's, yet per task the two are within 4% of each other, because of the difference in verbosity.

You see this same effect across other model comparisons:

  • Claude Sonnet 4.6's tokens cost 12.5x M3's, but per finished task the gap is 6.4x.
  • Kimi K3's tokens cost 3.3x less than Claude Fable 5's ($15 vs $50 per Mtok), but because K3 used the most tokens in the set, the two are within 30% of each other.

As you can see, a cheap token rate doesn't mean a cheap task.

Bar chart: per-task cost for 14 models, showing DeepSeek at $0.0017 and Claude Fable 5 at $0.124 for identical work
Median cost to complete one fixed coding task at OpenRouter list prices; each model's per-token price in parentheses. Fourteen models, three uncapped runs each, July 2026.

In our next analysis, you can see that neither ranking survives: the cheapest-per-token model isn't the cheapest per task, and the fastest emitter isn't the fastest to finish.

DeepSeek V4 Pro is both cheap per token and terse, so it finished the task for $0.0017, roughly 20x less than Claude Sonnet 4.6 and 73x less than Claude Fable 5, the most expensive finish in the set.

Where public data allows a clean comparison, it agrees with our probe.

Artificial Analysis publishes output tokens per Intelligence Index task: MiniMax M3 at 24.0k, Kimi K2.7 Code at 17.7k, GPT-5.5 (high) at 10.1k, the same verbosity ordering we measured.

For several of the newer closed models, no public per-task figure exists, or the published data uses reasoning-effort settings that don't match what a router actually serves. That's part of why we ran this ourselves.

For Ito, the stakes are high. Tokens per task isn't an academic metric for us; it's how we decide which models stay in production. Our QA agents run the same categories of tasks on every pull request, and a model that uses 3x the tokens to complete the same step costs 3x more and takes 3x longer per review cycle.

The per-token price on the spec sheet tells you the cost of one token, not one task. You need to run your actual workload to find out the real difference.

The router adds a second distribution on top

The speed column above is a median hiding a wide spread. Across six runs, Kimi K2.7 Code measured 223 tps when OpenRouter routed it to Together and 28 tps on DeepInfra. MiniMax M3 ranged from 25 tps (Parasail) to 130 tps (MiniMax's own API). GLM-5.2 hit six different providers in six runs and ranged 20 to 85 tps.

Range chart: per-run speed variance showing Kimi K2.7 Code ranging 28 to 223 tps depending on which provider OpenRouter selected
Per-run measured tokens/sec across six runs per model; endpoints label the slowest and fastest provider OpenRouter selected.

First-party serving narrows the spread but doesn't close it: Sonnet 4.6 and KAT-Coder held within about 15%, while GPT-5.6 Sol varied 2.4x between OpenAI and Azure and GPT-5.6 Luna varied 1.7x across runs on OpenAI's own endpoint.

A leaderboard tps entry is a claim about one provider on one day. If your traffic goes through a router, your realized speed is a draw from a distribution the leaderboard doesn't show. For open-weight models the spread of that distribution was larger than most gaps between models.

If you're routing through OpenRouter or a similar service, the speed you see in production isn't the speed on the leaderboard. It's whatever provider got selected for that call.

What you should measure instead

3D scatter plot showing 6 models on the Pareto frontier of cost, speed, and intelligence, with 4 models having a better alternative on all three axes
Cost to finish the fixed task (OpenRouter list prices, log scale) and seconds to finish on the floor plane; Artificial Analysis Intelligence Index on the vertical axis. GPT-5.6 Terra, Claude Sonnet 4.6, KAT-Coder-Pro V2.5, and Kimi K3 omitted: no published Intelligence Index for them.

Once both axes are per-task, your picture clears up. Of the ten models (fourteen minus the four without a published Intelligence Index), six are on the frontier: no single model is cheaper, smarter, and faster than DeepSeek V4 Pro, MiniMax M3, GLM-5.2, GPT-5.6 Luna, Grok 4.5, or Claude Fable 5.

For the other four, there's always at least one model in the set that beats them on all three axes. Grok 4.5 alone beats both GPT-5.5 and GPT-5.6 Sol.

Tokens per task is as easy to publish as tokens per second, and it's the denominator that turns both speed and price into decision-grade numbers: seconds to finish and dollars to finish.

Until a more realistic standard emerges, the probe above is a cheap alternative that's easy to reproduce: choose a batch of the latest models, assign them all one task you care about, give them six runs each, then analyze your results. And you can do all of it for less than $3 of token spend.

To truly know which models are best for your company, measure it yourself.

The leaderboard won't tell you what you need to know, but a simple test you run yourself will.

It costs just a few dollars to find out.

Common questions

Our tests included 90 completions (15 models x 6 runs) through the OpenRouter API, July 14-16, 2026, from one fixed coding prompt; GPT-5.3-codex was measured but excluded from the analysis as a prior-generation model.

Speed pass: max_tokens 1,200. Completion pass: max_tokens 16,000; runs that hit the cap (one, KAT-Coder-Pro V2.5) are excluded from token medians. Throughput and latency are OpenRouter's own generation statistics (GET /api/v1/generation), token counts are native counts including reasoning tokens, prices are OpenRouter list on measurement day.

One exception: MiniMax M3's headline throughput is our internal production median on Together AI (90 tokens/sec) in place of the OpenRouter median (53 tokens/sec across three routed providers); the provider-spread figures for MiniMax remain the raw OpenRouter runs. Kimi K3 was measured on July 16 through Moonshot AI, its only OpenRouter provider, with retries around launch-window rate limits; retries do not affect the per-generation statistics.

Work-normalized throughput uses GPT-5.6 Terra's tokens for the task as the baseline. Tokens per task is task-dependent; matched samples on our production QA workload show the same 2x to 3x verbosity gaps between models doing identical steps. n=3 per cell is a probe, not a benchmark; the provider spread within one model was the largest source of variance we observed.

Reasoning-effort settings were router defaults throughout, which is what most API traffic gets but not what leaderboard "max" variants measure. Artificial Analysis figures from their public model pages, July 15, 2026.

Run your real task on each candidate model (or a representative sample of 3-6 prompts from your workload), let each model finish, and record the total tokens used per run. Multiply the median token count by the per-token price. That's your per-task cost.

The tokens-per-million price on the model's spec sheet only tells you the cost of one token, not the cost of one task.

On our fixed benchmark, the model with the lowest per-token price ($0.87/Mtok) finished 5th fastest and second cheapest per task. Per-token price and per-task cost disagreed on every model in the set.

Because tokens per second measures emission rate: the speed a model generates output once it starts. It doesn't measure how many tokens the model uses to complete a task.

A model emitting 113 tokens per second that needs 5,500 tokens to answer your prompt takes 49 seconds. A model emitting 50 tokens per second that needs 1,777 tokens takes 35 seconds. Verbosity determines task time, not emission speed.

You can test this yourself: run the same prompt on two models and measure wall time rather than watching the token counter.

Measure seconds to complete your specific task and dollars to complete your specific task. Pick a real prompt from your workload, run it on each candidate model, record wall time and total tokens used, and multiply tokens by the per-token price.

That gives you two numbers that are directly comparable across all models.

Tokens per task is as easy to publish as tokens per second; it just requires actually running the task rather than measuring burst generation speed. The probe described in this post cost about three dollars across fourteen models and six runs each.

No. In our benchmark, GPT-5.6 Sol (the $30/Mtok premium tier) took 59 seconds and cost $0.079 to complete the same task that GPT-5.6 Luna (the $6/Mtok entry tier) finished in 15 seconds for $0.012. That's 3.8x more waiting and 6.6x more cost for the premium.

The explanation is token verbosity: Sol used 2,644 tokens where Luna used 2,011 on the same prompt.

Whether the premium tier gives you better output on your specific task is a separate question. But on speed and cost, the higher tier doesn't win by default.

Found this post helpful? Share it:

Enjoyed this? Subscribe.

Never miss a post on the latest in AI-driven software development, code review, new models, and more.

Related resources.

Your first PR tested within 60 minutes.

Connect your repo and Ito starts testing pull requests right away. Each PR includes a full QA report with video, screenshots, and failure details directly in the PR.

Get Started

no credit card required