Slavik Shynkarenko

notebook № 106 plates · 14 min to read, longer to play ·

What are you paying for?

On the meters behind the bill

part 1 of 6 in What AI costs · by

An AI bill looks simple until you open it. Tokens, hours and seats all show up on it, and most of the tokens are ones nobody typed. This notebook takes the bill apart meter by meter, with instruments you can push until the numbers surprise you.

I

plate I · the token meter

Priced by the token

A language model reads text in tokens, chunks about three-quarters of an English word long (the LLM notebook shows how text is cut up). Model APIs bill by the token, quoted per million tokens, and they keep two prices: one for the tokens you send in, one for the tokens the model writes back.

The output price is almost always the higher one, usually three to eight times the input price. There’s a mechanical reason. The model reads the whole prompt in one parallel pass, but it writes its answer one token at a time, with a full trip through the network for every token. Writing keeps the GPU busy far longer than reading.

So a request’s cost is two multiplications and a sum: input tokens × input price, plus output tokens × output price. Multiply by requests per day and the small numbers turn into a budget line. Many providers also sell the same model at about half price as a batch, if you can wait hours rather than seconds for the answer.

Set a long prompt and a one-line reply. Then flip it round. Which arrangement costs more, and by how much?

fig. 10.1~/token-metermodel · tokens · traffic
Illustrative prices per million tokens for a small, a mid-size and a large model, in the range of 2026 list prices. Real prices change often, so check your provider’s page.
II

plate II · hidden tokens

What you typed, what you paid for

This surprises almost everyone the first time they look. The model is billed for everything it reads, and what you type is the smallest piece of that. Behind a twelve-word question sits a whole bundle the application sends along with it.

The system prompt holds the instructions that make a general model behave like your product. Tool definitions describe every function the model may call, and they go out in full with every request. The conversation so far rides along too, because the model remembers nothing between calls. A search step often pastes in retrieved documents so the model can answer from them.

Reasoning models add one more line. Before answering they write a hidden chain of thought, and those reasoning tokens are billed at the output price, even though you never see them. The FinOps Foundation’s guide to AI costs makes the same point: billed tokens and typed tokens are different numbers.

Turn everything on and read the ratio. Then switch off only the tool definitions. Was that the piece you expected?

fig. 10.2~/one-requestswitch the layers on and off
One request to a mid-size model, with typical sizes for each layer of a support assistant. The sizes are illustrative. The shape is what real applications look like.
III

plate III · agents

The agent rereads its desk

An agent is a loop: the model reads, calls a tool, reads the result, calls another tool (the agent notebook builds one). Each turn is a fresh request, and because the model remembers nothing, each request re-sends everything so far: the instructions, every earlier message, every tool result.

So the bill grows with the number of turns squared. Turn thirty pays to read turns one to twenty-nine again. That’s why a coding agent’s bill is mostly input, and why a loop left running overnight can produce a bill nobody believes in the morning.

It can. Providers offer prompt caching: when a request starts with exactly the same tokens as a recent one, that prefix is read from a cache and billed as a separate line item, at a fraction of the input price, from about half down to a tenth depending on the provider. Writing a prefix into the cache can cost a little extra. On a loop like this one, the cache line ends up holding most of the tokens.

Play to turn 30 with caching off, note the total, then switch caching on. Then make each tool result twice as big.

fig. 10.3~/agent-loopstep, play, cache on or off
A simulation of an agent at mid-size model prices. Each bar is one turn’s input: dark is the context it re-sends, bright is what’s new. With caching, re-sent context is billed at a tenth of the input price and new context at 1.25×, one provider’s published ratios.
IV

plate IV · capacity

Paying for the clock

Tokens aren’t the only meter. Run an open-weights model on your own GPUs, or train one, and the bill is in GPU hours: you pay for the machine for every hour it’s switched on, whether it’s answering a thousand requests or none, which is why self-hosting only pays at high, steady volume. Many providers sell their own models this way too, as provisioned throughput: a reserved slice of capacity at an hourly or monthly price, much like the cloud commitments sold for servers.

On this meter, the price of a token isn’t on any price list. It falls out of one ratio: what the hour cost, divided by the tokens you served in it. A busy GPU makes cheap tokens. An idle one makes very expensive tokens, or rather, no tokens at a fixed price.

Traffic has a shape, though. It peaks in office hours and sags at night, and capacity has to cover the peak or requests get throttled. Size for the peak and you pay for empty hours. Size for the average and the busiest hours spill over, onto a pay-per-token endpoint or into an error. Which way to lean is a business call.

