Model Selection and Prompt Audits

Model selection is the most commonly botched cost decision, because the intuitive answer — pick the cheaper model — is measured by the wrong number. The right number is cost per completed task, and by that measure the more capable model often wins. Paired with it is the least-known lever of all: auditing prompts written for an older model against your current one.

Two levers here, closely related. Model selection — choosing which model runs a task — is the decision teams get wrong most often. And prompt auditing — re-checking prompts written for older models — is the lever almost no one knows about, yet it’s the one most likely to apply to an existing codebase. Both hinge on measuring cost correctly. Figures throughout are vendors’ own directional numbers; verify on your workload.

Model selection: the median-vs-tail trap

Every vendor now says the same thing in different words. AWS’s GENCOST01-BP01 is “right-size model selection to optimize inference costs.” Google points to Model Garden’s 160+ models so you can match model to use case, and suggests using a lightweight model (like a small Flash model) to summarize context before an expensive call. Anthropic puts the core insight most sharply: a more capable model finishes a task with fewer turns, less searching, and less backtracking — “the per-token premium is routinely overwhelmed by doing less of everything.”

That last point is the crux, and it’s why cheap-per-token is the wrong lens. The intuitive move — pick the model with the lowest per-token price — measures the wrong thing. What matters is cost per completed task, not cost per token, and a pricier model that solves the task in fewer steps can cost less per task despite a higher per-token rate. Anthropic’s measured example: on a research benchmark, the frontier model at low effort was both more accurate and ~10% cheaper per task than the mid-tier model. The expensive model did less of everything (fewer turns, less searching) and netted cheaper.

But — and this is the honest caveat — it doesn’t always win. On a coding subset, a mid-tier model matched a frontier model’s accuracy at ~60% of its cost. So the answer isn’t “always use the frontier model” any more than it’s “always use the cheap one.” The answer is: measure cost per completed task on your own workload, because which model is cheaper per task depends on the task, and it’s frequently the opposite of what per-token pricing suggests.

Price the tail, not the median

The practice that matters most in model selection is subtle and decisive: price the tail, not the median. On any batch of tasks, the typical task looks similar across models and the cheapest model looks best — but the bill is decided by the tasks the cheap model fails. Anthropic’s measured example: on a 20-problem run, two problems carried 43% of total spend. A small number of hard tasks dominate the bill.

Why does failure drive cost so much? Because a failed task bills its tokens, then the retry bills again, then there’s the downstream cost of the failure (a human fixing it, a bad result propagating). So the cheap model’s failures cost far more than its per-token savings on the easy tasks. Evaluating a model on the median task hides this entirely — the median looks fine on every model. You have to look at the tail: how the model does on the hard tasks that carry the spend and drive the failures. The cheap model is only cheap if it doesn’t fail the expensive tasks — and whether it does is a tail question, not a median one. This reframes model selection from “compare average cost” to “compare cost including the tail of failures,” which is the number that actually decides the bill.

Related tooling automates parts of this: AWS Bedrock Intelligent Prompt Routing (route each request to an appropriate model) and Model Distillation (train a smaller model to match a larger one on your task) are vendor mechanisms for getting the right model per request.

Prompt auditing: the least-known lever

The second lever is the one almost no one knows, and it’s the most likely to apply to an existing codebase: audit your prompts against your current model. Over time, prompts accumulate instructions written for older models — “verify twice,” “be maximally thorough,” mandatory step-by-step procedures, hand-rolled reasoning scratchpads. These made sense for the model they were written for. A newer model follows them literally, producing extra tool rounds and extra output for no accuracy gain — you’re paying for instructions the new model doesn’t need.

Anthropic’s measured findings are striking:

There are two distinct failure modes to look for, and they fail in opposite ways:

The practice: re-run a prompt audit at every model change. When you upgrade models, don’t just swap the model and assume your prompts still fit — audit them for stale instructions the new model over-obeys or is confused by. It’s the least-known lever because prompts feel “done,” but they’re written for a moving target, and a model upgrade is exactly when they go stale. This is often the highest-ROI cost lever for an established codebase, because the waste is invisible until you look.

Putting model selection and audits together

These two levers combine into a disciplined approach to the model layer:

Model selection and prompt audits are where measuring the right number (cost per completed task, including the tail) beats the intuitive-but-wrong number (cost per token, on the median). The next post covers two more levers of control — effort tuning and budgets — including a cap that silently costs money.

Key takeaways

Further reading

Sources & References

Model routing and distillation