Surprise bills at month end
Your provider bills you after the fact. By the time the invoice lands, the spike is three weeks old and the deploy that caused it is buried.
Which deploy did this?REAL-TIME LLM COST INTELLIGENCE
Every dollar the instant a request completes, broken down by feature, model and customer. Text, image and voice priced component by component. One async call, no proxy, nothing added to your request path.
No card · the free plan prices exactly like the paid one
3 min in × 600 tok/min = 1,800 audio input tokens
2 min out = 1,200 audio output tokens
plus ~60 in / ~120 out text tokens per turn
These are one expensive and one cheap model per category. 420 models are priced in full. See every model's price → Open the full calculator →
THE PROBLEM
Your provider bills you after the fact, in one number, with no idea what your product does.
Your provider bills you after the fact. By the time the invoice lands, the spike is three weeks old and the deploy that caused it is buried.
Which deploy did this?One monthly total. No breakdown. The chat assistant and the batch summariser look identical from the outside, and one of them is 80% of your bill.
Which feature costs this?Same provider, 20× price gap between tiers. Moving a feature to a cheaper model might save hundreds or might quietly ruin the output quality.
Can I afford to switch?MECHANICS
No proxy, no prompts stored, nothing estimated that could be measured. Here is the whole path, because a number you can't check is a number you shouldn't trust.
01 — YOU SEND THE COUNTS
Your provider hands you a usage object with every response. You pass those counts to track() with a feature name. That's the integration.
It is fire-and-forget and sits outside your request path, so it cannot slow down or break what your users are waiting for. Prompts and completions never leave your infrastructure — we take counts, not content.
02 — WE PRICE EACH COMPONENT
A modern request is not two numbers. It is text in, cached reads, cache writes, audio in, reasoning, text out and audio out, and each one bills at its own published rate.
billableInput = prompt_tokens − cached − audio_in
billableOutput = completion_tokens − reasoning − audio_out
cost = billableInput × input_rate
+ billableOutput × output_rate
+ cached × cache_read_rate
+ cache_writes × cache_write_rate
+ audio_in × audio_in_rate
+ audio_out × audio_out_rate
+ reasoning × reasoning_rate03 — CACHING COUNTS PROPERLY
If you cache a prompt prefix, those tokens cost a fraction of full price — 90% less on one flagship model, 50% less on another. The discount is never a constant, so we read each model's own cache rate instead of assuming one.
Providers also disagree about whether cached tokens sit inside the prompt count or beside it. Get that backwards and you charge them twice. We resolve it per request, checking the model before the provider, so a model served through a reseller still resolves correctly.
Cache writes cost more than ordinary input. We show that too, because caching can make a bill worse and nobody warns you about that.
04 — YOU SEE IT IN UNDER A SECOND
Rates come from each provider's published schedule and are re-synced every day, so a price cut appears without anyone hand-editing anything. Cost is computed on our side, at ingest — we never accept a cost figure from your client.
When a provider publishes no rate for a component, we fall back to the standard multiplier and mark the row as derived. When we can't tell which convention a response follows, we price what we're sure of and flag the rest. A number you can see is uncertain beats a number that's quietly wrong.
The free plan runs this same engine on your real traffic. Start tracking free →
WHAT YOU GET
Cost tracking tells you what you spent. These tell you what to do about it.
MODEL INTELLIGENCE
Every cheaper model comes with a quality cost. We check each switch against independent benchmarks for the kind of work that feature actually does, and say so when the saving isn't worth it.
Available saving$43.69 per month
Coding index73 → 52 (−21)
Our verdictdeclined
CACHE INTELLIGENCE
Hit rate per feature, what caching saved you, and what a collapsed prefix is costing. It moves the moment someone edits a prompt — the invoice would tell you in three weeks.
Hit rate85% → 4%
Cost of the drop+$8.40 per day
FORECAST
A projection from your actual daily run rate, with the day you'll cross your budget. Not an extrapolation from a single week.
This month$824.76
Projected close$1,012
$600 budgetpassed on day 22
Causedocs-search, 94%
UNIT ECONOMICS
The question no observability tool answers: is this customer profitable? Tag requests with a customer ID and see margin per account, not just spend per model.
acme-corp · Pro $29$61.20 AI cost
northwind · Pro $29$3.10 AI cost
Margin spread−25% to +94%
MODEL PRICES
Input, output, cached reads, cache writes and audio, per million tokens. Public, dated, and the same sheet that prices your dashboard.
| MODEL | PROVIDER | INPUT | OUTPUT | CACHED | CACHE WRITE | AUDIO IN | MODALITIES |
|---|---|---|---|---|---|---|---|
| claude-sonnet-5 | anthropic | $2 | $10 | $0.2 | $2.5 | — | textimagepdf |
| gpt-realtime-2.1 | openai | $4 | $24 | $0.4 | — | $32 | textaudioimage |
| gemini-3-pro-image | $2 | $120 | — | — | — | textimage | |
| gpt-4o-mini | openai | $0.15 | $0.6 | $0.07 | — | — | textimagepdf |
| gemini-3.1-flash-lite | $0.25 | $1.5 | $0.03 | — | $0.5 | textimagevideoaudiopdf |
A dash means the provider publishes no separate rate for that component. We never invent one — the row in your dashboard says so instead.
See all 420 model prices →HONEST COMPARISON
If you need full request tracing, Langfuse and LangSmith do that and we don't. If you need to know which feature and which customer costs what, that's this.
| LLMtrack | Helicone | Langfuse | LangSmith | |
|---|---|---|---|---|
| Cost per feature | ✓ | partial | partial | partial |
| Cost per customer, with margin | ✓ | ✗ | ✗ | ✗ |
| Audio priced separately from text | ✓ | ✗ | ✗ | ✗ |
| Cache hit rate and savings | ✓ | ✗ | partial | ✗ |
| Benchmark-backed switch advice | ✓ | ✗ | ✗ | ✗ |
| Proxy required | no | partial | no | no |
| Prompts stored | never | yes | yes | yes |
| Full request tracing | ✗ | ✓ | ✓ | ✓ |
| Setup time | <2 minutes | 15 min | 30 min | 60+ min |
Competitor figures checked 2 October 2026 against each vendor's public pricing page.
PRICING
Start free. Pay only when your usage grows. No annual lock-in. No sales calls.
The full experience, free
$0foreverMore volume and longer history
$11.99per month13 Oct 2026 14:29 UTC1 hour ago
eu.anthropic.claude-sonnet-5-5cache_read −50%
us.anthropic.claude-sonnet-5-5cache_read −50%
global.anthropic.claude-sonnet-5-5cache_read −50%
anthropic.claude-sonnet-5-5cache_read −50%
420 models, 12 providers
Every estimate on this page, and every cost in your dashboard, uses this sheet.
See every model's priceAudio tokens priced separately from text on multimodal models
Cached and reasoning tokens no longer double-charged on OpenAI-style responses
Python SDK adds track_sync() for awaited delivery
Cost per user, with margin against plan price
It started with a number that didn't make sense: a bill four times what it should have been, and nothing anywhere that could say which feature caused it.
So the brief was narrow. Don't touch the request. Don't store the prompt. Just answer the question an invoice never does — which part of the product costs this much, and for which customer.
support@llm-track.comQUESTIONS
No. The SDK sends token counts, a model name and a feature label. Prompts and completions never leave your infrastructure, and the SDK has no field for them.
No. The call is fire-and-forget and happens after your provider has already responded. There is no proxy and nothing sits in your request path.
In tokens, like the providers do. An image becomes output tokens, a second of speech becomes audio tokens, and audio bills at its own rate — up to eight times the text rate on the same model. Each component is priced separately against that model's published schedule.
The event records with an unpriced status and a visible badge. It is never recorded as costing $0, because a silent zero is indistinguishable from a request that genuinely cost nothing.
Re-synced every day from each provider's published schedule, with the sync timestamp shown publicly on this page and in your dashboard.
Yes, and for one model and one feature you probably should. The part that becomes work is the price table: rates change, models are deprecated, and cache and audio rates are often published weeks after a model launches. A stale rate still produces a confident number.
Install the SDK, add one line after your existing call, and watch the first request land. Free forever, no card, no proxy.