Cost-per-Task over Benchmark Scores: The 30-Minute Method to Truly Decide Your Model Switch
TL;DR: Benchmark tables compare models on foreign tasks. But your decisions are based on your tasks. With five real tasks, two measurement runs, and a mini-table per token category, you can create your own cost-per-task calculation in 30 minutes—and you only switch if the new model wins in dollars and seconds, not just in points.
Why Benchmark Tables Alone Rarely Help
Public scores like GPQA or MMLU are useful for an initial shortlist. However, when it comes to switching a model in production, they lack three things: they don't know your prompt lengths, they ignore the context tax in long sessions, and they tell you nothing about the price-performance ratio per actual task.
A model might be 3 points ahead on paper but still end up more expensive or slower in your stack—for instance, because it requires more output tokens per answer or has a worse cache hit rate. Therefore: measure it yourself, calculate it yourself.
The 30-Minute Method in 5 Steps
- Select five real tasks: Take the last five production requests from your workflow, not tutorial examples.
- Same prompts, both models: Run each once on the old model, once on the new, with identical parameters (temperature, max tokens).
- Record four values per run: Input tokens, output tokens, seconds, correct yes/no.
- Calculate cost-per-task: Divide token counts by 1,000,000, multiply by the respective token price, then sum it up per task.
- Compare after 5 tasks: Calculate the medians—not averages; otherwise, single outliers will distort the picture.
The log is just a single table. That's all it takes.
Calculation Example with Real Pricing Data
Hy-4 Preview (Tencent, 770B total / 49B active parameters, Apache 2.0) costs $0.834 per million input tokens and $2.001 per million output tokens via API. A typical support task with 8,000 input and 2,000 output tokens:
| Model | Input | Output | Cost-per-Task |
|---|---|---|---|
| Hy-4 Preview | 8,000 × $0.834/M = $0.0067 | 2,000 × $2.001/M = $0.0040 | ≈ $0.011 |
| Frontier Model (Reference) | 8,000 × $1.25/M = $0.0100 | 2,000 × $10/M = $0.0200 | ≈ $0.030 |
At 2,000 tasks per month, we are looking at roughly $22 vs. $60. The switch is worth it if the five tasks are answered at least equally well in terms of content—measured against your own corpus, not the leaderboard.
If you are measuring locally, apply the same logic using hardware time instead of token prices: Qwen3.8-27B as a GGUF requires about an 11.8 GB footprint and runs at roughly 40 tokens/s on an RTX 5060 Ti—that is also a cost-per-task metric, just in seconds instead of dollars.
A Copy-Paste Template
task_01:
prompt_hash: a1b2c3
model_old: {input: 8000, output: 2000, seconds: 6.4, correct: true}
model_new: {input: 8000, output: 1700, seconds: 4.1, correct: true}
cost_old: 0.030
cost_new: 0.010
task_02: ...
# Calculate medians at the end, not averages
Common Mistakes
- Too short series: Under five tasks, the variance is greater than the difference. Measure, don't guess.
- Changing parameters: If you tweak the temperature for the new model, you are measuring the parameter tuning, not the model switch.
- Forgetting the context tax: Long sessions bloat the input tokens. This is exactly why you count per task, not as a flat rate per model.
- Only comparing dollars: For latency-critical workflows, the seconds column is what tips the scales.
FAQ
How many tasks do I need for a reliable cost-per-task metric? Five tasks is the lower limit; ten is comfortable. The reason: token counts scatter heavily depending on the task type, and the median of five runs smooths this out much better than the average of two. If no consistent pattern emerges after five tasks, your task selection was too mixed—in that case, split them into two series (e.g., short classification vs. long summary).
What if the new model returns different token counts for the same prompt? That is normal and part of the measurement: log input and output tokens separately for each model. The cost-per-task calculation automatically accounts for this because both values are included in the sum. You should only compare the time in seconds if the prompt length is identical, otherwise you are mixing latency and model effects.
Does this method also work for local models? Yes, you just calculate in seconds per task and a fixed hardware window instead of dollars per token. A local run on an 11.8 GB footprint at 40 tokens/s is directly comparable to an API runtime, because both end up in the same unit (seconds per task). The advantage: your caching behavior and context tax are measured realistically.
How do I handle caching — should I turn it off? No, on the contrary: measure in the same mode you use in production. Prompt caching is part of the cost profile of your setup. Just note in the log table whether the cache was warm or cold so you are comparing apples to apples. A single cold-start run per model is enough as a reference.
When is it worth remeasuring later on? With every major release of the new model and when the pricing changes—both are rare, so you will measure quarterly at most. In between, the initial measurement is sufficient because token prices and model architectures don't change constantly. Only if your prompt lengths shift significantly in production should you update the series, because then the cost-per-task curve shifts with them.
Sources
- Tencent Hy-4 Preview (Model and pricing data): https://www.youtube.com/watch?v=Dmlszfz2LjM
- Deltafin — Layer streaming for 2.8T Kimi K3 on laptop NVMe: https://github.com/argonautlabsai/deltafin
- Qwen3.8-27B GGUF metrics (footprint, tok/s): Kontext-Studios-Daily-Intel-Run #175
- Google Gemini API-Pricing (Reference prices): https://ai.google.dev/gemini-api/docs/pricing