Trying a new --effort level costs 40,054 tokens. Switching back is free.
Each effort level keeps its own prompt cache. The first run at a level you have not used pays a full cache write and 13.9x the cost; every switch after that costs nothing.
--effort is documented as controlling adaptive reasoning, where “lower effort is faster and cheaper for straightforward tasks”. What is not documented is that each level keeps its own prompt cache, so the first time you try one you pay to build it.
Each level caches separately
Running the same trivial prompt while changing only --effort:
| Run | Cache created | Reported cost |
|---|---|---|
high (first ever) |
40,054 | $0.4099 |
high again |
0 | $0.0294 |
high a third time |
0 | $0.0294 |
switch to low |
40,054 | $0.4099 |
low again |
0 | $0.0294 |
switch back to high |
0 | $0.0294 |
switch to max |
40,054 | $0.4099 |
max again |
0 | $0.0294 |
The first run at any level costs 40,054 tokens of cache creation and 13.9x the warm cost. Switching back to a level you already warmed costs nothing, because that level’s cache is still there.
Confirmed by alternating between two warm levels five times in a row, every one free, and then introducing a level never used in that project:
| Run | Cache created |
|---|---|
high → low → high → low → high |
0 every time |
xhigh, never used before |
40,156 |
xhigh again |
0 |
back to high |
0 |
The cost of trying a different effort level is a one-off, per level, not a penalty you pay on every switch. Experimenting is cheap after the first go at each setting.
Effort does not change your context size
Prompt tokens were identical at every level: 58,635 on the reasoning task and 58,597 on the trivial one, across low, medium, high, xhigh and max.
That is worth stating plainly because it is the intuitive thing to get wrong. Effort changes how much the model thinks, not how much context it is given. Nothing about your CLAUDE.md, skills or MCP tools is affected by the setting.
On a trivial task, effort costs nothing
Asked to reply with a single word, output was 4 tokens at every level including max. Adaptive reasoning did exactly what the documentation says: it decided the task did not warrant thinking, and the setting became irrelevant.
So the common worry that leaving effort high is quietly expensive does not hold for simple work. The model does not spend reasoning it does not need.
What I could not measure
On a genuine reasoning task, a switch-and-bulb puzzle, output tokens did not vary reliably with effort at two runs per level. high produced 76 tokens once and 245 another time; max produced 268 once and 76 another. The variation within a single level was as large as the variation between levels.
That does not mean effort has no effect on reasoning-heavy work. It means two runs per level cannot detect it against that much variance, and no number is published here for it. Characterising it properly would need many more samples per level, in the way the latency measurements needed twenty pairs before saying anything.
One caveat on the cost figures: total_cost_usd is the API-equivalent cost Claude Code reports. The 13.9x ratio is the useful part, since the absolute figures depend on your own context size.
Measured on Claude Code 2.1.224, headless mode, usage from --output-format json. Cache figures reproduced across every level tested.
Clarified 2026-08-08. The prompt-token figures quoted here (58,635 and 58,597) were measured on a machine with a large user-level CLAUDE.md, separately measured at 26,763 tokens, so Claude Code’s own floor is closer to 31,400. The finding is unaffected: the point is that those figures are identical across every effort level, and that comparison was made on one machine where the global config is common to all of them. The calculator now takes user-level config as a separate input.
Corrected again 2026-08-13. The ~31,400 floor quoted just above was itself too high. It was the loaded measurement minus that one file, which left this machine’s user-level skills, MCP servers and plugins sitting inside the supposed floor. Measured directly on 2.1.229, in an empty directory with --setting-sources project so nothing user-level loads at all, Claude Code’s own floor is 22,340 tokens with tool search on and 40,144 with it off, twice per round across four rounds with 0 to 4 tokens of noise. The deltas in this post remain unaffected, and that is now measured rather than asserted: the tool-search gap came back at 17,804 against the 17,795 the old pair implied, 0.06% apart. See the calculator for the full decomposition.