Media > AI活用ユースケース > 法務 > ライセンス先から届くロイヤルティ報告を読み取って、契約条件どおりかを点検する

ライセンス先から届くロイヤルティ報告を読み取って、契約条件どおりかを点検する

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

ライセンス先から届く報告書を入力に、対象製品・数量・売上・控除項目・算定額を抽出し、契約書に定めた料率・最低保証・控除の範囲と突き合わせて、食い違いを一覧にします。担当者の作業は、報告書を読んで電卓を叩くことから、指摘を検証して相手先へ問い合わせることに変わります。

サマリー
利用ツール
AWS Textract/Azure AI/ChatGPT/Claude/Gemini/Google Document AI/Make/n8n/Power Automate
対象業界
IT・SaaS/医療/商社/広告/製造
対象部門
法務/知財
対象業務
内容確認・チェック/集計・分析
主な課題
データ分析に時間がかかる/属人化している/確認ミスが多い
AIで行う処理
抽出
主な効果
品質標準化/工数削減/機会損失防止
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
必須
現在工数
29.2h/月
AI導入後
9.3h/月
想定削減
68%
年間削減
238h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. ライセンス先から報告書がメールで届く(PDF、Excel、まれに紙のスキャン)
  2. 担当者が報告書を開き、対象期間、製品、数量、売上、控除、算定額を読む
  3. 契約書のファイルを開き、その相手先の料率と控除条項を確認する
  4. 報告された売上に料率を掛けて、算定額が合っているかを検算する
  5. 最低保証額がある契約は、算定額が下回っていないかを確認する
  6. 前回の報告と比べて、売上が不自然に落ちていないかを見る
  7. 対象製品の範囲に、契約外の製品が混ざっていないか、逆に漏れていないかを確認する
  8. 食い違いがあれば、相手先へ照会のメールを送る
  9. 問題がなければ、ライセンス台帳へ記録し、請求の手続きへ回す
  10. 期限を過ぎても報告が来ない相手先を探し、催促する
導入後(After)
  1. 報告書が、ライセンス受付専用のメールボックスに届く
  2. 自動送信元と件名から相手先を特定し、添付ファイルを取り出す
  3. 自動報告書から、対象期間・製品・数量・売上・控除項目・算定額を抽出する
  4. 自動契約条件テーブル(料率、対象製品、控除の可否、最低保証、為替の取り決め)を引き当てる
  5. 自動算定額を自社側で計算し直し、報告された額との差を出す
  6. 自動対象製品の範囲、控除項目の妥当性、最低保証の充足を判定する
  7. 自動前回までの報告と比べ、売上の大きな増減と、報告されなくなった製品を検出する
  8. 自動期限までに届いていない相手先を一覧にする
  9. 担当者が指摘を検証し、相手先へ照会するかを決める
  10. 問題がなければ確定し、請求の手続きへ回す
  11. 自動確定した内容をライセンス台帳へ記録する
各工程の詳しい説明を読む
  1. ライセンス先から報告書がメールで届く(PDF、Excel、まれに紙のスキャン)
  2. 担当者が報告書を開き、対象期間、製品、数量、売上、控除、算定額を読む
  3. 契約書のファイルを開き、その相手先の料率と控除条項を確認する
  4. 報告された売上に料率を掛けて、算定額が合っているかを検算する
  5. 最低保証額がある契約は、算定額が下回っていないかを確認する
  6. 前回の報告と比べて、売上が不自然に落ちていないかを見る
  7. 対象製品の範囲に、契約外の製品が混ざっていないか、逆に漏れていないかを確認する
  8. 食い違いがあれば、相手先へ照会のメールを送る
  9. 問題がなければ、ライセンス台帳へ記録し、請求の手続きへ回す
  10. 期限を過ぎても報告が来ない相手先を探し、催促する

問題は5つあります。

