Skip to content

usage-extension: rethink input/cache columns across providers #19

@tmustier

Description

@tmustier

Problem

The /usage table currently shows:

  • Tokens = input + output
  • ↑In = input
  • Cache = cacheRead + cacheWrite

This is mechanically correct, but the ↑In column is misleading across providers.

Why it looks wrong

For Anthropic, prompt caching is reported roughly as:

  • input = small non-cached remainder
  • cacheWrite = new prompt tokens entering cache
  • cacheRead = prompt tokens served from cache

For OpenAI/Codex, input tends to contain much more of the fresh prompt tail, and cacheWrite is often 0 in practice.

That makes the current UI look like:

  • Anthropic: tiny ↑In, huge ↓Out
  • OpenAI: large ↑In, moderate ↓Out

Even when the underlying prompt behavior is more similar.

What to decide

We should decide what ↑In is supposed to mean:

  1. raw uncached input only (input) — current behavior
  2. fresh input sent this turn (input + cacheWrite)
  3. total prompt seen by the model (input + cacheRead + cacheWrite)
  4. split the concept into separate columns / labels

Constraints

  • cacheRead should not be folded into Tokens, because that double-counts repeated cache hits over time.
  • cacheWrite is new input and may belong in ↑In, depending on the intended semantics.
  • Labels should make cross-provider comparisons intuitive.

Suggested next step

Review a few real session examples from Anthropic and OpenAI/Codex, then choose the least surprising display model and update column labels/tooltips/help text accordingly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions