Guides / cost cross check
What is a cost cross-check?
A cost cross-check compares the figure you calculated from tokens and rates against the figure the provider reported for the same call, and flags a difference bigger than display rounding explains. Culpa, a local-first LLM cost, margin, and forecast ledger, reconciles the two per model, so a wrong rate surfaces as a disagreement rather than as a plausible total.
Why this happens
A calculated cost is only as good as the rate behind it, and a rate is a number somebody typed. That's the weak joint in every cost ledger, and it fails silently, because a wrong rate produces totals that are internally consistent and uniformly wrong. When a provider reports its own cost figure alongside the response, you get a second opinion for free. The two should agree to within a whisker, and the size of that whisker matters: too tight and ordinary rounding looks like a fault, too loose and a real error hides.
What this usually looks like
- Your rates were entered once and nothing has ever checked them against a provider.
- One model's totals are consistently off while every other model reconciles.
- A provider returns a cost figure and nothing in your pipeline reads it.
- Rate updates ship with no test that would catch a mistyped decimal.
Free, no card, no account
Run the free Cost Leak Scan
It shows your most expensive conversation before you install anything.
Mistakes that cost the most
| Mistake | Why it hurts | Do instead |
|---|---|---|
| Trusting a calculated cost because it's self-consistent. | A wrong rate is self-consistent across every row it touches, which is what makes it survive. | Compare against the provider's own figure wherever one exists, per model rather than in total. |
| Comparing only monthly totals. | One model's error can hide inside another model's volume, so the aggregate agrees while a rate is wrong. | Group the comparison by model. An error that vanishes in the total stands out per model. |
| Setting the tolerance by feel. | Too tight and rounding noise buries the signal, too loose and a real rate error passes. | Set it just above provider display rounding, so anything larger is worth investigating. |
Run this check tonight
- Check whether any provider you use returns its own cost figure, and whether you keep it.
- For a month, compare calculated against reported per model rather than in aggregate.
- Divide each model's difference by its call count to get a per-call delta.
- Treat anything meaningfully above rounding noise as a rate to re-verify against the provider page.
- Re-run the comparison after every price-book update, because that's when a digit goes missing.
Three models compared per call, not in total
Illustrative example
900,000 calls in a month across three models where the provider returned its own cost figure. A tolerance of $0.000002 per call absorbs provider-side display rounding. Figures are modelled.
Two models agree to within display rounding and one disagrees by exactly a tenth. The per-call view is what makes that legible, because in a $24,400 total a $310 error looks like nothing.
Every number, with its confidence and source
| Figure | What it means | Confidence | Source |
|---|---|---|---|
| $0.000002 | per-call tolerance that separates provider display rounding from a genuine pricing error | calculated | An absolute per-call tolerance chosen to sit just above provider-side display rounding, applied to the absolute difference between calculated and reported cost. |
| $310.00 | modelled monthly disagreement on one model, from a rate entered 10% low | calculated | $3,410.00 reported minus $3,100.00 calculated, from the teardown arithmetic. The call volumes are modelled. |
What a generic answer can’t know
A provider reports what it charged and has no idea what you calculated, so it can't tell you the two disagree. That comparison only exists where both numbers are held per call, next to the model that served it. Culpa keeps them on your infrastructure, where your prompts and responses stay, and counts the calls to run your plan.
Questions founders ask next
Why not just use the provider's reported cost?
Because it isn't always there, and when it does arrive it carries no attribution. A calculated figure can be split by feature, user and customer, which is the whole point. The reported figure is best used as a check on the calculated one rather than as a replacement for it.
How small should the tolerance be?
Just above provider display rounding. Around two micro-dollars per call works, because it absorbs the rounding a provider applies to its own figures while still catching a rate that's wrong by any meaningful margin.
Does this site publish provider-reported figures?
No, and that's a different question from what the product records. Every cost figure on these pages is calculated with the arithmetic shown or an estimated range, because no customer invoice data backs a reported one here. A product reconciling against a provider's number is doing the opposite of publishing it.
On your infrastructure
Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.
How Culpa works
Find the culprit. Not just the total.
Your dashboard shows what you spent. It stops short of who spent it. Culpa shows the conversation, the user and the feature behind it.
Your prompts stay local.
Culpa runs on your own infrastructure. What you send to a model reaches us at no point.
Every dollar has a name.
Follow any charge to the conversation, the user, the feature and the customer behind it.
See the bill before it lands.
Cost your next feature before you ship it. You get the likely bill and the worst case, at best, median, p90 and p99.
Three steps to your first answer.
Change one base URL.
Or drop in the Python or TypeScript library.
Find your most expensive conversation.
In the first session, not the first week.
Cost your next feature before you ship it.
Why the bill went up
Example dashboardCalls traced
418,209
across 3 projects
Spend this week
$378.41
+ $182 vs last week
Failed calls
312
74% retried, and you paid for all of them
+ $182 this week traced to one culprit
Spend over 14 days
Most expensive users
Next week forecast
Graded against reality. Accuracy shown as results land.
Free, no card, no account
Run the free Cost Leak Scan
It shows your most expensive conversation before you install anything.
Keep reading
Sources: Anthropic pricing. Last reviewed 2026-08-02. Plain text version.