Understanding usage and cost reports
Use a PR's Usage and cost section to see the reported model work and its estimated cost. Read the coverage note before comparing totals: a report may cover part of a session, omit tools, or lack attribution to individual commits.
What the columns mean
| Column | Meaning |
|---|---|
| Report | Model and contribution, such as implementation or review. ×5 means five reports share that row. |
| USD | Estimated list-price cost, Pi's recorded nominal cost, or OpenRouter's reported account charge. Read each report's pricing note; the mixed total is not an invoice. |
| Codex credits | Estimated OpenAI Codex plan credits, separate from the USD estimate. |
| Input | Tokens sent to the model. Hosts differ in whether cached tokens are included. |
| Cached input | Input read from the prompt cache. Supported rate cards price cache reads separately from uncached input. |
| Output | Tokens generated by the model. Several hosts include reasoning in this count. |
| Reasoning | Tokens reported as reasoning. This can be a subset of output; do not add it again. |
| Cache writes | Input stored in the prompt cache for reuse. |
Implementation rows come first, then review, integration, and shared planning, each sorted alphabetically by report name.
A column with no measured value is omitted. — means unreported, never zero.
+ marks a minimum when some usage or cost is unreported. Token counts are
rounded for readability: 45.3M means about 45.3 million tokens. The stored
records retain the original counts.
The total row adds cost and credit estimates. It leaves token totals blank because hosts count tokens differently. Two retained reports can overlap, so a sum can count the same response twice; a minimum marker does not guarantee that the reports are disjoint.
Compare host counters carefully
| Host | Input accounting | Output accounting |
|---|---|---|
| Codex | Includes cached input | Includes reasoning |
| Claude Code | Excludes cache reads and writes | Includes reasoning |
| Cursor | Includes cache reads and writes | Reasoning is unreported |
| OpenCode | Excludes cache reads and writes | Reasoning is counted separately |
| Pi | Excludes cache reads and writes | Includes reasoning |
| OpenRouter | Includes cached input | Includes reasoning |
For example, a Codex row with 100,000 input tokens and 80,000 cached input tokens has 20,000 uncached input tokens. A Claude row with 20,000 input tokens and 80,000 cached input tokens describes the same input quantities. Do not add a Codex row's cached input to its input again. OpenCode's native total includes input, output, reasoning, and cache tokens; Cursor's native total is unreported.
How estimates are priced
Each report uses the rate card available when it was measured. Carrying it to a later PR revision preserves that estimate; it does not apply newer prices. The PR retains its rate-card origin, verification date, and source links so older estimates can be interpreted after prices change.
OpenAI reports distinguish standard Codex plan credits from API-equivalent USD estimates. Cursor estimates use its on-demand list prices. Anthropic estimates charge uncached input, cache reads, and cache writes separately. A one-hour cache write costs more than a five-minute write. Supported Opus fast-mode responses use their published fast-mode rates. Standard-speed responses use standard rates. Fast-mode responses without a published rate remain unpriced. Pi uses its recorded nominal USD instead of repricing it. OpenRouter uses the response's reported account charge in USD credits instead of direct DeepSeek list prices. Missing counters or cost remain UNKNOWN. A paid incomplete response can still contribute reported cost without establishing a completed review; a timeout without response metadata has unknown per-call cost.
Shaka leaves unsupported models or incomplete billing categories unpriced.
A partially priced report keeps the known estimate with a + marker and a
reason for the missing amount. The PR's original pricing references apply to
its recorded estimate; current provider prices may differ.
Read the limitations beside the numbers
PARTIAL means the native records do not establish complete task usage. The report states its selected interval and whether reviewer or tool usage was included. Cursor reports exclude subagents. UNKNOWN means available records do not establish a value or attribution.
For example, “implementation spans five rebased commits; per-commit allocation is unavailable” permits a task estimate, but does not establish each commit's cost. Historical reviews retain the commit they reviewed; they do not become reviews of the latest revision.
Ask the agent:
Explain which work this PR's usage covers, what is missing, and whether any reports overlap before comparing its total with another PR.
PR verification explains how to assess the change and its validation evidence. Ask your agent to disclose missing records and shared attribution when reporting usage.