"The cheapest Claude Code request is the request you never need to send" is the right opening principle, and I would rank your section 2 above everything else in the list. In my experience a repo with a tight CLAUDE.md and a stated test command reduces wasted exploration turns on every task, which moves the bill more than switching billing models does. One number worth adding to the API-vs-subscription comparison: cache reads. Agentic sessions resend the same system prompt and file context every turn, so on API billing the effective cost depends heavily on the cache hit ratio, and a measurement tool like ccusage will show wildly different per-task costs for the same nominal token count. Measuring a few weeks of real usage before choosing, as you suggest, only works if the measurement separates cached from uncached input. Otherwise the comparison overstates the API cost and the conclusion flips.
"The cheapest Claude Code request is the request you never need to send" is the right opening principle, and I would rank your section 2 above everything else in the list. In my experience a repo with a tight CLAUDE.md and a stated test command reduces wasted exploration turns on every task, which moves the bill more than switching billing models does. One number worth adding to the API-vs-subscription comparison: cache reads. Agentic sessions resend the same system prompt and file context every turn, so on API billing the effective cost depends heavily on the cache hit ratio, and a measurement tool like ccusage will show wildly different per-task costs for the same nominal token count. Measuring a few weeks of real usage before choosing, as you suggest, only works if the measurement separates cached from uncached input. Otherwise the comparison overstates the API cost and the conclusion flips.