(a)報告書の様式が相手先ごとに違う。 60社あれば60通りの様式です。売上を税抜きで書く相手と税込みで書く相手がいます。控除項目の名前も「返品調整」「Returns」「値引」とばらばらです。どの数字が契約でいう「正味売上高」に当たるかを、毎回読み解く必要があります。

(b)契約条件の確認が属人化している。 「この会社は第3四半期から料率が下がる」「この会社は輸送費の控除を認めていない」といった条件が、担当者の記憶に依存しています。担当者が異動すると、契約書を全部読み直すことになります。

(c)計算の食い違いに気づけない。 報告書に書かれた算定額をそのまま受け取ってしまうことがあります。特に外貨建ての報告では、為替レートの適用時点が契約と違っていても気づきにくくなります。

(d)対象外の製品が混ざる/対象製品が漏れる。 ライセンス先が新製品を出したとき、それが契約の対象範囲に入るかどうかの判断が要ります。報告書に載っていない製品は、こちらからは見えません。

(e)報告の遅れを追えていない。 60社の期限を管理する表はありますが、手で更新しています。催促が漏れると、そのまま何四半期も報告が来ないことがあります。

  1. 報告書が、ライセンス受付専用のメールボックスに届く
  2. 【自動】 送信元と件名から相手先を特定し、添付ファイルを取り出す
  3. 【自動】 報告書から、対象期間・製品・数量・売上・控除項目・算定額を抽出する
  4. 【自動】 契約条件テーブル(料率、対象製品、控除の可否、最低保証、為替の取り決め)を引き当てる
  5. 【自動】 算定額を自社側で計算し直し、報告された額との差を出す
  6. 【自動】 対象製品の範囲、控除項目の妥当性、最低保証の充足を判定する
  7. 【自動】 前回までの報告と比べ、売上の大きな増減と、報告されなくなった製品を検出する
  8. 【自動】 期限までに届いていない相手先を一覧にする
  9. 【人】 担当者が指摘を検証し、相手先へ照会するかを決める
  10. 【人】 問題がなければ確定し、請求の手続きへ回す
  11. 【自動】 確定した内容をライセンス台帳へ記録する

自動化されるのは「読む」「契約条件を引き当てる」「計算し直す」「比べる」「期限を追う」の5つです。残るのは、指摘が本当に食い違いなのかを判断することと、相手先とのやり取りです。

算定額の計算は、AIではなく表計算側で行います。 AIにさせるのは「報告書のどの数字が、契約でいう何に当たるか」の対応づけだけです。金額の計算をAIにさせる理由がありません。

02今回想定するシステム構成

構成図
ライセンス先からのメール(報告書:PDF / Excel / スキャン)
   │
   ▼
ライセンス受付メールボックス(license-report@)
   │
   ▼【トリガー】新着メール
Power Automate
   │
   ├──▶ 送信元ドメインから相手先を特定し、添付を SharePoint へ保存
   │
   ├──▶ Azure AI Document Intelligence(カスタム抽出モデル)
   │       └─ 相手先ごとの様式から、期間 / 製品 / 数量 / 売上 / 控除 / 算定額 を構造化
   │
   ├──▶ Claude API ── 抽出結果と契約条件の対応づけ(どの数字が正味売上高か)
   │
   ├──▶ 契約条件テーブル(料率・対象製品・控除の可否・最低保証・為替)を引き当て
   │
   ├──▶ 【表計算側】算定額の再計算と差額の算出
   │
   ├──▶ 前回までの報告との比較(売上の増減、報告が消えた製品)
   │
   └──▶ 点検シート(相手先 / 差額 / 指摘 / 根拠)を作成
   │
   ▼
知財部が確認 ──【人】照会するかを判断
   │
   ├──▶ 照会 → 相手先へメール → 再提出を待つ
   └──▶ 確定 → ライセンス台帳へ記録 → 請求の手続きへ
役割想定する製品代替候補
OCRAzure AI Document Intelligence(カスタム抽出モデル)Google Document AI、AWS Textract
生成AIClaude APIOpenAI API、Gemini API
連携Power AutomateMake、n8n
保管SharePointBox、Google Drive
台帳Microsoft ListsGoogle スプレッドシート、kintone

