DEV Community

ServBay
ServBay

Posted on

Half the Token Price, 13 the Bill: How I Measure Model Cost Per Accepted Task

I Started With the Price, Then Did the Arithmetic

OpenAI cut the headline rate again. GPT-6.1 Terra's standard API price is $1 per million input tokens and $5 per million output tokens, about 50% lower than the previous generation.

My first reaction was the same as most people's. If the list price halves, does fixing a bug cost half as much?

No. A cheaper unit price does not make a cheaper completed task. I now compare models on cost per accepted task, which is model spend plus human cleanup, divided by the number of tasks that pass acceptance. A cheap model with a low pass rate and a lot of retries can still cost more overall. This post walks through the arithmetic I use and the numbers OpenAI published at launch.

What Terra Is

GPT-6.1 Terra is OpenAI's fast, efficient model. OpenAI positions it as a new balance of speed, capability, and cost. The announcement's typical scenario is high-volume automation, such as reading incoming invoices and entering details into accounting software.

What It Costs

The API model name is gpt-6.1-terra.

Item Price
Input $1 per million tokens
Cached input $0.05 per million tokens
Output $5 per million tokens

That standard API price is 50% lower than GPT-5.6 Terra and GPT-6.1 Sol.

Plus, Pro, Enterprise, and Edu users can use it in ChatGPT Work and Codex. Developers can call it through the OpenAI API. OpenAI also notes that with the same usage quota in ChatGPT Work and Codex, you can finish more tasks than with GPT-5.6 Terra.

The Benchmark Numbers, and What They Leave Out

Everything below is from OpenAI's published benchmarks.

Computer Use

On Agents' Last Exam at medium reasoning effort, scores are about 15 percentage points higher than GPT-5.6 Terra at roughly one-third the cost. On OSWorld 2.1, medium reasoning already beats GPT-5.6 Terra's best result.

Visual Reasoning

On MMMU-Pro, it beats GPT-5.6 Terra at every reasoning setting.

Factual Accuracy

On OpenAI's internal test built from prompts that tend to trigger errors, the error rate at low reasoning effort fell from 53.6% to 16.7%, and to 4.3% at maximum reasoning effort.

01

Software Engineering

On Terminal-Bench 4.0, the command-line coding benchmark, it solved 50.3% of tasks at maximum reasoning effort. GPT-5.6 Terra's published score was 21.5%.

Speed

Task completion is more than 3× faster than GPT-6 Astra and GPT-6.1 Sol.

The Boundary OpenAI Draws

OpenAI states that for the most complex coding work, GPT-6.1 Sol and GPT-6 Astra remain better choices. That sentence matters more than the leaderboard lines, because it sets the task-selection rule I use further down.

Safety Notes

OpenAI says Terra's cybersecurity capability reaches the Critical risk level in its Preparedness Framework, and it keeps the protections built for GPT-6 Astra. In alignment evaluations, Terra is more likely than GPT-5.6 Terra to stay within the task scope and to state its own limits accurately. In prompt-injection tests it also shows strong resistance to malicious instructions. Details are in the official system card.

The "One-Tenth" Claim Compares Two Different Things

The most common claim in circulation is one-tenth. The announcement has two nearby statements with different comparison targets.

The Astra Comparison

On Agents' Last Exam, Terra's performance is comparable to GPT-6 Astra while each token costs about one-tenth as much. That compares token unit price, against Astra, on computer-use tasks.

The Opus 5.5 Comparison

At maximum reasoning effort, Terra's token efficiency is more than 3× Claude Opus 5.5's, and each token costs about one-fourth as much, so cost per task is roughly one-ninth.

Neither claim says fixing one bug costs one-tenth as much. The second one already uses a per-task framing, and OpenAI itself does not equate unit price with total cost.

Three Costs the Price Per Million Hides

Comparing price per million tokens alone misses three things.

A Task Is Rarely One Attempt

If the first fix fails tests, the retry carries the error log with it. Every extra round bills input and output again.

Failed Attempts Still Bill

A wrong patch still spends tokens. That spend is not refunded.

02

Failures Need Human Cleanup

Fifteen minutes of engineer time debugging a bad model change can cost more than dozens of API calls.

