Guides / tracked call
What is a tracked call?
A tracked call is one model request a cost ledger recorded, and it isn't a flat unit. Culpa, a local-first LLM cost, margin, and forecast ledger, counts one credit for the call plus one more for each complete 10,000 tokens it moved, so a large call costs several times a small one. The meter counts work rather than requests.
Why this happens
Every metered developer tool has to answer one question: what is a unit. Counting requests is simple and wrong, because a 400-token classification and a 90,000-token document read are the same request and nothing like the same work. Counting tokens alone is fair and unreadable, because nobody plans in tokens. The workable answer is both, and it means your allowance depletes at a rate set by your prompt sizes rather than by your traffic. Teams size a plan on call count, then find the number moving for another reason.
What this usually looks like
- Your allowance is depleting faster than your call count suggests it should.
- Nobody knows the average token size of a call in your busiest feature.
- A plan was picked from request volume alone, with no reference to prompt size.
- Usage climbed after a prompt change that added no traffic at all.
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 |
|---|---|---|
| Sizing a metered plan on request count. | A heavy call can cost several times a light one, so the same traffic lands anywhere in a wide range. | Multiply call count by the credits each call actually costs at your average token size. |
| Forgetting that cached input still counts. | Caching cuts your provider bill and leaves the metered token volume where it was. | Count cached tokens in your sizing. They save money and they don't save credits. |
| Assuming reasoning tokens burn the allowance too. | You over-size the plan and pay for headroom you were never going to use. | Leave reasoning tokens out of the credit arithmetic. They're recorded and they're free. |
Run this check tonight
- Total input, cached and output tokens for one busy feature over a week.
- Divide by the call count to get average total tokens per call.
- Work out the credits one average call costs: one, plus one per complete 10,000 tokens.
- Multiply by monthly call volume. That's your real credit demand, not your call count.
- Repeat for your heaviest feature separately, because an average hides it.
The same call count, at three token sizes
Illustrative example
200,000 calls a month, metered at one credit per call plus one for each complete 10,000 total tokens, where total is input plus cached plus output. The three token profiles are modelled.
Call count told you nothing here. The same 200,000 requests consume a fifth of an entry allowance or all of it, and the only variable is how much work each one moved.
Every number, with its confidence and source
| Figure | What it means | Confidence | Source |
|---|---|---|---|
| 1 to 5 credits | modelled cost of a single tracked call across a 3,000 to 45,000 token range | estimated | One credit per call plus one per complete 10,000 combined tokens, applied to the three modelled token profiles in the teardown. A range because the profiles are modelled. |
| 1,000,000 | credits the entry tier carries each month, as published | calculated | Culpa's published plan table, read 2026-08-02, and the same figure in the shipped plan configuration. |
What a generic answer can’t know
A plan page can publish an allowance and can't tell you how long yours will last, because that depends on the token profile of your own features. Only your own per-call token counts answer 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
What counts as one tracked call?
One recorded model request. It costs one credit, plus one more for each complete 10,000 tokens of input, cached input and output combined. So a small call is a single credit and a large one is several.
Do cached tokens burn the allowance?
Yes. Caching reduces what the provider charges you and leaves the metered token count unchanged, so it saves money without saving credits. Both are worth doing, and they're separate wins.
Do reasoning tokens count?
No. They're recorded because you want to see them, and they're free against the meter. That matters on reasoning-heavy workloads, where they can be a large share of output and would otherwise dominate the credit arithmetic.
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: OpenAI API pricing. Last reviewed 2026-08-02. Plain text version.