I’ve spotted a significant discrepancy in the Anthropic API billing for the claude-sonnet-4-6 model. While the API returns the model string as Sonnet, the actual totalCostUsd in the raw event matches Opus pricing exactly. The Data (The Receipts) I ran a high-token request with heavy prompt caching. Here are the raw stats from the event: • Reported Model: claude-sonnet-4-6 • Input Tokens: 6 • Output Tokens: 4,034 • Cache Creation (Write): 61,920 • Cache Read: 171,391 • Billed totalCostUsd: $0.5735755 The Math If this were actually billed at Sonnet 4.6 rates, the total should be approximately $0.344. However, if you run the math using Opus 4.6 rates (approx. $5/M input, $25/M output, $0.50/M cache read), the total comes out to exactly $0.5735755. Why This Matters If you are tracking costs via the model string in your metadata to attribute spend or manage budgets, your internal math will be off. Even worse, we are being charged a premium for a model labeled as a lower tier. I’ve tested this across multiple requests and the mismatch is consistent. Model label says Sonnet; the invoice says Opus. Workaround for now: Do not rely on the model name for cost calculations. Parse the totalCostUsd directly from the raw event for your tracking until this is patched. Has anyone else seen this? I’ve reported it to Anthropic support, but double-check your logs if you’re running high-volume Sonnet 4.6 calls. submitted by /u/cudanexus
Originally posted by u/cudanexus on r/ClaudeCode