Add GPUs until nothing spills, then read the cost per million tokens. Now halve the traffic.

fig. 10.4~/gpu-daytraffic · GPUs
A simulation of one day of traffic served by GPUs at an illustrative $3 per GPU-hour and 2,000 tokens a second each. The last readout prices the same traffic at an illustrative $1 per million tokens, pay-per-token.
V

plate V · seats

Per head, not per use

The third meter counts people. Coding assistants, chat tools and the AI built into office software are mostly sold per seat: a flat fee per user per month, however much they use it. Finance loves seats, because the bill is known in advance. The trouble is that AI use is very uneven.

Plot it for a hundred people and you get a long tail. Most people use a little. A handful use a lot, often more than their seat costs the vendor in tokens. A flat seat makes the light users pay for the heavy ones, and every seat nobody opens is pure cost.

That’s why AI pricing keeps drifting towards a seat with usage included, plus overage. The seat covers the median user, and the tail pays for what it uses. For the buyer, that means the seat bill alone no longer tells you what the tool costs: the number to watch becomes cost per active user.

Try “flat seat” at 40% adoption, then “seat + usage” at 90%. Which one would you rather explain to finance?

fig. 10.5~/hundred-seatspricing · adoption
A simulation of 100 licensed users with a long-tailed spread of use, measured as what their usage would cost at API prices. Seat $30 a month. “Seat + usage” is $20 with $20 of usage included. Prices are illustrative.
VI

plate VI · reconciliation

Four bills that don’t agree

Put the meters together and a company’s AI spend arrives on at least four different kinds of bill, each with its own unit, its own level of detail and its own idea of who the customer is. Models bought through your cloud provider show up in the cloud bill, next to everything else, and can carry your tags. A direct contract with a model provider sends its own invoice, broken down by project or API key at best. Seat tools bill per user. GPUs bill per instance hour.

Reconciling them means answering the same question across all four, and that’s where it gets hard: most bills can’t say which team, product or feature the money served. That has to be added by you, at the moment of the request, with tags, separate keys or a gateway that stamps every call. The Foundation’s advice is to tag training, inference and batch inference separately from day one, and to keep experiments apart from production.

fig. 10.6~/reconcileask the bills a question
What each bill can tell you, out of the box
BillBilled inWhich team?Which feature?Which model?Training or inference?Which person?
Models through your cloudBedrock, Vertex AI, Azure OpenAITokens, per model, per hourBy account or tagWith tags or one key per featureOne line per modelOnly if tagged
Direct model providerAPI invoice and usage exportTokens, per model, per dayBy project or API key, if you made one per teamWith one key per featurePer model, per dayFine-tuning is its own line item
AI in seat toolscoding assistants, chat, office AISeats per month, sometimes usage on topVia your directory, by mapping users to teamsSometimes, in usage reportsPer user
GPUs you runtraining and self-hosted modelsInstance hoursBy account or tagOnly if taggedThe bill sees machines, not modelsOnly if tagged
A typical picture, simplified. Individual providers differ, and their exports improve every year. “Only if tagged” means the bill can carry the answer once you add it at request or resource level.

The FinOps Foundation’s open billing format, FOCUS, is the long-term fix for the shape problem: one schema for every bill, cloud, SaaS and AI alike. The tags problem stays yours. Every row in this table that says “only if tagged” is a decision someone has to make when the system is built, not when the invoice arrives.

That’s the whole bill, taken apart. The next step is putting a name on every line, which is what allocation is about, and for AI it takes some new plumbing.

Pick “which feature?”. Not one bill answers it on its own: every answer there is something you add.

Questions people ask

Why do output tokens cost more than input tokens?

A model reads the whole prompt in one parallel pass, but it writes its answer one token at a time, and each new token needs another trip through the model. Generating is slower and ties up the GPU for longer, so providers charge more for it, usually three to eight times the input price per token.

Why is my LLM bill so much higher than the text I send?

Because the model is billed for everything it reads, not for what you typed. Each request carries the system prompt, the tool definitions, the conversation so far and any retrieved documents, and reasoning models also bill their hidden thinking as output. An agent re-sends all of it on every turn, so its input grows with every step.

Is a per-seat AI licence cheaper than paying per token?

It depends on how evenly people use it. A seat is a flat fee per person, so it is cheap for heavy users and expensive for people who barely open the tool. Usage is fat-tailed: a few people use most of it. That is why many AI tools now sell a seat with included usage and charge for the overage.