ooligo
claude-skill

テリトリー再編のインパクトシミュレーター

Difficulty
上級
Setup time
2-3 hours
For
revops
RevOps

Stack

作成済みのテリトリー再編案を受け取り、それが実際に何をもたらすかを報告する Claude Skill です。カバレッジがどこで崩れるか、どのテリトリーが担当 rep の到達可能な水準を超えたクォータを背負うか、そしてどの named account が注視に値するコストで担当替えになるかを示します。ルールがまだ編集可能なうちに、再編案が rep に届く前に実行し、readyreviseblocked のいずれかの判定で終わります。CRM に割り当てを書き戻すことは一切ありません。

バンドルは apps/web/public/artifacts/territory-carve-impact-simulator-skill/ に配置され、SKILL.md と 3 つの参照テンプレートを含みます。references/1-carve-input-template.md(提案された再編案 — 順序付きルール、rep のロスター、発効日)、references/2-coverage-thresholds-template.md(組織のキャパシティモデル、ramp カーブ、混乱の許容値、保護対象アカウント)、references/3-sample-output-format.md(Skill が出力する正確な Markdown と、記入済みの例)です。

使うべき場面

会計年度初めまたは年央のリアラインメントの 2〜4 週間前、誰かが作成したもののまだ誰も検証していない再編案に対して使います。このタイミングは見た目以上に重要です。再編案は rep がマップを見た瞬間から政治的に変更しづらくなり、Skill は再編案の spec から carve_status を読み取るため、社内共有後に実行したレポートは「ここで推奨する修正は工数だけでなく信頼も消費する」という注記から始まります。単一セグメントでの実行も有効で、全体のリアラインメントに先行する 1 つの pod を対象にできます。セグメントが計画未達で、カバレッジ設計と実行のどちらに原因があるか誰も言えない場合の事後実行も同様です。

投資に見合う価値を生むのは重み付けです。担当替えになるアカウント数を数えるだけならどの計画ツールでもできますが、その件数はほぼ役に立ちません。休眠アカウント 200 件を動かす再編案はコストゼロで、終盤ステージのパイプラインを持ち担当 rep との関係が 3 年あるアカウント 12 件を動かす再編案はそうではありません。重み付けなしの件数はこの 2 つを逆順に並べます。Skill は実質的なオープンパイプラインに関係年数の係数を掛けて churn を順位付けし、通常は 200 件の変更リストを、リスクの大半を占める 4〜5 行にまで絞り込みます。

使うべきでない場面

  • 再編案そのものの生成。 これは他の誰かが設計した再編案を採点するものです。ルールを提案せず、アカウントを再配分せず、最適な分割を探索もしません。ドラフトがなければシミュレーションする対象がありません。
  • Salesforce への書き戻し。 Skill は触れるすべてのオブジェクトに対して読み取り専用です。テリトリー変更は、人がプランを承認したうえで、それを所管するシステムで実行されます。出力を自動割り当てジョブに接続すると、このツールが判断材料を提供するために存在している当の意思決定そのものが失われます。
  • 報酬計算のインプット。 キャパシティレポートが答えるのは「すでに設定されたクォータをそのテリトリーが背負えるか」です。これを報酬計算に流すと、インプットを争う直接的なインセンティブが生まれます。生産性バンドが再交渉され、ramp カーブが取引の対象になり、モデルは現実を記述しなくなります。
  • アカウント ID のスプレッドシートとしてしか存在しない再編案。 アカウントと rep のペアの一覧では、ルーティングエンジンが本番でどう動くかをシミュレートできません。まずルールに変換してそれをシミュレートしてください。ルールがスプレッドシートを再現できないなら、その乖離自体が発見事項です。
  • 所有履歴のないブック。 AccountHistoryOwnerId の変更を記録していない場合、関係年数はどこでもゼロと読み取られ、どの再編案も安く見えます。Skill は history_coverage_floor_pct を下回ると、裏付けのない churn の数値を出す代わりに blocked を返します。

セットアップ

  1. 再編案を順序付きルールとして記述する。 references/1-carve-input-template.md のサンプルルールを、ルーティングエンジンが評価する順序どおりに自社のルールへ置き換えます。ラベルではなく Salesforce API のフィールド名を使ってください。順序は決定的です。Skill は実行を再現するために first-match-wins で評価するため、ルールを並べ替えると割り当てマップが変わります。
  2. キャッチオールルールの扱いを決める。 テンプレートにはすべてを受け止める最終ルールが入っています。残せば no_rule_matched は常にゼロになり、カバレッジレポートはプールの大きさを問う内容に変わります。外せば本当のルールの抜けが名指しで浮かび上がります。テンプレートの選択をそのまま引き継ぐのではなく、意図して決めてください。
  3. しきい値ファイルを埋める。 references/2-coverage-thresholds-template.md では、ベンチマークからではなく、完全に ramp した rep 1 人あたりの直近 12 か月の closed-won から productivity_bands を導出します(high は 75 パーセンタイル、mid は中央値、low は 25 パーセンタイル)。max_revenue_churn_pct は明示的に設定してください。テンプレートの 25% は、何かがフラグされる前にテリトリーの売上関係の 4 分の 1 が動くことを許容する水準で、ボリューム型 mid-market には適しますが、高接触の enterprise にはあまりに緩すぎます。
  4. ramp カーブをバックテストする。 キャパシティの数値を信頼する前に、一度 dry_run: true で実行してください。自社のカーブを昨年の新規入社コホートの attainment と比較し、差分を報告します。財務が承認した ramp と、コホートが実際に出した ramp のギャップは、キャパシティモデルにおける単独最大の誤差であることがほとんどです。
  5. インストールと権限の絞り込み。 バンドルを ~/.claude/skills/territory-carve-impact-simulator/ に配置し、SFDC_TOKENAccountAccountHistoryOpportunityOpportunityHistoryUserUserTerritory2Association への読み取り権限を設定します。読み取り専用は用心ではなく、正しいスコープです。

この skill が実際に行うこと

2 パス構成で動作し、この分割は意図的なものです。1 パス目は再編案のルールを宣言順に評価し、最初に一致した時点で停止して各アカウントを割り当て、どのルールインデックスが一致したかを記録します。2 パス目は、確定した割り当てマップに対してインパクトの計算を行います。ルールがまだ解決中の段階で churn とキャパシティを同時に計算すると、複数のルールが取り得るアカウントを二重計上してしまいます。first-match-wins では実際に取るルールは 1 つだけなので、その途中計算の数値は決して存在しない再編案を記述していることになります。

未割り当てアカウントは 1 つのバケットにまとめず、2 つの原因に分けます。no_rule_matched はカバレッジの欠落、null_input_field はデータの欠落で、Skill は問題のフィールド名を明示します。この 2 つを混同すると、修正が backfill であるはずの場面で計画チームがルールの再設計に向かってしまいます。references/3-sample-output-format.md の記入例では、387 件のアカウントが Account.AnnualRevenue が null であるために上位 2 つの enterprise ルールをスキップし、その結果としてのみ mid-market に着地しています。設計ではなく偶然によるセグメンテーションであり、未割り当ての単一カウントでは見えません。

キャパシティは、人数 × 平均クォータではなく、ramp 調整済みのクォータ担持キャパシティです。各 rep は、発効日時点で開始日が位置する月の ramp 係数でスケールされた生産性バンドを持ち寄ります。アカウント数では均衡していても本番開始の 6 週間前に始動する rep を 2 人抱えるテリトリーは、ここで不足として表示されます。これはまさに、アカウント数で均衡させた再編案が隠すようにできている失敗です。

この計算はモデルによるレコードの読み取りではなく、コード上で実行されます。同じ再編案を 2 回実行して異なる数値が出た瞬間に計画の議論は崩壊しますが、数千行のアカウントを読むモデルは再現性を持ちません。モデルの仕事は順位付け、説明の組み立て、そして「何を変えるか」のセクションです。

コストの実態

レコード単位の処理がコード上で行われるため、トークンコストはブックの大きさではなく要約の大きさに比例します。5,000 アカウント・30 rep の再編案は、公開 API 料金(入力 100 万トークンあたり 3 USD、出力 100 万トークンあたり 15 USD)の Claude Sonnet 5 で、1 回のシミュレーションあたりおよそ 2〜4 USD です。対象となるのは参照ファイル、集計テーブル、レポート本体であり、5,000 行そのものではありません。この数字はトークン単価と一般的なレポート長から導いた推定値で、アカウント数ではなく求める説明量に応じて変動します。計画サイクルでは再編案の改訂に伴い 5〜15 回実行するため、サイクル全体で 50 USD 程度の API 支出を見込んでください。

