{
  "synthetic": true,
  "rate_checked": "2026-10-25",
  "scope": "Standard global Claude API token categories only; no model run or invoice read.",
  "cases": [
    {
      "name": "complete",
      "usage": {
        "input_tokens": 1000000,
        "cache_creation_input_tokens": 200000,
        "cache_creation": {
          "ephemeral_5m_input_tokens": 150000,
          "ephemeral_1h_input_tokens": 50000
        },
        "cache_read_input_tokens": 20000000,
        "output_tokens": 200000
      },
      "expected": {
        "counts": [
          1000000,
          150000,
          50000,
          20000000,
          200000
        ],
        "fable51_usd": "27.875",
        "fable5_usd": "42.875"
      }
    },
    {
      "name": "missing_split",
      "usage": {
        "input_tokens": 1000000,
        "cache_creation_input_tokens": 200000,
        "cache_read_input_tokens": 20000000,
        "output_tokens": 200000
      },
      "expected": {
        "exact_cost": null,
        "fable51_possible_range_usd": [
          "27.50",
          "29.00"
        ],
        "reason": "Need creation lifetime split."
      }
    },
    {
      "name": "inconsistent_split",
      "usage": {
        "input_tokens": 1000000,
        "cache_creation_input_tokens": 200000,
        "cache_creation": {
          "ephemeral_5m_input_tokens": 100000,
          "ephemeral_1h_input_tokens": 50000
        },
        "cache_read_input_tokens": 20000000,
        "output_tokens": 200000
      },
      "expected": {
        "exact_cost": null,
        "unaccounted_creation_tokens": 50000,
        "reason": "Do not silently allocate unmatched aggregate."
      }
    },
    {
      "name": "missing_output",
      "usage": {
        "input_tokens": 1000000,
        "cache_creation_input_tokens": 200000,
        "cache_creation": {
          "ephemeral_5m_input_tokens": 150000,
          "ephemeral_1h_input_tokens": 50000
        },
        "cache_read_input_tokens": 20000000
      },
      "expected": {
        "exact_cost": null,
        "reason": "Missing output is not known zero."
      }
    }
  ]
}
