0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI利用・課金明細の共通スキーマ ACUS v0.1 仕様書案 — FOCUS 1.4互換拡張で、API直接利用もCopilotも同じ表に載せる

0
Last updated at Posted at 2026-09-10

この記事について

各種AIの利用明細・課金明細は、プロバイダーごとに単位も粒度も形式も違います。Anthropic/OpenAIの直接API、AWS Bedrock/Google Vertex AI/Azure AI Foundry経由、GitHub Copilotのクレジット制、シートライセンス——これらを「同じ表」に載せて比較・最適化するための共通スキーマ案を、仕様書の体裁で書き起こしました。

  • 名称:ACUS(AI Cost & Usage Schema)v0.1
  • 位置づけ:FinOps Foundation の FOCUS 1.4 を骨格に、AI固有の列を FOCUS のカスタム列規約(x_ 接頭辞)で追加した「橋渡し仕様」。FOCUS 1.5 でAI関連の属性が批准されたら、その意味と粒度に合わせて変換する前提
  • 記法:要求水準は 必須/条件付き/推奨/任意 の4段階。一次資料で確認できていない箇所には を付す
  • 基準日:2026年9月10日

本稿は筆者個人の仕様書案であり、FinOps Foundation・Linux Foundation・各プロバイダーの公式仕様ではありません。列名・列挙値は議論のたたき台です。FOCUS 列の存在・型・NULL可否・条件付き必須は FOCUS 1.4 の定義を優先し、本稿の要求水準はそれを緩和しません。

1. 背景

1.1 2026年9月時点の標準化状況

取り組み 状態 本仕様との関係
FOCUS 1.4(FinOps Foundation) 2026年6月4日批准。Invoice Detail/Billing Period の2データセットと47列を追加。1.3で非推奨となった ProviderNamePublisherName を削除し、ServiceProviderNameHostProviderNameInvoiceIssuerName に役割を分離 骨格として採用
FOCUS 1.5(策定中・未批准) 作業ドラフトでは、モデル識別(ModelDeveloper/ModelFamily/ModelId/ModelVersion)を新列ではなく SkuPriceDetails のプロパティとして取り込み済み(2026年7月20日マージ)。トークン種別(Input/Output/CacheRead/CacheWrite)は提案中。価格データセットは「SKU Price」の名称で策定中 移行先(14章)
Tokenomics Foundation(Linux Foundation) 2026年6月3日に設立意向、8月4日に正式発足。FinOps Foundation と協働し、FOCUS へのトークン費用テレメトリ組込みをロードマップに掲げる。定義案・運営モデル案は公開済みだが、ACUS を置換する独立の課金明細標準の公開・批准は本稿執筆時点で確認できず 動向監視
OpenTelemetry GenAI semantic conventions gen_ai.client.token.usagegen_ai.token.type=input/output)等。使用トークンと課金対象トークンの両方が得られる場合は課金対象を報告することが必須。安定度は Development 計測値・帰属の取込元
GitHub Copilot 従量課金化 2026年6月1日から GitHub AI Credits 制(1 AI Credit=0.01 USD)。入力・出力・キャッシュトークン×モデル別公示単価で算定。年契約の Pro/Pro+ は満了まで旧PRU制を継続可。コード補完等はクレジットを消費しない。コードレビューは AI Credits に加えて Actions 分も消費 クレジット・シート・旧単位の正規化対象
Anthropic Usage & Cost Admin API/OpenAI Usage・Costs API 組織単位の使用量・費用を取得可能。両社とも Usage と Cost は集計軸が異なり、単純な1対1結合はできない 主要な取込元(11章)
AWS/Azure/Google Cloud の FOCUS 対応 3社とも FOCUS 1.2 対応のエクスポートを提供(Google Cloud の専用エクスポートは Preview 表記)。1.4 への正規化は取込側の作業 クラウド経由分の取込元

1.2 なぜ明細を並べられないのか

  1. 課金単位の混在:トークン(入力/出力/キャッシュ読/キャッシュ書/推論)、リクエスト(PRU)、シート、クレジット、Actions分、プロビジョンド時間
  2. 料金差要因の多さ:バッチ割、キャッシュ読み書きの単価差(保持時間別の差を含む)、長文脈サーチャージ、優先処理
  3. トークナイザ差:同一テキストでもモデル系列によりトークン数が異なるため、per-token 単価の横並び比較は成立しない
  4. 経路差:同一モデルでも直接/クラウド経由/Copilot経由で単価・粒度が異なる
  5. 帰属欠落:請求書には「誰が・どのワークフローで」が載らない
  6. 単価表の未分離:定価が明細行に埋め込まれ、契約比較・コミット最適化に使えない

2. 用語

用語 定義
サービス提供者(Service Provider) サービスを販売・提供する主体。FOCUS の ServiceProviderName(例:Anthropic、GitHub、AWS)
ホスト提供者(Host Provider) リソースを実際に稼働させる基盤の提供者。FOCUS の HostProviderName(Bedrock 経由の Claude なら AWS)
請求書発行者(Invoice Issuer) 請求書を発行する主体。FOCUS の InvoiceIssuerName(販売代理店経由の場合は代理店)
モデル開発元(Model Developer) モデルを開発した主体。上記のいずれとも一致しない場合がある。ACUS の x_ModelProvider
経路(Access Path) モデルに到達する契約上・技術上の経路。ACUS の x_AccessPath
課金対象トークン(Billable Tokens) サービス提供者が課金の根拠として計上したトークン数。FOCUS の ConsumedQuantityConsumedUnitTokens)で表す
計測トークン(Measured Tokens) 利用側がプロバイダー応答に依らず独自に推計したトークン数(トークナイザ推計等)。ACUS の x_MeasuredTokens
枠(Entitlement) プラン・シート・月次クレジット等、事前に付与される消費可能量
帰属(Attribution) 費用を部署・プロジェクト・利用者・ワークフローに割り当てること

