This is a worked example on sample data, not a real customer run. The figures come from the audit engine itself.

MCP Share Token Audit · savings-report/1.0
run run_demo_001 engine 0.1.0-mvp snapshot 2026-09

Verdict

24.1% of this run's tokens were avoidable

Of 196,780 tokens, about 47,377 did not need to be spent. The cause is a single prompt-cache prefix break between call 3 and call 4 — after it, a 46,800-token prefix that had been served from cache was re-billed as fresh input.

Est. recoverable $0.085 range $0.079 – $0.091 of $0.276 run cost

Token ledger

Tokens are measured directly; dollar amounts are derived from them.
Productive input, cache reads & output — 149,403 Re-billed after cache break — 47,377 Run total — 196,780

Cache hit rate, call by call

Each bar is one MODEL_CALL. The break is where the prefix stopped matching.
100% 67% 33% 0% 0% call 1 planner cold start 97% call 2 researcher 96% call 3 researcher prefix broken 0% call 4 writer 49,300 fresh

Finding

1 of 1 · ranked by avoidable tokens

Cache prefix broken mid-run

47,377 tokens ≈$0.085
cache.unstable-prefix confidence 0.86 breaks=1 worst_event=evt_4

Cache hit rate fell from 96% to 0% between two consecutive calls. The cached prefix — system prompt, memory, tools, skills and early history — most likely changed mid-run, usually a tool added or removed, or a memory file edited. Prefix caching only pays while that prefix stays byte-identical.

Fix

Freeze the prefix before a long session starts: load the full tool set and memory up front, and keep tool registration order stable rather than appending tools as the run proceeds.

Per-call accounting

claude-sonnet-5 · all 4 calls priced
Call Fresh input Cache read Cache write Output Hit rate
1 · planner 2,100 0 46,000 520 0%
2 · researcher 1,400 46,000 0 880 97%
3 · researcher 1,900 46,800 0 640 96%
4 · writer 49,300 0 0 1,240 0%
Total 54,700 92,800 46,000 3,280

Export

The PDF prints from this page, so the figures cannot drift apart.