Skip to content
NewKubeOn AI: a managed LLM gateway with cost per 1M tokens for every model
All articles

AI

What a million tokens really costs

The price list says one number per million tokens. Your bill says another. Provisioned capacity billed by the hour, cached tokens, retries and output ratios decide the real cost, and whether a reservation pays off.

KubeOn Engineering

October 13, 20265 min read

AI spend has become a FinOps problem in a single year. In the FinOps Foundation's 2025 survey, 63% of practitioners manage AI spend, up from 31% the year before (FinOps Foundation, State of FinOps 2025). In Flexera's 2025 survey, 72% of organizations use generative AI public cloud services, up from 47% (Flexera, State of the Cloud 2025 (press release, 19 March 2025)). And the price of the underlying capability keeps falling: Andreessen Horowitz estimated that for an LLM of equivalent performance, the cost is decreasing by 10x every year (Andreessen Horowitz, Welcome to LLMflation (November 2024)).

Falling list prices and rising bills are not a contradiction. Usage grows faster than prices fall, and the list price per million tokens is only one input to what a million tokens actually costs you.

63%

of FinOps practitioners manage AI spend, up from 31%

Source: FinOps Foundation, State of FinOps 2025

72%

of organizations use generative AI public cloud services, up from 47%

Source: Flexera, State of the Cloud 2025 (press release, 19 March 2025)

10x

yearly fall in cost for an LLM of equivalent performance

Source: Andreessen Horowitz, Welcome to LLMflation (November 2024)

$644B

forecast worldwide generative AI spending in 2025

Source: Gartner, GenAI spending forecast (31 March 2025)

Why the list price is not your price

  • Output costs more than input. Most models price output tokens at a multiple of input tokens, so a chatty prompt and a verbose answer have very different costs per request.
  • Cached tokens are cheaper, or free on provisioned capacity. Repeated prompt prefixes can be served from a cache; on Azure's provisioned deployments, cached tokens don't consume capacity at all.
  • Retries and fallbacks are billed too. A request retried after a timeout, or sent to a second provider after a 429, is paid for twice.
  • System prompts ride on every call. A long instruction block multiplied by millions of requests is often the largest single item.
  • Provisioned capacity is billed by the hour. That is the big one, below.

Provisioned capacity: billed whether or not you use it

On Azure, a provisioned deployment holds a fixed amount of model processing capacity, measured in provisioned throughput units (PTUs), exclusively for you. It is billed at an hourly rate per PTU "regardless of the number of tokens consumed", from the moment the deployment is created until it is deleted. Azure Reservations lower the effective hourly rate in exchange for a 1-month or 1-year commitment, and are bought separately for Global, Data Zone and Regional deployment types. A reservation is a discount, not a guarantee of capacity (Microsoft Learn, Provisioned throughput for Foundry Models).

Amazon Bedrock and Google Vertex AI sell provisioned throughput on the same principle. The consequence is the same everywhere: the cost per million tokens of provisioned capacity is the hourly bill divided by the tokens you actually pushed through it.

Effective cost per 1M tokens
effective cost per 1M tokens =  (pay-as-you-go charges + provisioned hourly charges + amortized reservations)  / (tokens served / 1,000,000)

When does provisioned capacity pay off?

Take a deployment with a provisioned commitment costing $18,000 a month, and a pay-as-you-go price for the same model of $2.50 per million tokens. The provisioned deployment's cost per million tokens depends only on volume:

Tokens served in the monthProvisioned: cost per 1MPay-as-you-go: cost per 1MCheaper
4,000M$4.50$2.50Pay-as-you-go
7,200M$2.50$2.50Break-even
10,000M$1.80$2.50Provisioned
Illustrative prices, not any provider's rate card. Real comparisons also depend on the latency guarantee provisioned capacity gives, and on the output-to-input ratio of your traffic.

Below the break-even volume, the reservation is buying latency, not savings. Above it, every extra token is nearly free until the capacity is full, which is why the next question is how much capacity to provision.

Size from per-minute demand, not the monthly total

  • Collect utilization per minute: capacity is sized for minutes, and a monthly average hides the peaks.
  • Size to a percentile of per-minute demand that matches the latency you need, and let the rest spill over to pay-as-you-go. On Azure, spillover can send requests that hit a fully used provisioned deployment to a standard deployment automatically.
  • Wait for enough history: KubeOn needs at least 7 days of per-minute data to size a deployment, and 14 days before it counts toward reservation coverage.
  • Compare reservations with deployed capacity per pool. Global, Data Zone and Regional are separate quota pools and separate reservation products; a reservation in one cannot cover a deployment in another.

Route every request to the cheapest place that meets its needs

Once capacity is sized, routing decides whether it gets used. Send each request to provisioned capacity first, spill over to pay-as-you-go when it is busy, and fall back to another provider on errors. Give each team its own key, budget and rate limit, so a runaway experiment hits its own ceiling rather than everyone's.

Who does what

How provider charges become effective token cost

  1. 01

    Import

    Read provider charges and token telemetry for matching windows.

    Provider data

  2. 02

    Classify

    Separate pay-as-you-go, provisioned capacity, reservations and other meters.

    Tokenomics

  3. 03

    Allocate

    Assign model and capacity charges using the documented allocation method.

    KubeOn AI

  4. 04

    Compare

    Review effective cost per 1M tokens by model, deployment and owner.

    FinOps + AI teams

Tokenomics can operate with read-only provider access. Gateway routing is optional.

Read the workflow
How KubeOn AI turns provider charges into an effective cost per 1M tokens, by model, team and deployment.
Is a cheaper model always cheaper?

Per token, usually. Per task, not always: a smaller model that needs longer prompts, more retries or a second pass can cost more for the same outcome. Compare cost per task where you can measure it.

Should we buy a 1-year reservation?

Only for capacity that stays busy above the break-even volume for the whole term, and only after the deployment exists, because a reservation does not reserve capacity.

How do we charge AI spend back to teams?

Attribute each request to a team key or tag at the gateway, and spread provisioned and reservation cost by the share of tokens each team consumed in each hour.

What does KubeOn AI do here?

It joins provider billing to token telemetry per deployment, computes effective cost per 1M tokens including PTU hours and reservations, sizes provisioned capacity from per-minute utilization, and runs an OpenAI-compatible gateway that routes to provisioned capacity first and enforces team budgets. Capacity purchases and renewals wait for a named approver.

See your AI spend per team, model and request.

A 30-minute walkthrough on your own Azure OpenAI, Bedrock or Vertex AI usage.