3 つの独立した拡大シグナル、すなわち Pendo からの製品利用状況、契約エンタイトルメントに対するシート消費、Gong の通話から得られる購買意図の言語表現をスキャンし、アカウントの book を拡大レディネスで順位付けする Claude Skill です。基準を満たした各アカウントについて、1 行の判定、その判定を生んだ 3 つのサブスコア、最も強い単一の証拠、そして推奨プレイ(シートの true-up、tier アップグレード、新規モジュールの land、新しいチームへのマルチスレッディング)を出力します。出力は CSM が 2 分でスキャンできる並べ替え済みの Markdown テーブルと、AE が deal のメモに貼り付けるアカウント別ブリーフです。artifact バンドルには SKILL.md と、チームが一度適応させて book 全体で再利用する 3 つの参照ファイルが含まれます。
バンドルは apps/web/public/artifacts/upsell-signal-detector-skill/ にあります。SKILL.md、references/1-signal-thresholds.md(自社の pricing に合わせて調整するスコアリングのバンドとプレイマッピングのテーブル)、references/2-usage-event-map.md(どの Pendo のフィーチャーイベントがどの有料 tier にマッピングされるか)、references/3-sample-output.md(3 つの記入済みサンプルを含む、テーブルとブリーフの文字どおりのフォーマット)です。最初の実行前に 4 つすべてを読んでください。
使うべきとき
あなたは 30 から 300 アカウントの book を持つ CSM または AE で、毎週の pipeline review の前に book を拡大の観点でトリアージしたい、「誰が健全か」という一般的なリストではなく、という場合です。この Skill は、3 つのシグナルを一緒に読まなければならないケースのために作られています。どれか 1 つだけでは誤解を招くからです。利用は伸びているがすでに最上位 tier を購入済み(headroom なし)、シートは上限に達しているが renewal は 11 か月先(タイミングが悪い)、Gong では予算保有者がまだ販売していないモジュールについて尋ねている(本物のシグナル)。3 つを組み合わせて読むことが、「忙しそう」と「もっと買う準備ができている」を分けます。
Pendo にそのアカウントの利用履歴が少なくとも 28 日分あり、契約シート数と tier が Skill の読める項目に記録されていて、直近 90 日に少なくとも 2 件の Gong の通話がある場合に、最も有用な出力を生みます。それらの基準を下回ると、推測する代わりにそのアカウントには insufficient-signal を返します。1 つのデータ点の上に作られた自信のあるアップセルの順位は、順位がないことより悪いのです。AE がそれに基づいて動くからです。
使うべきでないとき
renewal リスクや churn の検知器として使わないでください。高い利用と上限に達したシート数はここでは expansion-ready と読まれますが、同じアカウントが 1 回の悪い QBR で churn しかねません。この Skill は購買レディネスを採点するのであって、retention ではありません。health score(cs-health-score-builder-skill)を並行して走らせ、赤の health バンドはこの Skill が推奨するどのプレイに対しても拒否権として扱ってください。
最初の 60 日のアカウントには向けないでください。オンボーディング期の利用スパイクはアクティベーションであって拡大意図ではなく、Skill はパワーオンボーディングをシートの true-up と読み違えます。references/1-signal-thresholds.md ファイルには min_account_age_days: 60 ガードが付属しています。維持してください。
オポチュニティの自動作成や outbound の送信をさせないでください。Skill は順位付けと推奨を行います。人間がブリーフを読み、Skill が見られない文脈(辞めたばかりの champion、通話外で言及された予算凍結)に対して証拠を健全性チェックし、判断します。出力をシーケンスツールに直結させると、トリアージの補助が spray-and-pray のエンジンに変わり、関係を焼き尽くします。
Pendo の利用が有料価値に結びついていない場合は使わないでください。フィーチャーイベントが references/2-usage-event-map.md で tier にマッピングされていなければ、利用サブスコアはノイズです。無料フィーチャーの多用は拡大シグナルではありません。
セットアップ
初回はおよそ 45 から 90 分で、その大半は自社のフィーチャーイベントを有料 tier にマッピングし、しきい値を自社の pricing に合わせて較正することに費やされます。
- Skill をインストールします。
apps/web/public/artifacts/upsell-signal-detector-skill/のバンドルを~/.claude/skills/upsell-signal-detector/に置きます。rank_book(account_ids, window_days=90)という単一のコマンドと、Pendo、シート/tier 項目のソース、Gong 向けの内部リゾルバを公開します。 - 認証情報を接続します。
PENDO_API_KEY(集計フィーチャーイベントとアカウントメタデータの読み取り)、GONG_API_KEY(通話とトランスクリプトの読み取り)、そしてENTITLEMENT_SOURCE(各アカウントの契約シート数、アクティブシート数、現在の tier を返す path または query)を設定します。多くのチームはこれを CRM 項目または billing のエクスポートに向けます。Skill は Pendo が契約を保持しているとは仮定しません。 - 利用イベントを tier にマッピングします。
references/2-usage-event-map.mdを開き、サンプルのマッピングを、各イベントが解放する有料 tier ごとにグループ化した実際の Pendo のフィーチャーイベント ID に置き換えます。これが要となるセットアップ手順です。利用サブスコアはこのマップの良し悪しに依存します。無料 tier のイベントは除外されるよう明示的にマークしてください。 - しきい値を較正します。
references/1-signal-thresholds.mdを開き、シート飽和のバンド(デフォルト: アクティブシートが契約数の 90% 以上に 14 日連続で達したときに true-up プレイが発火)、利用 headroom のバンド、Gong 意図キーワードのリスト(デフォルトの種: “add seats”、“another team”、“upgrade”、“what would it cost to”、競合のモジュール名)を設定します。各シグナルの組み合わせが自社の pricing に合った正しい推奨プレイにマッピングされるよう、プレイマッピングのテーブルを調整します。 - book に対して実行します。
rank_book(account_ids=[...], window_days=90)。Skill は並べ替え済みの Markdown テーブルを 1 つと、基準を満たした各アカウントのブリーフを書き出します。テーブルの上位を pipeline ミーティングでレビューしてください。ブリーフは deal のメモに供給されます。
Skill が実際に行うこと
Skill はアカウントごとに 3 つのシグナルを並行して取得します。独立したシステムにアクセスしており、ボトルネックは API のレイテンシであって Claude のトークンではないからです。Pendo は直近ウィンドウの集計フィーチャーイベントを返し、entitlement ソースは契約シート、アクティブシート、tier を返し、Gong はウィンドウの通話メタデータとトランスクリプトを返します。いずれかのソースが空を返した場合、そのサブスコアは unavailable として記録され、composite は残ったもので計算され、その gap はブリーフに明記されます。決して黙ってゼロ埋めしません。
次に、Claude による推論の前に各シグナルを決定論的に採点します。バンドはチームが所有するポリシー上の決定であって、モデルが下すべき判断ではないからです。シート飽和は契約シートに対するアクティブシートで、references/1-signal-thresholds.md のバンドに対して採点されます。true-up シグナルは飽和が 14 日連続で持続して初めて発火するので、1 日のオンボーディングスパイクでは発火しません。利用 headroom はアカウントの最も多用されたフィーチャーを references/2-usage-event-map.md 経由で tier にマッピングし、現在の tier を超える有料価値にどれだけ既に押し当たっているかを採点します。次の tier でゲートされたフィーチャーの多用は最も強い単一シグナルです。アカウント年齢と health 拒否権は、ソフトな重みではなくハードなゲートとしてここで適用されます。
Gong のシグナルだけが Claude に渡され、それも 2 パスの分類としてのみです。意図の言語表現はキーワード一致が間違える唯一のシグナルだからです。パス 1 はトランスクリプトから候補となる意図の発話を抽出します。system prompt は引用の捏造を禁じ、各候補が逐語の行と speaker の役割を引用することを要求します。パス 2 は各候補を expansion-intent / status-quo / churn-risk-language に分類し、信頼度を割り当てます。信頼度 0.5 を下回るものはカウントされず破棄されます。柔らかな「いずれもっとシートを検討するかも」はシグナルではなく、AE が追うべきではないからです。抽出と分類を分けることは重要です。長いトランスクリプトに対する単一パスは最後に読んだ通話を過大評価し、意図を膨らませます。
Compute Composite は 3 つのサブスコアをアカウントごとの重み(デフォルト: 利用 0.4、シート 0.35、意図 0.25、しきい値ファイルで調整可能)と組み合わせ、0-100 の拡大レディネススコアとバンドを生成し、支配的なシグナルによってマッピングテーブルから推奨プレイを選択します。続いて Write Brief が、最も強い単一の証拠項目をその具体的な数値または逐語引用とともに名指す 1 行の判定と 3 文のブリーフを Claude に生成させます。決して合成された一般論にはしません。テーブルは降順に並べ替えられます。基準バンドを下回るアカウントと insufficient-signal のアカウントは、book が黙って捨てられるのではなく完全に説明されるよう、下部に別途リストされます。
コストの実際
アカウントごとに、完全な実行は 3 つの外部読み取り(Pendo、entitlement ソース、Gong)と 2 つの Claude 呼び出し、すなわち 2 パスの Gong 分類(トランスクリプト量に応じておよそ 4,000 から 9,000 入力トークン、出力 600 未満)とブリーフ(入力約 800、出力約 150)を行います。Claude Sonnet の価格では 1 アカウントあたり約 2 から 4 セント、200 アカウントの book で完全な実行 1 回あたり約 $4 から $8 です。支配的な入力変数は Gong のトランスクリプト量なので、アカウントあたり直近 6 件の通話と各 4,000 文字に上限を設けることでコストが抑えられます。200 アカウントの実時間は約 8 から 14 分で、workspace あたり毎秒 3 通話という Gong の取得が支配的です。
手作業のベースラインとの比較: CSM が 200 アカウントの book を目視で拡大トリアージする場合、Pendo を開き、CRM でシートを確認し、通話の文脈を思い出すのに四半期あたり半日から丸 1 日を費やし、それでも誰もレビューしなかった通話にシグナルがある静かなアカウントを見逃します。Skill は数分で実行され、すべてのトランスクリプトを読みます。正直なトレードオフは、Skill が候補を浮かび上がらせるという点です。CSM は依然として上位 10 から 20 件に判断の時間を費やしますが、そここそがその時間を使うべき場所です。
成功の指標
四半期を通じて「基準バンドにランクインした」から「拡大オポチュニティが作成された」への転換率を追跡してください。有用な Skill は 30% を上回ります。つまり浮かび上がらせたものの明確な多数が少なくとも会話に値するということです。20% を下回る場合、しきい値が緩すぎるかイベントマップが間違っています(たいていは後者で、無料フィーチャーが利用スコアに漏れ込んでいます)。Skill がフラグを立てたアカウント由来の拡大 ARR を book のベースラインと比較し、また insufficient-signal アカウントの件数も追跡してください。これは upstream で修正できる Pendo または Gong のカバレッジ gap の先行指標です。
代替案との比較
Gainsight または Pendo 自身の拡大 / product-qualified-lead スコアリングとの比較。 すでに Gainsight の拡大スコアカードや Pendo の PQL シグナルに支払っているなら、利用とシートの次元をよくカバーし、build を必要としません。それらが行わないのは、Gong の通話言語、すなわちまだ所有していないモジュールについて尋ねる予算保有者を読み取り、同じ順位に織り込むことです。この Skill は会話シグナルを追加し、スコアだけでなくプレイを出すために存在します。Gainsight があるなら、これを Gong 意図のレイヤーとして走らせ、利用のロールアップは Gainsight に任せてください。補完関係です。
利用 warehouse に対する DIY の SQL query との比較。 query はシート飽和と利用 headroom の計算には正しいツールで、スケールでの実行も安価です。通話の意図を分類することはできず、AE が動ける引用付きの理由を伴う推奨プレイではなく、数値を生みます。data engineering があるなら決定論的なサブスコアには query を使い、意図パスとブリーフにはこの Skill をその出力に向けてください。
毎週の pipeline ミーティングで目視するとの比較。 これが status quo です。30 アカウントの book では機能し、100 以上で壊れます。静かな拡大レディなアカウント、すなわち安定した利用、火事なし、誰かが別のチームについて尋ねた 1 件の通話、まさにこれが人間のトリアージが見逃すものだからです。Skill の強みは、毎週すべてのトランスクリプトを疲労なく読むことです。
注意点
- 無料フィーチャーの利用がスコアを膨らませる。
references/2-usage-event-map.mdが不完全だと、無料または既に所有しているフィーチャーの多用が拡大 headroom として読まれ、テーブルの上位を偽陽性で氾濫させます。ガード: イベントマップは採点される各イベントに明示的な tier タグを持たせることを要求し、マッピングされていないイベントは一般的なアクティビティとしてカウントされる代わりに利用サブスコアから除外されます。マップを四半期ごとに現在の pricing に対して監査してください。 - オンボーディングスパイクが拡大と読み違えられる。 強くランプしている新規アカウントは、true-up 寸前の飽和アカウントと同一に見えます。ガード:
min_account_age_days: 60ゲートと 14 日連続の飽和要件の両方がアクティベーション期のスパイクを除外します。Skill は年齢ゲートを下回るアカウントには true-up プレイではなくonboarding-phaseを返します。 - 意図に関するキーワードの偽陽性。 “We’re not adding seats this year” は “adding seats” を含み、素朴なキーワード一致はこれを意図として採点します。ガード: 2 パスの Claude 分類は発話全体を文脈の中で読み、信頼度の下限 0.5 が曖昧または否定の言語を破棄します。下限を上回って分類された expansion-intent のみがカウントされます。
- 実は churn リスクにあるアカウントを拡大する。 上限に達し多用しているアカウントでも、不満を抱えていることがあります。ガード: health バンドの拒否権、すなわち health score を渡すと赤バンドのアカウントは health フラグを名指しした別個の
do-not-expandセクションに移され、CSM が火消し中のアカウントについて AE がプレイを受け取ることは決してありません。 - 古い entitlement データ。 シートと tier のソースが現実に遅れている場合(先週 true-up がクローズしたのに項目が同期していない)、飽和の計算は間違います。ガード: Skill は entitlement ソース自身の最終同期タイムスタンプを読み取りブリーフに報告します。7 日より古い場合、シートサブスコアは
entitlement-staleとフラグされ、データが最新になるまで true-up プレイは抑制されます。
スタック
- Pendo — 直近ウィンドウの集計フィーチャーイベントとアカウントメタデータ(Pendo API)
- Gong — 2 パスの意図分類のための通話トランスクリプト(Gong API、直近 90 日、アカウントあたり 6 通話に上限)
- Claude — 2 パスの Gong 意図分類とアカウント別ブリーフ(コストの観点で Sonnet を推奨。決定論的なサブスコアはモデルなしで実行)
- Entitlement source — 契約シート、アクティブシート、現在の tier(CRM 項目または billing のエクスポート、正規のソースを 1 つ選ぶ)