{"i":7,"slug":"caching-consistency","chart":{"id":"caching-read-share-by-turn","title":"Share of input read from the cache, by turn in a session","subtitle":"Mean over sessions; turn 1 sends the ledger, turns 2-5 send one short question each","kind":"line","unit":"rate","xLabel":"Turn in the session","yLabel":"Input tokens read from cache","series":{"$k":["name","points"],"$r":[["Claude Sonnet 5.5 · Claude Code",{"$k":["label","value","n"],"$r":[["Turn 1",0.1868,3],["Turn 2",0.9924,3],["Turn 3",0.9896,3],["Turn 4",0.992,3],["Turn 5",0.9074,3]]}],["Claude Opus 5.5 · Claude Code",{"$k":["label","value","n"],"$r":[["Turn 1",0.1869,3],["Turn 2",0.9924,3],["Turn 3",0.9866,3],["Turn 4",0.9893,3],["Turn 5",0.9031,3]]}],["GPT-6.1 Sol (medium) · Codex CLI",{"$k":["label","value","n"],"$r":[["Turn 1",0.5545,3],["Turn 2",0.9871,3],["Turn 3",0.9892,3],["Turn 4",0.9898,3],["Turn 5",0.9786,3]]}]]},"note":"Claude Code: cache reads ÷ (uncached input + cache reads + cache writes). Codex CLI: cached input ÷ input, as its app-server reports them; it reports no cache writes, and its input includes its own system prompt and tool schemas. The Codex sessions used the ledger before it was cut (16,197 characters vs 9,651), so the two routes are not a like-for-like pair. Measured shares, not pass rates.","sourceIds":["agent-caching-consistency"]}}