生命保険の払込状況・住所変更・問い合わせ・経過年数から失効と解約のおそれを毎月見込み、募集人がフォローする順番と理由を出す
生命保険の保有契約ごとに、払込の状況・住所変更・問い合わせ・経過年数の記録から、今後3か月以内に失効または解約に至る確率を毎月見込みます。募集人ごとに、フォローする順番と、その順番になった理由の事実を一覧にして渡します。
- 連携・自動化
- Python
- 対象業界
- 保険/金融
- 対象部門
- 営業
- 対象業務
- 比較検討/集計・分析
- 主な課題
- データ分析に時間がかかる/営業フォローが追いつかない/属人化している
- AIで行う処理
- 予測
- 主な効果
- 判断支援/工数削減/機会損失防止
- 導入難易度
- ★★★★★
- 実装レベル
- 本格構成
- 費用感
- 個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 月初に、収納のシステムから前月の口座振替不能と未入金の一覧を書き出す
- 契約管理システムから、住所変更・払込方法の変更・担当の交代があった契約を書き出す
- コールセンターの応対記録から、解約返戻金・契約者貸付・解約手続きの照会があった契約を書き出す
- 3つの一覧を契約番号でつなぎ、重なった契約に印を付ける
- 1件ずつ、払込の履歴、経過年数、保険の種類、担当の募集人の活動記録を開いて読む
- 「急ぎ」「今月中」「様子見」の3段階を付け、理由を一言書く
- 支社ごとに分けて、支社長と募集人に配る
- 自動毎月1日の朝、収納・契約管理・応対記録・活動記録の前月分の書き出しを、分析用データベースから受け取る
- 自動契約番号で記録をつなぎ、契約ごとの特徴(直近の口座振替不能の回数、照会の種類と日付、経過月数など)を作る
- 自動学習済みのモデルが、契約ごとに今後3か月以内に失効または解約に至る確率を出す
- 自動確率の上位について、根拠になった事実を記録から並べ、勧める連絡の種類を規則で付ける
- 自動担当の募集人ごと、支社ごとに一覧を分け、担当のいない契約は支社長の一覧に載せる
- 人営業管理の担当が、上位の契約と担当のいない契約を確かめ、順番を入れ替える理由があれば書き込む
- 人支社長が一覧を確かめ、募集人に配る
- 人募集人が契約者に連絡し、結果(話せた/払込方法を変えた/解約の意向が固い など)を活動記録に残す
各工程の詳しい説明を読む
- 月初に、収納のシステムから前月の口座振替不能と未入金の一覧を書き出す
- 契約管理システムから、住所変更・払込方法の変更・担当の交代があった契約を書き出す
- コールセンターの応対記録から、解約返戻金・契約者貸付・解約手続きの照会があった契約を書き出す
- 3つの一覧を契約番号でつなぎ、重なった契約に印を付ける
- 1件ずつ、払込の履歴、経過年数、保険の種類、担当の募集人の活動記録を開いて読む
- 「急ぎ」「今月中」「様子見」の3段階を付け、理由を一言書く
- 支社ごとに分けて、支社長と募集人に配る
(a)止まってから動くので、間に合わない。 一覧の起点が「口座振替不能」なので、載るのは払込が止まった後です。月払の払込猶予期間は払込期月の翌月の1日から末日までで、猶予期間を過ぎると、自動振替貸付が適用されるか、そのまま失効するかのどちらかになります。 一覧が配られるのが月の半ばなら、話せる時間は2週間ほどしか残りません。
(b)解約は一覧に載らない。 払込を続けたまま解約の手続きに来る契約者は、収納のシステムからは見えません。手がかりは、コールセンターに「解約したらいくら戻るか」と照会があったことくらいです。 その応対記録は、5番目で1件ずつ読まないと出てきません。
(c)順番が担当の経験で決まる。 同じ「2か月続けて口座振替不能」でも、残高不足が続く契約と、口座を変えたのに届けが遅れただけの契約では重さが違います。ベテランの担当は応対記録の一言から見分けますが、その見分け方は一覧の「理由」の欄に一言しか残りません。 担当が替わると、順番の付け方も変わります。
(d)担当のいない契約が後回しになる。 募集人が退職した後、新しい担当に引き継がれるまでの契約は、誰の一覧にも載らないまま払込が止まることがあります。 引き継ぎの一覧は別のシステムにあり、4番目でつなぎ忘れると落ちます。
- 【自動】 毎月1日の朝、収納・契約管理・応対記録・活動記録の前月分の書き出しを、分析用データベースから受け取る
- 【自動】 契約番号で記録をつなぎ、契約ごとの特徴(直近の口座振替不能の回数、照会の種類と日付、経過月数など)を作る
- 【自動】 学習済みのモデルが、契約ごとに今後3か月以内に失効または解約に至る確率を出す
- 【自動】 確率の上位について、根拠になった事実を記録から並べ、勧める連絡の種類を規則で付ける
- 【自動】 担当の募集人ごと、支社ごとに一覧を分け、担当のいない契約は支社長の一覧に載せる
- 【人】 営業管理の担当が、上位の契約と担当のいない契約を確かめ、順番を入れ替える理由があれば書き込む
- 【人】 支社長が一覧を確かめ、募集人に配る
- 【人】 募集人が契約者に連絡し、結果(話せた/払込方法を変えた/解約の意向が固い など)を活動記録に残す
6番目が、この設計の分かれ目です。 担当が見るのは1,200件すべてではありません。上位の契約と、担当のいない契約、そしてモデルが学んだことの無い保険の種類の契約だけです。 残りは一覧で流し見ます。
8番目の結果が、次の月の学習の材料になります。 「連絡したら払込方法を変えて続いた」という記録が溜まると、どの理由のときにどの連絡が効いたかを後から見られます。ただし、連絡したこと自体が結果を変えるので、学習の扱いには注意が要ります(第12章)。
02今回想定するシステム構成
収納のシステム(口座振替の結果・未入金) 契約管理システム(契約・住所変更・払込方法・担当) コールセンターの応対記録(照会の種類と日付) 募集人の活動記録(面談・連絡の結果) │ 毎月1日の朝、分析用データベースへ前月分を書き出し ▼【トリガー】定時実行 Python(pandas) ├──▶ 契約番号で記録をつなぐ ├──▶ 契約ごとの特徴を作る(機微情報の列は読まない) ▼ scikit-learn(HistGradientBoostingClassifier+確率の較正) │ 今後3か月以内に失効または解約に至る確率 ▼ Python ── 理由の事実を並べる/勧める連絡の種類を規則で付ける ▼ 営業本部の共有の一覧(支社別・募集人別) ▼ 【営業管理の担当と支社長が確かめて、募集人へ配る】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Python(pandas・scikit-learn の HistGradientBoostingClassifier) | R、BigQuery ML |
| データの取得元 | 社内の分析用データベース(収納・契約・応対・活動の書き出し) | 各システムのCSVの書き出し |
| 一覧の出力先 | 営業本部の共有の一覧(支社別・募集人別のシート) | 募集人の活動管理システムの通知 |
| 定時実行 | 社内のジョブ管理の仕組み | OSのタスクスケジューラ |
生成AIは使いません。 この構成で行うのは、記録から確率を見込むことと、事実を並べることです。契約者の個人情報を外部の生成AIに渡す場面を、最初から作りません。 理由の文章も、テンプレートに事実を差し込むだけで足ります。
契約管理システムには書き込みません。 確率を契約の画面に出すと、コールセンターの応対や支払の査定をする担当の目に入り、契約者の扱いが変わるおそれがあります。 一覧は営業本部の共有の場所にだけ置き、見られる人を営業管理の担当・支社長・担当の募集人に限ります。
モデルに HistGradientBoostingClassifier を選ぶのは、欠けた値をそのまま扱えるからです。 公式の説明では、学ばせるときに分かれ目ごとに欠けた値を左右どちらへ送るかを学ぶとされています。口座振替の契約には「振替不能の回数」があり、クレジットカード払の契約には無い、 というように、払込方法で埋まる列が違います。0で埋めると「無い」と「ゼロ回」の区別が消えます。
カテゴリの列もそのまま入ります。 categorical_features の既定は "from_dtype" で、表の列をカテゴリの型にしておけば、保険の種類、払込方法、払込の経路を数値に直さずに渡せます。
03どうやって実装するのか
処理の起点を決める
毎月1日の朝6時に動かします。 前月末の口座振替の結果が収納のシステムに入り、分析用データベースへの書き出しが終わった後です。月初の朝の打合せで、営業管理の担当が一覧を開ける時刻にします。
見込む先は「今後3か月以内に、失効または解約に至るか」です。 月払の払込猶予期間は払込期月の翌月の末日までなので、1か月先だけを見込むと、一覧に載った時点で猶予期間に入っている契約が大半になります。3か月先まで見込めば、払込が止まる前に話せる契約が一覧の上に来ます。
失効と解約は1つの的にまとめます。 分けて見込むと、どちらも件数が少なくなり、モデルが学べる例が減ります。理由の事実の側で「払込が止まりそう」か「解約に向かっている」かが分かれば、募集人の話し方は変えられます。
月の半ばにもう一度、軽い版を動かします。 15日に、前半の口座振替不能と照会だけを足して確率を出し直し、上位に新しく入った契約だけを支社長に知らせます。 月初の1回だけでは、月の前半に出た照会が翌月の一覧まで載りません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 契約の基本 | 契約番号、保険の種類、契約日、経過月数、払込方法、払込の経路、月額換算の保険料、払込期間の残り | 契約管理システム |
| 払込の記録 | 月ごとの口座振替の結果(済/不能と不能の理由のコード)、未入金の月数、自動振替貸付の適用の有無 | 収納のシステム |
| 異動の記録 | 住所変更、払込方法・口座の変更、名義の変更、減額や払済への変更の日付 | 契約管理システム |
| 照会の記録 | 解約返戻金・契約者貸付・解約手続き・払込方法の変更に関する照会の日付と種類 | コールセンターの応対記録 |
| 担当の記録 | 担当の募集人、担当の交代の日付、最後に面談・連絡した日 | 募集人の活動記録 |
| 結果 | その後3か月以内に失効または解約に至ったか | 契約管理システム |
質を決めるのは、照会の記録です。 応対記録の自由記述をそのまま使うのではなく、コールセンターが応対のたびに付けている「照会の種類」のコードを使います。 解約返戻金の照会、契約者貸付の照会、解約書類の請求。この3つのコードが付いた日付があるだけで、払込の記録に出ない解約の兆しが見えるようになります。
入れない列を、表で決めておきます。
| 入れない列 | 理由 |
|---|---|
| 給付金・保険金の請求の履歴 | 保健医療に関する情報で、機微(センシティブ)情報に当たる |
| 告知の内容、査定の結果 | 同上 |
| 契約者の性別・国籍 | 連絡の順番を属性で変える理由にしない |
| 応対記録の自由記述 | 健康や家族の事情が書かれていることがある |
1行目を外すのが、いちばん大事な判断です。 入院の給付金を請求した後に解約が増える、という傾向はあるかもしれません。しかし、金融分野のガイドラインでは機微(センシティブ)情報の取得・利用・第三者提供を、定められた場合を除いて行わないこととしています。解約の見込みのために使うことは、その場合に当たると言える根拠がありません。
データの取得方法を決める
各システムから分析用データベースへの書き出しは、多くの保険会社ですでに月次で動いています。 この構成はそれを読むだけで、各システムに新しい接続は作りません。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 口座振替の結果と理由のコード | 収納のシステムの月次の書き出し | 直近3か月・6か月の不能の回数、理由(残高不足/口座解約など) |
| 異動の日付 | 契約管理システムの異動の履歴 | 住所変更・口座変更からの経過日数 |
| 照会の日付と種類 | 応対記録のコード | 解約返戻金・貸付・解約書類の照会の有無と、最後の照会からの日数 |
| 担当と面談の日付 | 募集人の活動記録 | 担当の交代からの日数、最後の面談からの日数 |
| 結果のラベル | 契約管理システムの消滅の記録 | 学習用の正解(3か月以内に失効・解約したか) |
口座振替の不能は、理由のコードまで取ります。 残高不足と、口座の解約・名義の相違では意味がまったく違います。後者は口座を変えたのに届けていないだけのことが多く、 連絡すれば払込方法の変更で終わります。理由のコードが無いと、モデルは両方を同じ重さで数えます。
学習用の正解には、満期・死亡による消滅を入れません。 契約が消えた理由のうち、失効と解約だけを1にします。満期を1に混ぜると、経過年数の長い契約ほど確率が上がるだけのモデルになります。
AIへ渡す前に整形する
- 契約番号でつなぐ … 4つの書き出しを契約番号でつなぎます。つながらない記録の件数を毎月残します。 急に増えたら、どこかの書き出しの形が変わっています
- 見込む対象を絞る … 払込が終わっている契約(払込済)、団体の契約、払済保険に変えた契約は除きます。払込の止まりようが無い契約を混ぜると、一覧の下が埋まるだけです
- 時点をそろえる … 特徴はすべて「前月末の時点」で作ります。月末より後の記録を混ぜると、学習のときに答えを見てしまいます
- 特徴を作る … 直近3か月・6か月の口座振替不能の回数、最後の不能からの日数、自動振替貸付の適用中か、照会の種類ごとの最後の日からの日数、住所変更からの日数、担当の交代からの日数、最後の面談からの日数、経過月数、払込期間の残りの月数
- カテゴリの型にする … 保険の種類、払込方法、払込の経路、口座振替不能の理由のコードをカテゴリの型にします
- 入れない列を落とす … 第7章の入力データの表で決めた4つの列を、読み込みの段階で読まないようにします。 読んでから落とすのではなく、そもそも取りません
3番目を軽く見ないでください。 学習のときに「前月末より後に解約書類を請求した」という記録が入ると、モデルは解約を正しく当てているように見えて、運用では何も当てられません。 解約の手続きの途中で付く記録は、解約の結果そのものだからです。
AIに処理させる
させるのは、契約ごとに「今後3か月以内に失効または解約に至る確率」を出すことだけです。 学習には、過去3年分の毎月末の時点の特徴と、その後3か月の結果を使います。
| させること | やり方 |
|---|---|
| 確率を出す | HistGradientBoostingClassifier の predict_proba |
| 確率を実際の割合に合わせる | CalibratedClassifierCV で較正する |
| 学ばせ方 | 時間の順に分け、古い月で学ばせて新しい月で確かめる |
較正をするのは、確率を件数の見積もりに使うからです。 支社長が「今月、この支社の上位100件のうち何件が実際に失効・解約に向かうか」を知るには、0.3という確率が本当に3割前後を意味している必要があります。公式の説明では、isotonic はおよそ1,000件を超える量があれば sigmoid と同等以上とされ、少ない量では過学習しやすいとされています。12万件の契約を毎月学ぶので、量は足ります。 ただし isotonic は同じ確率の契約を生むことがあり、順番を厳密に保ちたいなら sigmoid を選びます。
理由の事実は、モデルではなく規則で並べます。
| 理由の種類 | 記録の条件 | 一覧に書く文 |
|---|---|---|
| 払込が止まりそう | 直近3か月の口座振替不能が2回以上、理由が残高不足 | 「残高不足で口座振替が直近3か月に2回不能」 |
| 口座の届け漏れ | 不能の理由が口座の解約・名義の相違 | 「口座の解約による振替不能。口座変更の届けが未着」 |
| 解約に向かっている | 解約返戻金または解約書類の照会が直近60日以内 | 「〇月〇日、解約返戻金の照会あり」 |
| 担当がいない | 担当の交代から60日以内で、新担当の面談の記録が無い | 「担当交代後、面談の記録なし」 |
| 連絡が途切れている | 最後の面談・連絡から12か月以上 | 「最後の面談から〇か月」 |
モデルの重要度から理由を作らないのは、説明が月ごとに変わるからです。 重要度の高い特徴をそのまま理由にすると、同じ契約でも月によって理由が入れ替わり、募集人が「先月と言っていることが違う」と感じます。 事実の条件は固定なので、同じ記録には同じ文が出ます。
| させないこと | 理由 |
|---|---|
| 契約者に連絡するかの決定 | 連絡の要否と時期は支社長と募集人が決める |
| 連絡の内容の指示 | 払込方法の変更・減額・払済などの案内は、契約者の事情を聞いてから |
| 確率の契約者への開示 | 契約者を評価した数字として受け取られる |
| 機微情報の推定 | 入れない列から推し量れる特徴を足さない |
指示内容を固定する
この構成は生成AIを使わないため、プロンプトはありません。 代わりに、学習・判定・一覧の作成を決める設定を、ひとつのファイルにまとめます。モデルに「何を見て、何を見ないか」を伝えるのは、この設定です。
【見込む先】
target: 3か月以内に失効または解約(満期・死亡による消滅は 0)
as_of: 前月末
horizon_months: 3
【対象から外す契約】
- 払込済、団体の契約、払済保険・延長保険に変えた契約
- 契約日から3か月未満(記録が足りない)
【読まない列(読み込みの段階で除く)】
- 給付金・保険金の請求の履歴
- 告知の内容、査定の結果
- 性別、国籍
- 応対記録の自由記述
【モデル】
estimator: HistGradientBoostingClassifier
categorical_features: from_dtype
calibration: CalibratedClassifierCV(method="sigmoid", cv=時間順の分割)
学習期間: 直近36か月の月末時点 検証: 直近6か月の月末時点
【一覧に載せる契約】
- 確率の上位から、募集人1名あたり最大15件
- 担当がいない契約は、確率にかかわらず支社長の一覧に載せる
- 学習に無い保険の種類の契約は、確率を出さず「要確認」で載せる
【理由の文】
- 第7章の理由の表の5つの条件だけを使う
- 当てはまる条件が無い契約は「記録上の目立った変化なし(モデルの確率のみ)」と書く
「当てはまる条件が無い」と正直に書くのが大事です。 確率は高いのに、5つの条件のどれにも当たらない契約が出ます。そこに理由らしい文を作って埋めると、募集人は根拠の無い話を契約者にすることになります。 条件が無いと書かれていれば、募集人は「最近お変わりありませんか」から入ればよいと分かります。
募集人1名あたり最大15件で止めるのは、連絡できる数に合わせるためです。 上位を全部載せると、1人に40件届く月があり、結局いつもの順番で手を付けることになります。
出力形式を固定する
一覧は表で出し、同じ内容を JSON でも残します。 表は人が読むため、JSON は翌月の振り返りと監査のためです。
{
"as_of": "2026-09-30",
"model_version": "lapse-2026-09",
"branch": "第3支社",
"agent_id": "A-0215",
"contracts": [
{
"policy_no": "",
"product_type": "終身保険",
"elapsed_months": 38,
"probability": 0.41,
"rank_in_agent": 1,
"reasons": [
"残高不足で口座振替が直近3か月に2回不能",
"9月12日、解約返戻金の照会あり"
],
"suggested_contact": "払込の相談",
"flags": ["no_owner | unseen_product | none"]
}
]
}
勧める連絡の種類も、規則で付けます。
| 理由 | suggested_contact |
|---|---|
| 払込が止まりそう | 払込の相談(払込方法の変更、減額などの選択肢の案内) |
| 口座の届け漏れ | 口座変更の手続きの案内 |
| 解約に向かっている | 意向の確認(保障の見直しの相談を含む) |
| 担当がいない | 新しい担当からの挨拶 |
| 連絡が途切れている | 近況の確認 |
JSON に残す理由は2つあります。 1つ目は、どの版のモデルが、どの時点の記録で、何を出したかを後から追えることです。翌月の結果と突き合わせると、上位に載せた契約のうち実際に失効・解約したのが何件か、モデルの版ごとに数えられます。2つ目は、flags で人が見るべき契約を機械的に拾えることです。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 分析用データベース | 読み取り | 収納・契約・応対・活動の前月分の書き出し |
| 営業本部の共有の一覧 | 書き込み | 支社別・募集人別のシート、担当のいない契約のシート |
| 募集人の活動記録 | 読み取りのみ | 連絡の結果(翌月の振り返りに使う) |
| 契約管理システム | 接続しない | 確率を書き戻さない |
活動記録へは書き込みません。 一覧の確率を活動記録に入れると、次の月にその確率がまた特徴として読み込まれ、 モデルが自分の出した数字を学ぶことになります。結果だけを読み、確率は一覧と JSON にだけ置きます。
募集人が見られるのは、自分の担当の契約だけにします。 支社長は支社の分、営業管理の担当は営業本部の分です。一覧のシートを分けて置くのは、権限の範囲をそのまま形にするためです。
人が確認する
営業管理の担当が見るのは、次の3つだけです。
- 担当がいない契約 … 確率にかかわらず全件。新しい担当を誰にするか、支社長と決めます
- 学習に無い保険の種類の契約 … 新しい商品はモデルが知りません。確率を出さずに載せているので、記録を見て順番を付けます
- 確率の上位50件 … 理由の事実が記録と合っているか、照会の日付や不能の理由を元の画面で確かめます
支社長は、一覧を配る前に順番を入れ替えてかまいません。 「この契約者は先週、募集人と会っている」と分かっていれば下げます。入れ替えたときは、理由を一覧の欄に書きます。 この欄が、モデルが知らない事情の記録になります。
目標は、1,200件をならして1件2分です。 全件を開くのではなく、上の3つに入る契約だけを開き、残りは一覧で確率と理由を流し見ます。開く件数が毎月300件を超えるなら、担当のいない契約が溜まっているか、新しい商品が増えています。
例外に対処する
| 起きること | 対応 |
|---|---|
| 書き出しのどれかが届いていない | 一覧を作らずに止め、営業管理の担当に知らせる。欠けたまま作ると、照会の無い契約が全部下がる |
| 契約番号でつながらない記録が急増 | 書き出しの形の変更を疑う。件数を前月と比べて知らせる |
| 学習に無い保険の種類 | 確率を出さず「要確認」で一覧に載せる |
| 担当の募集人が登録されていない | 支社長の一覧に載せる |
| 確率の分布が前月と大きく違う | 一覧は出すが「分布の変化あり」と付け、営業管理の担当が上位を全件見る |
| 契約者から連絡を控えるよう申し出がある | 活動記録の連絡停止の印を見て一覧から外す |
| 保険会社の制度の変更(猶予期間・手続き) | 規則の側(理由の文・勧める連絡)を直す。モデルは翌月の学習で追う |
5行目は、制度や景気の変化を拾うための行です。 口座振替の不能が急に増えた月は、契約者の事情ではなく、引落しの日の変更や金融機関側の事情のことがあります。分布が動いた月は、確率の高さをそのまま信じずに、上位の理由を人が読みます。
6行目は必ず入れてください。 連絡を控えてほしいと申し出た契約者に、一覧に載ったからと連絡すると、それ自体が苦情になります。
記録を残す
- 毎月の入力の書き出しの件数と、つながらなかった記録の件数
- モデルの版、学習に使った期間、検証の結果(上位に載せた契約のうち、実際に失効・解約した割合)
- 一覧の JSON の全文と、配った日時
- 支社長・営業管理の担当が順番を入れ替えた記録と、その理由
- 募集人の連絡の結果(翌月に活動記録から読む)
- 一覧を見た人と日時(共有の場所のアクセスの記録)
4つ目の入れ替えの記録が、モデルを直す材料になります。 同じ理由で何度も下げられる契約があれば、その事情を特徴に足せるかを考えます。ただし、機微情報に当たる事情なら足しません。
最後の行は、一覧そのものが個人データだからです。 誰がいつ見たかを残しておかないと、漏えいの疑いが出たときに範囲を確かめられません。
04実装レベルの3段階
半自動化だけでも、第4章の①と③はほぼ無くなります。 記録をつなぎ、条件を当て、支社ごとに分けるのは機械の仕事です。残るのは②の読み込みで、規則の一覧では順番が粗いため、上位の多くを人が読み直すことになります。 本格構成で、読み直す件数が上位と例外だけになります。 確率があると、同じ条件に当たった契約のなかでも順番が付きます。本記事の想定はこの段階です。 段階を飛ばさないでください。 半自動化を3か月回すと、つながらない記録、照会のコードの付け漏れ、担当のいない契約の滞留が先に見えます。そこを直さずにモデルを作ると、記録の欠けを学んだモデルになります。
05工数削減シミュレーション
導入後 1,200件 × 2分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 営業職員や代理店の募集人が数百件ずつ保有契約を受け持っている生命保険会社、または保険会社から契約の払込状況の提供を受けている大型の乗合代理店。口座振替の不能や未入金の一覧は毎月届くのに、どの契約から当たるかを支社の担当の経験で決めている場合。払込・住所変更・問い合わせ・担当の交代が契約番号で引ける記録として3年以上残っている場合。
- 保有契約が数千件で、担当が契約者の事情をほぼ把握できている代理店。払込の状況を自社で受け取れず、保険会社の画面で1件ずつ見るしかない場合。解約や失効の記録が紙で、日付と理由をデータにできない場合。なお、契約者に継続を勧めるか、保障の見直しを提案するかの判断と、契約者の意向の確認は、この構成では代替できません。
07最小構成で試す方法
- 1年前の9月末の時点の記録を、1つの支社の分だけ書き出す(契約約1万5,000件)
- 第7章の理由の表の5つの条件を、表計算の式で当てはめる
- 条件に1つ以上当たる契約を、当たった条件の数と、照会の新しさで並べる
- その後3か月で実際に失効・解約した契約が、並べた上位のどこにいたかを数える
- 同じ時期に営業管理の担当が付けた「急ぎ」の一覧と、どちらが多く当てていたかを比べる
モデルを作る前に、規則だけで並べてみます。 規則で並べただけで担当の一覧より当たるなら、理由の条件が正しく効いているということです。 モデルはその上に足すものです。
| 出てきた内容 | 判断 |
|---|---|
| 規則の上位に、失効・解約が多く入っていた | モデルの学習に進む |
| 条件に当たらない契約からの解約が多い | 照会のコードが付いていない応対がある。コールセンターの記録の付け方を先に確かめる |
| 担当のいない契約からの失効が目立つ | 引き継ぎの運用の問題。モデルより先に、引き継ぎの期限を決める |
3行目が出ることは珍しくありません。 その場合、モデルを作るより、退職した募集人の契約を何日以内に誰へ渡すかを決めるほうが効きます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 学習のときだけよく当たる | 前月末より後の記録が混ざっている。特徴をすべて月末の時点で切る |
| 満期の多い商品ほど確率が高い | 正解に満期・死亡の消滅が混ざっている。失効と解約だけを1にする |
| 口座の届け漏れと残高不足が同じ重さ | 不能の理由のコードまで取る |
| 確率は高いのに理由が空 | 条件に当たらないと正直に書く。理由をこしらえない |
| 毎月、理由が入れ替わる | 理由をモデルの重要度から作らない。固定の条件で並べる |
| 一覧に載せた確率が翌月の特徴に入る | 確率を活動記録に書き戻さない |
| 連絡した契約が学習の正解をゆがめる | 連絡の有無を記録し、検証のときに分けて数える |
| 新商品の確率がでたらめ | 学習に無い保険の種類は確率を出さずに「要確認」 |
| 1人に一覧が集中する | 募集人1名あたりの上限を決める |
| 機微情報が応対記録の自由記述から入る | 自由記述を読まない。照会の種類のコードだけを使う |
| 契約者に「AIが解約しそうと判定した」と伝わる | 確率は社内の順番づけのため。契約者への説明に使わない |
上の2行が、作り始めて最初に当たる失敗です。 どちらも検証の数字が良く見えるので、そのまま運用に入ってしまいます。検証は、学習に使っていない新しい月の記録だけで行います。
下の2行は、運用が始まってから効いてきます。 応対記録の自由記述には、入院や家族の病気の話が書かれていることがあります。コードだけを使うと決めておけば、この事故は起きません。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 契約者の氏名と契約番号、保険の種類と保険料、口座振替の結果と理由、住所変更の履歴、コールセンターへの照会の履歴、担当の募集人の活動記録です。すべてが契約者の個人データで、一覧そのものが「払込が苦しそうな人の名簿」になります。
- 機微(センシティブ)情報を読まない … 金融分野における個人情報保護に関するガイドラインでは、要配慮個人情報と保健医療などに関する情報を機微(センシティブ)情報とし、定められた場合を除いて取得・利用・第三者提供を行わないこととしています。給付金の請求の履歴や告知の内容は、読み込みの段階で除きます
- 利用目的の範囲で使う … 同じガイドラインは、利用目的を「自社の所要の目的で用いる」のような抽象的なものでは足りないとしています。保有契約の維持のための連絡に使うことが、自社が公表している利用目的に入っているかを、法務・コンプライアンスの部門と確かめます
- 外部へ出さない … この構成は社内の分析用データベースと Python の中で完結し、生成AIや外部のサービスに記録を渡しません。理由の文もテンプレートで作ります
- 見られる人を絞る … 募集人は自分の担当分、支社長は支社の分だけです。代理店に一覧を渡す場合は、委託先の監督の範囲として扱います
- 確率で契約者を扱い分けない … 確率は連絡の順番を決めるためだけに使い、手続きの扱いや保険金の支払に関わる部署には出しません
- 継続を押し付けない … 一覧はフォローの順番であって、解約を止めるための名簿ではありません。契約者が解約を決めているなら、その意向に沿って手続きを案内します。 払込が苦しい事情には、保険会社が用意している払込方法の変更や減額などの選択肢を示します
誤りが起きた場合のリスクは、連絡すべき契約を一覧から落とすことと、連絡されたくない契約者に連絡することの2つです。 前者は記録の欠けから、後者は連絡停止の印の見落としから起きます。どちらも、モデルの精度ではなく記録の整備で防ぎます。
10まず何から始めるか
1週目:入れない列と、正解の定義を決める
法務・コンプライアンスの部門と、読まない列の一覧を決めます。あわせて、「3か月以内に失効または解約」の正解を、契約管理システムのどの消滅の理由のコードで作るかを決めます。満期・死亡・転換を正解から外すことを、ここで確定させます。
2週目:1つの支社で規則を当ててみる
1年前の9月末の時点の記録を1つの支社の分だけ書き出し、第7章の5つの条件を当てて並べます。その後3か月の実際の失効・解約と突き合わせ、当時の担当の一覧と比べます。
3週目:記録の欠けを洗い出す
つながらない記録、照会のコードの付け漏れ、担当のいない契約の滞留を数えます。ここで見つかった欠けを直すのが、モデルより先の仕事です。
4週目:半自動化の一覧を1つの支社に配る
Python で記録をつなぎ、規則の一覧を作って、1つの支社の支社長に配ります。支社長が入れ替えた順番と、その理由を毎月残します。
2か月目以降: 3年分の記録でモデルを学ばせ、時間順に分けて検証し、較正します。規則の一覧と並べて2か月配り、上位に載せた契約の実際の結果を比べます。 募集人1名あたりの上限と、連絡停止の印の扱いを決めた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
HistGradientBoostingClassifier が欠けた値をそのまま扱い、学習時に分かれ目ごとに欠けた値を左右どちらへ送るかを学ぶこと。categorical_features の既定が "from_dtype" で、カテゴリの型の列をカテゴリとして扱うこと。predict_proba で確率を返すこと | scikit-learn: HistGradientBoostingClassifier | 2026-10-13 |
CalibratedClassifierCV の sigmoid と isotonic。isotonic はおよそ1,000件を超える量で sigmoid と同等以上で、少ない量では過学習しやすいこと。isotonic は同じ値を生むことがあり、順番を厳密に保つなら sigmoid を使うこと | scikit-learn: Probability calibration | 2026-10-13 |
| 月払の払込猶予期間が払込期月の翌月の1日から末日までであること。猶予期間を過ぎると自動振替貸付が適用されるか失効するかのどちらかになること。会社によって猶予期間が異なり、解除予告期間を設ける会社もあること | 生命保険文化センター: 保険料の払込猶予期間と失効 | 2026-10-13 |
| 機微(センシティブ)情報(要配慮個人情報、保健医療に関する情報など)を、定められた場合を除き取得・利用・第三者提供しないこと(第5条)。利用目的を抽象的に定めるのでは足りないこと(第2条) | 個人情報保護委員会・金融庁: 金融分野における個人情報保護に関するガイドライン(令和6年3月) | 2026-10-13 |
払込猶予期間・失効・復活の扱いは保険会社と商品ごとに違います。 一覧の理由の文と勧める連絡は、自社の約款と事務の手引に合わせて作ってください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1354)についてのご相談はこちらから。
