Usage explained · 5 min read
Why your Claude Code token counts look different
Raw tokens, cache reads, and weighted tokens answer different questions. Here is how to compare them without confusing usage with a bill.
By claudeusage · Updated
Start with the same unit
A raw token count adds input, output, cache creation, and cache reads. A long conversation can reuse a large amount of cached context on each request. That repeated context is part of the raw total, even though you did not type it again.
claudeusage also shows weighted tokens, previously labeled billed tokens. This is a comparison metric: input + output + 1.25 × cache creation + 0.10 × cache reads. It is not a token allowance from your subscription and it cannot be multiplied by a single rate to produce your invoice.
A worked example
Suppose your logs contain 10,000 input tokens, 2,000 output tokens, 8,000 cache-creation tokens, and 100,000 cache-read tokens. The raw total is 120,000. The weighted total is 32,000: 10,000 + 2,000 + 10,000 + 10,000.
Both totals can be correct. They measure different things. Output tokens still have their own model-specific price when we estimate dollar cost, even though the weighted comparison metric gives them a weight of one.
Read the model percentages
The model breakdown shows each model's share of all-time weighted tokens. Changing the timeline to a day or month does not change that lifetime breakdown. Its All time label is intentional. The token-composition panel is also all-time, and uses raw tokens.
Small positive shares retain a decimal place. A share smaller than 0.1% is shown as <0.1%, so a model with usage does not appear to have none. Rounded percentages can add to slightly more or less than 100%.
Check the same dates and machines
Compare the same calendar dates, models, and local log files in each tool. A second machine has its own logs. Old files may have rotated away before the first upload. Uploaded totals remain in claudeusage, while a local report can only inspect files still on disk.
Use the doctor command to inspect local coverage and the last sync marker. Preview a sync before uploading it. The preview contains numeric aggregates and model identifiers, not your prompts or source code.
npx claudeusage-sync doctor
npx claudeusage-sync --dry-runKnown limits of the estimate
The weighted metric uses fixed cache multipliers for comparability. It does not reproduce every provider's cache duration, long-context pricing, discounts, or billing rules. API cost is estimated separately from stored pricing snapshots, with a same-family fallback when an exact Claude model price is missing.
An unpriced model contributes tokens and messages but no estimated dollars. Unpriced does not mean free. For an actual charge, consult the provider's billing record.
Sources and further reading
Related: API-equivalent cost is not your Claude subscription billTrack Claude Code usage across your machines