ClaudeでSLAのサービスクレジットを算定し、顧客通知文まで作る
月間稼働率から返還率を決め、除外時間と端数の扱いまで算定表に落とし、顧客向けの通知文を同じ数字で起こす手順です。契約の定義をClaudeに渡す指示と検算の置き方を示します。
SLA違反時のサービスクレジットは、契約書の「稼働率の定義」「除外時間」「返還率の段階表」「端数の扱い」の4つをClaudeに渡せば、算定表と顧客通知文を同じ数字で作らせられます。逆に、この4つのどれかが欠けたまま計算させると、もっともらしい稼働率が出ても、請求に使える数字にはなりません。
SaaSやマネージドサービスを提供する側で、障害の翌月に返還額を出す担当者に向けた手順です。本稿の契約条件・金額・時間はすべて説明用の仮の値で、実在の契約ではありません。どの顧客にも当てはまる料率を示すものでもありません。
先に決める4つの定義 — 計算式より契約の文言が結果を左右する
稼働率の式そのものは単純です。月の総時間から除外時間を引いた分母のうち、停止として数えた時間が占める割合を引くだけです。結果が分かれるのは、式に入れる材料の側です。
| 定義 | 決めること | 決まっていないと起きること |
|---|---|---|
| 分母 | 決めること暦月の全分数か、除外後の分数か | 決まっていないと起きること稼働率が数十分の一ポイント単位でずれる |
| 除外時間 | 決めること計画停止、顧客側起因、不可抗力の扱い | 決まっていないと起きること停止の数え漏れ、または数えすぎ |
| 停止の数え方 | 決めること分単位の切り上げか、一定時間以上の停止だけか | 決まっていないと起きること短い断続障害の合計が変わる |
| 端数と段階 | 決めること小数第何位で丸めるか、境界は以上か未満か | 決まっていないと起きること境界付近で返還率が一段変わる |
この4つが契約のどこに書かれているかは、契約ごとに違います。別表や約款に分かれていることもあります。Claudeに算定を頼む前に、条文の該当箇所を貼れる状態にしておきます。
請求の窓と、監視の窓は別物
エンジニアリングの側では、SLOを「4週間のローリングウィンドウ」で持つ例があります。Googleが公開するSLOの文書例は、まさにこの形です。契約が暦月で区切っているなら、監視ダッシュボードの数字をそのまま使えません。
もう一つ、SLOの文書例の可用性は「リクエストのうち成功した割合」で、500番台以外のHTTPステータスを成功と数えます。計測もロードバランサー上です。契約の稼働率が「停止していた分数」で定義されているなら、分母が違う別の量になります。ロードバランサーまで届かなかったリクエストは数えられないことも、同じ文書の注記にあります。契約と監視の定義が違うと分かった時点で、どちらの数字を顧客に示すかを先に決めます。
算定の例 — 仮の契約で一周する
30日の月(2026年9月)と、次の仮の契約を例にします。
- 稼働率 = (暦月の分数 − 除外時間 − 算入する停止時間)÷(暦月の分数 − 除外時間)
- 除外は、事前通知した計画停止と、顧客側の設定や操作に起因する停止
- 月額利用料300,000円(対象サービス分)
- 返還率は稼働率に応じた段階表で、返還額は月額利用料に率を掛けて求める
| 稼働率 | 返還率 |
|---|---|
| 99.9%以上 | 返還率0% |
| 99.0%以上99.9%未満 | 返還率10% |
| 95.0%以上99.0%未満 | 返還率25% |
| 95.0%未満 | 返還率50% |
この月の実績は、障害の合計が200分で、うち60分は顧客側の設定誤りが原因でした。計画停止は120分です。
| 項目 | 値 |
|---|---|
| 暦月の分数 | 値43,200分(30日 × 1,440分) |
| 除外する計画停止 | 値120分 |
| 分母 | 値43,080分 |
| 障害の合計 | 値200分 |
| 除外する顧客側起因 | 値60分 |
| 算入する停止 | 値140分 |
| 稼働率 | 値(43,080 − 140)÷ 43,080 = 99.6750% |
| 返還率 | 値10%(99.0%以上99.9%未満) |
| 返還額 | 値300,000円 × 10% = 30,000円 |
SLOの考え方に引きつけると、99.9%の目標が許す停止は分母43,080分の0.1%、つまり約43.1分です。この月は140分を算入しているので、許容の約3.2倍を使ったことになります。Googleのエラーバジェットの説明も、バジェットは100%からSLOを引いた値で、99.9%なら0.1%と定義しています。
月によって暦月の分数が変わる点にも気をつけます。
| 月の日数 | 暦月の分数 | 99.9%で許される停止(除外なし) |
|---|---|---|
| 28日 | 暦月の分数40,320分 | 99.9%で許される停止(除外なし)約40.3分 |
| 30日 | 暦月の分数43,200分 | 99.9%で許される停止(除外なし)約43.2分 |
| 31日 | 暦月の分数44,640分 | 99.9%で許される停止(除外なし)約44.6分 |
Claudeに渡す材料と指示
材料は4種類です。契約の該当条文、返還率の段階表、当月の障害一覧(開始・終了の時刻と原因の区分)、計画停止の事前通知の記録です。
障害一覧は、CSVかExcelで渡すのが扱いやすい形です。Claudeがチャットで受け付ける文書形式にはCSVとXLSXが含まれます。ただしXLSXをアップロードするには、アカウント側でコード実行とファイル作成を有効にしておく必要があります。チャットへのアップロードは1ファイル500MBまで、1チャット20ファイルまでです。
Projectsに型を置く
毎月同じ算定をするなら、契約条文と指示をProjectsに置きます。プロジェクトには指示とナレッジを登録でき、そこに入れた資料が各チャットの文脈になります。プロジェクトのファイルは1ファイル30MBまでで、テキスト抽出が基本です(マルチモーダル対応のPDFを除く)。スキャン画像の別表は本文として読まれない前提で、段階表は文字で貼り直しておくほうが安全です。
プロジェクトの指示は、たとえば次のように書きます。
あなたはSaaSの請求担当を補助する。契約条文は添付のとおり。
稼働率は条文の式だけで計算し、条文に書かれていない除外や
率を自分で補わない。条文が曖昧な箇所は計算せず「要確認」に挙げる。
出力は次の順にする。
1. 使った定義(条文番号つき): 分母、除外、停止の数え方、端数
2. 障害ごとの算入・除外の判定と理由(1件1行の表)
3. 稼働率と返還率、返還額(計算式を残す)
4. 境界から0.05ポイント以内なら、その旨を明記する算定表は「式を残した」Excelで作らせる
Claudeは会話の中でExcelファイルを作れます。数式の入った財務モデルも作れると案内されているので、値の貼り付けではなく数式で作るよう頼みます。Claude for Excelを使えば、既にあるブックの中で作業し、セルを根拠に付けた説明も受けられます。対象はPro、Max、Team、Enterpriseのプランです。
算定表の核は次の数式です。A2に月初日、B3に除外分数、B4に算入する停止分数を置いた形です。
暦月の分数 B2: =DAY(EOMONTH(A2,0))*1440
稼働率 B5: =ROUND((B2-B3-B4)/(B2-B3),6)
返還率 B6: =LOOKUP(B5,$E$2:$E$5,$F$2:$F$5)
返還額 B7: =ROUND(月額利用料*B6,0)E列に0・0.95・0.99・0.999を昇順で、F列に0.5・0.25・0.1・0を置けば、LOOKUPが段階表になります。ROUND の桁は契約の端数規定に合わせて決めます。
端数の落とし穴 — 境界付近は結論が1段変わる
落とし穴
丸めてから比べるか、比べてから丸めるか
分母43,080分の月に、停止を43.5分と数えたとします。稼働率は99.8990%で、99.9%には届きません。小数第2位に丸めてから比べると99.90%になり、返還率は0%です。丸めずに比べると10%の段に入り、30,000円の返還が発生します。契約が「どの桁で、いつ丸めるか」を書いていなければ、Claudeに決めさせず、法務か営業に確認する項目です。
境界ちょうどの値も、浮動小数点の誤差で閾値の手前に倒れることがあります。算定表に「境界ちょうどの停止分数を入れた検算行」を1行置き、期待どおりの段になるかを毎回確かめます。
停止の数え方についても同じです。1分未満を切り上げる契約なら、障害ごとに切り上げてから合計するのか、合計してから切り上げるのかで、複数の断続障害が重なる月の合計が変わります。
検算をClaudeの外に置く
Claudeの出した稼働率は、そのまま請求に使わず、次の3点で人が確かめます。
- 算入と除外の判定が、条文のどの文言に基づくかを障害ごとに読む
- 電卓かExcelの別セルで、稼働率を1回だけ手で再計算する
- 段階表の境界から近い月は、丸める順序を契約文言と照らす
この月の140分の内訳が、障害一覧の開始・終了時刻から本当に出るかも見ます。時刻の欠けた行を、前後の流れから補っていないかが要点です。
顧客通知文を、算定表と同じ数字で起こす
算定表が固まったら、通知文を同じチャットで作らせます。数字を二度入力せず、算定表のセルを参照して書かせるのが、食い違いを防ぐ一番の方法です。通知文に入れる項目は次のとおりです。
通知文に入れる6項目
- 1
対象月と対象サービス
どの契約の、どの月の、どのサービスの話かを冒頭で示します。
- 2
稼働率とその根拠
算定した稼働率と、契約上の定義(分母と停止の数え方)を1文で添えます。
- 3
除外した時間と理由
計画停止と顧客側起因の分数を、算定表の数字のまま書きます。
- 4
返還率と返還額
段階表のどの段に当たるかと、金額を示します。
- 5
適用の方法
次回請求から控除するのか、顧客の申請が要るのかを契約どおりに書きます。
- 6
原因と再発防止
障害報告書の要約と、問い合わせ窓口を添えます。
文面は次のような形になります。以下は説明用の例で、Claudeの実際の出力ではありません。
件名: 【ご報告】2026年9月分のサービス稼働率とサービスクレジットについて
株式会社〇〇 ご担当者様
2026年9月のご利用分について、稼働率とサービスクレジットをご報告します。
・稼働率: 99.6750%
契約第〇条の定義により、計画停止(120分)とお客様側の設定に
起因する停止(60分)を除いて算定しています。
・適用されるクレジット: 月額利用料の10%(30,000円)
・適用方法: 次回のご請求から控除します。
障害の原因と再発防止策は、別添の報告書をご覧ください。通知文の作らせ方にも注意があります。契約にない謝罪や補償の約束、責任の範囲に関する言及は、Claudeが親切心で足すことがあります。指示に「契約条文にない約束を書かない」と入れ、送る前に法務または営業責任者が目を通す運用にします。
隣接する作業との切り分け
障害そのものの経緯は、Slackログから起こす手順を障害報告書をClaudeで起こす手順で扱っています。算定表と通知文は、その報告書の「影響範囲」の数字と食い違えないようにします。問い合わせチケットの応答期限を測るSLAは別の指標で、ZendeskのSLA違反をClaudeで月次分析する手順が対象です。
段階表から金額を出し、検算で締める流れは、運賃の別建て加算を扱う燃料サーチャージの算定表の作り方と同じ型です。顧客の契約書や障害記録を外部のAIに渡してよいかは、契約上の秘密保持の側で決まります。渡す前の点検はコンサルがClaudeに顧客資料を渡す前のNDA点検表が参考になります。
稼働率の外側にある適用条件も条文から拾う
返還率が決まっても、クレジットが実際に動くかは別の条件で決まります。契約によっては、顧客からの申請が要り、申請期限を過ぎると失効する書き方になっています。返還額に月額利用料に対する上限を置く契約もあれば、金銭の払い戻しではなく次回以降の利用料への充当に限る契約もあります。
この種の条件は、稼働率の計算とは別の条文に散らばりがちです。Claudeには算定を頼む前に、次のように条文の洗い出しだけを先に頼みます。
添付の契約条文から、サービスクレジットに関わる条件を
すべて抜き出して表にして。列は「条件の種類」「条文番号」
「原文の抜粋」「算定表に影響するか」とする。
申請の要否、期限、上限、返還の形式、複数月の扱いを必ず含めること。
該当する記載がない項目は「記載なし」と書き、推測で埋めない。「記載なし」と返ってきた項目は、契約担当への質問リストになります。ここを先に潰しておくと、通知文の「適用の方法」の欄を条文どおりに書けます。Claudeが条文を読み違えていないかは、原文の抜粋と条文番号を人が目で突き合わせれば確かめられます。
運用に組み込むときの要点
1か月に1回の作業にするなら、次の順で回すと手戻りが減ります。
- 月初に、前月の障害一覧と計画停止の通知記録をそろえる
- Projectsの指示は契約更新のたびに見直し、条文の版を明記する
- 境界から近い月だけ、契約担当を巻き込む
Googleの例には、エラーバジェットの20%超を1件の障害で使ったら事後検証を必須にする、という方針があります。クレジットが発生した月は、返還額だけで終わらせず、その障害がバジェットのどれだけを使ったかも一緒に記録しておくと、再発防止の優先順位を付けやすくなります。
Googleの方針は、バジェット超過の原因がテスト用トラフィックなど対象外の利用者だった場合は、機能開発を続けてよいとも書いています。契約上の除外時間の考え方と同じで、対象外を数えない根拠を、条文と記録の両方で説明できる状態にしておきます。