意味のある比較対象は時間です。この 3 つのビューを手作業で作る RevOps アナリスト、つまり提案ルールに対してアカウントブックをピボットし、パイプラインと所有履歴を結合し、ramp 加重のキャパシティモデルを組む作業は、1 回のイテレーションに 3〜5 日かかります。だからこそ多くのチームは 1 回しか実施せず、その後は最初のバージョンを前提に議論します。Skill は各イテレーションを 15 分の実行とレポートを読む 1 時間に変え、それが計画期間の中に改訂を 1 回ではなく 5 回収める条件になります。

代替案との比較

  • Salesforce Sales Planning — 年間契約で 1 ユーザーあたり月額 75 USD と公開されており(ベンダーの価格ページ、2026-08-10 確認)、Hierarchy Management、Segment Design、Territory Planning を含みます。Agentforce 1 Sales Edition では 1 ユーザーあたり月額 550 USD に同梱されます。40 席の営業組織なら、単体アドオンで年間およそ 36,000 USD です。再編案を統制され、バージョン管理された CRM 内の成果物として扱い、計画と実行を 1 つのシステムに置きたいならプラットフォームを選んでください。誰かがすでにスプレッドシートで書いた再編案に対する事前検死が必要なら Skill を選んでください。両者は排他的ではありません。Sales Planning で作成した再編案に Skill をかけるのは妥当なセカンドオピニオンです。プランを生成したプラットフォームは、そのプランが失敗する理由を探す場所としては自然ではないからです。
  • Fullcast — テリトリー、クォータ、キャパシティ、ルーティングを扱う plan-to-execution プラットフォームで、価格は問い合わせベース、公開情報はありません。再編が年次ではなく継続的である場合に正しい選択です。アカウントと人員の動きに応じてテリトリーが調整され、プランとルーティングルールが同期し続けます。Skill には実行レイヤーが一切ないため、この運用形態では大きく劣ります。
  • スプレッドシート — 多くの企業における実際のベースラインであり、本番投入されたうえで 3 週目に静かに改訂される再編案を生み出します。混乱の重み付けも ramp のモデル化もできないため、再編案が持ちこたえるかどうかを決める 2 つの問いでちょうど失敗します。
  • とりあえず出して四半期内に直す — 正直なところの初期設定です。コストは予算項目としては現れません。計画未達のセグメントと、2 か月目に退職する enterprise の rep 2 人という形で現れ、その時点では誰もそれを再編案に結び付けません。

注意点

  • 本番開始前に古くなる CRM スナップショット。 ガード:出力ヘッダーに snapshot_date と再実行期限(snapshot_staleness_days から既定で 14 日)を記載します。期限は脚注ではなくヘッダーに置き、その日を過ぎた数値は無効であるとレポート自身が宣言します。
  • Account.OwnerId の所有履歴が記録されていない。 関係年数が静かにゼロへ縮退し、どの再編案も安く読めてしまいます。ガード:Skill は AccountHistory におけるそのフィールドのカバレッジを確認し、下限を下回る場合は裏付けのない数値を報告する代わりに blocked を返します。
  • データではなく人事が書いた ramp カーブ。 ガード:dry_run が昨年のコホートに対してカーブをバックテストし、完全な生産性到達までの実測月数がファイルの値を ramp_tolerance_months 超で上回る場合に警告し、設定値と並べて実測カーブを報告します。
  • 増える一方の保護対象アカウントリスト。 誰かが気にかけるアカウントがすべて保護対象になると、リストはシグナルであることをやめ、リアラインメントへの拒否権に変わります。ガード:各エントリーに日付付きの理由を持たせ、しきい値ファイルの last_reviewed 日付をもとに、180 日を超えたすべてのレポートに警告バナーを出します。
  • revise を拒否権として扱うこと。 判定が名指しするのはテリトリーとアカウントであって、意思決定ではありません。採用計画が第 2 四半期に穴を埋めるという理由で、経営がキャパシティ不足を承知のうえで再編案を出すことはあり得ます。ガード:「何を変えるか」のセクションは修正内容を単位付きで示します(クォータを約 120 万分移す、アカウントを 1 件除外する、など)。そうすることでリスクの受容が、規模の伴った明示的な選択になります。

スタック

  • Salesforce — アカウント、所有履歴、オープンパイプライン、商談ステージ履歴、ユーザーレコード
  • Claude — ルール評価、インパクトの順位付け、レポートの統合。計算はコンテキストではなくコード上で実行
  • 再編案の spec としきい値のファイル — 出力を汎用ではなく自社固有のものにする 2 つのインプット
  • ルーティングまたはテリトリー管理システムFullcastLeanData、または Salesforce Territory Management。承認された再編案が実際に実行される場所

Files in this artifact

Download all (.zip)