{
 "metadata": {
  "name": "AI Tokenizer Inflation Ledger 2026: the same text, counted by every model version we can reach",
  "description": "The same fixed corpus (11 text types, 33 items) counted by the token-counting endpoints of 13 Anthropic models, 11 Gemini models and 2 Cohere models, plus offline OpenAI-style counts with tiktoken, with the ratio between successive versions and a bootstrap interval, compared with the providers' own statements. Token counts are not bills.",
  "author": "Vincent Wesley Couey, Nesyona",
  "license": "CC BY 4.0",
  "doi": "10.5281/zenodo.23730116",
  "conceptDoi": "10.5281/zenodo.23730115",
  "doiNote": "doi is version 1 (28 October 2026, Zenodo). conceptDoi covers all versions and always resolves to the latest.",
  "dateModified": "2026-10-28",
  "edition": "2026-10-28",
  "methodSha256": "066cfe21c55a6db0ce68497f7f5a746a05fc6245bf1b1fedd2fe3c56b1a5fffa",
  "corpusManifestSha256": "0bd02f52f2b4e0b0e20992bfadae1592dc24d0cc9876b70ba2275f6b03a9310e",
  "method": "See METHOD.md (committed and hashed before measurement). Same text, count_tokens or countTokens or tokenize, two repeats where stated, overhead-subtracted for Anthropic, ratio per text type, mean over 11 types, percentile bootstrap over types (5,000 resamples, seeded).",
  "limits": [
   "Token counts are not bills. Billing reflects the provider's own accounting; the counts are the providers' estimates and may differ slightly.",
   "Tokenizer behaviour depends on content. A different corpus gives different ratios; we report every text type separately and never only the mean.",
   "The Anthropic count includes a small fixed request overhead that differs by model generation; we subtract a one-character baseline, which understates every count by one token (the baseline character). The effect is at most 1.2 percent on the smallest item and at most 0.16 percent on the longest items we measured, and it moves a ratio between two models by less than that because it affects numerator and denominator alike.",
   "The interval is a bootstrap over 11 text types we chose, not over all possible text; it describes our corpus, not the world.",
   "Gemini model ordering follows the version numbers in the model names because the models list carries no release dates. gemini-2.5-pro was not measured: the provider returned HTTP 404 (\"no longer available to new users\").",
   "Cohere was measured for one pair with one repeat each to respect the trial key limit of 1,000 calls a month.",
   "OpenAI counts are offline tiktoken counts of the text alone. Only models that tiktoken itself maps to an encoding are placed in it; 33 model ids from the models list are unverified and appear in no ratio.",
   "Counting tokens says nothing about quality or about how many tokens a model needs to answer."
  ],
  "files": {
   "data.json": "see the files table",
   "measurements.json": "see the files table",
   "ratios.csv": "see the files table",
   "METHOD.md": "see the files table",
   "METHOD.sha256": "see the files table",
   "README.md": "see the files table",
   "EVIDENCE-MANIFEST.json": "see the files table",
   "corpus/MANIFEST.json": "see the files table"
  }
 },
 "corpus": {
  "items": [
   {
    "id": "prose-en-S",
    "type": "prose-en",
    "length": "S",
    "chars": 356,
    "words": 67,
    "sha256": "cbef4371c962c731ac18d744a564ac0ac36d6adb9900e22189b8241036319e15"
   },
   {
    "id": "prose-en-M",
    "type": "prose-en",
    "length": "M",
    "chars": 1121,
    "words": 208,
    "sha256": "4ca6a37bbd32e0c50f56c7f59c8b6efe09a80f5e83ec809b2f4de80017865c6e"
   },
   {
    "id": "prose-en-L",
    "type": "prose-en",
    "length": "L",
    "chars": 2957,
    "words": 558,
    "sha256": "1c88dd8e5998ede73404f5ce4a4a2721500167399b192535e74b991eee243ede"
   },
   {
    "id": "technical-en-S",
    "type": "technical-en",
    "length": "S",
    "chars": 421,
    "words": 72,
    "sha256": "6c515698c2cfe36b83298d3de98870f47f8052d4c07ead6789886a63ff7d5c94"
   },
   {
    "id": "technical-en-M",
    "type": "technical-en",
    "length": "M",
    "chars": 1206,
    "words": 207,
    "sha256": "626b621feb66961d4f591ce5df3c19bc41598350d14ebd2d73ec2f711f7369d9"
   },
   {
    "id": "technical-en-L",
    "type": "technical-en",
    "length": "L",
    "chars": 3113,
    "words": 516,
    "sha256": "e2b0c1439691a204972d7fc60d4896896277797684d2491373be6e7526d7fbdf"
   },
   {
    "id": "code-js-S",
    "type": "code-js",
    "length": "S",
    "chars": 581,
    "words": 86,
    "sha256": "a0e2f05204f5620602aed31899abd14437569480c66e4fde0578acbf4ed6c116"
   },
   {
    "id": "code-js-M",
    "type": "code-js",
    "length": "M",
    "chars": 2889,
    "words": 430,
    "sha256": "ea8d511132b3761b9d4a7c9f75ada098bce5670747d4be17696486f266ff1f4a"
   },
   {
    "id": "code-js-L",
    "type": "code-js",
    "length": "L",
    "chars": 6938,
    "words": 1032,
    "sha256": "e71e72a7dc8791883d03381752c0095718b8234bfee3a3cdbef2f160ae57c975"
   },
   {
    "id": "code-py-S",
    "type": "code-py",
    "length": "S",
    "chars": 550,
    "words": 67,
    "sha256": "a59654eba90d3c69164c1862b0af8788cf0960f89db941c119f54fe476592001"
   },
   {
    "id": "code-py-M",
    "type": "code-py",
    "length": "M",
    "chars": 2747,
    "words": 335,
    "sha256": "5cb82bceb3faa325cdc0f75d3b168b8c57a0b631404a0ba1ae4406a0751d075a"
   },
   {
    "id": "code-py-L",
    "type": "code-py",
    "length": "L",
    "chars": 6613,
    "words": 804,
    "sha256": "4b6c9e72429f3bdad7737742d36c073c90ae3c0b876b0a392794644167e04b17"
   },
   {
    "id": "json-S",
    "type": "json",
    "length": "S",
    "chars": 421,
    "words": 48,
    "sha256": "4b8abfde0c86d2dfee656e8432acae31f60aa5310b33cfba28958f41eff597a6"
   },
   {
    "id": "json-M",
    "type": "json",
    "length": "M",
    "chars": 2115,
    "words": 240,
    "sha256": "93a19db6fb95f863080ae361a1326a56f96f2372c8f34616851068022e8ab75e"
   },
   {
    "id": "json-L",
    "type": "json",
    "length": "L",
    "chars": 5077,
    "words": 576,
    "sha256": "4c802216f04e2c6a40bd6baba8baf36dc2927744686b226d775717c2bffc86e0"
   },
   {
    "id": "md-table-S",
    "type": "md-table",
    "length": "S",
    "chars": 449,
    "words": 115,
    "sha256": "7e94551f0fcafc83cdfd938302309893a0ce8b0576c53d34b952f3abf8a6b5e7"
   },
   {
    "id": "md-table-M",
    "type": "md-table",
    "length": "M",
    "chars": 1697,
    "words": 414,
    "sha256": "5fe4e97d2736bc534cb2ddd5e7596218cba0fb8d75b3a35f03a4d6d718575c80"
   },
   {
    "id": "md-table-L",
    "type": "md-table",
    "length": "L",
    "chars": 3788,
    "words": 916,
    "sha256": "116210865b4a26363b3d4522c8b04c54eec94ddcdd9d26311f9339b840be3c02"
   },
   {
    "id": "text-ru-S",
    "type": "text-ru",
    "length": "S",
    "chars": 205,
    "words": 29,
    "sha256": "e3bccc5d7bcf3fedad93078ed89bcfb028f5708adb2a6505852b3b5410902236"
   },
   {
    "id": "text-ru-M",
    "type": "text-ru",
    "length": "M",
    "chars": 1290,
    "words": 184,
    "sha256": "9f07499598fbfb73ee3a0872c0e9eb29a87a8c17dec6ee0a5ca1d8895bc565ee"
   },
   {
    "id": "text-ru-L",
    "type": "text-ru",
    "length": "L",
    "chars": 3279,
    "words": 479,
    "sha256": "a3ada220e0c063f3b3390be2c6bcd8cbcc8e94c966d894d4415c3594106d93a7"
   },
   {
    "id": "text-zh-S",
    "type": "text-zh",
    "length": "S",
    "chars": 89,
    "words": 1,
    "sha256": "9eeb7a8d520402388530ae560b74aec3a3ef686bfc2dc1932650d776d403eb02"
   },
   {
    "id": "text-zh-M",
    "type": "text-zh",
    "length": "M",
    "chars": 441,
    "words": 8,
    "sha256": "c68dfc94f3b963a698d687f416a2b70ddbfcfc9a8679e94cb8ebf64a785d3f99"
   },
   {
    "id": "text-zh-L",
    "type": "text-zh",
    "length": "L",
    "chars": 1111,
    "words": 36,
    "sha256": "52cce01b060a5f841985ad468767d6bab7b4cf92c98a82ed8141e7301ab05fb7"
   },
   {
    "id": "text-ar-S",
    "type": "text-ar",
    "length": "S",
    "chars": 348,
    "words": 55,
    "sha256": "4f17ca2e82967fe75aebc5d6c046110ef7a2567c39285c5e18a104f829d91e73"
   },
   {
    "id": "text-ar-M",
    "type": "text-ar",
    "length": "M",
    "chars": 1149,
    "words": 189,
    "sha256": "c83ba6f67b16fedac6a359ba06f4df338a739b70c297dc7388f18fe9e559675e"
   },
   {
    "id": "text-ar-L",
    "type": "text-ar",
    "length": "L",
    "chars": 2916,
    "words": 491,
    "sha256": "65c63afe0de5c99223d957ab783cd756270aeb67e0d8c5a4048d4f8cb3dd1d25"
   },
   {
    "id": "numbers-math-S",
    "type": "numbers-math",
    "length": "S",
    "chars": 685,
    "words": 130,
    "sha256": "faf75e1aec79168aa1235d40d6665383a2f3333def9c67bd0b074b7ad4362806"
   },
   {
    "id": "numbers-math-M",
    "type": "numbers-math",
    "length": "M",
    "chars": 2564,
    "words": 468,
    "sha256": "1a4e4050f71401db161612976f8a6033ceac23cf4202b036a8bb736e50b50a8d"
   },
   {
    "id": "numbers-math-L",
    "type": "numbers-math",
    "length": "L",
    "chars": 5909,
    "words": 1040,
    "sha256": "51a0870342953813d1b6e98551d5104404efdd6f6bd592fdfc00589e8bf9b3da"
   },
   {
    "id": "urls-emoji-S",
    "type": "urls-emoji",
    "length": "S",
    "chars": 511,
    "words": 18,
    "sha256": "63afa3d8d7d7404c6d72e142ab815fd13c6b75aedcf62505f6ac4172ebef6f0c"
   },
   {
    "id": "urls-emoji-M",
    "type": "urls-emoji",
    "length": "M",
    "chars": 1878,
    "words": 66,
    "sha256": "898ff77301421034c01de63475b4dabbbf916a311f687ca107bcff90aab4e24b"
   },
   {
    "id": "urls-emoji-L",
    "type": "urls-emoji",
    "length": "L",
    "chars": 4274,
    "words": 150,
    "sha256": "4ae624ebee7f8be82e964185ee930fb6111bcf12c7eadbe778ab7b35fc9ebeb2"
   }
  ],
  "types": [
   "prose-en",
   "technical-en",
   "code-js",
   "code-py",
   "json",
   "md-table",
   "text-ru",
   "text-zh",
   "text-ar",
   "numbers-math",
   "urls-emoji"
  ]
 },
 "anthropic": {
  "modelsMeasured": 13,
  "models": [
   {
    "id": "claude-haiku-5-5",
    "display": "Claude Haiku 5.5",
    "created": "2026-10-07",
    "generation": 3,
    "baselineOverheadTokens": 9
   },
   {
    "id": "claude-sonnet-5-5",
    "display": "Claude Sonnet 5.5",
    "created": "2026-09-28",
    "generation": 3,
    "baselineOverheadTokens": 9
   },
   {
    "id": "claude-opus-5-5",
    "display": "Claude Opus 5.5",
    "created": "2026-09-21",
    "generation": 3,
    "baselineOverheadTokens": 9
   },
   {
    "id": "claude-fable-5-1",
    "display": "Claude Fable 5.1",
    "created": "2026-08-28",
    "generation": 3,
    "baselineOverheadTokens": 9
   },
   {
    "id": "claude-opus-5",
    "display": "Claude Opus 5",
    "created": "2026-07-24",
    "generation": 3,
    "baselineOverheadTokens": 7
   },
   {
    "id": "claude-sonnet-5",
    "display": "Claude Sonnet 5",
    "created": "2026-06-29",
    "generation": 3,
    "baselineOverheadTokens": 7
   },
   {
    "id": "claude-fable-5",
    "display": "Claude Fable 5",
    "created": "2026-06-07",
    "generation": 3,
    "baselineOverheadTokens": 7
   },
   {
    "id": "claude-opus-4-8",
    "display": "Claude Opus 4.8",
    "created": "2026-05-28",
    "generation": 3,
    "baselineOverheadTokens": 7
   },
   {
    "id": "claude-opus-4-7",
    "display": "Claude Opus 4.7",
    "created": "2026-04-14",
    "generation": 2,
    "baselineOverheadTokens": 12
   },
   {
    "id": "claude-sonnet-4-6",
    "display": "Claude Sonnet 4.6",
    "created": "2026-02-17",
    "generation": 1,
    "baselineOverheadTokens": 8
   },
   {
    "id": "claude-opus-4-6",
    "display": "Claude Opus 4.6",
    "created": "2026-02-04",
    "generation": 1,
    "baselineOverheadTokens": 8
   },
   {
    "id": "claude-opus-4-5-20251101",
    "display": "Claude Opus 4.5",
    "created": "2025-11-24",
    "generation": 1,
    "baselineOverheadTokens": 8
   },
   {
    "id": "claude-haiku-4-5-20251001",
    "display": "Claude Haiku 4.5",
    "created": "2025-10-15",
    "generation": 1,
    "baselineOverheadTokens": 8
   }
  ],
  "repeatMismatches": [],
  "tokenizerGenerations": [
   {
    "generation": 1,
    "models": [
     "claude-haiku-4-5-20251001",
     "claude-opus-4-5-20251101",
     "claude-opus-4-6",
     "claude-sonnet-4-6"
    ],
    "displayModels": [
     "Claude Haiku 4.5",
     "Claude Opus 4.5",
     "Claude Opus 4.6",
     "Claude Sonnet 4.6"
    ],
    "representative": "claude-haiku-4-5-20251001",
    "baselineOverheadTokens": 8,
    "tokensPerThousandChars": {
     "prose-en": 225.5473,
     "technical-en": 207.4482,
     "code-js": 356.2536,
     "code-py": 321.9331,
     "json": 507.3165,
     "md-table": 466.919,
     "text-ru": 412.303,
     "text-zh": 1187.6326,
     "text-ar": 666.6212,
     "numbers-math": 605.308,
     "urls-emoji": 482.8161
    }
   },
   {
    "generation": 2,
    "models": [
     "claude-opus-4-7"
    ],
    "displayModels": [
     "Claude Opus 4.7"
    ],
    "representative": "claude-opus-4-7",
    "baselineOverheadTokens": 12,
    "tokensPerThousandChars": {
     "prose-en": 301.6954,
     "technical-en": 294.9025,
     "code-js": 439.0523,
     "code-py": 418.6246,
     "json": 557.3889,
     "md-table": 551.5375,
     "text-ru": 412.303,
     "text-zh": 1187.6326,
     "text-ar": 666.6212,
     "numbers-math": 658.7921,
     "urls-emoji": 534.2048
    }
   },
   {
    "generation": 3,
    "models": [
     "claude-opus-4-8",
     "claude-fable-5",
     "claude-sonnet-5",
     "claude-opus-5",
     "claude-fable-5-1",
     "claude-opus-5-5",
     "claude-sonnet-5-5",
     "claude-haiku-5-5"
    ],
    "displayModels": [
     "Claude Opus 4.8",
     "Claude Fable 5",
     "Claude Sonnet 5",
     "Claude Opus 5",
     "Claude Fable 5.1",
     "Claude Opus 5.5",
     "Claude Sonnet 5.5",
     "Claude Haiku 5.5"
    ],
    "representative": "claude-opus-4-8",
    "baselineOverheadTokens": 7,
    "tokensPerThousandChars": {
     "prose-en": 301.6954,
     "technical-en": 294.9025,
     "code-js": 439.0523,
     "code-py": 418.6246,
     "json": 557.3889,
     "md-table": 551.5375,
     "text-ru": 412.303,
     "text-zh": 1187.6326,
     "text-ar": 666.6212,
     "numbers-math": 658.7921,
     "urls-emoji": 534.2048
    }
   }
  ],
  "opus47VersusOpus48": {
   "differingItems": [
    {
     "item": "text-zh-S",
     "opus47": 118,
     "opus48": 117
    },
    {
     "item": "text-zh-M",
     "opus47": 532,
     "opus48": 531
    },
    {
     "item": "text-zh-L",
     "opus47": 1331,
     "opus48": 1330
    },
    {
     "item": "urls-emoji-S",
     "opus47": 268,
     "opus48": 267
    },
    {
     "item": "urls-emoji-M",
     "opus47": 991,
     "opus48": 990
    },
    {
     "item": "urls-emoji-L",
     "opus47": 2277,
     "opus48": 2276
    }
   ],
   "note": "Opus 4.7 and the later models share one tokenizer except on the items listed (if any); the models are grouped as one generation only where every one of the 33 counts is identical."
  },
  "transitions": [
   {
    "label": "Claude Opus 4.5 to Claude Opus 4.6",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1013,
     "old": 1013
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1013,
     "old": 1013
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1013,
      "tokensOld": 1013
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 962,
      "tokensOld": 962
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3704,
      "tokensOld": 3704
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3185,
      "tokensOld": 3185
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3857,
      "tokensOld": 3857
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2776,
      "tokensOld": 2776
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1981,
      "tokensOld": 1981
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 5649,
      "tokensOld": 5649
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3200,
      "tokensOld": 3200
     }
    ],
    "family": "opus",
    "from": "claude-opus-4-5-20251101",
    "to": "claude-opus-4-6",
    "fromCreated": "2025-11-24",
    "toCreated": "2026-02-04",
    "sameTokenizerGeneration": true,
    "listPrice": {
     "fromInput": 5,
     "fromOutput": 25,
     "toInput": 5,
     "toOutput": 25,
     "inputChangePct": 0,
     "outputChangePct": 0,
     "effectiveInputCostChangePct": 0,
     "effectiveProseInputCostChangePct": 0
    }
   },
   {
    "label": "Claude Opus 4.6 to Claude Opus 4.7",
    "meanRatio": 1.1601,
    "meanPct": 16.0066,
    "ci95Pct": [
     8.2089,
     24.5549
    ],
    "pooledRatio": 1.138,
    "minType": {
     "type": "text-ru",
     "ratio": 1,
     "new": 1973,
     "old": 1973
    },
    "maxType": {
     "type": "technical-en",
     "ratio": 1.4095634095634095,
     "new": 1356,
     "old": 962
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1.3327,
      "pct": 33.2675,
      "tokensNew": 1350,
      "tokensOld": 1013
     },
     {
      "type": "technical-en",
      "ratio": 1.4096,
      "pct": 40.9563,
      "tokensNew": 1356,
      "tokensOld": 962
     },
     {
      "type": "code-js",
      "ratio": 1.2368,
      "pct": 23.6771,
      "tokensNew": 4581,
      "tokensOld": 3704
     },
     {
      "type": "code-py",
      "ratio": 1.3002,
      "pct": 30.0157,
      "tokensNew": 4141,
      "tokensOld": 3185
     },
     {
      "type": "json",
      "ratio": 1.0993,
      "pct": 9.93,
      "tokensNew": 4240,
      "tokensOld": 3857
     },
     {
      "type": "md-table",
      "ratio": 1.188,
      "pct": 18.804,
      "tokensNew": 3298,
      "tokensOld": 2776
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1981,
      "tokensOld": 1981
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1.0892,
      "pct": 8.9219,
      "tokensNew": 6153,
      "tokensOld": 5649
     },
     {
      "type": "urls-emoji",
      "ratio": 1.105,
      "pct": 10.5,
      "tokensNew": 3536,
      "tokensOld": 3200
     }
    ],
    "family": "opus",
    "from": "claude-opus-4-6",
    "to": "claude-opus-4-7",
    "fromCreated": "2026-02-04",
    "toCreated": "2026-04-14",
    "sameTokenizerGeneration": false,
    "listPrice": {
     "fromInput": 5,
     "fromOutput": 25,
     "toInput": 5,
     "toOutput": 25,
     "inputChangePct": 0,
     "outputChangePct": 0,
     "effectiveInputCostChangePct": 16.0066,
     "effectiveProseInputCostChangePct": 33.2675
    }
   },
   {
    "label": "Claude Opus 4.7 to Claude Opus 4.8",
    "meanRatio": 0.9998,
    "meanPct": -0.0215,
    "ci95Pct": [
     -0.0523,
     0
    ],
    "pooledRatio": 0.9998,
    "minType": {
     "type": "text-zh",
     "ratio": 0.9984856133266027,
     "new": 1978,
     "old": 1981
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1350,
      "tokensOld": 1350
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1356,
      "tokensOld": 1356
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4581,
      "tokensOld": 4581
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4141,
      "tokensOld": 4141
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3298,
      "tokensOld": 3298
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 0.9985,
      "pct": -0.1514,
      "tokensNew": 1978,
      "tokensOld": 1981
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 6153,
      "tokensOld": 6153
     },
     {
      "type": "urls-emoji",
      "ratio": 0.9992,
      "pct": -0.0848,
      "tokensNew": 3533,
      "tokensOld": 3536
     }
    ],
    "family": "opus",
    "from": "claude-opus-4-7",
    "to": "claude-opus-4-8",
    "fromCreated": "2026-04-14",
    "toCreated": "2026-05-28",
    "sameTokenizerGeneration": false,
    "listPrice": {
     "fromInput": 5,
     "fromOutput": 25,
     "toInput": 5,
     "toOutput": 25,
     "inputChangePct": 0,
     "outputChangePct": 0,
     "effectiveInputCostChangePct": -0.0215,
     "effectiveProseInputCostChangePct": 0
    }
   },
   {
    "label": "Claude Opus 4.8 to Claude Opus 5",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1350,
      "tokensOld": 1350
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1356,
      "tokensOld": 1356
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4581,
      "tokensOld": 4581
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4141,
      "tokensOld": 4141
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3298,
      "tokensOld": 3298
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1978,
      "tokensOld": 1978
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 6153,
      "tokensOld": 6153
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3533,
      "tokensOld": 3533
     }
    ],
    "family": "opus",
    "from": "claude-opus-4-8",
    "to": "claude-opus-5",
    "fromCreated": "2026-05-28",
    "toCreated": "2026-07-24",
    "sameTokenizerGeneration": true,
    "listPrice": {
     "fromInput": 5,
     "fromOutput": 25,
     "toInput": 5,
     "toOutput": 25,
     "inputChangePct": 0,
     "outputChangePct": 0,
     "effectiveInputCostChangePct": 0,
     "effectiveProseInputCostChangePct": 0
    }
   },
   {
    "label": "Claude Opus 5 to Claude Opus 5.5",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1350,
      "tokensOld": 1350
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1356,
      "tokensOld": 1356
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4581,
      "tokensOld": 4581
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4141,
      "tokensOld": 4141
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3298,
      "tokensOld": 3298
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1978,
      "tokensOld": 1978
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 6153,
      "tokensOld": 6153
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3533,
      "tokensOld": 3533
     }
    ],
    "family": "opus",
    "from": "claude-opus-5",
    "to": "claude-opus-5-5",
    "fromCreated": "2026-07-24",
    "toCreated": "2026-09-21",
    "sameTokenizerGeneration": true,
    "listPrice": {
     "fromInput": 5,
     "fromOutput": 25,
     "toInput": 4,
     "toOutput": 20,
     "inputChangePct": -20,
     "outputChangePct": -20,
     "effectiveInputCostChangePct": -20,
     "effectiveProseInputCostChangePct": -20
    }
   },
   {
    "label": "Claude Sonnet 4.6 to Claude Sonnet 5",
    "meanRatio": 1.1598,
    "meanPct": 15.9843,
    "ci95Pct": [
     8.1861,
     24.5344
    ],
    "pooledRatio": 1.1378,
    "minType": {
     "type": "text-zh",
     "ratio": 0.9984856133266027,
     "new": 1978,
     "old": 1981
    },
    "maxType": {
     "type": "technical-en",
     "ratio": 1.4095634095634095,
     "new": 1356,
     "old": 962
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1.3327,
      "pct": 33.2675,
      "tokensNew": 1350,
      "tokensOld": 1013
     },
     {
      "type": "technical-en",
      "ratio": 1.4096,
      "pct": 40.9563,
      "tokensNew": 1356,
      "tokensOld": 962
     },
     {
      "type": "code-js",
      "ratio": 1.2368,
      "pct": 23.6771,
      "tokensNew": 4581,
      "tokensOld": 3704
     },
     {
      "type": "code-py",
      "ratio": 1.3002,
      "pct": 30.0157,
      "tokensNew": 4141,
      "tokensOld": 3185
     },
     {
      "type": "json",
      "ratio": 1.0993,
      "pct": 9.93,
      "tokensNew": 4240,
      "tokensOld": 3857
     },
     {
      "type": "md-table",
      "ratio": 1.188,
      "pct": 18.804,
      "tokensNew": 3298,
      "tokensOld": 2776
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 0.9985,
      "pct": -0.1514,
      "tokensNew": 1978,
      "tokensOld": 1981
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1.0892,
      "pct": 8.9219,
      "tokensNew": 6153,
      "tokensOld": 5649
     },
     {
      "type": "urls-emoji",
      "ratio": 1.1041,
      "pct": 10.4062,
      "tokensNew": 3533,
      "tokensOld": 3200
     }
    ],
    "family": "sonnet",
    "from": "claude-sonnet-4-6",
    "to": "claude-sonnet-5",
    "fromCreated": "2026-02-17",
    "toCreated": "2026-06-29",
    "sameTokenizerGeneration": false,
    "listPrice": {
     "fromInput": 3,
     "fromOutput": 15,
     "toInput": 2,
     "toOutput": 10,
     "inputChangePct": -33.3333,
     "outputChangePct": -33.3333,
     "effectiveInputCostChangePct": -22.6771,
     "effectiveProseInputCostChangePct": -11.155
    }
   },
   {
    "label": "Claude Sonnet 5 to Claude Sonnet 5.5",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1350,
      "tokensOld": 1350
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1356,
      "tokensOld": 1356
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4581,
      "tokensOld": 4581
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4141,
      "tokensOld": 4141
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3298,
      "tokensOld": 3298
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1978,
      "tokensOld": 1978
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 6153,
      "tokensOld": 6153
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3533,
      "tokensOld": 3533
     }
    ],
    "family": "sonnet",
    "from": "claude-sonnet-5",
    "to": "claude-sonnet-5-5",
    "fromCreated": "2026-06-29",
    "toCreated": "2026-09-28",
    "sameTokenizerGeneration": true,
    "listPrice": {
     "fromInput": 2,
     "fromOutput": 10,
     "toInput": 2,
     "toOutput": 10,
     "inputChangePct": 0,
     "outputChangePct": 0,
     "effectiveInputCostChangePct": 0,
     "effectiveProseInputCostChangePct": 0
    }
   },
   {
    "label": "Claude Haiku 4.5 to Claude Haiku 5.5",
    "meanRatio": 1.1598,
    "meanPct": 15.9843,
    "ci95Pct": [
     8.1861,
     24.5344
    ],
    "pooledRatio": 1.1378,
    "minType": {
     "type": "text-zh",
     "ratio": 0.9984856133266027,
     "new": 1978,
     "old": 1981
    },
    "maxType": {
     "type": "technical-en",
     "ratio": 1.4095634095634095,
     "new": 1356,
     "old": 962
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1.3327,
      "pct": 33.2675,
      "tokensNew": 1350,
      "tokensOld": 1013
     },
     {
      "type": "technical-en",
      "ratio": 1.4096,
      "pct": 40.9563,
      "tokensNew": 1356,
      "tokensOld": 962
     },
     {
      "type": "code-js",
      "ratio": 1.2368,
      "pct": 23.6771,
      "tokensNew": 4581,
      "tokensOld": 3704
     },
     {
      "type": "code-py",
      "ratio": 1.3002,
      "pct": 30.0157,
      "tokensNew": 4141,
      "tokensOld": 3185
     },
     {
      "type": "json",
      "ratio": 1.0993,
      "pct": 9.93,
      "tokensNew": 4240,
      "tokensOld": 3857
     },
     {
      "type": "md-table",
      "ratio": 1.188,
      "pct": 18.804,
      "tokensNew": 3298,
      "tokensOld": 2776
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 0.9985,
      "pct": -0.1514,
      "tokensNew": 1978,
      "tokensOld": 1981
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1.0892,
      "pct": 8.9219,
      "tokensNew": 6153,
      "tokensOld": 5649
     },
     {
      "type": "urls-emoji",
      "ratio": 1.1041,
      "pct": 10.4062,
      "tokensNew": 3533,
      "tokensOld": 3200
     }
    ],
    "family": "haiku",
    "from": "claude-haiku-4-5-20251001",
    "to": "claude-haiku-5-5",
    "fromCreated": "2025-10-15",
    "toCreated": "2026-10-07",
    "sameTokenizerGeneration": false,
    "listPrice": null
   },
   {
    "label": "Claude Fable 5 to Claude Fable 5.1",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1350,
      "tokensOld": 1350
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1356,
      "tokensOld": 1356
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4581,
      "tokensOld": 4581
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4141,
      "tokensOld": 4141
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3298,
      "tokensOld": 3298
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1978,
      "tokensOld": 1978
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 6153,
      "tokensOld": 6153
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3533,
      "tokensOld": 3533
     }
    ],
    "family": "fable",
    "from": "claude-fable-5",
    "to": "claude-fable-5-1",
    "fromCreated": "2026-06-07",
    "toCreated": "2026-08-28",
    "sameTokenizerGeneration": true,
    "listPrice": {
     "fromInput": 10,
     "fromOutput": 50,
     "toInput": 10,
     "toOutput": 50,
     "inputChangePct": 0,
     "outputChangePct": 0,
     "effectiveInputCostChangePct": 0,
     "effectiveProseInputCostChangePct": 0
    }
   }
  ],
  "headline": {
   "opus46to47": {
    "label": "Claude Opus 4.6 to Claude Opus 4.7",
    "meanRatio": 1.1601,
    "meanPct": 16.0066,
    "ci95Pct": [
     8.2089,
     24.5549
    ],
    "pooledRatio": 1.138,
    "minType": {
     "type": "text-ru",
     "ratio": 1,
     "new": 1973,
     "old": 1973
    },
    "maxType": {
     "type": "technical-en",
     "ratio": 1.4095634095634095,
     "new": 1356,
     "old": 962
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1.3327,
      "pct": 33.2675,
      "tokensNew": 1350,
      "tokensOld": 1013
     },
     {
      "type": "technical-en",
      "ratio": 1.4096,
      "pct": 40.9563,
      "tokensNew": 1356,
      "tokensOld": 962
     },
     {
      "type": "code-js",
      "ratio": 1.2368,
      "pct": 23.6771,
      "tokensNew": 4581,
      "tokensOld": 3704
     },
     {
      "type": "code-py",
      "ratio": 1.3002,
      "pct": 30.0157,
      "tokensNew": 4141,
      "tokensOld": 3185
     },
     {
      "type": "json",
      "ratio": 1.0993,
      "pct": 9.93,
      "tokensNew": 4240,
      "tokensOld": 3857
     },
     {
      "type": "md-table",
      "ratio": 1.188,
      "pct": 18.804,
      "tokensNew": 3298,
      "tokensOld": 2776
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1981,
      "tokensOld": 1981
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1.0892,
      "pct": 8.9219,
      "tokensNew": 6153,
      "tokensOld": 5649
     },
     {
      "type": "urls-emoji",
      "ratio": 1.105,
      "pct": 10.5,
      "tokensNew": 3536,
      "tokensOld": 3200
     }
    ]
   },
   "opus46to48": {
    "label": "Claude Opus 4.6 to Claude Opus 4.8 (the tokenizer the later models share)",
    "meanRatio": 1.1598,
    "meanPct": 15.9843,
    "ci95Pct": [
     8.1861,
     24.5344
    ],
    "pooledRatio": 1.1378,
    "minType": {
     "type": "text-zh",
     "ratio": 0.9984856133266027,
     "new": 1978,
     "old": 1981
    },
    "maxType": {
     "type": "technical-en",
     "ratio": 1.4095634095634095,
     "new": 1356,
     "old": 962
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1.3327,
      "pct": 33.2675,
      "tokensNew": 1350,
      "tokensOld": 1013
     },
     {
      "type": "technical-en",
      "ratio": 1.4096,
      "pct": 40.9563,
      "tokensNew": 1356,
      "tokensOld": 962
     },
     {
      "type": "code-js",
      "ratio": 1.2368,
      "pct": 23.6771,
      "tokensNew": 4581,
      "tokensOld": 3704
     },
     {
      "type": "code-py",
      "ratio": 1.3002,
      "pct": 30.0157,
      "tokensNew": 4141,
      "tokensOld": 3185
     },
     {
      "type": "json",
      "ratio": 1.0993,
      "pct": 9.93,
      "tokensNew": 4240,
      "tokensOld": 3857
     },
     {
      "type": "md-table",
      "ratio": 1.188,
      "pct": 18.804,
      "tokensNew": 3298,
      "tokensOld": 2776
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 0.9985,
      "pct": -0.1514,
      "tokensNew": 1978,
      "tokensOld": 1981
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1.0892,
      "pct": 8.9219,
      "tokensNew": 6153,
      "tokensOld": 5649
     },
     {
      "type": "urls-emoji",
      "ratio": 1.1041,
      "pct": 10.4062,
      "tokensNew": 3533,
      "tokensOld": 3200
     }
    ]
   },
   "opus47to48": {
    "label": "Claude Opus 4.7 to Claude Opus 4.8",
    "meanRatio": 0.9998,
    "meanPct": -0.0215,
    "ci95Pct": [
     -0.0523,
     0
    ],
    "pooledRatio": 0.9998,
    "minType": {
     "type": "text-zh",
     "ratio": 0.9984856133266027,
     "new": 1978,
     "old": 1981
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 1350,
     "old": 1350
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1350,
      "tokensOld": 1350
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1356,
      "tokensOld": 1356
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4581,
      "tokensOld": 4581
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4141,
      "tokensOld": 4141
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3298,
      "tokensOld": 3298
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1973,
      "tokensOld": 1973
     },
     {
      "type": "text-zh",
      "ratio": 0.9985,
      "pct": -0.1514,
      "tokensNew": 1978,
      "tokensOld": 1981
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2934,
      "tokensOld": 2934
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 6153,
      "tokensOld": 6153
     },
     {
      "type": "urls-emoji",
      "ratio": 0.9992,
      "pct": -0.0848,
      "tokensNew": 3533,
      "tokensOld": 3536
     }
    ]
   }
  },
  "providerStatement": {
   "sourceNote": "The page says Claude 4.7 and later models use a newer tokenizer that produces approximately 30% more tokens for the same text; the exact increase depends on the content. Sonnet 4.6 and earlier use the previous tokenizer.",
   "statedApproxPct": 30,
   "measuredOpus46to47Pct": 16.0066,
   "measuredCi95Pct": [
    8.2089,
    24.5549
   ],
   "measuredOpus46to48Pct": 15.9843,
   "measuredCi95_46to48Pct": [
    8.1861,
    24.5344
   ],
   "docsPage": "https://platform.claude.com/docs/en/build-with-claude/token-counting",
   "docsReadUtc": "2026-10-28",
   "agreement": "our mixed-corpus mean is lower than the stated 30 percent (the stated value is above our interval); by text type the stated figure is matched or exceeded for prose-en, technical-en, code-py and not matched for code-js, json, md-table, text-ru, text-zh, text-ar, numbers-math, urls-emoji"
  },
  "effectivePricePer1000Words": [
   {
    "id": "claude-haiku-5-5",
    "name": "Claude Haiku 5.5",
    "generation": 3,
    "listInputPerMTok": null,
    "listOutputPerMTok": null,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": null,
    "outputCostPer1000WordsProseUsd": null,
    "note": "no provider-stated price parsed for this model in the archived table (n/a)"
   },
   {
    "id": "claude-sonnet-5-5",
    "name": "Claude Sonnet 5.5",
    "generation": 3,
    "listInputPerMTok": 2,
    "listOutputPerMTok": 10,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": 0.0032,
    "outputCostPer1000WordsProseUsd": 0.0161,
    "note": null
   },
   {
    "id": "claude-opus-5-5",
    "name": "Claude Opus 5.5",
    "generation": 3,
    "listInputPerMTok": 4,
    "listOutputPerMTok": 20,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": 0.0064,
    "outputCostPer1000WordsProseUsd": 0.0321,
    "note": null
   },
   {
    "id": "claude-fable-5-1",
    "name": "Claude Fable 5.1",
    "generation": 3,
    "listInputPerMTok": 10,
    "listOutputPerMTok": 50,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": 0.0161,
    "outputCostPer1000WordsProseUsd": 0.0803,
    "note": null
   },
   {
    "id": "claude-opus-5",
    "name": "Claude Opus 5",
    "generation": 3,
    "listInputPerMTok": 5,
    "listOutputPerMTok": 25,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": 0.008,
    "outputCostPer1000WordsProseUsd": 0.0401,
    "note": null
   },
   {
    "id": "claude-sonnet-5",
    "name": "Claude Sonnet 5",
    "generation": 3,
    "listInputPerMTok": 2,
    "listOutputPerMTok": 10,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": 0.0032,
    "outputCostPer1000WordsProseUsd": 0.0161,
    "note": null
   },
   {
    "id": "claude-fable-5",
    "name": "Claude Fable 5",
    "generation": 3,
    "listInputPerMTok": 10,
    "listOutputPerMTok": 50,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": 0.0161,
    "outputCostPer1000WordsProseUsd": 0.0803,
    "note": null
   },
   {
    "id": "claude-opus-4-8",
    "name": "Claude Opus 4.8",
    "generation": 3,
    "listInputPerMTok": 5,
    "listOutputPerMTok": 25,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": 0.008,
    "outputCostPer1000WordsProseUsd": 0.0401,
    "note": null
   },
   {
    "id": "claude-opus-4-7",
    "name": "Claude Opus 4.7",
    "generation": 2,
    "listInputPerMTok": 5,
    "listOutputPerMTok": 25,
    "tokensPer1000WordsProse": 1605.7348,
    "tokensPer1000WordsTechnical": 1751.938,
    "inputCostPer1000WordsProseUsd": 0.008,
    "outputCostPer1000WordsProseUsd": 0.0401,
    "note": null
   },
   {
    "id": "claude-sonnet-4-6",
    "name": "Claude Sonnet 4.6",
    "generation": 1,
    "listInputPerMTok": 3,
    "listOutputPerMTok": 15,
    "tokensPer1000WordsProse": 1202.509,
    "tokensPer1000WordsTechnical": 1238.3721,
    "inputCostPer1000WordsProseUsd": 0.0036,
    "outputCostPer1000WordsProseUsd": 0.018,
    "note": null
   },
   {
    "id": "claude-opus-4-6",
    "name": "Claude Opus 4.6",
    "generation": 1,
    "listInputPerMTok": 5,
    "listOutputPerMTok": 25,
    "tokensPer1000WordsProse": 1202.509,
    "tokensPer1000WordsTechnical": 1238.3721,
    "inputCostPer1000WordsProseUsd": 0.006,
    "outputCostPer1000WordsProseUsd": 0.0301,
    "note": null
   },
   {
    "id": "claude-opus-4-5-20251101",
    "name": "Claude Opus 4.5",
    "generation": 1,
    "listInputPerMTok": 5,
    "listOutputPerMTok": 25,
    "tokensPer1000WordsProse": 1202.509,
    "tokensPer1000WordsTechnical": 1238.3721,
    "inputCostPer1000WordsProseUsd": 0.006,
    "outputCostPer1000WordsProseUsd": 0.0301,
    "note": null
   },
   {
    "id": "claude-haiku-4-5-20251001",
    "name": "Claude Haiku 4.5",
    "generation": 1,
    "listInputPerMTok": 1,
    "listOutputPerMTok": 5,
    "tokensPer1000WordsProse": 1202.509,
    "tokensPer1000WordsTechnical": 1238.3721,
    "inputCostPer1000WordsProseUsd": 0.0012,
    "outputCostPer1000WordsProseUsd": 0.006,
    "note": null
   }
  ]
 },
 "gemini": {
  "modelsMeasured": [
   "gemini-2.5-flash-lite",
   "gemini-2.5-flash",
   "gemini-3-flash-preview",
   "gemini-3.1-pro-preview",
   "gemini-3.1-flash-lite",
   "gemini-3.5-flash",
   "gemini-3.5-flash-lite",
   "gemini-3.6-flash",
   "gemini-3.7-flash",
   "gemini-3.8-flash",
   "gemini-4-argon"
  ],
  "skippedModels": [
   {
    "model": "gemini-2.5-pro",
    "reason": "countTokens returned HTTP 404 (the provider says the model is no longer available to new users)"
   }
  ],
  "generations": [
   [
    "gemini-2.5-flash-lite",
    "gemini-2.5-flash",
    "gemini-3-flash-preview",
    "gemini-3.1-pro-preview",
    "gemini-3.1-flash-lite",
    "gemini-3.5-flash",
    "gemini-3.5-flash-lite",
    "gemini-3.6-flash",
    "gemini-3.7-flash",
    "gemini-3.8-flash"
   ],
   [
    "gemini-4-argon"
   ]
  ],
  "transitions": [
   {
    "label": "gemini-2.5-flash to gemini-3-flash-preview",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 949,
      "tokensOld": 949
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 912,
      "tokensOld": 912
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3568,
      "tokensOld": 3568
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3104,
      "tokensOld": 3104
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2987,
      "tokensOld": 2987
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1384,
      "tokensOld": 1384
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1235,
      "tokensOld": 1235
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1582,
      "tokensOld": 1582
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 7835,
      "tokensOld": 7835
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3279,
      "tokensOld": 3279
     }
    ],
    "from": "gemini-2.5-flash",
    "to": "gemini-3-flash-preview",
    "sameTokenizerGeneration": true,
    "orderNote": "order follows the model names (version numbers); the models list carries no release dates"
   },
   {
    "label": "gemini-3-flash-preview to gemini-3.5-flash",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 949,
      "tokensOld": 949
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 912,
      "tokensOld": 912
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3568,
      "tokensOld": 3568
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3104,
      "tokensOld": 3104
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2987,
      "tokensOld": 2987
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1384,
      "tokensOld": 1384
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1235,
      "tokensOld": 1235
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1582,
      "tokensOld": 1582
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 7835,
      "tokensOld": 7835
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3279,
      "tokensOld": 3279
     }
    ],
    "from": "gemini-3-flash-preview",
    "to": "gemini-3.5-flash",
    "sameTokenizerGeneration": true,
    "orderNote": "order follows the model names (version numbers); the models list carries no release dates"
   },
   {
    "label": "gemini-3.5-flash to gemini-3.6-flash",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 949,
      "tokensOld": 949
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 912,
      "tokensOld": 912
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3568,
      "tokensOld": 3568
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3104,
      "tokensOld": 3104
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2987,
      "tokensOld": 2987
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1384,
      "tokensOld": 1384
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1235,
      "tokensOld": 1235
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1582,
      "tokensOld": 1582
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 7835,
      "tokensOld": 7835
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3279,
      "tokensOld": 3279
     }
    ],
    "from": "gemini-3.5-flash",
    "to": "gemini-3.6-flash",
    "sameTokenizerGeneration": true,
    "orderNote": "order follows the model names (version numbers); the models list carries no release dates"
   },
   {
    "label": "gemini-3.6-flash to gemini-3.7-flash",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 949,
      "tokensOld": 949
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 912,
      "tokensOld": 912
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3568,
      "tokensOld": 3568
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3104,
      "tokensOld": 3104
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2987,
      "tokensOld": 2987
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1384,
      "tokensOld": 1384
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1235,
      "tokensOld": 1235
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1582,
      "tokensOld": 1582
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 7835,
      "tokensOld": 7835
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3279,
      "tokensOld": 3279
     }
    ],
    "from": "gemini-3.6-flash",
    "to": "gemini-3.7-flash",
    "sameTokenizerGeneration": true,
    "orderNote": "order follows the model names (version numbers); the models list carries no release dates"
   },
   {
    "label": "gemini-3.7-flash to gemini-3.8-flash",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 949,
      "tokensOld": 949
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 912,
      "tokensOld": 912
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3568,
      "tokensOld": 3568
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3104,
      "tokensOld": 3104
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2987,
      "tokensOld": 2987
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1384,
      "tokensOld": 1384
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1235,
      "tokensOld": 1235
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1582,
      "tokensOld": 1582
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 7835,
      "tokensOld": 7835
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3279,
      "tokensOld": 3279
     }
    ],
    "from": "gemini-3.7-flash",
    "to": "gemini-3.8-flash",
    "sameTokenizerGeneration": true,
    "orderNote": "order follows the model names (version numbers); the models list carries no release dates"
   },
   {
    "label": "gemini-2.5-flash-lite to gemini-3.1-flash-lite",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 949,
      "tokensOld": 949
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 912,
      "tokensOld": 912
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3568,
      "tokensOld": 3568
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3104,
      "tokensOld": 3104
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2987,
      "tokensOld": 2987
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1384,
      "tokensOld": 1384
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1235,
      "tokensOld": 1235
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1582,
      "tokensOld": 1582
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 7835,
      "tokensOld": 7835
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3279,
      "tokensOld": 3279
     }
    ],
    "from": "gemini-2.5-flash-lite",
    "to": "gemini-3.1-flash-lite",
    "sameTokenizerGeneration": true,
    "orderNote": "order follows the model names (version numbers); the models list carries no release dates"
   },
   {
    "label": "gemini-3.1-flash-lite to gemini-3.5-flash-lite",
    "meanRatio": 1,
    "meanPct": 0,
    "ci95Pct": [
     0,
     0
    ],
    "pooledRatio": 1,
    "minType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "maxType": {
     "type": "prose-en",
     "ratio": 1,
     "new": 949,
     "old": 949
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 949,
      "tokensOld": 949
     },
     {
      "type": "technical-en",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 912,
      "tokensOld": 912
     },
     {
      "type": "code-js",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3568,
      "tokensOld": 3568
     },
     {
      "type": "code-py",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3104,
      "tokensOld": 3104
     },
     {
      "type": "json",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 4240,
      "tokensOld": 4240
     },
     {
      "type": "md-table",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 2987,
      "tokensOld": 2987
     },
     {
      "type": "text-ru",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1384,
      "tokensOld": 1384
     },
     {
      "type": "text-zh",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1235,
      "tokensOld": 1235
     },
     {
      "type": "text-ar",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 1582,
      "tokensOld": 1582
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 7835,
      "tokensOld": 7835
     },
     {
      "type": "urls-emoji",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 3279,
      "tokensOld": 3279
     }
    ],
    "from": "gemini-3.1-flash-lite",
    "to": "gemini-3.5-flash-lite",
    "sameTokenizerGeneration": true,
    "orderNote": "order follows the model names (version numbers); the models list carries no release dates"
   }
  ],
  "repeatMismatches": [],
  "tokensPerThousandChars": {
   "gemini-2.5-flash-lite": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-2.5-flash": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-3-flash-preview": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-3.1-pro-preview": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-3.1-flash-lite": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-3.5-flash": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-3.5-flash-lite": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-3.6-flash": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-3.7-flash": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-3.8-flash": {
    "prose-en": 216.6139,
    "technical-en": 190.7297,
    "code-js": 343.9474,
    "code-py": 313.9175,
    "json": 557.1222,
    "md-table": 509.1106,
    "text-ru": 288.2686,
    "text-zh": 737.3158,
    "text-ar": 352.8138,
    "numbers-math": 859.6044,
    "urls-emoji": 495.8282
   },
   "gemini-4-argon": {
    "prose-en": 215.1583,
    "technical-en": 189.7251,
    "code-js": 344.7568,
    "code-py": 313.7419,
    "json": 561.4663,
    "md-table": 509.1106,
    "text-ru": 289.5954,
    "text-zh": 701.4224,
    "text-ar": 351.8381,
    "numbers-math": 859.6044,
    "urls-emoji": 486.7762
   }
  },
  "overheadNote": "a one-character request counted 1 token, so no fixed overhead is evident and no baseline is subtracted"
 },
 "cohere": {
  "models": [
   "command-a-03-2025",
   "command-a-plus-05-2026"
  ],
  "transitions": [
   {
    "label": "command-a-03-2025 to command-a-plus-05-2026",
    "meanRatio": 0.8678,
    "meanPct": -13.2157,
    "ci95Pct": [
     -21.9931,
     -5.67
    ],
    "pooledRatio": 0.7993,
    "minType": {
     "type": "urls-emoji",
     "ratio": 0.5942193255879853,
     "new": 2097,
     "old": 3529
    },
    "maxType": {
     "type": "text-ru",
     "ratio": 1.089922480620155,
     "new": 1406,
     "old": 1290
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 0.9669,
      "pct": -3.3092,
      "tokensNew": 935,
      "tokensOld": 967
     },
     {
      "type": "technical-en",
      "ratio": 0.9653,
      "pct": -3.467,
      "tokensNew": 891,
      "tokensOld": 923
     },
     {
      "type": "code-js",
      "ratio": 0.9088,
      "pct": -9.1202,
      "tokensNew": 3099,
      "tokensOld": 3410
     },
     {
      "type": "code-py",
      "ratio": 0.9204,
      "pct": -7.9565,
      "tokensNew": 2707,
      "tokensOld": 2941
     },
     {
      "type": "json",
      "ratio": 0.8646,
      "pct": -13.535,
      "tokensNew": 3258,
      "tokensOld": 3768
     },
     {
      "type": "md-table",
      "ratio": 0.7803,
      "pct": -21.9684,
      "tokensNew": 2323,
      "tokensOld": 2977
     },
     {
      "type": "text-ru",
      "ratio": 1.0899,
      "pct": 8.9922,
      "tokensNew": 1406,
      "tokensOld": 1290
     },
     {
      "type": "text-zh",
      "ratio": 0.9534,
      "pct": -4.6584,
      "tokensNew": 1228,
      "tokensOld": 1288
     },
     {
      "type": "text-ar",
      "ratio": 0.8529,
      "pct": -14.7111,
      "tokensNew": 1432,
      "tokensOld": 1679
     },
     {
      "type": "numbers-math",
      "ratio": 0.6494,
      "pct": -35.0606,
      "tokensNew": 5088,
      "tokensOld": 7835
     },
     {
      "type": "urls-emoji",
      "ratio": 0.5942,
      "pct": -40.5781,
      "tokensNew": 2097,
      "tokensOld": 3529
     }
    ],
    "from": "command-a-03-2025",
    "to": "command-a-plus-05-2026"
   }
  ],
  "tokensPerThousandChars": {
   "command-a-03-2025": {
    "prose-en": 220.7666,
    "technical-en": 194.6314,
    "code-js": 328.85,
    "code-py": 297.4171,
    "json": 495.3128,
    "md-table": 507.6197,
    "text-ru": 270.9214,
    "text-zh": 780.399,
    "text-ar": 377.1752,
    "numbers-math": 859.6044,
    "urls-emoji": 534.1102
   },
   "command-a-plus-05-2026": {
    "prose-en": 212.875,
    "technical-en": 186.0186,
    "code-js": 297.5943,
    "code-py": 273.1047,
    "json": 427.9017,
    "md-table": 389.8483,
    "text-ru": 294.9025,
    "text-zh": 734.9637,
    "text-ar": 319.9461,
    "numbers-math": 545.1385,
    "urls-emoji": 317.7129
   }
  },
  "note": "one pair measured, one repeat each, to respect the trial key limit of 1,000 calls a month"
 },
 "openai": {
  "tiktokenVersion": "0.14.0",
  "encodings": [
   "cl100k_base",
   "o200k_base"
  ],
  "modelsMappedByTiktoken": {
   "cl100k_base": [
    "gpt-3.5-turbo",
    "gpt-3.5-turbo-0125",
    "gpt-3.5-turbo-1106",
    "gpt-3.5-turbo-16k",
    "gpt-3.5-turbo-instruct",
    "gpt-3.5-turbo-instruct-0914"
   ],
   "o200k_base": [
    "gpt-4.1",
    "gpt-4.1-2025-04-14",
    "gpt-4.1-mini",
    "gpt-4.1-mini-2025-04-14",
    "gpt-4.1-nano",
    "gpt-4.1-nano-2025-04-14",
    "gpt-4o",
    "gpt-4o-2024-05-13",
    "gpt-4o-2024-08-06",
    "gpt-4o-2024-11-20",
    "gpt-4o-mini",
    "gpt-4o-mini-2024-07-18",
    "gpt-4o-mini-search-preview",
    "gpt-4o-mini-search-preview-2025-03-11",
    "gpt-4o-mini-transcribe",
    "gpt-4o-mini-transcribe-2025-03-20",
    "gpt-4o-mini-transcribe-2025-12-15",
    "gpt-4o-mini-tts",
    "gpt-4o-mini-tts-2025-03-20",
    "gpt-4o-mini-tts-2025-12-15",
    "gpt-4o-search-preview",
    "gpt-4o-search-preview-2025-03-11",
    "gpt-4o-transcribe",
    "gpt-4o-transcribe-diarize",
    "gpt-5",
    "gpt-5-2025-08-07",
    "gpt-5-chat-latest",
    "gpt-5-codex",
    "gpt-5-mini",
    "gpt-5-mini-2025-08-07",
    "gpt-5-nano",
    "gpt-5-nano-2025-08-07",
    "gpt-5-pro",
    "gpt-5-pro-2025-10-06",
    "gpt-5-search-api",
    "gpt-5-search-api-2025-10-14",
    "gpt-5.1",
    "gpt-5.1-2025-11-13",
    "gpt-5.1-chat-latest",
    "gpt-5.1-codex",
    "gpt-5.1-codex-max",
    "gpt-5.1-codex-mini",
    "gpt-5.2",
    "gpt-5.2-2025-12-11",
    "gpt-5.2-chat-latest",
    "gpt-5.2-codex",
    "gpt-5.2-pro",
    "gpt-5.2-pro-2025-12-11",
    "gpt-5.3-chat-latest",
    "gpt-5.3-codex",
    "gpt-5.4",
    "gpt-5.4-2026-03-05",
    "gpt-5.4-mini",
    "gpt-5.4-mini-2026-03-17",
    "gpt-5.4-nano",
    "gpt-5.4-nano-2026-03-17",
    "gpt-5.4-pro",
    "gpt-5.4-pro-2026-03-05",
    "gpt-5.5",
    "gpt-5.5-2026-04-23",
    "gpt-5.5-pro",
    "gpt-5.5-pro-2026-04-23",
    "gpt-5.6-luna",
    "gpt-5.6-sol",
    "gpt-5.6-terra",
    "o1",
    "o1-2024-12-17",
    "o3",
    "o3-2025-04-16",
    "o3-mini",
    "o3-mini-2025-01-31",
    "o4-mini",
    "o4-mini-2025-04-16"
   ]
  },
  "modelsUnverified": [
   "gpt-6-astra",
   "gpt-6-luna",
   "gpt-6-sol",
   "gpt-6.1-sol",
   "gpt-6.1-terra",
   "gpt-audio",
   "gpt-audio-1.5",
   "gpt-audio-2025-08-28",
   "gpt-audio-mini",
   "gpt-audio-mini-2025-10-06",
   "gpt-audio-mini-2025-12-15",
   "gpt-image-1",
   "gpt-image-1-mini",
   "gpt-image-1.5",
   "gpt-image-2",
   "gpt-image-2-2026-04-21",
   "gpt-image-2.5-flare",
   "gpt-image-2.5-flare-2026-09-08",
   "gpt-image-2.5-sunburst",
   "gpt-image-2.5-sunburst-2026-09-08",
   "gpt-live-1",
   "gpt-live-transcribe",
   "gpt-realtime",
   "gpt-realtime-1.5",
   "gpt-realtime-2",
   "gpt-realtime-2.1",
   "gpt-realtime-2.1-mini",
   "gpt-realtime-2025-08-28",
   "gpt-realtime-mini",
   "gpt-realtime-mini-2025-12-15",
   "gpt-realtime-translate",
   "gpt-realtime-whisper",
   "gpt-transcribe"
  ],
  "transitions": [
   {
    "label": "cl100k_base (GPT-3.5 and GPT-4 era) to o200k_base (GPT-4o and later, per tiktoken)",
    "meanRatio": 0.8813,
    "meanPct": -11.8737,
    "ci95Pct": [
     -23.964,
     -1.2041
    ],
    "pooledRatio": 0.8798,
    "minType": {
     "type": "text-ar",
     "ratio": 0.45627139744786804,
     "new": 1466,
     "old": 3213
    },
    "maxType": {
     "type": "json",
     "ratio": 1.0104938271604937,
     "new": 3274,
     "old": 3240
    },
    "perType": [
     {
      "type": "prose-en",
      "ratio": 0.9896,
      "pct": -1.0352,
      "tokensNew": 956,
      "tokensOld": 966
     },
     {
      "type": "technical-en",
      "ratio": 1.0022,
      "pct": 0.2205,
      "tokensNew": 909,
      "tokensOld": 907
     },
     {
      "type": "code-js",
      "ratio": 0.9971,
      "pct": -0.2896,
      "tokensNew": 3099,
      "tokensOld": 3108
     },
     {
      "type": "code-py",
      "ratio": 1.0066,
      "pct": 0.6606,
      "tokensNew": 2743,
      "tokensOld": 2725
     },
     {
      "type": "json",
      "ratio": 1.0105,
      "pct": 1.0494,
      "tokensNew": 3274,
      "tokensOld": 3240
     },
     {
      "type": "md-table",
      "ratio": 0.9907,
      "pct": -0.9294,
      "tokensNew": 2345,
      "tokensOld": 2367
     },
     {
      "type": "text-ru",
      "ratio": 0.6065,
      "pct": -39.35,
      "tokensNew": 1381,
      "tokensOld": 2277
     },
     {
      "type": "text-zh",
      "ratio": 0.6855,
      "pct": -31.4501,
      "tokensNew": 1456,
      "tokensOld": 2124
     },
     {
      "type": "text-ar",
      "ratio": 0.4563,
      "pct": -54.3729,
      "tokensNew": 1466,
      "tokensOld": 3213
     },
     {
      "type": "numbers-math",
      "ratio": 1,
      "pct": 0,
      "tokensNew": 5088,
      "tokensOld": 5088
     },
     {
      "type": "urls-emoji",
      "ratio": 0.9489,
      "pct": -5.1136,
      "tokensNew": 2338,
      "tokensOld": 2464
     }
    ],
    "from": "cl100k_base",
    "to": "o200k_base"
   }
  ],
  "tokensPerThousandChars": {
   "cl100k_base": {
    "prose-en": 217.6556,
    "technical-en": 190.9249,
    "code-js": 298.5152,
    "code-py": 274.9186,
    "json": 425.0058,
    "md-table": 395.9109,
    "text-ru": 474.252,
    "text-zh": 1268.6312,
    "text-ar": 726.127,
    "numbers-math": 545.1385,
    "urls-emoji": 374.1934
   },
   "o200k_base": {
    "prose-en": 216.728,
    "technical-en": 189.8227,
    "code-js": 297.5943,
    "code-py": 276.7324,
    "json": 429.5404,
    "md-table": 392.6604,
    "text-ru": 289.5334,
    "text-zh": 868.068,
    "text-ar": 327.8019,
    "numbers-math": 545.1385,
    "urls-emoji": 354.0625
   }
  },
  "note": "offline text-only counts; no message framing. A model is placed in an encoding only where tiktoken encoding_for_model returned it; the models tiktoken does not know are listed as unverified and are in no ratio."
 },
 "crossVendorProse": {
  "item": "prose-en-L",
  "words": 558,
  "chars": 2957,
  "rows": [
   {
    "vendor": "Cohere",
    "tokenizer": "command-a-plus-05-2026",
    "models": [
     "command-a-plus-05-2026"
    ],
    "tokens": 627
   },
   {
    "vendor": "Google",
    "tokenizer": "gemini-2.5-flash-lite and 9 other Gemini models with identical counts",
    "models": [
     "gemini-2.5-flash-lite",
     "gemini-2.5-flash",
     "gemini-3-flash-preview",
     "gemini-3.1-pro-preview",
     "gemini-3.1-flash-lite",
     "gemini-3.5-flash",
     "gemini-3.5-flash-lite",
     "gemini-3.6-flash",
     "gemini-3.7-flash",
     "gemini-3.8-flash"
    ],
    "tokens": 637
   },
   {
    "vendor": "OpenAI (offline tiktoken)",
    "tokenizer": "o200k_base",
    "models": [
     "see modelsMappedByTiktoken"
    ],
    "tokens": 639
   },
   {
    "vendor": "OpenAI (offline tiktoken)",
    "tokenizer": "cl100k_base",
    "models": [
     "see modelsMappedByTiktoken"
    ],
    "tokens": 644
   },
   {
    "vendor": "Cohere",
    "tokenizer": "command-a-03-2025",
    "models": [
     "command-a-03-2025"
    ],
    "tokens": 649
   },
   {
    "vendor": "Google",
    "tokenizer": "gemini-4-argon",
    "models": [
     "gemini-4-argon"
    ],
    "tokens": 664
   },
   {
    "vendor": "Anthropic",
    "tokenizer": "Claude tokenizer generation 1",
    "models": [
     "Claude Haiku 4.5",
     "Claude Opus 4.5",
     "Claude Opus 4.6",
     "Claude Sonnet 4.6"
    ],
    "tokens": 671
   },
   {
    "vendor": "Anthropic",
    "tokenizer": "Claude tokenizer generation 2",
    "models": [
     "Claude Opus 4.7"
    ],
    "tokens": 896
   },
   {
    "vendor": "Anthropic",
    "tokenizer": "Claude tokenizer generation 3",
    "models": [
     "Claude Opus 4.8",
     "Claude Fable 5",
     "Claude Sonnet 5",
     "Claude Opus 5",
     "Claude Fable 5.1",
     "Claude Opus 5.5",
     "Claude Sonnet 5.5",
     "Claude Haiku 5.5"
    ],
    "tokens": 896
   }
  ]
 }
}
