Guide · AI workload economics

Why the cheapest LLM per request can cost more per result

Price per request tells you what an attempt costs. What a team pays for is a result. When a model fails more often, its low price is spread over fewer successes, and the cheapest model on a price sheet can become one of the most expensive per successful outcome.

The metric: cost per successful request

For one workload and one model, add up the cost of every request, including the ones that failed, and divide by the number of requests that succeeded.

cost per successful request = cost of all requests ÷ successful requests

Failed attempts are still billed. A retry is a second paid request. So the denominator is what changes the ranking: a model that succeeds on one request in ten carries the cost of the other nine.

A worked synthetic example

These figures come from the synthetic usage export AIYVO's analyzer is demonstrated on. The models are fictitious; the arithmetic is the point.

Synthetic example: 200 requests per model
ModelSucceededPer requestPer successful request
model-c120 of 200$0.0147$0.1474
model-b1149 of 200$0.0510$0.0684
model-a1173 of 200$0.1743$0.2015

Ranked by price per request, model-c1 is first. Ranked by cost per successful request, model-b1 is first and model-c1 drops to second: $0.14744 ÷ $0.06842 ≈ 2.15. That ratio is illustrative, between two synthetic models; it is not a measured outcome for any real provider.

What has to be true before you trust the number

Requests are not always the unit that matters

An agent step, a retry and a fallback are each a request. A task is the whole job, and it succeeds or fails once. If your export has one row per request, you get cost per successful request; if it records whole tasks, you can compute cost per completed task, which adds up every request the task needed. The two answer different questions, so check which one your data supports before comparing models. The provider comparison checklist covers this in more detail.

Where the number stops

Cost per successful request says nothing about latency, data-handling terms or how good a successful answer is beyond your success check. It is one input to a model decision, and it is only as good as the success flag and cost fields in the export behind it.

See it on a worked example

The AIYVO analyzer runs offline on a usage export you already have. On this site it is shown step by step on a synthetic export with fictitious models, so you can inspect every input, command and output.

Measuring one real workload? Send a pilot-interest inquiry to jorge@aiyvo.com. It creates no account, subscription or commitment, and does not guarantee a pilot.