--- title: "Tokens, cost and quota" description: "How antiburn estimates what your sessions cost, and how it's different from the live plan-limit figures a provider reports." url: "https://antiburn.ai/docs/concepts/tokens-cost-and-quota/" --- ## Two separate things antiburn shows two kinds of numbers that are easy to conflate, but come from entirely different places: - **Cost estimates** - what your sessions actually used, computed from the tokens your transcripts recorded. - **Plan limits** - a percentage of your provider's five-hour or weekly allowance, and when it resets, fetched live from the provider itself. ## Cost estimates antiburn computes cost on your machine from the tokens a transcript recorded, priced against the latest model-pricing snapshot. These are **API-equivalent estimates, not a bill** - a stand-in for what that usage would have cost at the model's public API rate, not a reconciliation of an actual invoice. A few things follow from how this works: - If a model has no price in the catalog, antiburn shows no figure for it rather than guessing at zero - and the provider's total is then labeled as a floor, since it's missing whatever that model used. - Work you did on another machine isn't counted, because antiburn can only see transcripts on this one. - Provider Usage shows what was _spent_, from what's in your transcripts. It never shows a percentage, an allowance, or a reset time - that's the other half, below. ### Where the prices come from antiburn downloads a public model-price catalog from [models.dev](https://models.dev) at startup and hourly while it runs, without sending any session data or credentials in that request. The last valid snapshot is cached locally, so pricing keeps working even if that request fails - and new models can get cost estimates without an antiburn update. ## Plan limits Plan limits are a separate thing, from a separate place: antiburn asks each provider directly for your current usage, and shows the percentage and reset time the provider itself reported - not a number antiburn derives from anything. This uses the credential your coding tool already holds on your machine - the Claude CLI's own OAuth credential, or the Codex CLI's, for example - over your own connection. No antiburn server sees the request or its response. It's on by default once you finish onboarding, in Settings → Usage, and runs about every five minutes in the background (more often while a usage view is open). Turning that switch off stops all of it: no background requests, no credential reads, and no plan-limit figures shown anywhere. A few details make the numbers trustworthy rather than approximate: - When the popover opens, antiburn shows its last successful reading immediately, then asks for a fresh one in the background and replaces the figure once it arrives. - Every reading is timestamped; one older than an hour is marked stale rather than aging silently on screen. - A figure the provider didn't state is shown as unknown, never as zero. - Where your coding tool has already saved the same figures locally and they're recent enough, antiburn reads that copy instead of making a request at all. ## Findings feed off both Several of antiburn's findings exist because a pattern burns tokens (and therefore cost) without necessarily hitting a hard limit - see [Hygiene score and findings](/docs/concepts/hygiene-score-and-findings/) for how those checks work, and the individual findings pages (starting with [Session overdepth](/docs/findings/session-overdepth/)) for what each one looks for.
Tokens, cost and quota
How antiburn estimates what your sessions cost, and how it's different from the live plan-limit figures a provider reports.
Two separate things
antiburn shows two kinds of numbers that are easy to conflate, but come from entirely different places:
- Cost estimates - what your sessions actually used, computed from the tokens your transcripts recorded.
- Plan limits - a percentage of your provider’s five-hour or weekly allowance, and when it resets, fetched live from the provider itself.
Cost estimates
antiburn computes cost on your machine from the tokens a transcript recorded, priced against the latest model-pricing snapshot. These are API-equivalent estimates, not a bill - a stand-in for what that usage would have cost at the model’s public API rate, not a reconciliation of an actual invoice.
A few things follow from how this works:
- If a model has no price in the catalog, antiburn shows no figure for it rather than guessing at zero - and the provider’s total is then labeled as a floor, since it’s missing whatever that model used.
- Work you did on another machine isn’t counted, because antiburn can only see transcripts on this one.
- Provider Usage shows what was spent, from what’s in your transcripts. It never shows a percentage, an allowance, or a reset time - that’s the other half, below.
Where the prices come from
antiburn downloads a public model-price catalog from models.dev at startup and hourly while it runs, without sending any session data or credentials in that request. The last valid snapshot is cached locally, so pricing keeps working even if that request fails - and new models can get cost estimates without an antiburn update.
Plan limits
Plan limits are a separate thing, from a separate place: antiburn asks each provider directly for your current usage, and shows the percentage and reset time the provider itself reported - not a number antiburn derives from anything.
This uses the credential your coding tool already holds on your machine - the Claude CLI’s own OAuth credential, or the Codex CLI’s, for example - over your own connection. No antiburn server sees the request or its response. It’s on by default once you finish onboarding, in Settings → Usage, and runs about every five minutes in the background (more often while a usage view is open). Turning that switch off stops all of it: no background requests, no credential reads, and no plan-limit figures shown anywhere.
A few details make the numbers trustworthy rather than approximate:
- When the popover opens, antiburn shows its last successful reading immediately, then asks for a fresh one in the background and replaces the figure once it arrives.
- Every reading is timestamped; one older than an hour is marked stale rather than aging silently on screen.
- A figure the provider didn’t state is shown as unknown, never as zero.
- Where your coding tool has already saved the same figures locally and they’re recent enough, antiburn reads that copy instead of making a request at all.
Findings feed off both
Several of antiburn’s findings exist because a pattern burns tokens (and therefore cost) without necessarily hitting a hard limit - see Hygiene score and findings for how those checks work, and the individual findings pages (starting with Session overdepth) for what each one looks for.