<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Growthbook on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/tags/growthbook/</link><description>Recent content in Growthbook on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 15 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/tags/growthbook/index.xml" rel="self" type="application/rss+xml"/><item><title>Measuring Claude Code's Hidden Token Tax — 11 Bugs, 30K Requests, One Flag Override</title><link>https://ice-ice-bear.github.io/posts/2026-04-15-claude-code-hidden-analysis/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-04-15-claude-code-hidden-analysis/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post Measuring Claude Code's Hidden Token Tax — 11 Bugs, 30K Requests, One Flag Override" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/ArkNill/claude-code-hidden-problem-analysis" target="_blank" rel="noopener"
 &gt;ArkNill/claude-code-hidden-problem-analysis&lt;/a&gt; is a measured, methodically documented investigation of 11 confirmed client-side bugs in Claude Code that inflate token usage on Max plans by 10-20x. 93 stars, mostly referenced in HN and Reddit threads. The April 14 update is the most important data drop yet — 30,477 proxy requests over 14 days and a GrowthBook flag override that took two of the bugs to zero events.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 A["Claude Code client"] --&gt; B{GrowthBook flags}
 B --&gt;|B4 enabled| C["Context mutation (5,500 events)"]
 B --&gt;|B5 enabled| D["Aggressive cache invalidation (167,818 events)"]
 B --&gt;|Override via proxy| E["B4=0, B5=0 over 4,919 requests"]
 C --&gt; F[Token inflation 10-20x]
 D --&gt; F&lt;/pre&gt;&lt;h2 id="the-thesis-measured"&gt;The thesis, measured
&lt;/h2&gt;&lt;p&gt;The repo&amp;rsquo;s TL;DR: 11 confirmed bugs (B1–B5, B8, B8a, B9, B10, B11, B2a) plus three preliminary findings. Cache bugs B1 and B2 are fixed in v2.1.91. &lt;strong&gt;Nine remain unfixed as of v2.1.101&lt;/strong&gt; — eight releases later. The evidence is a proxy that sits between Claude Code and the Anthropic API and logs every request/response header, which is the only way to see client-side token math separate from what Anthropic&amp;rsquo;s billing shows.&lt;/p&gt;
&lt;p&gt;What makes this report different from the usual &amp;ldquo;Claude Code is expensive&amp;rdquo; thread is the causality work. Every bug claim is backed by either a request diff showing unnecessary context churn, or a response header (&lt;code&gt;anthropic-ratelimit-*&lt;/code&gt;) showing which quota window is binding.&lt;/p&gt;
&lt;h2 id="the-growthbook-override--the-new-evidence"&gt;The GrowthBook override — the new evidence
&lt;/h2&gt;&lt;p&gt;Anthropic ships feature flags to Claude Code via &lt;a class="link" href="https://www.growthbook.io/" target="_blank" rel="noopener"
 &gt;GrowthBook&lt;/a&gt;. The repo documents a proxy-based override (the approach in anthropics/claude-code#42542): intercept the GrowthBook config response, force-flip the flags for B4 and B5 to off, and let everything else pass through unchanged.&lt;/p&gt;
&lt;p&gt;Result across 4,919 subsequent requests over 4 days (same machine, same account, same usage pattern):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;B5 events: 167,818 → 0&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;B4 events: 5,500 → 0&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;rsquo;s a controlled elimination, which is the cleanest causal evidence you get outside of an A/B test run by the vendor. It effectively proves these GrowthBook flags directly control context mutation and cache invalidation behavior on the client.&lt;/p&gt;
&lt;h2 id="the-7-day-quota--previously-invisible"&gt;The 7-day quota — previously invisible
&lt;/h2&gt;&lt;p&gt;A quieter finding: the &lt;code&gt;anthropic-ratelimit-representative-claim&lt;/code&gt; header, which identifies which rate-limit window is binding, was &lt;code&gt;five_hour&lt;/code&gt; in 100% of earlier reporting. With the 30K dataset, &lt;strong&gt;22.6% of requests (5,279 / 23,374) showed &lt;code&gt;seven_day&lt;/code&gt; as the binding constraint&lt;/strong&gt; — concentrated on April 9-10 when 7-day utilization hit 0.85–0.97. After the weekly reset, &lt;code&gt;five_hour&lt;/code&gt; resumed.&lt;/p&gt;
&lt;p&gt;The operational implication: Max plan users who feel &amp;ldquo;throttled out of nowhere on a Monday morning&amp;rdquo; are hitting the 7-day window, not the 5-hour one. You can&amp;rsquo;t plan around a limit you can&amp;rsquo;t observe, and the 7-day window is not surfaced in the Claude Code UI or in Anthropic&amp;rsquo;s docs with any prominence.&lt;/p&gt;
&lt;h2 id="methodology-notes-worth-borrowing"&gt;Methodology notes worth borrowing
&lt;/h2&gt;&lt;p&gt;A few things the repo does right that are worth copying if you&amp;rsquo;re investigating &lt;em&gt;any&lt;/em&gt; closed-source client:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Proxy, don&amp;rsquo;t modify&lt;/strong&gt; — running a mitm proxy between client and API preserves the client&amp;rsquo;s behavior while making every request inspectable. Modifying the client (decompiling, patching) would invalidate the measurement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Name every bug with a stable ID&lt;/strong&gt; — B1 through B11 with B2a and B8a. Stable IDs let findings get cross-referenced across files and across releases without collisions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Separate &amp;ldquo;confirmed&amp;rdquo; from &amp;ldquo;preliminary&amp;rdquo;&lt;/strong&gt; — the repo explicitly distinguishes measured bugs from suspected ones (P1-P3). That discipline builds credibility and makes the document survive hostile scrutiny.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acknowledge environment changes&lt;/strong&gt; — the April 14 update flags that data from April 11 onward is from the overridden environment and can&amp;rsquo;t be mixed with the baseline. Small detail, huge integrity.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="whats-not-fixed"&gt;What&amp;rsquo;s not fixed
&lt;/h2&gt;&lt;p&gt;Nine bugs remain unpatched, including B11 (&amp;ldquo;adaptive thinking zero-reasoning&amp;rdquo;). Anthropic acknowledged B11 on Hacker News but hasn&amp;rsquo;t followed up with a fix. The &lt;code&gt;fallback-percentage&lt;/code&gt; header, which the repo tracks separately and is unaffected by the flag override, is still showing non-zero rates — meaning some requests are silently routed to a smaller model than the user requested, which is its own category of bug.&lt;/p&gt;
&lt;h2 id="insights"&gt;Insights
&lt;/h2&gt;&lt;p&gt;Three takeaways. First, proxy-based observation is increasingly the only way to audit a closed-source AI client — billing telemetry from the vendor is aggregated and one-directional, and you need raw request flow to see what the client is actually doing. Second, GrowthBook flag injection is a plausible attack surface and also a plausible remediation surface — the same mechanism that causes the bugs can be used to mute them. Third, if you&amp;rsquo;re paying for a Max plan and burning through a 7-day quota on Monday, this repo is the most complete explanation of where that usage went — and the fact that the underlying problem is unfixed 8 releases later is a more interesting story than the bug itself.&lt;/p&gt;</description></item></channel></rss>