Skip to content

[Bug] Billing console conflates API direct charges with subscription overages — users cannot distinguish charge sources #1490

@daskuntal75

Description

@daskuntal75

Summary

The claude.ai billing console combines two fundamentally different charge types into a single undifferentiated display. Users on Max plan with extra_usage_enabled: false see API direct charges and incorrectly assume they are subscription overages, causing misdiagnosis of plan size and incorrect support tickets.

Charge types being conflated

Charge type What it is When it applies
API direct calls Pay-as-you-go from external apps calling the Anthropic API Always, when your app calls the API
Subscription extra usage Overages above plan-included usage, at API rates Only when extra_usage_enabled: true

Steps to reproduce

  1. Active Claude Max subscription, extra_usage_enabled: false
  2. Run API calls from an external application (Anthropic SDK)
  3. Navigate to console.anthropic.com → Billing
  4. Observe: both charge types appear in one block with no source label

Expected behaviour

Two-row breakdown:

Subscription:  max-5x · $100/mo · Renews 2026-06-21 · Extra usage: OFF
API pool:      $0.82 of $150 customer cap · Tier 2 · Resets 2026-06-01

Actual behaviour

Single undifferentiated "Usage" block. No indication of which charges are subscription-tier vs. API direct.

Impact

  • Users misdiagnose plan size ("I'm over my plan limit" when they have no overages)
  • Users disable extra_usage_enabled thinking it will stop all API charges — it doesn't stop direct API calls
  • Support tickets for correct but unexplained billing behaviour

Proposed fix (minimum viable)

Add a source label to each line item in the billing display:

  • "Claude.ai surfaces (subscription plan)"
  • "API direct calls (your applications)"

Reference

Open-source cost tracking tooling that tracks both pools separately via Admin API: https://github.com/daskuntal75/llm-cost-kit
Full analysis: https://github.com/daskuntal75/llm-cost-kit/blob/main/docs/responsible-ai-cost-framework.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions