Skip to main content

The unit

1 credit = $0.01 of raw model cost. Credits are denominated in what the model actually costs, so there’s no hidden markup that varies by model. An expensive model burns credits faster; that’s the whole difference. Charges are fractional. A small call can cost 0.003 credits. Whole numbers are a display convenience only.

What a session costs

Measured raw cost for a heavy 5-hour session (~29M cached + 1.2M fresh input + 0.36M output): A ~115× spread between cheapest and most expensive. This is why the Auto router is the default and why /bias economy is a real lever.

Cache reads are most of the bill

Agent sessions resend a growing conversation every turn, so the majority of tokens are cache reads: billed at a fraction of fresh input. 9p sets cache breakpoints automatically on models that support them. In practice a warm session runs 95%+ cached, and the cache-hit rate is the single biggest factor in what a session costs. Two habits protect it:
  • Don’t switch models mid-task. A new model means a cold cache. (Auto resolves once per message for exactly this reason.)
  • Use /clear between unrelated tasks, not in the middle of one.

Seeing your usage

In-session:
Every turn also ends with a line:
On the dashboard, usage aggregates over the last 30 days grouped by model, by day, or by session, showing calls, tokens, cache-hit rate, and credits, plus the raw ledger.

Limits and resets

Two rolling windows apply: a 5-hour session budget and a weekly ceiling. When one is exhausted, 9p reports which and when it clears:

Session resets

A reset clears the spent counter for that window immediately. Capped at 5 resets per rolling week: past that, wait or upgrade.
Payments land in the next milestone. During private beta resets are recorded and capped but not charged.

Sub-agent cost

Sub-agent usage rolls into your session totals and is tagged in the ledger, so the dashboard can separate main-loop from fan-out spend. Explore agents always use economy models.