So a low unit price is a necessary condition, not a sufficient one. A cheaper model with a clearly lower pass rate can still cost more overall. When pass rates are similar, the low unit price turns into real savings.

About the One-Dollar Demo Stories

Some public discussions use a single case to argue the cheaper model is the better deal, for example finishing a small game in a few minutes for a dollar or two. Those stories are vivid. Without a shared acceptance bar, and without saying whether the deliverable passed tests or needed rework, they are hard to convert into cost per accepted task. Case studies retold here were not independently verified, so I treat them as background only.

What Is Actually on the Bill

At the official rates, one call's cost is the sum of three parts.

Input and Cached Input

Input covers code files, error logs, and the prompt, billed at $1 per million tokens. Cached input is context that repeats across retries, billed at $0.05 per million tokens, one-twentieth of ordinary input.

Output

Output covers patches, explanations, and reasoning tokens, billed at $5 per million tokens, 5× the input unit price. Raising reasoning effort increases per-call cost as output grows.

Why Cache Matters Most on Retries

Code and prior context show up round after round. When cache hits, the marginal cost of another round drops sharply. Whether cache hits depends on prefix consistency and other conditions. The exact rules and TTL follow OpenAI's docs. When designing prompts, I put stable project notes and file contents first and this round's error text last, so cache is more likely to hit.

Five Steps from Unit Price to a Comparable Number

Step 1 to Step 4

  • Unit price. Look up official rates for input, cached input, and output.
  • Attempts. Record how many rounds each task took and how many tokens each round used.
  • Acceptance. Write the pass criteria up front. Named tests all pass, no regression on existing tests, no editing test files to force a pass.
  • Human cleanup. Record minutes of human intervention after model failure, converted at a single hourly rate.

Step 5 and the Formula

Cost per accepted task = (total model spend + human cleanup cost) / number of accepted tasks
Enter fullscreen mode Exit fullscreen mode

Accepted here includes tasks that passed only after human cleanup. Otherwise the formula hides the cost of failure. To judge the model alone, also track the share that passed with no human help.

Worked Example: Half the Unit Price, 13× the Bill

This is a calculation example. All parameters are assumed. They do not represent real pass rates for Terra or any other model.

Assumptions

  • Each attempt uses 10,000 uncached input tokens, 30,000 cached input tokens, and 8,000 output tokens.
  • At most 3 attempts per task, stopping on success.
  • If all 3 fail, human cleanup takes 15 minutes at $60/hour, which is $15.
  • Model A uses Terra rates with a 40% per-attempt pass probability.
  • Model B costs 2× Terra's unit price with an 80% per-attempt pass probability.
  • At Terra rates, one attempt costs $0.01 input + $0.0015 cached + $0.04 output = $0.0515.

03

The Code

def cost_per_accepted_task(p, price_mult, cap=3, manual_fix=15.0):
    # Per-attempt cost (USD) at the example Terra standard rates
    per_attempt = (10_000 * 1 + 30_000 * 0.05 + 8_000 * 5) / 1_000_000 * price_mult
    fail_all = (1 - p) ** cap                                   # probability all attempts fail
    expected_attempts = sum((1 - p) ** i for i in range(cap))   # expected number of attempts
    model_cost = expected_attempts * per_attempt
    manual_cost = fail_all * manual_fix                         # expected human cleanup after total failure
    return per_attempt, expected_attempts, fail_all, model_cost, manual_cost, model_cost + manual_cost

print(cost_per_accepted_task(0.4, 1))  # Model A: Terra rates
print(cost_per_accepted_task(0.8, 2))  # Model B: 2× unit price
Enter fullscreen mode Exit fullscreen mode

Results

Item Model A (1× price, 40% pass) Model B (2× price, 80% pass)
Cost per attempt $0.0515 $0.103
Expected attempts 1.96 1.24
Model spend $0.101 $0.128
Probability all fail 21.6% 0.8%
Expected human cleanup $3.24 $0.12
Cost per accepted task ~$3.34 ~$0.25

Reading the Table

Under these assumptions, Model A at half the unit price has about 13× Model B's total cost, and human cleanup dominates. Looking only at model spend, A is $0.101 per task and B is $0.128, so A is slightly cheaper. That single column is where a lot of the price debate stops.

The reverse also holds. If A's pass rate rises toward B's, human cleanup shrinks quickly and the price edge shows up. The hinge is not unit price. It is pass rate, plus how much human time a failure costs.

Running This on My Own Repo

Task Choice

Pick a stably reproducible bug with a failing test, a public repo, and a fixed commit. Medium difficulty works best, meaning not one-shot solvable and not hopeless.

Acceptance

Named tests all pass, no regression on existing tests, no editing test files to force a pass.

Controls

Same prompt, same code snapshot, same retry cap. Keep billing channels consistent, and do not mix API numbers with subscription quotas. Run each model several times, because a single run is noisy.

Fields to Record

Log the same fields each attempt and take token counts from the API usage fields, not from estimates. The table above is the shape I keep.

Where Terra Fits in My Task Split

OpenAI also says the most complex coding work still favors GPT-6.1 Sol or GPT-6 Astra. Combined with the ledger above, a rough split is a reasonable starting point, corrected later with your own data.

Start With Terra

Scoped fixes with test coverage are a good place to try Terra first. Pass rates are usually higher, retries fewer, and the low unit price shows up more clearly. High-volume, repetitive jobs also fit, because at scale the unit-price gap gets amplified.

Start With a Stronger Model

Cross-module refactors or tangled dependency changes are better evaluated on a stronger model first. When those fail, human cleanup is expensive, and the money saved on a single call will not cover it.

Fix the Tests First

If requirements are fuzzy and tests are missing, add tests before picking a model. Without acceptance criteria there is no way to compute cost per accepted task, and any model choice is a gut call.

04

Fixing the Acceptance Environment

When comparing cost, environment drift muddies results. The same bug can behave differently across language or database versions. A model's first failure might be bad code, or it might be mismatched dependencies. Those two failures should not sit in the same ledger.

Pinning the Runtime

ServBay, an AI development management tool I use for this, can pin PHP, Node.js, Python, and other runtimes on the same machine, along with database and site config. Once the acceptance environment is fixed, every model attempt runs under the same conditions, so attempt counts and pass rates become comparable.

One Endpoint for Model Calls

The ServBay AI Gateway also works as a single entry point. Calls go out with virtual keys while the real upstream keys stay encrypted and isolated from the project configs, and virtual keys can be revoked. Usage, cost, and latency roll up in one place, and Claude Code, Codex, and similar tools can point at the same endpoint. OpenAI, Anthropic, and Gemini compatible paths are available.

FAQ

Does a lower model unit price always save money?

Not necessarily. Unit price is only one part of total cost. With low pass rates, many retries, and heavy human cleanup, a cheap model can still cost more. The right metric is cost per accepted task.

How do you compute cost per accepted task?

Add total model spend to human cleanup cost, then divide by the number of accepted tasks. Model spend must include both successful and failed attempts.

What is GPT-6.1 Terra's API price?

Per the launch announcement, standard API pricing is $1 per million input tokens, $0.05 per million cached input tokens, and $5 per million output tokens. Prices can change, so use OpenAI's official pricing page.

Is Terra a fit for complex coding tasks?

On Terminal-Bench 4.0 at maximum reasoning effort, Terra solved 50.3% of tasks, a clear jump over the previous generation. OpenAI also says the most complex coding work is still a better fit for GPT-6.1 Sol and GPT-6 Astra.

Can cache hits distort a cost comparison?

Yes. Tasks with high cache hit rates cost less than estimates that assume ordinary input prices. In comparison runs, record each model's cached token counts and keep prompt structure consistent.

Is Copilot billed the same as the API?

No. The launch announcement does not spell out Copilot billing, so check GitHub's official billing docs. Do not apply API token unit prices directly.

What I Am Changing

Terra pushes price, speed, and coding ability forward together, and OpenAI's numbers make that clear. Those numbers come from specific benchmarks. Whether a given codebase gets cheaper still depends on its acceptance criteria.

The comparison is shifting away from leaderboard scores and toward how much money and time one finished task takes, and whether delivery stays reliable. The practical move is small. Take one reproducible bug, log tokens and human minutes per attempt, compute cost per accepted task, and then pick the model. Most of that judgment does not need a model to make it.

Top comments (0)