3. 適用範囲

対象

  • LLM/埋め込み/画像・音声モデルの推論課金(トークン・リクエスト・秒・文字数・枚数)
  • ファインチューニング、バッチ推論、プロビジョンドスループット
  • エージェント製品のクレジット・シート課金(GitHub Copilot 等)
  • クラウド経由のモデル利用(Bedrock/Vertex AI/Foundry)
  • 付随課金(Web検索ツール呼び出し、ファイル保存、オーケストレーション手数料、コードレビューに伴う Actions 分)

対象外

  • 自前ホスティングのGPU原価(FOCUS の Compute 行として別途扱う)
  • 品質・精度の評価指標(コストのみ)
  • 決済・認可のシーケンス(別稿「エージェント間 費用見積・同意・請求・照合シーケンス AECS」で扱う)

4. 設計原則

  • P1 FOCUS優先:FOCUS 1.4 に存在する列は再定義せず、その定義・要求水準のまま使う
  • P2 拡張は x_ 接頭辞:FOCUS のカスタム列規約に従い、将来の正式列と衝突しない
  • P3 三分離:使用量(A)・単価表(B)・枠(C)を別データセットにする
  • P4 一行一単位:1行=1課金期間×1 SKU価格×1経路×1トークン種別×1帰属。同一リクエストの入力と出力は別行にし、リクエスト数は1行にだけ記録する(R17)
  • P5 課金対象が正ConsumedQuantity は課金の根拠となった量を格納し、利用側の推計値は x_MeasuredTokens に分ける
  • P6 換算しない:PRU 等の旧単位はトークンに換算せず原単位で保持する
  • P7 原文保持:元データに識別子があれば必ず残す。無い場合は再現可能な取込識別子を生成し、元IDでないことを区別する(R14)
  • P8 加算範囲の明示:合計に含める行と内訳として持つ行を x_LineRole で区別し、二重計上を防ぐ(R16)

5. データセット構成

  • A: AI Cost & Usage — 明細行。FOCUS Cost and Usage データセットの拡張
  • B: Price Sheet — 定価表。FOCUS 1.5 で策定中の SKU Price データセットの先行実装
  • C: Entitlement — シート・クレジット・月次枠を一括管理する独自データセット。FOCUS には Contract Commitment や購入・使用の区別があるが、付与量・消費量・残量・リセット規則を一つにまとめた表はないため補う

6. データセットA:AI Cost & Usage

6.1 FOCUS 由来の列(抜粋)

FOCUS 1.4 の Cost and Usage 列はすべて持ち込み可。ACUS として使い方を固定するものを抜粋する。表の要求水準は「ACUS として値を埋めることを求める度合い」であり、列の存在・型・NULL可否・条件付き必須は FOCUS 1.4 の定義が優先する。

