Posts

LLM Cost per User per Month

Turn per-token prices into cost per user per month. A worked model for a chat app, with caching, output limits and the levers that matter.
Onsp
Bar chart of LLM cost per user per month on Claude Sonnet 5: 14 cents for a light user, $1.38 for a regular user and $13.80 for a power user

Per-token pricing tells you nothing about whether your product makes money. The number that belongs in a business model is cost per active user per month. It is derived, not quoted, and it exposes problems that a rate card cannot.

The model

cost_per_user = requests_per_user × (input_tokens × input_price + output_tokens × output_price)

Everything else — caching, routing, retries — is a modifier on that expression. Build the base case first, then adjust.

A worked example

Assume a chat product where an active user sends 40 messages a month, each with 1,500 input tokens (including conversation history) and 400 output tokens.

ModelInput / 1MOutput / 1MCost per user / month
GPT-6 Luna$0.10$0.50$0.014
DeepSeek V4.1 Flash$0.30$1.20$0.037
Gemini 3.5 Flash-Lite$0.30$2.50$0.058
Claude Haiku 4.5$1.00$5.00$0.140
Claude Sonnet 5$2.00$10.00$0.280
GPT-6 Astra$10.00$50.00$1.400

The spread is roughly 100x between the cheapest and most expensive option for identical usage. On a $10 monthly subscription, that is the difference between healthy margin and losing money on every user.

Heavy users break naive models

Usage is never uniform. A small cohort of power users can consume an order of magnitude more than the median, and conversation history makes each message more expensive than the last. Without a cap, cost per user grows superlinearly with engagement — the opposite of what a subscription business needs.

Mitigations that work: cap history length with a rolling summary, tier the model by subscription level, rate-limit free accounts, and price the top decile of usage explicitly rather than averaging it away.

Where caching changes the number

In a chat product, the system prompt and any attached reference material are stable across every message. That is exactly the pattern caching rewards. At a 90% cache hit rate on a 1,000-token system prompt, the input line for that portion falls to 90% of list price.

Scenario (40 messages, 1,500 in / 400 out)Cost per user / month
Claude Sonnet 5, no caching$0.280
Claude Sonnet 5, 90% cache hit on a 1,000-token prefix$0.215 (23.1% lower)

Cost per user is the denominator of your pricing

If cost per active user is $0.40 and your price is $10, gross margin is fine and the conversation is about growth. If cost per user is $2.50 on a $3 plan, no amount of prompt tuning saves the business — the pricing is wrong.

Compute the figure monthly, per cohort, and watch its trend rather than its level. A rising cost per user with flat revenue is the earliest signal of a problem, and it appears long before it reaches the invoice total.

Model your own numbers with the free calculator.

Related reading

Post a Comment

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.