ライセンス管理の専用システムがあるなら、まずその機能を確認してください。 契約条件の登録とロイヤルティの計算を持つ製品があります。自前で組む価値があるのは、相手先ごとにばらばらな報告書の様式を読み取る部分です。ここは専用システムでも手入力になっていることが多く、実際の手間はそこに集中しています。

報告書の様式が相手先ごとに固定されている点が、この構成に有利に働きます。 同じ相手からは毎回同じ様式で届くため、上位の数社については様式ごとのカスタムモデルを作る価値があります。カスタム抽出モデルは、同じフォームまたはドキュメントの種類の例が5つあれば作り始められます。 四半期報告なら1年分強、月次報告なら半年分で足ります。

03どうやって実装するのか

Step1

処理の起点を決める

ライセンス受付専用のメールボックスへの新着メールを起点にします。報告書の送付先を専用アドレスに統一してもらうことが前提です。

担当者個人のメールアドレスへ届く運用のままでは、担当者が休んだ日に処理が止まります。契約更新や担当者の交代のタイミングで、送付先の変更を相手先へ依頼してください。 これは仕組みの前に片付けておく作業です。

もう1つの起点として、毎日の期限チェックを置きます。契約ごとの報告期限を持つテーブルを日次で見て、期限を過ぎているのに報告が届いていない相手先を洗い出します。こちらのほうが、金額の点検より先に効果が出ることがあります。 報告が来ていないことに気づけていない状態が、もっとも損をしているからです。

Step2

入力データを集める

データ中身取得元
ロイヤルティ報告書対象期間、製品別の数量・売上、控除項目、算定額、為替レートライセンス先
契約条件テーブル相手先、料率(製品区分別・期間別)、対象製品の範囲、控除してよい項目、最低保証額、報告期限、通貨と為替の取り決め契約書から作る社内テーブル
過去の報告履歴相手先・期・製品ごとの数量、売上、算定額ライセンス台帳
相手先マスタ正式名称、送信元ドメイン、担当者、契約番号社内テーブル
為替レート契約で定めた基準(期中平均、期末日など)に応じたレート会計システムまたは公表レート
Step3

データの取得方法を決める

報告書: メール添付で受け取り、SharePoint へ保存します。形式は3通りに分かれます。

形式扱い
Excel表をそのまま読む。もっとも扱いやすい。相手先にExcelでの提出を依頼する価値がある
PDF(デジタル)Document Intelligence のカスタム抽出モデル、または Claude API に直接渡す
PDF(スキャン)同上。ただし精度は落ちる。紙で届く相手先は、電子での提出を依頼する

Claude API はPDFをそのまま入力として受け取れます。リクエスト全体で最大32MB、ページ数は最大600ページ(コンテキストウィンドウが100万トークン未満の場合は100ページ)です。報告書は数ページなので、この上限に当たることはありません。ページ内のテキスト、図、表を扱えるため、レイアウトが単純な報告書ならカスタムモデルを作らずに済むこともあります。

カスタム抽出モデルを作るかどうかの判断は、件数で決めてください。 月に複数回届く上位10社程度は作る価値があります。年に数回しか届かない相手先は、汎用の読み取りで十分です。カスタム抽出モデルの入力はPDFと画像(JPEG/JPG、PNG、BMP、TIFF、HEIF)に対応し、PDFとTIFFは最大2,000ページ、有料プランでのファイルサイズは500MBまでです。

契約条件テーブル: この構成でもっとも手間のかかる準備です。契約書を1本ずつ読み、次の項目を表に落とします。

