AI inference economics: what it costs to serve an open LLM, and what hosts earn

Tolu Oladuji · October 2026 · LinkedIn · Code and data

A fully sourced, self-updating model of LLM inference unit economics. It combines GPU rental prices from 22 providers (hyperscalers, GPU clouds, small clouds and marketplaces), published serving benchmarks and API list prices from big and small hosts, then works out the cost to serve a request, each host's implied gross margin and the GPU utilisation needed to break even. All inputs are public and cited.

$0.88per 1M output tokens to serve Llama 3.3 70B on a rented H100 (60% utilisation)
$3.49 vs $11.06H100 per hour: small clouds & marketplaces vs hyperscalers (median)
39-58%implied compute gross margin at the major hosts' 70B list prices
6.3xprice spread across 21 gpt-oss-120b offers

Key findings

  1. Model size drives cost.

    On a rented H100 at the GPU-cloud median rate ($3.99 an hour) and 60% utilisation, serving costs about $0.12 per million output tokens for Llama 3.1 8B and $0.88 for Llama 3.3 70B: roughly 7x more for the larger model.

  2. Where you rent matters as much as what you serve.

    The same H100 rents for a median $3.49 an hour across 15 small GPU clouds and marketplaces, $3.99 at the larger GPU clouds and $11.06 on demand at AWS, Google Cloud and Azure. At the hyperscaler rate the 70B model costs $2.45 per million output tokens, above every host's list price, so nobody selling at these prices is renting hyperscaler capacity on demand.

  3. At list prices the economics work, if you fill the GPUs.

    A host renting GPU-cloud H100s at 60% utilisation would earn implied compute gross margins of 56-72% on Llama 3.1 8B and 39-58% on Llama 3.3 70B at Together AI, Fireworks AI and Amazon Bedrock list prices. Break-even utilisation for 70B is only 25-37%, so the risk is idle capacity, not price.

  4. The long tail competes below big-host prices, and only new hardware makes that pay.

    Across 22 providers and 37 offers on OpenRouter, smaller independent hosts price Llama 3.3 70B at a median $0.50 per million output tokens, against $0.72 at the big clouds. At those prices all 3 long-tail offers are below cost on rented H100s, even at small-cloud rates; on B200-class GPUs the same prices earn 18-39%. For small players, hardware generation is the business model.

  5. Next-generation hardware resets the cost curve.

    On a B200 running FP4, 70B serving falls to $0.54 per million output tokens, 39% cheaper than on H100, even though the B200 rents for more ($7.49 an hour). Implied margins at the big hosts' prices rise to 63-74%.

  6. Open models have a price range, not a price.

    gpt-oss-120b has 22 offers ranging from $0.15 to $0.95 per million output tokens, a 6.3x spread. The big hosts cluster at $0.60, the long tail undercuts them (median $0.25), and custom-chip providers charge the most (median $0.75), likely a premium for speed.

  7. Some prices sit below rented-GPU cost.

    DeepInfra's Llama 3.3 70B Turbo price would need 126% utilisation of rented H100s to break even, which is impossible. That points to owned or contracted capacity, more aggressive optimisation (the Turbo variants are not defined on the pricing page), or market-share pricing.

  8. Closed models price on value, not cost.

    Published prices for OpenAI, Anthropic and Google models span $0.10-$10 per million input tokens and $0.50-$50 per million output tokens, a 100x spread at the output price.

Same GPU, three very different prices: H100 median hourly price by provider type and the resulting cost per 1M tokens for Llama 3.3 70B
Implied gross margin at list price by host for Llama 3.1 8B and Llama 3.3 70B
H100 versus B200 cost per 1M tokens for Llama 3.3 70B
gpt-oss-120b output price across 21 provider offers

The whole market: big and small providers

Every offer on OpenRouter for the same three models, costed on small-cloud / marketplace GPUs (the cheapest realistic rented capacity) at 60% utilisation.

