Model selection is often reduced to a leaderboard score or a token price. Neither tells you whether a model is the right choice for a production workload.
The right model is the least expensive option that reliably meets the task’s quality, latency, safety, and operational requirements. That answer can differ across extraction, support, coding, long-context analysis, and creative generation—even inside the same product.
Define the task before testing models
Write a short workload contract:
- input type and typical size;
- required output and format;
- quality acceptance criteria;
- maximum acceptable latency;
- privacy and data-region constraints;
- tools or modalities required;
- expected request volume;
- failure and fallback behavior.
Avoid testing an abstract prompt like “write a good answer.” Use the actual product task. If humans review the output, define what they accept, edit, or reject.
Build a representative evaluation set
Collect 50–200 examples covering:
- common requests;
- long or difficult inputs;
- ambiguous cases;
- safety-sensitive cases;
- formatting edge cases;
- examples that failed in production;
- different languages if the product supports them.
Remove sensitive data or use approved fixtures. Keep the set stable enough for comparison, then add new failure cases over time.
Do not expose the model to answers from the evaluation set through retrieval or prompt examples unless that is part of the real production design.
Score quality before cost
Create an acceptance rubric that can be applied consistently. Depending on the workload, it may include:
- factual correctness;
- completeness;
- required structure;
- citation validity;
- policy compliance;
- tone;
- absence of unsupported claims;
- executable or tested code;
- human correction time.
Use automated checks for deterministic requirements and human review for nuanced quality. Blind reviewers to the provider when practical. Record both average quality and the most serious failures.
An inexpensive model with a low acceptance rate can cost more after retries and rework.
Calculate full cost per accepted result
For each candidate, count:
- uncached and cached input;
- output;
- tool or search charges;
- retries;
- fallback calls;
- image, audio, or other modality charges;
- human review or correction when material.
Then calculate:
Cost per accepted result = total workflow cost ÷ accepted outputs
This is more useful than cost per million tokens because it connects provider spend to completed work. Also track cost at median and P95 input sizes; averages can hide expensive long-context cases.
Use current official provider pricing when calculating the benchmark and store the date. Prices and available models change.
Measure latency and reliability
Track:
- time to first token for interactive use;
- total response time;
- P50 and P95 latency;
- rate limits and queue behavior;
- transport failures;
- invalid structured outputs;
- timeouts;
- retry success.
A model that is cheap but regularly times out can damage conversion and create retry spend. Batch throughput may matter more than response latency for offline work, so apply the workload contract.
Evaluate operational fit
The model is delivered through a provider platform. Check:
- project or workspace isolation;
- credential scopes and service accounts;
- usage and cost reporting;
- regions and data controls;
- rate-limit visibility;
- versioning and deprecation policy;
- support for caching or batch processing;
- observability and request identifiers;
- contractual requirements.
Operational fit can disqualify a model even when its output is strong. A team must be able to control access, investigate costs, and respond to incidents.
Use a decision matrix
Set minimum gates before weighted scoring.
Pass/fail gates
- privacy and compliance;
- required modality or tool;
- minimum acceptance rate;
- maximum severe-error rate;
- maximum latency;
- required output format.
Only candidates that pass the gates enter the cost comparison.
Weighted decision fields
| Field | Example weight |
|---|---|
| Acceptance quality | 35% |
| Cost per accepted result | 30% |
| Latency and reliability | 15% |
| Operational controls | 10% |
| Implementation effort | 10% |
Weights should reflect the product. For a legal review tool, severe-error risk may dominate. For a nightly categorization job, cost and throughput may matter more.
Route instead of choosing one model for everything
After benchmarking, define workload classes:
- deterministic extraction;
- routine classification;
- short-form generation;
- complex reasoning;
- long-context synthesis;
- recovery or fallback.
Assign the least expensive approved model to each class. Keep routing rules observable and versioned. If a small model fails a confidence or validation check, escalate to a stronger model and include that fallback cost in the benchmark.
Avoid an opaque router that cannot explain why a request used an expensive model. Log the workload class, rule version, chosen model, and fallback reason.
Control model changes
Treat a provider model update or alias change like a production dependency change.
Before switching:
- run the evaluation set;
- compare quality, cost, and latency;
- review serious regressions;
- canary a small share of traffic;
- monitor unit cost and acceptance;
- keep a rollback route.
Pin model versions where the provider supports it and stability matters. If using an alias, monitor release notes and re-run evaluation after changes.
Watch for benchmark traps
- Prompt favoritism: one prompt was tuned for one provider.
- Average-only reporting: severe failures disappear inside the mean.
- Ignoring retries: the cheapest first attempt looks artificially good.
- Synthetic-only data: production edge cases are absent.
- No date: pricing and model identity become ambiguous.
- One global winner: workload differences are ignored.
- Quality without value: a higher score does not improve the user outcome.
- Cost without labor: human correction shifts expense off the provider invoice.
A practical selection cycle
Week 1: define the workload contract and evaluation set.
Week 2: test three to five plausible candidates with comparable prompts.
Week 3: optimize the top candidates, calculate cost per accepted result, and review operational controls.
Week 4: canary the winner, monitor production, and document the fallback.
Repeat when prices, models, prompts, traffic mix, or requirements change materially.
The decision record
Store:
- workload name and owner;
- candidate model identifiers;
- evaluation-set version;
- prompt or workflow version;
- acceptance rubric and results;
- cost calculation and pricing date;
- latency and error results;
- chosen model and fallback;
- approver and review date.
This turns model choice into an auditable product decision instead of a preference.
The practical answer
Do not ask which model is best in general. Ask which approved model completes this workload at the lowest reliable cost.
Define the task, benchmark representative cases, gate on quality and risk, compare full cost per accepted result, and canary the decision. That method remains useful even when the models and price tables change.
Official sources and references
Spendly Editorial
Practical guidance for teams that need clear ownership and control of AI spending.