項目
料率正味売上高の3%。製品区分Bは2%。2027年4月以降は2.5%
対象製品特許第◯◯号を実施した製品。型番の接頭辞で識別
控除してよい項目返品、現金値引、消費税。輸送費と広告費は控除不可
最低保証年間500万円。四半期ごとに125万円で按分
報告期限四半期末から45日以内
通貨・為替USD建て。四半期の期中平均レートを適用
監査の権利年1回、事前通知のうえ帳簿を閲覧できる

60社分を一度に作る必要はありません。 報告額の大きい上位20社で、全体の8割を占めることが多いはずです。そこから始めてください。

Step4

AIへ渡す前に整形する

  1. 相手先の特定 … 送信元のドメインを相手先マスタと照合します。ドメインが一致しないメールは、件名と本文から候補を出して人へ回します
  2. 報告書以外の除外 … 同じアドレスに問い合わせや請求書が届きます。件名と添付のファイル名で絞り込みます
  3. 対象期間の正規化 … 「2026年度第2四半期」「Q2 FY2026」「2026年7月〜9月」を同じ期間として扱えるよう、開始日と終了日に直します。相手先の決算期が自社と違うことがあります
  4. 通貨と単位の判別 … 金額の単位が千円なのか円なのか、USDなのかJPYなのかを、表の見出しから判定します。ここを誤ると桁が1,000倍違います
  5. 重複の検出 … 同じ期の報告が再送されることがあります。「相手先+対象期間」で既存データと照合し、再提出なら前の版を差し替える扱いにします
Step5

AIに処理させる

役割を3つに分けます。

OCR(Document Intelligence)にさせること: 報告書の表から、行と列の構造を保ったまま値を取り出すこと。ここはLLMにさせません。 表形式のデータは専用モデルのほうが安定し、費用も安く済みます。

LLMにさせること:

処理内容
項目の対応づけ「Net Sales」「正味売上」「売上高(税抜)」が、契約でいう「正味売上高」に当たるかを判断する
控除項目の分類報告書に書かれた控除の名称を、契約の控除条項の区分へ割り当てる
対象製品の判定製品名・型番が、契約の対象範囲に入るかを判断する
期間の解釈相手先の表記から、対象期間の開始日と終了日を決める
差異の説明文検出された食い違いを、相手先へ照会する文の下書きにする

表計算側で行うこと: 算定額の再計算、差額の算出、最低保証との比較、前期比の増減率。すべて数式で行います。

この分担が重要です。AIに金額を計算させると、検算のしようがなくなります。 AIの役割は「この数字は何か」を決めるところまでで、決まった数字を使った計算は機械的な処理に任せます。

Step6

指示内容を固定する

あなたは知財部のライセンス管理を支援する担当者です。
ライセンス先から届いたロイヤルティ報告書の抽出結果を、
契約条件の項目へ対応づけてください。

【厳守事項】
- 金額、数量、日付を書き換えないでください。抽出結果の値をそのまま引き継いでください。
- 金額の計算をしないでください。合計、料率の掛け算、差額の算出は行わないでください。
  対応づけだけを返してください。
- 「正味売上高」に当たる数字を1つだけ選んでください。複数の候補があり
  どれか決められない場合は net_sales を null にし、candidates に候補を並べてください。
- 控除項目は、下の「契約で認めた控除区分」からのみ選んでください。
  どれにも当てはまらない控除が報告されている場合は、区分を "契約外" として
  その名称をそのまま deduction_name に書いてください。**勝手に近い区分へ寄せないでください。**
- 製品が契約の対象範囲に入るかは、下の「対象製品の定義」に照らして判定してください。
  判定できない製品は in_scope を "unknown" にし、理由を書いてください。
- 通貨と単位(円/千円/百万円)を必ず明示してください。
  表の見出しに書かれていない場合は unit を null にしてください。**推測しないでください。**
- 報告書に書かれていない期間や製品を補わないでください。

【契約条件】
{contract_terms}

【契約で認めた控除区分】
{allowed_deductions}

【対象製品の定義】
{product_scope}

【報告書の抽出結果】
{extracted_report}

