79% of the time, the model you asked for isn't the model you needed

79% of the time, the model you asked for isn't the model you needed

By

Brennan Lupyrypa

Published

Read Time:

When teams wire an AI coding agent into their workflow, someone picks a model. Usually it happens once, in a config file, on the day of setup. Maybe they pick the biggest model available because they don't want to think about it again. Maybe they pick the cheapest one because finance asked. Either way, that choice quietly governs every request the agent makes from that day forward.

We built a model router because we suspected that one-time choice was wrong most of the time. We now have the data to say how wrong.

What we measured

Over the last 30 days, the Weave router handled roughly 275,000 requests across 22 installations and about 25,500 agent sessions, moving around 46 billion tokens. For every request we record the model the client asked for, the model the router actually served, and what each would have cost.

The headline: 79.2% of requests were served by a different model than the one requested. Out of 274,997 requests, 217,830 got rerouted.

And the substitutions were not subtle. The most common reroutes in the period:

Requested

Served

Requests

claude-haiku-4-5

deepseek/deepseek-v4-flash

38,466

claude-haiku-4-5

gemini-3.1-flash-lite-preview

16,285

claude-sonnet-5

gemini-3.1-flash-lite-preview

14,194

claude-opus-5

claude-sonnet-5

13,522

claude-opus-4-8

deepseek/deepseek-v4-flash

11,513

claude-opus-4-8

claude-sonnet-5

10,267

Two patterns jump out. First, a huge share of "small model" traffic (the Haiku requests) is really commodity work: title generation, classification, summarizing tool output. Several models can do it indistinguishably well, so the router picks on price and speed. Second, a meaningful chunk of frontier-model traffic gets downshifted one tier. Over 13,000 requests that asked for Opus 5 were served by Sonnet 5, because the router's policy judged the task shape didn't need the extra capability.

What it saved

Comparing what the requested models would have billed against what the served models actually billed, routed traffic came out about 28% cheaper over the period.


We deliberately quote that as a percentage rather than a dollar figure, because the interesting part is not the absolute number. It's that the savings came without anyone changing their config, and without the quality regressions you'd expect from just hard-coding a cheaper model. The router only downshifts when its policy, trained on real outcomes, says the cheaper arm holds up for that cluster of work.

What it cost

Routing isn't free. Every request pays a decision tax before it reaches a model. In production that tax has a median of 329 milliseconds, against a median upstream call of 4.8 seconds. So the router adds roughly 7% to a typical request's wall clock, in exchange for picking the model in the first place.

Is 329ms acceptable? For interactive chat, it's borderline. For agent traffic, which dominates our volume, it's noise. An agent turn involves the model thinking, calling tools, and reading results, and a third of a second at the front of a multi-second turn is not what the user is waiting on.

The escape hatch matters

One more number worth being honest about: 12.4% of requests were user-forced. That's the share where someone explicitly pinned a model and the router got out of the way. We think that's healthy. A router that can't be overridden is a router people rip out. The goal was never to take the choice away from people who have a real preference. It was to make a better choice than a config file that nobody has looked at since March.

The config-file model choice is a snapshot of one person's intuition on one day. The router re-makes that decision 275,000 times a month with current prices, current latencies, and observed outcomes. It turns out that when you actually check, the snapshot is stale four times out of five.

Wooly mascot smiling while holding a pencil and a document

Make AI Engineering Simple

Effortless charts, clear scope, easy code review, and team analysis

By

Brennan Lupyrypa

Published

Abstract white ribbon twisted into a knot
Abstract white ribbon twisted into a knot
Abstract white ribbon twisted into a knot
Abstract white ribbon twisted into a knot

Give your teams the data they need to build the products you want.

Trusted by engineering teams from startups to Fortune 500