litellm 1.88.1 estimates Anthropic reasoning tokens by token-counting the visible thinking text instead of reading the API's usage.output_tokens_details.thinking_tokens; Claude Opus 5 / Fable 5 / Sonnet 5 default to display: "omitted" (empty thinking text), so completion_tokens_details.reasoning_tokens is structurally 0 for them. Filed upstream with a proposed fix: BerriAI/litellm#36290.
Until that lands, our per-row usage recording (and the published usage_summary.csv) shows zero reasoning tokens for every Claude row regardless of actual thinking. Options:
- Prefer the raw provider usage when available: read
output_tokens_details.thinking_tokens off the response and record it in our reasoning column directly, falling back to litellm's field for other providers.
- Regenerate the affected analysis CSVs for runs where thinking actually occurred (the tool_choice-auto sensitivity run is the first).
The board's canonical runs are unaffected in substance (Claude genuinely produced no thinking under the forced tool — see sensitivity/claude-thinking-2026-08.md), but the column should stop being wrong-by-construction before any v2 run where Claude thinking engages (#139).
🤖 Generated with Claude Code
litellm 1.88.1 estimates Anthropic reasoning tokens by token-counting the visible thinking text instead of reading the API's
usage.output_tokens_details.thinking_tokens; Claude Opus 5 / Fable 5 / Sonnet 5 default todisplay: "omitted"(empty thinking text), socompletion_tokens_details.reasoning_tokensis structurally 0 for them. Filed upstream with a proposed fix: BerriAI/litellm#36290.Until that lands, our per-row usage recording (and the published
usage_summary.csv) shows zero reasoning tokens for every Claude row regardless of actual thinking. Options:output_tokens_details.thinking_tokensoff the response and record it in our reasoning column directly, falling back to litellm's field for other providers.The board's canonical runs are unaffected in substance (Claude genuinely produced no thinking under the forced tool — see sensitivity/claude-thinking-2026-08.md), but the column should stop being wrong-by-construction before any v2 run where Claude thinking engages (#139).
🤖 Generated with Claude Code