「勝手に近い区分へ寄せない」の1行が重要です。 これを書かないと、AIは「広告協賛金」という控除を「値引」として処理します。契約で認めていない控除が通ってしまい、その分だけ受け取るロイヤルティが減ります。 契約外の控除は、契約外として残さなければ意味がありません。

「金額の計算をしない」の1行も同じくらい重要です。 LLMに掛け算をさせると、たいていは合いますが、合わない場合に気づけません。計算は数式で行い、AIの出力は入力として使うだけにします。

照会文の下書きを作らせる場合は、別の呼び出しにします。

下の食い違いについて、ライセンス先へ送る照会文の下書きを作ってください。

【厳守事項】
- 事実だけを書いてください。相手の意図を推測しないでください。
  「意図的に除外されたものと思われます」のような書き方をしないでください。
- 契約の該当条項を引用し、こちらの理解を示したうえで、確認を依頼する形にしてください。
- 金額は下の数値をそのまま使ってください。書き換えないでください。
- 支払いを求める表現にしないでください。まず事実確認を依頼する段階です。
- 5〜10行にしてください。
Step7

出力形式を固定する

{
  "licensee_code": "",
  "contract_no": "",
  "period_start": "",
  "period_end": "",
  "currency": "",
  "unit": "円 | 千円 | 百万円",
  "net_sales": 0,
  "net_sales_candidates": [],
  "products": [
    {
      "product_name": "",
      "model_code": "",
      "quantity": 0,
      "gross_sales": 0,
      "in_scope": "yes | no | unknown",
      "scope_reason": ""
    }
  ],
  "deductions": [
    {
      "deduction_name": "",
      "amount": 0,
      "category": "返品 | 現金値引 | 消費税 | 契約外",
      "allowed": true
    }
  ],
  "reported_royalty": 0,
  "fx_rate": 0,
  "fx_basis_stated": "",
  "missing_fields": [],
  "needs_review": [],
  "reason": ""
}

JSON Schema を指定して出力を固定します。Claude API では output_config.formatjson_schema を渡すことで、応答をスキーマに沿った形に制約できます。

金額は文字列ではなく数値で返させてください。 文字列にすると「1,200,000」のようにカンマ入りで返り、後段の計算で壊れます。

net_sales_candidates は、正味売上高に当たる数字を1つに絞れなかったときの候補です。ここに複数入っている報告書は、そもそも様式が読み取りづらいということなので、相手先に様式の統一を依頼する候補になります。

fx_basis_stated は、報告書に為替レートの根拠が書かれていたかどうかです。書かれていない外貨報告は、それ自体が照会の対象です。 契約で「期中平均」と定めていても、相手が期末レートを使っている可能性があります。

Step8

システムへ連携する

抽出結果と契約条件から、点検シートをスプレッドシートに作ります。計算はすべてこの表で行います。

計算項目
認容控除計控除のうち allowed が true のものの合計
契約上の正味売上高総売上 - 認容控除計
自社計算の算定額契約上の正味売上高 × 料率(製品区分別・期間別)
差額自社計算の算定額 - 報告された算定額
最低保証との差最低保証額(按分後) - 自社計算の算定額
前期比今期の正味売上高 ÷ 前期の正味売上高

点検シートには、差額の大きい順に並べた一覧と、次の指摘欄を出します。

  • 契約外の控除が計上されている
  • 対象製品の判定が unknown のものがある
  • 前期に報告されていた製品が、今期は報告されていない
  • 最低保証を下回っている
  • 為替レートの根拠が書かれていない
  • 報告期限を過ぎている

確定した内容だけを、ライセンス台帳と会計システムへ渡します。 請求データの自動作成はしません。受け取る金額が確定するのは、相手先との照会が済んでからです。

Step9

人が確認する

全件、担当者が確認して確定します。段階的な自動化もしません。

理由は2つあります。1つは、指摘が必ずしも相手の誤りとは限らないためです。契約条件テーブルの側が古い、という可能性が常にあります。 契約は変更されます。覚書が交わされているのにテーブルへ反映されていなければ、正しい報告が誤りとして指摘されます。