要求水準 ACUS での使い方
BillingAccountId/BillingAccountName 必須 String 請求アカウント(組織・請求先)
SubAccountId/SubAccountName 条件付き String プロジェクト/ワークスペース/Enterprise org。該当する副アカウントがある行では非NULL
BillingCurrency 必須 String 請求通貨(JPY/USD)
BillingPeriodStart/End 必須 DateTime 請求期間
ChargePeriodStart/End 必須 DateTime 課金期間(日次または時間次)
ChargeCategory 必須 String Usage/Purchase/Tax/Credit/Adjustment。Credit は請求元が別途付与した経済的インセンティブ等に限る(R5)
ChargeClass 条件付き String 訂正行は Correction
ChargeFrequency 必須 String One-Time/Recurring/Usage-Based
ChargeDescription 必須 String 請求元の説明文・明細項目名(原文)
ServiceProviderName 必須 String サービス提供者
HostProviderName 必須 String ホスト提供者。直接APIでは提供者と同じ、クラウド経由ではクラウド事業者
InvoiceIssuerName 必須 String 請求書発行者
InvoiceId 条件付き String 請求書番号(FOCUS 1.2〜)。請求書が発行される行では非NULL
ServiceCategory 必須 String 原則 AI and Machine Learning。Actions 分は Developer Tools
ServiceName 必須 String 例:Claude API、Copilot、Amazon Bedrock
SkuId/SkuPriceId 条件付き String 単価表(B)への結合キー。ServiceProviderName と組で一意(7章)
SkuPriceDetails 条件付き Key-Value 価格属性。FOCUS 1.5 のモデル識別プロパティの受け皿(14章)
PricingCategory 条件付き String Standard/Dynamic/Committed/Other
PricingUnit 条件付き String FOCUS UnitFormat に従う。単位数量を含められる(例:1000000 Tokens1000 CharactersSeatMinute
PricingQuantity 条件付き Decimal PricingUnit での数量。ConsumedQuantity を単位数量で割った値
ConsumedUnit/ConsumedQuantity 条件付き String/Decimal 消費単位と消費量。トークン課金では Tokens と課金対象トークン数
ListUnitPrice/ListCost 必須(Cost) Decimal 定価。ListUnitPricePricingUnit 1単位当たり・BillingCurrency 建て
ContractedUnitPrice/ContractedCost 必須(Cost) Decimal 契約価
BilledCost 必須 Decimal 請求額
EffectiveCost 必須 Decimal 実効額(償却・配賦後)
PricingCurrency/PricingCurrencyListUnitPrice 等 条件付き String/Decimal 単価通貨が請求通貨と異なる場合に使う(R11)
CommitmentDiscountId 他 条件付き String コミット割引(Provisioned Throughput 等)
ResourceId/ResourceName/ResourceType 条件付き String APIキー識別子・デプロイメント・ワークスペース等
RegionId/RegionName 条件付き String 請求・利用上のリージョン識別。保管・処理・バックアップ先の契約保証は別途確認する
Tags 条件付き Key-Value 帰属(部署・プロジェクト・費目)。FOCUS では条件付き列であり、ACUS の帰属率KPI(K9)はこの列の付与状況を測る

6.2 拡張列(x_

要求水準 説明
x_SchemaVersion 必須 String acus-0.1 固定
x_LineRole 必須 String billed(請求集計に含める行)/breakdown(内訳。集計に含めない)/allocation(配賦行)
x_ModelProvider 条件付き(モデル行) String モデル開発元(anthropicopenaigooglemetamistral 等、小文字)。特定モデルの使用量またはモデル別課金に対応する行で必須
x_ModelId 条件付き(モデル行) String 正規化モデルID。形式 provider/model-name(例:anthropic/claude-opus-5
x_ModelIdRaw 条件付き(モデル行) String 経路固有のモデル識別子(Bedrock のモデルID等)を原文で保持
x_ModelVersion 任意 String 日付版・スナップショット識別子。不明なら NULL
x_AccessPath 必須 String 経路。6.3 の列挙値
x_GatewayId 条件付き(gateway 経路) String 中継ゲートウェイの識別子
x_UsageType 必須 String 用途種別。6.3 の列挙値
x_TokenType 条件付き(トークン課金行) String トークン種別。6.3 の列挙値
x_MeasuredTokens 任意 Integer 利用側の独自推計トークン数。プロバイダー応答の使用量は本列ではなく ConsumedQuantity に入れる
x_RequestCount 条件付き Integer リクエスト数。同一リクエスト群の1行(既定は output 行、非トークン行は当該行)にだけ格納し、他行は NULL(R17)
x_RequestUnit 条件付き(x_RequestCount あり) String model_calluser_requesttask。比較は同じ単位どうしに限る
x_PricingModifier 推奨 String 単価修飾子。6.3 の列挙値。複数条件は SkuPriceIdSkuPriceDetails で表す
x_ContextTier 任意 String 文脈長ティア。提供者の区分を原値で保持し、独自区分に正規化する場合は対応表を持つ
x_LegacyUnit 条件付き String 旧単位(PRU 等)
x_LegacyQuantity 条件付き Decimal 旧単位での数量(乗数適用後)
x_EntitlementId 条件付き String 消費元の枠(データセットC)
x_AllocationMethod 条件付き(配賦行) String evenusage_weightedrequest_weighted
x_AttributionSource 推奨 String 帰属の根拠。6.3 の列挙値
x_AttributionConfidence 任意 String exactallocatedestimated
x_PrincipalId 任意 String 利用者識別子(仮名化必須)
x_WorkflowId 任意 String エージェント・ワークフロー識別子(AECS の task_id と結合)
x_ConsentId/x_ReceiptId 条件付き(AECS 経由) String AECS の同意ID・受領証ID
x_ProviderAgentId 条件付き(AECS 経由) String AECS の提供エージェント識別子
x_SettlementRail/x_SettlementRef 条件付き(AECS 経由) String 決済レールと決済参照
x_ParentReceiptId 条件付き(内訳行) String 親受領証。内訳行は x_LineRolebreakdown
x_FxRate/x_FxRateDate 条件付き(通貨換算時) Decimal/Date 換算レートと基準日
x_SourceRecordId 条件付き String 取込元の行ID。元データに識別子がある場合は必須
x_IngestRecordId 条件付き String 元データに行IDがない場合に生成する再現可能な取込識別子(取込元・期間・集計キーから決定的に生成)

6.3 列挙値

x_AccessPath

意味
direct モデル開発元の直接API
aws_bedrock Amazon Bedrock 経由
google_vertex Google Vertex AI 経由
azure_foundry Azure AI Foundry(旧 Azure OpenAI)経由
github_copilot GitHub Copilot 経由
openrouter OpenRouter 等のアグリゲーター経由
gateway 自組織ゲートウェイ経由(x_GatewayId 必須)
other その他

x_UsageType

意味
inference 通常推論
batch_inference バッチ推論
embedding 埋め込み
fine_tuning ファインチューニング(学習)
tool_call プロバイダー側ツール呼び出し課金(Web検索等)
storage ファイル・キャッシュ保存
provisioned プロビジョンド容量(時間課金)
seat シートライセンス
credit 請求元が別途付与したクレジット(ChargeCategory=Credit の行)
compute_minutes 付随する計算時間(Actions 分等)
fee オーケストレーション手数料等、モデル使用量に紐づかない手数料

x_TokenType

意味
input 入力(キャッシュ非該当)
output 出力
cache_read キャッシュ読み取り入力
cache_write キャッシュ書き込み入力。保持時間別に単価が異なる場合は SkuPriceId を分ける
reasoning 推論(思考)トークン。分離課金の体系でのみ使う。出力に含めて課金される体系では output に含め、本種別の行は作らない(R15)
audio_inputaudio_output 音声
image_input 画像入力
embedding_input 埋め込み入力
other その他

x_PricingModifier

意味
standard 標準
batch バッチ割引適用
priority 優先処理割増
long_context 長文脈サーチャージ適用(x_ContextTier 併用)
flex 低優先・遅延許容の割引
provisioned プロビジョンド単価

x_AttributionSource

意味
invoice 請求書・請求明細に記載
provider_api プロバイダーの Usage/Cost API
gateway 自組織ゲートウェイのログ
otel OpenTelemetry で運ばれた値(プロバイダー応答の使用量か独自推計かは列で区別する)
manual 手作業配賦

7. データセットB:Price Sheet

要求水準 説明
x_SchemaVersion 必須 String acus-0.2
ServiceProviderName 必須(キー) String サービス提供者。価格IDの名前空間を兼ねる
ServiceName 必須 String サービス名
SkuId 必須 String SKU
SkuPriceId 必須(キー) String 価格ID(提供者の原値を書き換えない)
x_EffectiveFrom 必須(キー) DateTime 価格の有効開始。改定ごとにスナップショット行を追加
x_EffectiveTo 任意 DateTime 有効終了
x_ModelProvider/x_ModelId 条件付き String モデル
x_AccessPath 必須 String 経路
x_UsageType 必須 String 用途
x_TokenType 条件付き String トークン種別。キャッシュ書き込みの保持時間別価格は別 SkuPriceId
x_PricingModifier 推奨 String 修飾子
x_ContextTier 任意 String 文脈長ティア
PricingUnit 必須 String FOCUS UnitFormat 準拠(例:1000000 Tokens
ListUnitPrice 必須 Decimal PricingUnit 1単位当たりの定価
PricingCurrency 必須 String 単価通貨
SkuPriceDetails 推奨 Key-Value 価格属性(モデル識別プロパティ等)
x_SourceUrl 推奨 String 価格表の出典URL
x_RetrievedAt 必須 DateTime 取得日時
  • A と B の結合キーは ServiceProviderNameSkuPriceId+(課金期間に有効な x_EffectiveFrom
  • ListUnitPrice は公開定価。個別契約の値引きは A の ContractedUnitPrice 側で表す

Price Sheet を明細から分離する理由は、契約比較・コミット最適化のときに「そのときの定価」を再現できるようにするためです。FOCUS 1.5 の SKU Price データセットが批准されたら、キー・履歴・単位・通貨を合わせて置換します。

8. データセットC:Entitlement

要求水準 説明
x_SchemaVersion 必須 String acus-0.2
x_EntitlementId 必須(主キー) String 枠ID
ServiceProviderName/ServiceName 必須 String 提供者・サービス
BillingAccountId/SubAccountId 必須/条件付き String 帰属アカウント
x_PlanName 必須 String プラン名(Copilot Business 等)
x_EntitlementUnit 必須 String SeatCreditRequestTokenMinute
x_UnitValue/x_UnitValueCurrency 条件付き(Credit 等) Decimal/String 1単位の通貨換算値(例:GitHub AI Credit は 0.01 USD)
x_IncludedQuantity 必須 Decimal 付与量(枠の単位)
x_ConsumedQuantity 必須 Decimal 消費量(枠の単位)
x_RemainingQuantity 推奨 Decimal 残量
x_OverageAllowed 必須 Boolean 超過利用の可否
x_OverageUnitPrice 条件付き Decimal 超過単価
x_ResetPolicy 必須 String リセット規則(例:monthly_utc_1stno_rollover
x_PeriodStart/x_PeriodEnd 必須 DateTime 枠の適用期間
BilledCost 必須 Decimal 枠の対価(月額等)
BillingCurrency 必須 String 通貨

9. 正規化ルール

ID ルール
R1 行の粒度は P4 に従う。入力と出力は単価が異なるため必ず別行にする
R2 ConsumedQuantity には課金の根拠となった量(プロバイダー応答・請求API・請求書の値)を入れ、利用側の独自推計は x_MeasuredTokens に入れる。両者の乖離は KPI(12章 K8)で監視し、行の値は書き換えない
R3 シート・サブスクリプションは ChargeCategory=Purchase、ChargeFrequency=Recurring、PricingUnitSeat の行で計上する
R4 シートの対価を利用者・部署に配賦する場合は x_LineRoleallocationChargeCategory=Usage、BilledCost=0、EffectiveCost=配賦額の行を追加し、購入行の EffectiveCost を 0 にする。x_AllocationMethod を明示し、配賦行の EffectiveCost 合計は購入行の BilledCost に一致させる
R5 枠内消費(GitHub AI Credits 等)は Usage 行に ListCost=トークン×定価、BilledCost=0 で計上し、x_EntitlementId で C に紐づける。枠超過分は Usage 行の BilledCost に計上する。ChargeCategory=Credit の行は、請求元が別途付与したクレジット(プロモーション等)が請求明細に現れる場合に限り、一度だけ計上する。枠による控除を Credit 行として重ねて計上しない
R6 PRU 等の旧単位はトークンに換算しない。PricingUnitRequestx_LegacyUnitx_LegacyQuantity に原単位を保持する
R7 同一モデルの異経路は x_ModelId を共通にし、x_AccessPath で分ける。x_ModelIdRaw に経路固有名を残す
R8 キャッシュは修飾子ではなく種別として扱う(x_TokenType=cache_read/cache_write)。キャッシュ書き込みの保持時間別価格(例:5分/1時間)は SkuPriceId を分け、同一価格IDに合算しない
R9 バッチ・優先・Flex は x_PricingModifier で表し、ListUnitPrice は修飾後単価とする。標準単価との差は B を参照して算出する
R10 長文脈サーチャージは x_PricingModifier=long_context と x_ContextTier で表す。1リクエスト全体にティアが適用される課金体系では、そのリクエストの全トークン行に同一ティアを付す
R11 ListUnitPriceListCost 等は BillingCurrency 建て。単価通貨が異なる場合は PricingCurrencyPricingCurrencyListUnitPrice 等に原値を保持し、換算した x_FxRatex_FxRateDate を必須とする
R12 PricingUnit は FOCUS UnitFormat に従い、単位数量を含められる(1000000 Tokens)。PricingQuantityConsumedQuantity÷単位数量、ListCostListUnitPrice×PricingQuantity が成り立つこと
R13 クラウド経由分は AWS/Azure/GCP の FOCUS エクスポート行を取り込み、取込時に FOCUS 1.4 へ正規化する(廃止列の役割分離、条件付き必須列の補完)。補完できない行は 1.4 適合済みとしない。x_ 列は SkuIdSkuPriceDetailsChargeDescriptionResourceId から対応辞書で派生し、未知の SKU は x_TokenTypeother で原文保持する(11章)
R14 元データに行IDがあれば x_SourceRecordId に原文保持する(必須)。ない場合は x_IngestRecordId を取込元・取得期間・集計キーから決定的に生成し、元IDではないことを区別する
R15 訂正は ChargeClass=Correction の行として追加し、元行を削除しない。推論(思考)トークンが出力に含めて課金される体系では output に含め、reasoning 行は作らない。分離課金の体系のみ reasoning 行を作る
R16 集計に含める行は x_LineRolebilled のみ。内訳行(breakdown)は BilledCostEffectiveCost を NULL とし、親行の x_ParentReceiptId 等で関係を示す。親費用が子費用を含む場合に子を別行展開しても合計が増えないようにする
R17 x_RequestCount は同一リクエスト群の1行にだけ格納する(既定は output 行。非トークン行はその行)。他行は NULL。x_RequestUnit を併記し、単位の異なる件数を合算しない
R18 Copilot コードレビュー等に付随する Actions 分は ServiceCategory=Developer Tools、x_UsageType=compute_minutes とし、x_WorkflowId で AI 利用行と結ぶ

10. 課金モデル別の行の作り方

以下の例は主要列のみの抜粋であり、そのままでは ACUS の適合性検査用の完全レコードではない。金額はすべて説明用の架空値(単価は 2026年9月時点の公開価格表を参考にしたが、例示の正確さを保証しない)。

10.1 トークン従量(直接API)

1リクエスト群(日次集計・980リクエスト)が input/cache_read/output の3行になる例。PricingUnit に単位数量を含め、ListCostListUnitPrice×PricingQuantity が成り立つ形にする。

[
  {"x_SchemaVersion":"acus-0.2","x_LineRole":"billed",
   "BillingAccountId":"org-1","SubAccountId":"ws-info-policy","BillingCurrency":"USD",
   "BillingPeriodStart":"2026-09-01T00:00:00Z","BillingPeriodEnd":"2026-10-01T00:00:00Z",
   "ChargePeriodStart":"2026-09-01T00:00:00Z","ChargePeriodEnd":"2026-09-02T00:00:00Z",
   "ChargeCategory":"Usage","ChargeFrequency":"Usage-Based","ChargeDescription":"Claude Opus 5 input tokens",
   "ServiceProviderName":"Anthropic","HostProviderName":"Anthropic","InvoiceIssuerName":"Anthropic",
   "ServiceCategory":"AI and Machine Learning","ServiceName":"Claude API",
   "SkuPriceId":"opus-5-input-std","PricingCategory":"Standard",
   "x_ModelProvider":"anthropic","x_ModelId":"anthropic/claude-opus-5","x_AccessPath":"direct",
   "x_UsageType":"inference","x_TokenType":"input","x_PricingModifier":"standard",
   "ConsumedUnit":"Tokens","ConsumedQuantity":1200000,"PricingUnit":"1000000 Tokens","PricingQuantity":1.2,
   "ListUnitPrice":5.00,"ListCost":6.00,"ContractedUnitPrice":5.00,"ContractedCost":6.00,"BilledCost":6.00,"EffectiveCost":6.00,
   "x_RequestCount":null,"x_AttributionSource":"provider_api","x_SourceRecordId":"usage-2026-09-01-opus-input",
   "Tags":{"dept":"info-policy","project":"kokuho-report"}},
  {"x_SchemaVersion":"acus-0.2","x_LineRole":"billed",
   "BillingAccountId":"org-1","SubAccountId":"ws-info-policy","BillingCurrency":"USD",
   "BillingPeriodStart":"2026-09-01T00:00:00Z","BillingPeriodEnd":"2026-10-01T00:00:00Z",
   "ChargePeriodStart":"2026-09-01T00:00:00Z","ChargePeriodEnd":"2026-09-02T00:00:00Z",
   "ChargeCategory":"Usage","ChargeFrequency":"Usage-Based","ChargeDescription":"Claude Opus 5 cache read input tokens",
   "ServiceProviderName":"Anthropic","HostProviderName":"Anthropic","InvoiceIssuerName":"Anthropic",
   "ServiceCategory":"AI and Machine Learning","ServiceName":"Claude API",
   "SkuPriceId":"opus-5-cache-read-std","PricingCategory":"Standard",
   "x_ModelProvider":"anthropic","x_ModelId":"anthropic/claude-opus-5","x_AccessPath":"direct",
   "x_UsageType":"inference","x_TokenType":"cache_read","x_PricingModifier":"standard",
   "ConsumedUnit":"Tokens","ConsumedQuantity":4800000,"PricingUnit":"1000000 Tokens","PricingQuantity":4.8,
   "ListUnitPrice":0.50,"ListCost":2.40,"ContractedUnitPrice":0.50,"ContractedCost":2.40,"BilledCost":2.40,"EffectiveCost":2.40,
   "x_RequestCount":null,"x_AttributionSource":"provider_api","x_SourceRecordId":"usage-2026-09-01-opus-cache-read",
   "Tags":{"dept":"info-policy","project":"kokuho-report"}},
  {"x_SchemaVersion":"acus-0.2","x_LineRole":"billed",
   "BillingAccountId":"org-1","SubAccountId":"ws-info-policy","BillingCurrency":"USD",
   "BillingPeriodStart":"2026-09-01T00:00:00Z","BillingPeriodEnd":"2026-10-01T00:00:00Z",
   "ChargePeriodStart":"2026-09-01T00:00:00Z","ChargePeriodEnd":"2026-09-02T00:00:00Z",
   "ChargeCategory":"Usage","ChargeFrequency":"Usage-Based","ChargeDescription":"Claude Opus 5 output tokens",
   "ServiceProviderName":"Anthropic","HostProviderName":"Anthropic","InvoiceIssuerName":"Anthropic",
   "ServiceCategory":"AI and Machine Learning","ServiceName":"Claude API",
   "SkuPriceId":"opus-5-output-std","PricingCategory":"Standard",
   "x_ModelProvider":"anthropic","x_ModelId":"anthropic/claude-opus-5","x_AccessPath":"direct",
   "x_UsageType":"inference","x_TokenType":"output","x_PricingModifier":"standard",
   "ConsumedUnit":"Tokens","ConsumedQuantity":310000,"PricingUnit":"1000000 Tokens","PricingQuantity":0.31,
   "ListUnitPrice":25.00,"ListCost":7.75,"ContractedUnitPrice":25.00,"ContractedCost":7.75,"BilledCost":7.75,"EffectiveCost":7.75,
   "x_RequestCount":980,"x_RequestUnit":"model_call","x_AttributionSource":"provider_api","x_SourceRecordId":"usage-2026-09-01-opus-output",
   "Tags":{"dept":"info-policy","project":"kokuho-report"}}
]

3行の ListCost 合計は 16.15。x_RequestCountoutput 行にだけ入れている(R17)。

10.2 クレジット制(GitHub Copilot Business、2026年6月以降)

シート料金に月次の AI Credits 枠が含まれ、枠内の消費は請求額ゼロ、超過分に請求が立つ。枠の単位は AI Credit(1 Credit=0.01 USD)であり、金額と混同しない。この例ではシート料金を利用行へ配賦しない(EffectiveCostBilledCost)。

ChargeCategory x_UsageType x_TokenType ListCost BilledCost EffectiveCost x_EntitlementId
1 Purchase seat 760.00 760.00 760.00
2 Usage inference input 12.00 0.00 0.00 ent-copilot-2026-09
3 Usage inference output 18.00 0.00 0.00 ent-copilot-2026-09
4 Usage inference output 5.00 5.00 5.00 ent-copilot-2026-09
5 Usage compute_minutes 0.80 0.80 0.80 (Actions 枠は別途 C に登録)
  • 行1:40シート×19.00 USD(架空値)。PricingUnitSeatPricingQuantity=40
  • 行2〜3:枠内消費(合計 30.00 USD=3,000 Credits)。BilledCost=0
  • 行4:枠超過分(5.00 USD=500 Credits)。BilledCost=5.00
  • 行5:コードレビューに伴う Actions 分(ServiceCategory=Developer Tools)
  • BilledCost 合計は 765.80、ListCost 合計は 795.80。Credit 行は作らない(R5)

データセットC には次を登録する:x_PlanName=Copilot Business、x_EntitlementUnit=Credit、x_UnitValue=0.01、x_UnitValueCurrency=USD、x_IncludedQuantity=3000、x_ConsumedQuantity=3500、x_OverageAllowed=true、x_ResetPolicymonthly_utc_1st

10.3 シートライセンスの配賦

x_LineRole ChargeCategory ChargeFrequency PricingUnit PricingQuantity BilledCost EffectiveCost x_AllocationMethod
1 billed Purchase Recurring Seat 40 760.00 0.00
2 allocation Usage Usage-Based Seat 1 0.00 19.00 even
allocation

行1が請求書上の行、行2以降が利用者ごとの配賦行(40行、R4)。配賦行の EffectiveCost 合計(760.00)が行1の BilledCost に一致することを整合性チェックとする。

10.4 旧単位(PRU)

年契約で PRU 制が残る場合は PricingUnitRequestx_LegacyUnit=PRU、x_LegacyQuantity=乗数適用後の PRU 数とし、トークン行は作らない。x_RequestUnituser_request を付け、model_call 単位の行とは K1 で直接比較しない。

11. ソース別マッピング

各取込元から ACUS の主要列をどう埋めるかの対応。フィールド名は基準日時点の公式ドキュメントで確認したもの(※印は未確認)。集計条件により属性が NULL になる場合があり、欠けたモデル・トークン情報を推測で補わない。

11.1 Anthropic Usage & Cost Admin API

実フィールド ACUS 列 注意
uncached_input_tokens x_TokenType=input、ConsumedQuantity
cache_creation.ephemeral_5m_input_tokensephemeral_1h_input_tokens x_TokenType=cache_write、ConsumedQuantity 保持時間別に SkuPriceId を分ける(R8)
cache_read_input_tokens x_TokenType=cache_read
output_tokens x_TokenType=output 推論の包含関係は R15
model x_ModelIdRaw → 対応辞書で x_ModelId
workspace_id SubAccountId
api_key_id ResourceIdResourceTypeAPI Key 秘密鍵文字列ではなく識別子
service_tier x_PricingModifier 原値を SkuPriceDetails に保持
context_window x_ContextTier 原値(例:0-200k200k-1M)を保持
Cost report の amountcurrencydescription BilledCostBillingCurrencyChargeDescription amount はセント単位の小数文字列として説明されているため、USD 額へ直すときは 100 で除する

結合規則:Usage report と Cost report は集計軸が異なる(Cost は日次・descriptionworkspace_id 軸)。両方で共通に得られる粒度(日付×ワークスペース×モデル×トークン種別)へ揃えてから結合し、Cost 側にない細粒度(APIキー等)への費用配賦は x_AllocationMethod で区別する。日付+モデルだけでの結合は多対多になるため禁止。

11.2 OpenAI Usage API/Costs API

実フィールド ACUS 列 注意
input_uncached_tokens x_TokenType=input input_tokens はキャッシュ分を含む総数なので、非キャッシュ入力にはこちらを使う。返される対象・版を記録する
input_cached_tokens x_TokenType=cache_read
input_cache_write_tokens x_TokenType=cache_write
output_tokens x_TokenType=output
num_model_requests x_RequestCountx_RequestUnitmodel_call R17 に従い1行にだけ格納
project_iduser_idapi_key_id SubAccountIdx_PrincipalId(仮名化)/ResourceId
modelbatchservice_tier x_ModelIdRawx_PricingModifier batch は Boolean。service_tier と一つの文字列に無条件に上書きしない
Costs の amount.valueamount.currencyline_itemproject_id BilledCostBillingCurrencyChargeDescriptionSubAccountId 通貨金額として取り込む(セント方式と仮定しない)。Usage の user/api_key 粒度の費用は直接取得できるとは限らない

11.3 GitHub(CSV と REST API を区別する)

取込形式 実フィールド ACUS 列 注意
課金 CSV(共通列) dateproductskuquantityunit_typeapplied_cost_per_quantitygross_amountdiscount_amountnet_amount ChargePeriodStartServiceNameSkuIdPricingQuantityPricingUnitListUnitPriceListCostBilledCostnet_amount 枠による割引が discount_amount に反映済みなら、同じ額を Credit 行で再度減算しない(R5)
詳細 CSV の帰属列 usernameorganizationrepositoryworkflow_pathcost_center_name x_PrincipalId(仮名化)/SubAccountIdTags レポート種別・権限で提供範囲が異なる
AI usage CSV modelinputoutputcache_readcache_write x_ModelIdRawx_TokenType 別の ConsumedQuantity 一般課金レポートに同じ列があると仮定しない
AI Credit Usage REST API usageItems[].modelunitTypepricePerUnitgrossQuantitygrossAmountdiscountQuantitydiscountAmountnetQuantitynetAmount x_ModelIdRawPricingUnitListUnitPriceListCostBilledCost クレジット数量・金額中心の応答。生トークン列は CSV 側から取る
旧年契約(PRU) プレミアムリクエスト数 x_LegacyUnit=PRU、x_RequestUnituser_request

11.4 クラウド経由と OpenTelemetry

取込元 対応 注意
AWS FOCUS エクスポート(Bedrock) x_ModelIdRawSkuIdChargeDescriptionx_AccessPath=aws_bedrock、CommitmentDiscount*(Provisioned Throughput) SkuMeter 列は FOCUS 1.2 AWS 列定義に存在するが、対象モデルの実エクスポートでどの値が4種のトークンに対応するかは未確認(※)。確認済みの対応辞書だけを使い、未知の SKU は other で原文保持する
Azure FOCUS エクスポート(AI Foundry) x_ModelIdRawSkuIdChargeDescriptionx_AccessPath=azure_foundry、RegionId PTU は x_PricingModifier=provisioned
Google Cloud FOCUS エクスポート(Vertex AI) x_ModelIdRawSkuIdChargeDescriptionx_AccessPath=google_vertex 専用エクスポートは Preview 表記。文字数課金のSKUは PricingUnit1000 Characters 等で表す
OpenTelemetry(gen_ai.* gen_ai.request.modelx_ModelIdRawgen_ai.usage.input_tokensoutput_tokens→ 値の由来に応じて ConsumedQuantity(プロバイダー応答の使用量)または x_MeasuredTokens(独自推計)、x_WorkflowIdTags OTel は運搬・計装方式であり、値が課金値か推計かは別途区別する。Span 由来値と Histogram 集計を二重に取り込まない。入力総数にキャッシュを含むかどうかの範囲を揃える

12. 比較・最適化KPI

per-token 単価ではなく、正規化コストで比較する。K3/K4/K7 は x_TokenType で抽出した ConsumedQuantity の合計を使う。分母がゼロの場合は NULL とし、適用対象(通常テキスト推論に限る等)と除外条件を KPI ごとに定める。

ID KPI 定義 用途
K1 リクエスト当たり実効コスト ΣEffectiveCostbilled 行)÷ Σx_RequestCount(同一 x_RequestUnit、重複排除済み) 経路・モデルを横断して比較。単位の異なる件数(user_requestmodel_call)は比較しない
K2 入力1,000文字当たり実効コスト ΣEffectiveCost(input+cache_read+cache_write 行)÷ 入力文字数×1,000 トークナイザ差の吸収。入力文字数は列にないため、同一対象の外部計測表と重複なく結合する。文字の数え方とキャッシュ分の扱いを定義する
K3 キャッシュヒット率 Σcache_read ÷ Σ(input+cache_read+cache_write) プロンプト設計の最適化
K4 出力トークン比率 Σoutput ÷ Σ(input+cache_read+cache_write+output) 出力単価が支配的なため
K5 枠消化率 x_ConsumedQuantity ÷ x_IncludedQuantity(同一枠・同一期間・同一単位) 過剰・過少契約の検知
K6 経路プレミアム 同一 x_ModelId の K1(経由)÷ K1(direct)。同一 x_RequestUnit に限る 経路選択の根拠
K7 修飾子適用率 batch/flex 適用トークン ÷ 全トークン 遅延許容ワークロードの移行余地
K8 計測乖離率 abs(ConsumedQuantityx_MeasuredTokens) ÷ ConsumedQuantity。同一粒度・同一範囲の行に限る 計測・帰属の信頼性
K9 帰属率 Tags に帰属キーが付いた billed 行の EffectiveCost ÷ 全 billed 行の EffectiveCost(費用ゼロ・負値の行は分母から除く) 配賦の完成度

13. 適合性レベル

レベル 要件
L0 FOCUS 1.4 準拠の取込段階。FOCUS 必須列+x_SchemaVersionx_LineRole。明細を1表に集約できる
L1 L0+x_AccessPathx_UsageType(全行)、x_ModelProviderx_ModelId(モデル行)、x_TokenType(トークン課金行)。モデル・経路別比較ができる
L2 L1+データセットB・Cとの結合、R12 の単価整合。単価再現・枠管理ができる
L3 L2+Tagsx_WorkflowIdx_MeasuredTokensx_RequestUnit。帰属と計測突合ができる

14. FOCUS 1.5 への移行方針

FOCUS 1.5 は基準日時点で未批准であり、作業ドラフトへマージ済みの変更と提案中の変更を区別する。単純な列名置換ではなく、採択された列・SkuPriceDetails プロパティ・データセットの意味と粒度に合わせて変換する。

ACUS 側 FOCUS 側の候補 確認状態(2026年9月10日)
x_ModelProvider SkuPriceDetails.ModelDeveloper 作業ドラフトへマージ済み(2026年7月20日)
x_ModelIdx_ModelIdRaw SkuPriceDetails.ModelId 同上。独自の正規化表記と公式識別子は意味を確認して対応付ける
x_ModelVersion SkuPriceDetails.ModelVersion 同上
(該当列なし) SkuPriceDetails.ModelFamily 同上。必要なら価格属性から補完
x_TokenType(input/output/cache_read/cache_write) SkuPriceDetails.TokenType(Input/Output/CacheRead/CacheWrite) 提案中・未マージ
x_ContextTierx_PricingModifier 文脈長・処理ティア・プロビジョンド・リージョン等の隣接提案 提案・検討中
ConsumedQuantityPricingUnit 既存列のまま AI専用のトークン数列を新設する採択は確認できず
B: Price Sheet 策定中の SKU Price データセット 名称置換ではなく、キー・履歴・単位・通貨・必須情報を合わせる
C: Entitlement 直接の対応先は確認できず 当面は x_ のまま維持
x_AccessPathx_GatewayId ServiceProviderNameHostProviderName で一部表現可能だが同義ではない 互換性を検証するまで独自列を維持

SkuPriceDetails.ModelId 等のドット表記は、構造化列の中のプロパティを指す。同名のトップレベル列が追加されたという意味ではない。Tokenomics Foundation の成果物が公開されたら、x_TokenType の列挙値をそちらに合わせる。

15. 未決事項

  • トークナイザ差の正規化基準:K2 の分母を文字数・バイト数・単語数のどれにするか、キャッシュ分の入力をどう数えるか。日本語では文字数が実務上妥当と考えるが未検証
  • 推論トークンの扱い:分離課金の体系が増えた場合、R15 の二分法で足りるか
  • リクエスト粒度の統一x_RequestUnit の3値(model_calluser_requesttask)で、エージェントの再帰呼び出しやCopilotの利用者要求を十分に区別できるか
  • クレジット前払いの会計処理:公費で年間クレジットを前払いした場合の償却(FOCUS の Commitment Discount として扱うか)
  • データレジデンシーRegionId だけでは契約上の所在地保証を表せない。x_DataResidency の要否
  • 個人識別子x_PrincipalId の仮名化方式と保持期間
  • OTel 由来値の重複排除:Span 属性と Histogram 集計の両方が届く場合の突合キー
  • Bedrock の SKU 対応辞書:実エクスポートでの SkuMeter 等の値とトークン種別の対応(※未確認)

16. 関連する取り組み

名称 確認した機能 ACUS との関係
FOCUS 1.5(FinOps Foundation) SKU・モデル属性、AI課金、SKU Price データセットの策定 最も直接的な移行先(14章)
Tokenomics Foundation 定義案・運営モデル・トークン費用テレメトリの FOCUS 組込み 上位の概念整理。課金明細標準の批准は未確認
LiteLLM Spend Tracking モデル/APIキー/利用者別の利用ログ・集計 ゲートウェイ経路の取込元候補。標準ではなく実装
OpenCost Kubernetes の資源コスト配賦 自前ホスティング原価側。ACUS の対象外を担う
OpenTelemetry GenAI semantic conventions 計装レベルのトークン・モデル属性 帰属と計測値の取込元(11.4)

参考資料

制作クレジット

  • 問題設定・選定:筆者
  • 起草・最終稿:Claude Fable 5.1(Anthropic)
  • 事実検証・検証メモ:GPT-6 Astra Pro(OpenAI)
  • 検証メモの精査と一次資料の再照合:Claude Fable 5.1
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?