The framework, not the answer

Model rankings change constantly, so an article naming "the best model" is wrong within months. What lasts is the selection method — and the discipline of choosing on your own evaluation set rather than a public leaderboard.

Written to be useful regardless of which models are ahead when you read it.

The five dimensions that actually decide it

DimensionQuestion to answerHow to test
Task capabilityDoes it do your task well?Your evaluation set
CostWhat does it cost at your volume?Model your real traffic
LatencyFast enough for your interaction?Measure at your prompt size
Context windowFits your retrieved content?Check against realistic prompts
Data policyAcceptable to your legal team?Read the terms, do not assume

The data policy row is the one that stops projects late. Retention, training use, and processing location vary by provider and by tier. Enterprise tiers commonly offer zero retention, but confirm in writing rather than assuming. Discovering a policy problem after building is expensive.

Capability is task-specific

Models differ in ways that only matter for some tasks:

  • Long-context reasoning — synthesising across many retrieved documents.
  • Instruction adherence — reliably following format and constraint rules.
  • Structured output — producing valid JSON consistently.
  • Tool selection — choosing correctly among many available tools.
  • Refusal calibration — declining appropriately without being over-cautious.
  • Multilingual quality — varies considerably by language.

A model excelling at one may be mediocre at another. Which is why the only reliable comparison is against your task.

Model tiers within a provider

The choice is rarely just between providers — every provider offers a range, and using the largest model everywhere is a common and expensive mistake.

TaskTierReasoning
Intent classificationSmallNarrow and well-defined
Field extractionSmallPattern recognition
Routing decisionsSmallSpeed matters more than depth
SummarisationMidQuality visible, reasoning shallow
Customer-facing answersMid to largeErrors are externally visible
Multi-step reasoningLargeWhere capability genuinely differs

Routing by task tier typically reduces cost substantially with no perceptible quality loss — because most calls in a production system are not the hard ones.

A selection process that survives model churn

  1. Build an evaluation set — 50–200 real cases with expected outcomes. This is the durable asset.
  2. Shortlist by rough capability — benchmarks are adequate for narrowing to three or four candidates.
  3. Run each against your set, scoring accuracy, and recording latency and token usage.
  4. Model the cost at your projected volume, not per call.
  5. Check the data policy with whoever needs to approve it.
  6. Choose, and record why — so the decision can be revisited rationally later.

The evaluation set is the thing that keeps paying. Every time a new model appears, re-running it takes an hour and tells you definitively whether switching helps. Without it, every model release becomes an argument based on impressions.

Architecture that keeps you portable

  • Abstract model calls behind your own interface — never scatter provider SDK calls through the codebase.
  • Keep prompts in configuration, not hard-coded, so they can be tuned per model.
  • Do not depend on provider-specific features unless the value clearly justifies the lock-in.
  • Version your prompts alongside the model they were tuned for.
  • Maintain the evaluation set as a first-class artefact.

Done this way, a provider change is a configuration update plus a test run — rather than a project.

When to consider switching

  • Your evaluation set shows a measurable improvement, not a plausible one.
  • Cost at your volume has become a genuine constraint.
  • Latency is affecting user experience.
  • A data policy change makes your current provider unacceptable.
  • You need a capability your current model lacks — larger context, better structured output.

Not on that list: a new model topping a benchmark. That is a reason to test, not a reason to switch.

Choosing a model for a production application? Tell us the task and your constraints. See our AI agent service, building evaluation sets, and cost optimisation.

Frequently asked questions

The question does not have a stable answer — leaderboard positions change with every release. What is stable is the selection method: define your task, build an evaluation set, test candidates against it, and choose on your results rather than someone else's benchmark.
Design so you do not have to. Abstract model calls behind your own interface, keep prompts in configuration rather than hard-coded, and maintain an evaluation set you can re-run. Switching then becomes a test rather than a rewrite.
As a rough filter for which models to shortlist, yes. As a decision basis, no. Benchmarks measure general capability on standardised tasks; your application has a specific task, specific data and specific latency and cost constraints.