2つ目は、相手先との関係に直結するためです。誤った指摘を送れば、相手の信頼を失います。差額が出たときに「なぜそうなったか」を人が納得したうえで照会することが、この業務では欠かせません。

確認を速くするための設計が効きます。

  • 差額の絶対値の大きい順に並べる
  • 契約外の控除がある行を最上部に出す
  • 契約条件テーブルの最終更新日を各行に表示する(古ければテーブルの側を疑える
  • 報告書の該当箇所と、契約書の該当条項を左右に並べて表示する
  • 前期・前々期の同じ相手先の数字を並べる

3つ目が効きます。 「この契約条件は2年前に登録されたまま」と一目で分かれば、指摘を鵜呑みにせずに契約書へ戻れます。

Step10

例外に対処する

起きること対応
送信元ドメインが相手先マスタにない件名と本文から候補を出して人へ回す。自動でマスタへ追加しない
正味売上高の候補が複数あるnet_sales を null にし、候補を並べて人へ回す
契約外の控除が計上されているallowed を false にし、点検シートの最上部に出す。自動で認容しない
対象製品かどうか判定できないin_scope を unknown にする。推測で yes にしない
単位が書かれていないunit を null にし、計算を行わずに人へ回す。桁の誤りは差額の誤りに直結する
外貨報告で為替の根拠がない指摘として出す。契約の定めと照らして人が判断する
前期に報告された製品が消えた指摘として出す。販売終了なのか、報告漏れなのかは人が確認する
報告が期限を過ぎても届かない日次の期限チェックで洗い出し、催促のリストに載せる
同じ期の報告が再提出された「相手先+対象期間」で検出し、前の版を差し替える。両方を残す
契約条件テーブルが古い各行に最終更新日を表示する。覚書の有無を人が確認する
報告書が紙のスキャンで精度が落ちるneeds_review に入れて人が読む。電子提出を依頼する材料にもする
相手先が報告様式を変えた抽出の失敗が増える。missing_fields の件数を月次で見て気づけるようにする
Step11

記録を残す

この業務の記録は、監査の権利を行使するときの根拠になります。

  • 報告書の原本(メール本文と添付)
  • 抽出結果(生のJSON)
  • 適用した契約条件テーブルの内容と、その版
  • 自社計算の算定額と差額
  • 人が確定した内容と、指摘を採らなかった場合の理由
  • 相手先への照会文と、その回答
  • 確定日、確定した担当者

「指摘を採らなかった理由」を残すことが効きます。 同じ相手先で同じ指摘が毎期出ているのに毎回見送っているなら、契約条件テーブルの側が間違っている可能性が高くなります。

契約には監査の権利が定められていることがあります。実際に監査を行うかどうかの判断材料は、この点検の積み重ねです。 「3期連続で契約外の控除が計上されている」という記録があって初めて、監査を申し入れる根拠になります。

04実装レベルの3段階

最小構成:報告書と契約条件をチャット画面に貼り付け、対応づけさせる。計算は表計算で行う / 読み取りと対応づけ
半自動化:メール受信をトリガーに、抽出・対応づけ・再計算・点検シートの作成まで。期限チェックも自動 / 点検のすべて
本格構成:上記+上位社の様式別カスタムモデル+照会文の下書き+ライセンス台帳への記録 / 照会の準備まで

半自動化の時点で、50分が20分程度になります。 読み取りと検算が消えるためです。本格構成では16分になりますが、減るのは記録と照会文の作成です。 カスタム抽出モデルを作るのは本格構成の段階で構いません。 汎用の読み取りでも、Excelで届く報告書と、レイアウトの素直なPDFは十分に扱えます。精度が出ない相手先が特定できてから、その様式についてだけ作るほうが効率的です。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
2 名
月間件数
35 件
1件あたり現在時間
50 分
1件あたり導入後時間
16 分
現在  35件 × 50分 ÷ 60 = 29.2 時間/月
導入後 35件 × 16分 ÷ 60 = 9.3 時間/月
月間削減時間
19.8h
削減率
68%
年間削減時間
238h
年間金額換算(時間単価3,500円)
83万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 特許・商標・ノウハウを他社へ実施許諾しており、ライセンス先が20社以上ある企業。報告書の様式が相手先ごとに違い、契約条件(料率・最低保証・控除項目)も個別に決まっている場合。報告の遅れや計算の食い違いを、担当者の記憶で管理している場合。
向いていない
  1. ライセンス先が数社で、報告が同一の様式に統一されている場合。ライセンス管理システムを導入済みで、報告の受領から照合までが仕組みに乗っている場合。定額のライセンス料のみで、売上に連動する計算が発生しない場合。

07最小構成で試す方法

  1. 報告額の大きい上位5社について、直近1年分の報告書を集める(1社あたり4件前後)
  2. その5社の契約書から、料率・対象製品・控除条項・最低保証を表にする
  3. 生成AIのチャット画面に、報告書1件と契約条件の表を貼り付ける
  4. 上記のプロンプトで、項目の対応づけをさせる
  5. 出てきた net_sales と控除の区分を、担当者の判断と突き合わせる
  6. 表計算で算定額を再計算し、報告された額と差が出るかを見る

ここで差額が1件も出なくても、失敗ではありません。 むしろ正常です。見るべきは次の3点です。

見る点判断
正味売上高を1つに絞れた割合8割以上なら自動化の土台になる
控除区分の割り当てが担当者の判断と一致するか一致しない区分があれば、契約条件テーブルの書き方を直す
契約条件を表にする作業にかかった時間1社15分を超えるなら、上位20社に絞る判断をする

3つ目が実は一番重要です。この構成の手間は、AIの側ではなく契約条件テーブルの整備に集中します。 60社分を作ろうとして頓挫するより、20社で回し始めるほうが確実です。

期限チェックだけなら、さらに手前で試せます。 契約ごとの報告期限を表にして、届いた日付と突き合わせるだけです。AIは要りません。それだけで、報告が来ていない相手先が見つかることがあります。

08実装時につまずきやすいポイント

問題対策
契約外の控除が「値引」として通ってしまう認めた区分からのみ選ばせ、当てはまらないものは「契約外」で残す
AIが算定額を計算して誤る計算を禁止する。金額の計算はすべて表計算側で行う
単位が千円なのに円として計算するunit を必須にし、null なら計算せず人へ回す
外貨の為替レートの基準が違う報告書に根拠が書かれているかを必ず見る。書かれていなければ照会する
契約条件テーブルが古く、正しい報告を誤りと指摘する各行に最終更新日を表示する。覚書の反映を運用に組み込む
対象製品かどうかを推測で判定するunknown を許す。推測で yes にさせない
報告が来ていないことに気づかない期限チェックを日次で回す。金額の点検より先に作ってもよい
60社分の契約条件を一度に作ろうとして頓挫する上位20社から始める。報告額で8割を占める範囲で十分
同じ期の再提出で古い版が残る「相手先+対象期間」で検出し、差し替えたうえで両方を保存する
相手先が様式を変えて抽出が崩れるmissing_fields の件数を月次で見る。急に増えたら様式変更を疑う
請求データを自動で作ってしまう確定のステップを人に置く。照会が済むまで請求へ回さない

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: ライセンス先の売上、製品別の販売数量、契約の料率と条件。相手先にとっては、自社の販売実績という機微な情報です。

  1. 秘密保持義務の確認 … ライセンス契約には、相手先から受け取った情報の取り扱いについての条項があるのが通常です。報告書の内容を外部のAIサービスへ送ってよいかは、その条項を確認してから判断してください。 「業務目的での使用」に外部サービスの利用が含まれるかは、契約の書きぶりによります
  2. 外部AIへの入力可否 … 上記が確認できない場合、相手先名と製品名を伏せた形で処理するという選択もあります。契約条件との照合は、コード化された識別子でも成立します
  3. 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます。ここは相手先への説明責任が生じうる部分です
  4. 自社の契約条件の扱い … 料率と最低保証は、自社のライセンス戦略そのものです。契約条件テーブルの閲覧を、知財部と法務部に限定してください
  5. 相手先ごとの条件の混同 … 複数の契約条件を同時に扱うため、別の相手先の条件を適用しないよう、契約番号での突合を機械で検証してください。 相手先Aの料率を相手先Bに適用した結果を照会すれば、こちらの管理体制が疑われます
  6. 照会文の送信 … 下書きの自動送信はしません。事実確認の段階で「支払い不足がある」と断定した文を送ると、関係を損ないます
  7. 自動実行してよい範囲 … 読み取り、対応づけ、再計算、指摘の提示までです。確定、照会文の送信、請求データの作成は人が行います

誤りが起きた場合のリスクは、誤った照会による相手先との関係悪化、契約外の控除の見逃しによる受取額の減少、報告漏れの放置です。指摘の根拠と、適用した契約条件の版を記録し、後から追跡できる状態にしてください。

10まず何から始めるか

1週目:報告の期限を表にする

60社分の報告期限と、直近1年に実際に届いた日付を並べます。AIも仕組みも要りません。 期限を過ぎているのに届いていない相手先が見つかれば、その時点で効果が出ます。この作業は、契約条件テーブルの整備の入口にもなります。

2週目:上位5社の契約条件を表にする

報告額の大きい5社について、料率・対象製品・控除条項・最低保証・為替の取り決めを表にします。1社あたりどれくらい時間がかかるかを実測してください。 この数字で、何社まで作るかが決まります。

3週目:抽出と対応づけを試す

その5社の直近1年分の報告書で、正味売上高を1つに絞れるか、控除区分が正しく割り当たるかを見ます。あわせて表計算で算定額を再計算し、差が出る件があるかを確かめます。

4週目以降: 期限チェックの自動化から作ります。金額の点検より先にこちらを動かすほうが、効果が早く出ます。 その後、上位20社を対象に、メール受信からの抽出と点検シート作成を作ります。カスタム抽出モデルは、精度が出ない相手先が特定できてから検討してください。

3か月目以降: 点検の記録がたまったら、相手先ごとの傾向を見ます。契約外の控除が繰り返されている、報告が毎回遅れる、といった相手先が見えてきます。次の契約更新のときに、報告様式の指定や期限の見直しを交渉する材料になります。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-22/最終更新:2026-09-22
確認した内容情報源確認日
Document Intelligence のカスタム抽出モデルが、同じフォームまたはドキュメントの種類の例5つから作成を始められること。入力はPDFと画像(JPEG/JPG、PNG、BMP、TIFF、HEIF)に対応し、PDFとTIFFは最大2,000ページ、有料プラン(S0)のファイルサイズは500MBまでであること。カスタムテンプレートとカスタムニューラルの2種類があることMicrosoft Learn: カスタム ドキュメント モデル2026-09-22
Claude API がPDFを入力として受け取れること。リクエスト全体で最大32MB、最大600ページ(コンテキストウィンドウが100万トークン未満の場合は100ページ)であること。テキスト、図、表を扱えることClaude Docs: PDF support2026-09-22
Claude API で output_config.formatjson_schema を渡すと、応答をスキーマに沿った形に制約できることClaude Docs: Structured outputs2026-09-22

ライセンス契約の条項(料率、控除、最低保証、監査の権利)は契約ごとに異なります。個々の契約の解釈と、報告内容への対応は、自社の法務部および顧問弁護士に確認してください。 この記事は契約の解釈を示すものではありません。会計システムへの請求データの連携方式も、利用環境に応じた個別確認が必要です。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0171)についてのご相談はこちらから。

AI活用について相談する
目次