{
  "schemaVersion": 1,
  "fixtureCreatedAt": "2026-08-23",
  "fixtureSha256": "ba840c8cc94575ab3bcb3fff4dd420cf70f7ad930ab02b3dbe0c72943e876292",
  "collectedAt": "2026-08-23T08:00:42.730Z",
  "publicationStatus": "article_approved",
  "approval": {
    "status": "approved",
    "reviewedAt": "2026-08-23T16:07:13+08:00",
    "reviewedBy": "xiaofengzhang",
    "scope": "Gemini 3.7 Flash 9-row result set, article conclusions, JSON/CSV publication, and calculator disclosure changes only. The token estimation formula remains unchanged."
  },
  "collectionConfig": {
    "requestedProviders": [
      "gemini"
    ],
    "localOnly": false,
    "generationEndpointsCalled": false,
    "selectedProviderCollectionComplete": true,
    "statusSummary": {
      "openai": {
        "collected_unapproved": 0,
        "missing_api_key": 0,
        "api_error": 0,
        "not_selected": 9
      },
      "anthropic": {
        "collected_unapproved": 0,
        "missing_api_key": 0,
        "api_error": 0,
        "not_selected": 9
      },
      "gemini": {
        "collected_unapproved": 9,
        "missing_api_key": 0,
        "api_error": 0,
        "not_selected": 0
      }
    }
  },
  "methodology": {
    "siteEstimate": "ceil(CJK unified ideographs / 1.5 + all other UTF-16 code units / 4)",
    "officialCounts": "Provider token-count endpoints; plain user text only, with no system instruction or tools.",
    "warning": "Provider token counts use different message wrappers and tokenizers. Compare languages within a provider; do not treat counts across providers as identical measurements."
  },
  "providers": [
    {
      "id": "openai",
      "model": "gpt-5.6-sol",
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "id": "anthropic",
      "model": "claude-sonnet-5",
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "id": "gemini",
      "model": "gemini-3.7-flash",
      "sourceUrl": "https://ai.google.dev/api/tokens"
    }
  ],
  "rows": [
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "en",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 168,
      "utf16CodeUnits": 168,
      "words": 30,
      "siteEstimate": 42,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "en",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 168,
      "utf16CodeUnits": 168,
      "words": 30,
      "siteEstimate": 42,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "en",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 168,
      "utf16CodeUnits": 168,
      "words": 30,
      "siteEstimate": 42,
      "officialTokenCount": 33,
      "signedError": 9,
      "absolutePercentError": 27.27272727272727,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    },
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "zh",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 54,
      "utf16CodeUnits": 54,
      "words": 31,
      "siteEstimate": 35,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "zh",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 54,
      "utf16CodeUnits": 54,
      "words": 31,
      "siteEstimate": 35,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "zh",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 54,
      "utf16CodeUnits": 54,
      "words": 31,
      "siteEstimate": 35,
      "officialTokenCount": 32,
      "signedError": 3,
      "absolutePercentError": 9.375,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    },
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "ja",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 86,
      "utf16CodeUnits": 86,
      "words": 44,
      "siteEstimate": 32,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "ja",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 86,
      "utf16CodeUnits": 86,
      "words": 44,
      "siteEstimate": 32,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "support-triage",
      "topic": "Customer-support triage",
      "language": "ja",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 86,
      "utf16CodeUnits": 86,
      "words": 44,
      "siteEstimate": 32,
      "officialTokenCount": 43,
      "signedError": -11,
      "absolutePercentError": 25.581395348837212,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "en",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 183,
      "utf16CodeUnits": 183,
      "words": 30,
      "siteEstimate": 46,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "en",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 183,
      "utf16CodeUnits": 183,
      "words": 30,
      "siteEstimate": 46,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "en",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 183,
      "utf16CodeUnits": 183,
      "words": 30,
      "siteEstimate": 46,
      "officialTokenCount": 47,
      "signedError": -1,
      "absolutePercentError": 2.127659574468085,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "zh",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 77,
      "utf16CodeUnits": 77,
      "words": 38,
      "siteEstimate": 43,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "zh",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 77,
      "utf16CodeUnits": 77,
      "words": 38,
      "siteEstimate": 43,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "zh",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 77,
      "utf16CodeUnits": 77,
      "words": 38,
      "siteEstimate": 43,
      "officialTokenCount": 47,
      "signedError": -4,
      "absolutePercentError": 8.51063829787234,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "ja",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 106,
      "utf16CodeUnits": 106,
      "words": 52,
      "siteEstimate": 41,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "ja",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 106,
      "utf16CodeUnits": 106,
      "words": 52,
      "siteEstimate": 41,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "api-budget",
      "topic": "API budget calculation",
      "language": "ja",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 106,
      "utf16CodeUnits": 106,
      "words": 52,
      "siteEstimate": 41,
      "officialTokenCount": 54,
      "signedError": -13,
      "absolutePercentError": 24.074074074074073,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "en",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 151,
      "utf16CodeUnits": 151,
      "words": 26,
      "siteEstimate": 38,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "en",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 151,
      "utf16CodeUnits": 151,
      "words": 26,
      "siteEstimate": 38,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "en",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 151,
      "utf16CodeUnits": 151,
      "words": 26,
      "siteEstimate": 38,
      "officialTokenCount": 34,
      "signedError": 4,
      "absolutePercentError": 11.76470588235294,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "zh",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 55,
      "utf16CodeUnits": 55,
      "words": 29,
      "siteEstimate": 30,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "zh",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 55,
      "utf16CodeUnits": 55,
      "words": 29,
      "siteEstimate": 30,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "zh",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 55,
      "utf16CodeUnits": 55,
      "words": 29,
      "siteEstimate": 30,
      "officialTokenCount": 36,
      "signedError": -6,
      "absolutePercentError": 16.666666666666664,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "ja",
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "unicodeCharacters": 77,
      "utf16CodeUnits": 77,
      "words": 36,
      "siteEstimate": 32,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://developers.openai.com/api/reference/cli/resources/responses/subresources/input_tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "ja",
      "provider": "anthropic",
      "model": "claude-sonnet-5",
      "unicodeCharacters": 77,
      "utf16CodeUnits": 77,
      "words": 36,
      "siteEstimate": 32,
      "officialTokenCount": null,
      "signedError": null,
      "absolutePercentError": null,
      "collectionStatus": "not_selected",
      "error": null,
      "sourceUrl": "https://platform.claude.com/docs/en/api/messages/count_tokens"
    },
    {
      "scenarioId": "invoice-extraction",
      "topic": "Structured invoice extraction",
      "language": "ja",
      "provider": "gemini",
      "model": "gemini-3.7-flash",
      "unicodeCharacters": 77,
      "utf16CodeUnits": 77,
      "words": 36,
      "siteEstimate": 32,
      "officialTokenCount": 37,
      "signedError": -5,
      "absolutePercentError": 13.513513513513514,
      "collectionStatus": "collected_unapproved",
      "error": null,
      "sourceUrl": "https://ai.google.dev/api/tokens"
    }
  ]
}