ModelSegmentOffersMedian $/1M outRangeMedian implied marginBelow cost
Llama 3.1 8Bhyperscaler / big cloud2$0.25$0.22-$0.2975%0
Llama 3.1 8Bcustom chips1$0.08$0.08-$0.0817%0
Llama 3.1 8Bmajor independent host1$0.04$0.04-$0.04-80%1
Llama 3.1 8Blong-tail independent host1$0.05$0.05-$0.05-54%1
Llama 3.3 70Bhyperscaler / big cloud3$0.72$0.71-$2.2546%0
Llama 3.3 70Bcustom chips2$0.84$0.79-$0.9043%0
Llama 3.3 70Bmajor independent host2$0.68$0.32-$1.04-11%1
Llama 3.3 70Blong-tail independent host3$0.50$0.40-$0.52-7%3
gpt-oss-120bhyperscaler / big cloud4$0.39$0.17-$0.6036%1
gpt-oss-120bcustom chips3$0.75$0.60-$0.9567%0
gpt-oss-120bmajor independent host4$0.55$0.17-$0.6055%1
gpt-oss-120blong-tail independent host11$0.25$0.15-$0.751%3

Implied margins at the major hosts' list prices

GPU-cloud median rate, 60% utilisation. Requests of 1,000 input + 1,000 output tokens, except gpt-oss-120b (output only).

ModelHostHost's modelList $/1M (in / out)Gross marginBreak-even util.
Llama 3.1 8BDeepInfraMeta-Llama-3.1-8B-Instruct-Turbo$0.020 / $0.040-105%123%
Llama 3.1 8BTogether AILlama 3 8B Instruct Lite$0.140 / $0.14056%26%
Llama 3.1 8BFireworks AISize-based tier: 4B-16B parameters (e.g. Llama 3.1 8B)$0.200 / $0.20069%18%
Llama 3.1 8BAmazon BedrockLlama 3.1 Instruct (8B)$0.220 / $0.22072%17%
Llama 3.3 70BDeepInfraLlama-3.3-70B-Instruct-Turbo$0.100 / $0.320-110%126%
Llama 3.3 70BAmazon BedrockLlama 3.3 Instruct (70B)$0.720 / $0.72039%37%
Llama 3.3 70BFireworks AISize-based tier: >16B parameters (e.g. Llama 3.3 70B)$0.900 / $0.90051%29%
Llama 3.3 70BTogether AILlama 3.3 70B$1.040 / $1.04058%25%
Llama 3.3 70B on next-gen B200DeepInfraLlama-3.3-70B-Instruct-Turbo$0.100 / $0.320-28%77%
Llama 3.3 70B on next-gen B200Amazon BedrockLlama 3.3 Instruct (70B)$0.720 / $0.72063%22%
Llama 3.3 70B on next-gen B200Fireworks AISize-based tier: >16B parameters (e.g. Llama 3.3 70B)$0.900 / $0.90070%18%
Llama 3.3 70B on next-gen B200Together AILlama 3.3 70B$1.040 / $1.04074%16%
gpt-oss-120b (MoE)Together AIgpt-oss-120B$0.150 / $0.60049%30%
gpt-oss-120b (MoE)Fireworks AIOpenAI GPT OSS 120B$0.150 / $0.60049%30%
gpt-oss-120b (MoE)Groqopenai/gpt-oss-120b$0.150 / $0.60049%30%
gpt-oss-120b (MoE)Amazon Bedrockgpt-oss-120b$0.150 / $0.60049%30%

How it stays current

The project updates itself. One command (python refresh.py) pulls live per-provider prices from OpenRouter's public API, saves a dated snapshot, logs every price change against the previous run, then re-runs the model and rebuilds the Excel file, charts, this README and the web page. A GitHub Actions workflow runs it every Monday, so the numbers here stay current without manual work. Sources without a public feed (NVIDIA benchmark tables and some GPU price pages) stay as dated, cited inputs.

The weekly automated refresh pipeline in five steps

Method

Serving cost per request = GPU $/hour ÷ (output tokens/sec per GPU × 3,600 × utilisation) × output tokens. List price per request = input tokens × input price + output tokens × output price. Implied gross margin = 1 − cost ÷ price.

Limitations