[MODEL] Fable 5 / 2.1.240: documented "high" effort resolves to 25/100 at runtime (low=10, medium=15, xhigh=50); numeric mapping unpublished, no changelog; reported server-side effort-scale experiment on 2.1.236+

Status Open
Reported on v2.1.240
Maintainer reply None cached
Activity 0 comments · opened Aug 22, 2026

Summary

On Claude Code 2.1.240 with Fable 5, the documented effort levels resolve at runtime to numeric values that occupy only the bottom quarter of a 0–100 scale — the documented default high resolves to 25 — and the numeric mapping is published nowhere (not in the model-config docs, not in the changelog). A widely-shared report (@kimmonismus, 136K views, and @argofowl) claims that since 2.1.236/2.1.237 Fable 5 sessions are enrolled server-side in an experiment that shrinks the effort scale, with high arriving as 10 for some users. Whether this machine is in that experiment or 25 is the original mapping, I cannot tell, because Anthropic has never stated what the levels map to. That is the bug: a user who deliberately configures high — the level the docs describe as "balances token usage and intelligence" and the default — has no way to know they are getting a quarter of the scale, and no way to know if that changed last week. At best this is misleading; it repeats the March 4 incident where the default was silently lowered from high to medium and only rolled back after public complaint (HN thread, with Boris's acknowledgement).

Environment

  • Claude Code: 2.1.240 (claude --version)
  • Model: Fable 5 (claude-fable-5), Claude Max plan
  • OS: Windows 11 Pro 10.0.26200
  • CLAUDE_CODE_EFFORT_LEVEL: unset
  • ~/.claude/settings.json effortLevel: initially high; then changed via /effort for each measurement below
  • Date: 2026-08-22

Measurements

Each row: set the level with /effort <level>, send one prompt, and have the model report the numeric reasoning_effort value present in its context for that turn. Every reading was reproducible — switching back to high returned 25 again.

| /effort setting | Runtime reasoning_effort value |
|---|---|
| low | 10 |
| medium | 15 |
| high (documented default) | 25 |
| xhigh | 50 |
| max | max (passed by name, top of scale) |

Observations:

  • low10 matches the public report's claim that "10 is the exact number low used to be."
  • high25 differs from the 10 shown in the report's screenshot, which is consistent with the report's claim that this is an A/B experiment and not every session is in the same arm.
  • The entire named ladder below max sits at or below the midpoint; high is 25% of the scale. Users reading "high" reasonably expect something near the top, not the bottom quarter.

Why this matters

  1. Configured intent is not honored transparently. A user sets high to get more reasoning. If the number behind that label can move server-side with no client change and no changelog entry, the setting is not meaningful to the person setting it.
  2. No baseline is possible. Because the mapping is unpublished, nobody outside Anthropic can determine whether their high today is the same high as two weeks ago. Reports of "the model feels dumber this week" cannot be confirmed or refuted by the people experiencing them — which is exactly the situation on X right now.
  3. Precedent. The March 4 default change (high → medium) was made without announcement, kept for a month over user objection, and then acknowledged as "not the right decision." A server-side scale change on 2.1.236+ with no disclosure is the same pattern.
  4. Paid product. Max-plan users pay for the model's capability; a silent reduction in default reasoning effort is a silent reduction in what they are paying for.

Asks

  1. Publish the numeric mapping for each named level per model (low / medium / high / xhigh / max → value), in the model-config docs, and commit to changelog entries whenever it changes.
  2. Confirm or deny the reported server-side effort-scale experiment on Fable 5 / 2.1.236+. If it exists: state which arms exist, how a user can tell which arm they are in, and provide an opt-out.
  3. Surface the live value in the client — in /effort, in the statusline, and in /status — so users can see the actual number their session is running at rather than only the label.
  4. If high = 25 is in fact a reduction from the prior mapping, restore the prior mapping for users who have explicitly configured high, as was done for the March default rollback.

Repro

  1. claude --version → confirm ≥ 2.1.236, model Fable 5.
  2. /effort high.
  3. Ask the model: "What numeric reasoning_effort value is in your context for this turn?" → 25.
  4. Repeat for low, medium, xhigh, max10, 15, 50, max.

Happy to provide any further session telemetry that would help.

View original on GitHub ↗