Media > AI活用ユースケース > 営業 > 生命保険の乗合代理店が保険会社ごとの払込の書き出しと自店の接触の記録をそろえ、翌月に未入金・失効・解約に向かいそうな契約を Python で見込み、世帯ごとの連絡の予定にする

生命保険の乗合代理店が保険会社ごとの払込の書き出しと自店の接触の記録をそろえ、翌月に未入金・失効・解約に向かいそうな契約を Python で見込み、世帯ごとの連絡の予定にする

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

生命保険の乗合代理店で、保険会社ごとに形の違う払込の書き出しと自店の接触の記録をそろえ、翌月末までに未入金・失効・解約のいずれかに向かいそうな契約を Python で見込みます。結果は世帯ごとにまとめ、募集人ごとの連絡の予定表にします。

サマリー
連携・自動化
Python
対象業界
保険/金融
対象部門
営業
対象業務
データ入力・転記/集計・分析
主な課題
データ分析に時間がかかる/入力作業が多い/営業フォローが追いつかない
AIで行う処理
予測
主な効果
判断支援/工数削減/機会損失防止
導入難易度
★★★★★
実装レベル
本格構成
費用感
個別開発(大)
人間の確認
必須
現在工数
80h/月
AI導入後
20h/月
想定削減
75%
年間削減
720h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 月初に、保険会社8社の代理店向けの画面から、前月分の払込状況・未入金・異動の一覧を書き出す
  2. 会社ごとに列を並べ替え、払込の結果のコードを「済」「不能」「未入金」に読み替えて1つの表にする
  3. 証券番号で自店の顧客管理の契約とつなぎ、世帯と担当の募集人を引く
  4. 顧客管理の接触の記録を開き、最後に話した日、アフターフォローの実施、来店の予約の有無を確かめる
  5. 「急ぎ」「今月中」「様子見」の3段階を付け、理由を一言書く
  6. 募集人ごとに分けて配る
導入後(After)
  1. 人月初の1営業日目に、業務管理の担当が8社の書き出しを決まったフォルダに置く
  2. 自動Python が会社ごとの対応表で書き出しを共通の項目に直し、証券番号で顧客管理の契約・世帯・担当とつなぐ
  3. 自動契約ごとの特徴(直近の払込の結果、異動、問い合わせ、最後の接触からの日数、世帯の中の他の契約の動きなど)を作る
  4. 自動学習済みのモデルが、契約ごとに翌月末までに未入金・失効・解約のいずれかが起きる確率を出す
  5. 自動世帯ごとに契約をまとめ、世帯の中で最も高い確率と、根拠になった事実を並べる
  6. 自動担当の募集人ごとに、上限の数までの世帯を連絡の予定表に載せる
  7. 人業務管理の担当が、読み替えの警告、上位の世帯、担当のいない世帯を確かめ、順番を入れ替える理由があれば書き込む
  8. 人店長が予定表を確かめて募集人に配り、募集人が連絡の結果を顧客管理の接触の記録に残す
各工程の詳しい説明を読む
  1. 月初に、保険会社8社の代理店向けの画面から、前月分の払込状況・未入金・異動の一覧を書き出す
  2. 会社ごとに列を並べ替え、払込の結果のコードを「済」「不能」「未入金」に読み替えて1つの表にする
  3. 証券番号で自店の顧客管理の契約とつなぎ、世帯と担当の募集人を引く
  4. 顧客管理の接触の記録を開き、最後に話した日、アフターフォローの実施、来店の予約の有無を確かめる
  5. 「急ぎ」「今月中」「様子見」の3段階を付け、理由を一言書く
  6. 募集人ごとに分けて配る

(a)つなぎ直すだけで月初が終わる。 2番目の読み替えは、会社ごとに覚えておく決まりです。ある会社では「残高不足」が数字のコード、別の会社では文字で書かれています。 会社が書き出しの形を変えた月は、読み替えを間違えたまま一覧ができます。

(b)止まった後の契約しか選べない。 一覧の起点が未入金や失効の予告なので、載るのは払込が止まった後です。 月払の払込猶予期間は払込期月の翌月の1日から末日までで、猶予期間を過ぎると自動振替貸付が適用されるか、そのまま失効するかのどちらかです。一覧が5営業日目に届くと、話せる時間はその月の残りしかありません。

(c)世帯で見ていない。 A社の契約は未入金、B社の契約は口座の変更の届けが出ている、C社の契約は解約返戻金の問い合わせがあった。3つが同じ世帯なら、家計の見直しの最中かもしれません。 契約ごとの一覧では、この重なりに気づくのは、担当の募集人が3件とも自分の担当だったときだけです。

(d)接触の記録が順番に効いていない。 半年前にアフターフォローで会い、保障の内容に満足していると聞いた契約者と、2年以上誰も話していない契約者では、同じ未入金でも重さが違います。記録は顧客管理にあるのに、4番目で開いて読むかどうかは担当の手間しだいです。

  1. 【人】 月初の1営業日目に、業務管理の担当が8社の書き出しを決まったフォルダに置く
  2. 【自動】 Python が会社ごとの対応表で書き出しを共通の項目に直し、証券番号で顧客管理の契約・世帯・担当とつなぐ
  3. 【自動】 契約ごとの特徴(直近の払込の結果、異動、問い合わせ、最後の接触からの日数、世帯の中の他の契約の動きなど)を作る
  4. 【自動】 学習済みのモデルが、契約ごとに翌月末までに未入金・失効・解約のいずれかが起きる確率を出す
  5. 【自動】 世帯ごとに契約をまとめ、世帯の中で最も高い確率と、根拠になった事実を並べる
  6. 【自動】 担当の募集人ごとに、上限の数までの世帯を連絡の予定表に載せる
  7. 【人】 業務管理の担当が、読み替えの警告、上位の世帯、担当のいない世帯を確かめ、順番を入れ替える理由があれば書き込む
  8. 【人】 店長が予定表を確かめて募集人に配り、募集人が連絡の結果を顧客管理の接触の記録に残す

2番目の対応表が、この設計の土台です。 対応表は会社ごとに「書き出しのどの列が共通のどの項目か」「払込の結果のコードがどの意味か」を持つ表で、業務管理の担当の頭の中にあった読み替えの決まりを、そのまま表に書き出したものです。

7番目で担当が見るのは、600件すべてではありません。 読み替えで警告が出た会社、確率の上位の世帯、担当のいない世帯だけです。残りは予定表で流し見ます。

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

構成図
保険会社8社の書き出し(払込状況・未入金・異動・失効の予告)
+ 自店の顧客管理(契約・世帯・担当・接触の記録)
   │  月初の1営業日目に決まったフォルダへ
   ▼【トリガー】フォルダに8社分がそろったとき(毎月1回)
Python(pandas)
   ├──▶ 会社ごとの対応表で共通の項目に直す ──▶ 読み替えの警告
   ├──▶ 証券番号で顧客管理とつなぎ、世帯と担当を引く
   ├──▶ 契約ごとの特徴を作る(機微情報は読まない)
   ▼
scikit-learn(HistGradientBoostingClassifier+確率の較正)
   │   翌月末までに未入金・失効・解約のいずれかが起きる確率
   ▼
Python ── 世帯ごとにまとめ、理由の事実を規則で並べる
   ▼
連絡の予定表(募集人ごと・店舗ごと)+ 結果の JSON
   ▼
【業務管理の担当と店長が確かめて、募集人へ配る】
役割想定する製品代替候補
実行環境Python(pandas・scikit-learn の HistGradientBoostingClassifier)R、BigQuery ML
対応表会社ごとの列とコードの対応表(社内の共有フォルダの表)-
出力先連絡の予定表(店舗ごと・募集人ごとのシート)顧客管理の通知の機能
定時実行社内のジョブ管理の仕組みOSのタスクスケジューラ

生成AIは使いません。 この構成で行うのは、記録をそろえること、確率を見込むこと、事実を並べることです。契約者の個人データを外部の生成AIに渡す場面を、最初から作りません。 理由の文も、テンプレートに事実を差し込むだけで足ります。

保険会社の画面にも、顧客管理にも書き戻しません。 確率を顧客管理の画面に出すと、来店の受付や事務の担当の目に入り、契約者の扱いが変わるおそれがあります。 予定表は本部と店舗の共有の場所にだけ置きます。

モデルに HistGradientBoostingClassifier を選ぶのは、欠けた値をそのまま扱えるからです。 公式の説明では、学ばせるときに分かれ目ごとに欠けた値を左右どちらへ送るかを学ぶとされています。保険会社によって書き出しに無い項目があり、 たとえば払込の結果の理由のコードを出さない会社の契約は、その列が欠けます。0で埋めると「理由が無い」と「理由を出さない会社」の区別が消えます。保険会社と払込方法はカテゴリの型の列にし、categorical_features の既定の "from_dtype" でそのまま渡します。

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

Step1

処理の起点を決める

月初の1営業日目、8社分の書き出しが決まったフォルダにそろった時点で動かします。 業務管理の担当が書き出しを置き終えたら、フォルダに「そろった」の印のファイルを置き、ジョブ管理の仕組みが15分ごとにその印を見に行きます。印が無いまま動かすと、置きかけの書き出しで一覧ができます。

見込む先は「翌月末までに、未入金・失効・解約の請求のいずれかが起きるか」です。 予定表が配られるのは今月の初めで、募集人が連絡するのは今月中です。翌月に止まりそうな契約に今月話せれば、払込が止まる前に間に合います。 未入金を的に入れるのは、乗合代理店に届く記録で最も早く分かる「止まった」印だからです。

3つの出来事は1つの的にまとめます。 分けて見込むと、失効と解約はそれぞれ件数が少なく、モデルが学べる例が減ります。理由の事実の側で「払込が止まりそう」か「解約に向かっている」かが分かれば、募集人の話し方は変えられます。

Step2

入力データを集める

データ中身取得元
払込の記録証券番号、払込期月、払込の結果(会社ごとのコード)、理由のコード(出す会社だけ)、未入金の月数、自動振替貸付の適用保険会社ごとの書き出し
異動の記録住所・口座・払込方法・名義の変更、減額・払済への変更の日付保険会社ごとの書き出し
失効の予告・解約の請求予告の通知の日付、解約の請求の受付の日付保険会社ごとの書き出し
契約と世帯証券番号、保険会社、保険の種類、契約日、払込方法、月額換算の保険料、世帯番号、担当の募集人自店の顧客管理
接触の記録接触の日付、種類(来店・電話・訪問・アフターフォロー・契約内容の確認の案内)、問い合わせの種類のコード自店の顧客管理
会社ごとの対応表書き出しの列と共通の項目の対応、払込の結果と理由のコードの意味社内の共有フォルダ(新しく作る)

質を決めるのは、会社ごとの対応表と接触の記録の種類のコードです。 対応表が無ければ8社の記録を1つにできず、接触の記録に種類のコードが無ければ、自由記述を読むことになります。 自由記述には、契約者の健康や家族の事情が書かれていることがあり、読ませたくありません。

入れない列を、表で決めておきます。

入れない列理由
給付金・保険金の請求の履歴保健医療に関する情報で、機微(センシティブ)情報に当たる
告知の内容、引受の条件(特別条件など)同上
接触の記録の自由記述健康や家族の事情が書かれていることがある
契約者の性別・国籍・年齢の区分連絡の順番を属性で変える理由にしない

1行目を外すのが、いちばん大事な判断です。 金融分野のガイドラインは、要配慮個人情報や保健医療に関する情報などを機微(センシティブ)情報とし、定められた場合を除いて取得・利用・第三者提供を行わないこととしています。解約の見込みのために使うことが、その場合に当たると言える根拠はありません。

Step3

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

保険会社の画面から自動で取ってくる仕組みは作りません。書き出しは、業務管理の担当がこれまでどおり画面から行います。 保険会社の代理店向けの画面の使い方は各社の決まりに従うもので、この構成が勝手に自動化してよいものではないからです。

取るものどこから何に使うか
払込の結果と理由のコード8社の書き出し(対応表で読み替え)直近3か月・6か月の不能・未入金の回数、理由
異動の日付8社の書き出し口座・払込方法の変更、減額からの日数
解約の請求・失効の予告の日付8社の書き出し学習用の正解と、世帯の中の他の契約の動き
接触の日付と種類顧客管理最後の接触からの日数、アフターフォローの未実施
世帯と担当顧客管理世帯ごとのまとめと、予定表の振り分け

読み替えのたびに、対応表に無い値を数えます。 書き出しに対応表に無い列の名前や、知らないコードが出てきたら、その会社の分は読み替えの警告として止め、業務管理の担当に知らせます。保険会社が書き出しの形を変えた月に、黙って間違った読み替えをしないためです。

学習用の正解から、代理店の中の乗換えを外します。 同じ世帯が当店を通してA社の契約を解約し、B社の契約に入り直した場合、A社の記録では「解約」です。これを1にすると、見直しの相談に乗った世帯ほど確率が上がるモデルになります。 解約の前後3か月に、同じ世帯で当店経由の新しい契約がある解約は、正解から外して別に数えます。

Step4

AIへ渡す前に整形する

  1. 読み替える … 会社ごとの対応表で列の名前とコードを共通の項目に直します。対応表に無い値が出た会社は止め、警告を出します
  2. つなぐ … 証券番号で顧客管理の契約とつなぎ、世帯番号と担当の募集人を引きます。つながらない証券番号の件数を会社ごとに残します
  3. 対象を絞る … 払込が終わっている契約、払済に変えた契約、団体の扱いの契約は除きます
  4. 時点をそろえる … 特徴はすべて「前月末の時点」で作ります。月末より後の記録を混ぜると、学習のときに答えを見てしまいます
  5. 特徴を作る … 直近3か月・6か月の不能・未入金の回数、最後の不能からの日数、自動振替貸付の適用中か、口座・払込方法の変更からの日数、最後の接触からの日数、最後のアフターフォローからの日数、経過月数、保険会社、保険の種類、払込方法
  6. 世帯の特徴を足す … 同じ世帯の他の契約で、直近3か月に未入金・解約の請求・減額があったか。世帯の中の契約の数と、保険会社の数
  7. 入れない列を落とす … 入力データの表で決めた4つの列を、読み込みの段階で読まないようにします

6番目の世帯の特徴が、乗合代理店で効く特徴です。 1社の記録しか見られない保険会社には作れない特徴で、「B社の契約で解約の請求が出た世帯の、A社の契約」が、払込の記録だけでは見えない兆しになります。ただし、世帯の中の他の契約の結果を特徴に入れるときは、4番目の時点のそろえ方を同じように守ります。

Step5

AIに処理させる

させるのは、契約ごとに「翌月末までに未入金・失効・解約の請求のいずれかが起きる確率」を出すことだけです。 学習には、過去3年分の毎月末の時点の特徴と、その翌月末までの結果を使います。

させることやり方
確率を出すHistGradientBoostingClassifier の predict_proba
学ばせ方時間の順に分け、古い月で学ばせ、新しい月で確かめる
早めに止める見張り直近の月を検証用として fit に渡す
確率を実際の割合に合わせる学習済みのモデルを FrozenEstimator で包み、CalibratedClassifierCV で較正する

3行目は、既定のままにしないでください。 公式の説明では、early_stopping の既定は 'auto' で、学習の件数が1万件を超えると早めに止める見張りが有効になります。 検証用の記録を渡さないと、学習の記録の一部が取り分けられて見張りに使われ、月の新旧が混ざった記録で止めどきを決めることになります。 検証用の X_val・y_val を fit に渡し、直近の月を使います。

較正をするのは、確率を件数の見積もりに使うからです。 店長が「今月、この店舗の上位50世帯のうち何世帯が実際に止まるか」を知るには、0.3という確率が3割前後を意味している必要があります。公式は、学習済みの分類器を FrozenEstimator で包んで較正でき、較正に使う記録は学習に使った記録と重ならないようにするとしています。isotonic はおよそ1,000件を超えれば sigmoid と同等以上ですが同じ確率の契約を生むことがあり、順番を厳密に保つため sigmoid を選びます。

理由の事実は、モデルではなく規則で並べます。

理由の種類記録の条件予定表に書く文
払込が止まりそう直近3か月の不能・未入金が2回以上「直近3か月に払込の不能が2回(〇〇生命)」
口座の届け漏れ不能の理由が口座の解約・名義の相違「口座の解約による不能。変更の届けが未着」
世帯で動きがある同じ世帯の他の契約で直近3か月に解約の請求・減額「同じ世帯の〇〇生命の契約で解約の請求あり」
接触が途切れている最後の接触から12か月以上「最後の接触から〇か月」
アフターフォローが未実施契約から1年を過ぎ、アフターフォローの記録が無い「契約後のアフターフォローの記録なし」
させないこと理由
連絡するかの決定連絡の要否と時期は店長と募集人が決める
見直し・乗換えの勧め契約者の意向と事情を聞いてから募集人が判断する
確率の契約者への開示契約者を評価した数字として受け取られる
機微情報の推定入れない列から推し量れる特徴を足さない
Step6

指示内容を固定する

この構成は生成AIを使わないため、プロンプトはありません。 代わりに、読み替え・学習・予定表の作り方を決める設定を、ひとつのファイルにまとめます。

【見込む先】
target: 翌月末までに 未入金 / 失効 / 解約の請求 のいずれか(満期・死亡・転換は 0)
exclude_from_target: 解約の前後3か月に同じ世帯で当店経由の新契約がある解約(乗換え)
as_of: 前月末

【読み替え】
mapping_table: 会社ごとの対応表(列の名前・払込の結果のコード・理由のコード)
on_unknown_value: その会社の分を止めて警告(推測で読み替えない)

【読まない列(読み込みの段階で除く)】
- 給付金・保険金の請求の履歴、告知の内容、引受の条件
- 接触の記録の自由記述
- 性別、国籍、年齢の区分

【モデル】
estimator: HistGradientBoostingClassifier(categorical_features="from_dtype")
validation: 直近3か月の月末時点を X_val / y_val として fit に渡す
calibration: CalibratedClassifierCV(FrozenEstimator(model), method="sigmoid")
             較正用は学習・検証と重ならない月
学習期間: 直近36か月の月末時点

【予定表】
- 世帯ごとにまとめ、世帯の中で最も高い確率で並べる
- 募集人1名あたり最大20世帯
- 担当のいない世帯は、確率にかかわらず店長の一覧に載せる
- 学習に無い保険の種類・新しく扱い始めた保険会社の契約は、確率を出さず「要確認」

【理由の文】
- 第7章の理由の表の5つの条件だけを使う
- 当てはまる条件が無い世帯は「記録上の目立った変化なし(モデルの確率のみ)」と書く

「推測で読み替えない」を設定に書くのは、対応表に無い値を近いコードに寄せたくなるからです。 知らないコードを「不能」と読めば確率が上がり、「済」と読めば一覧から落ちます。どちらに寄せても間違いなので、止めて人に聞きます。

Step7

出力形式を固定する

予定表は表で出し、同じ内容を JSON でも残します。 表は募集人が読むため、JSON は翌月の振り返りと監査のためです。

{
  "as_of": "2026-09-30",
  "model_version": "agency-lapse-2026-09",
  "store": "駅前店",
  "agent_id": "S-012",
  "mapping_warnings": [],
  "households": [
    {
      "household_no": "",
      "max_probability": 0.37,
      "rank_in_agent": 1,
      "policies": [
        { "policy_no": "", "insurer": "〇〇生命", "product_type": "医療保険", "probability": 0.37 },
        { "policy_no": "", "insurer": "△△生命", "product_type": "終身保険", "probability": 0.12 }
      ],
      "reasons": [
        "同じ世帯の△△生命の契約で減額の請求あり",
        "最後の接触から14か月"
      ],
      "flags": ["no_owner | unseen_product | none"]
    }
  ]
}

世帯の下に契約を並べる形にするのは、募集人が1回の連絡で世帯の契約をまとめて話せるようにするためです。 確率の低い契約も世帯の中に載せるので、「医療保険の払込が止まりそう」と聞いて電話をしたら、実は終身保険の見直しを考えていた、という場面でも、募集人の手元に世帯の契約がそろっています。

JSON に mapping_warnings を残すのは、どの月にどの会社の読み替えで警告が出たかを後から追うためです。 警告が出た月の予定表は、その会社の契約の確率が信用できません。

Step8

システムへ連携する

つなぎ先方式内容
決まったフォルダ読み取り8社の書き出しと「そろった」の印
自店の顧客管理読み取り(書き出し)契約・世帯・担当・接触の記録
連絡の予定表書き込み店舗ごと・募集人ごとのシート、担当のいない世帯のシート
保険会社の画面・顧客管理書き込まない確率を書き戻さない

接触の記録へは書き込みません。 確率を顧客管理に入れると、次の月にその確率がまた特徴として読み込まれ、 モデルが自分の出した数字を学ぶことになります。

募集人が見られるのは、自分の担当の世帯だけにします。 店長は店舗の分、業務管理の担当は全店の分です。

Step9

人が確認する

  1. 読み替えの警告 … 警告の出た会社の書き出しを開き、形の変更なら対応表を直して動かし直します。警告が残ったまま予定表を配りません
  2. 担当のいない世帯 … 確率にかかわらず全件。店長と新しい担当を決めます
  3. 学習に無い保険の種類・保険会社の契約 … 確率を出していないので、記録を見て順番を付けます
  4. 確率の上位30世帯 … 理由の事実が書き出しと合っているかを元の書き出しで確かめます

店長は、予定表を配る前に順番を入れ替えてかまいません。 入れ替えたときは理由を予定表の欄に書きます。この欄が、モデルが知らない事情の記録になります。

目標は、600件をならして1件2分です。 全件を開くのではなく、上の4つに入る契約だけを開き、残りは予定表で確率と理由を流し見ます。

Step10

例外に対処する

起きること対応
8社のうち書き出しがそろわない会社があるその会社の契約に「記録未着」を付けて予定表を作り、確率は出さない
対応表に無い列・コードが出たその会社の分を止めて警告。対応表を直して動かし直す
証券番号が顧客管理とつながらない会社ごとに件数を出す。顧客管理への登録漏れを疑う
担当の募集人が登録されていない・退職した店長の一覧に載せる
確率の分布が前月と大きく違う予定表は出すが「分布の変化あり」と付け、上位を全件見る
契約者から連絡を控えるよう申し出がある顧客管理の連絡停止の印を見て予定表から外す
新しく保険会社を扱い始めた学習の記録がそろうまで、その会社の契約は「要確認」で載せる

1行目で、そろわない会社の分だけ外すのは、待つと月初が過ぎるからです。 7社分で予定表を作り、残りの1社の契約は「記録未着」として理由の事実だけを並べます。

6行目は必ず入れてください。 連絡を控えてほしいと申し出た契約者に、予定表に載ったからと連絡すると、それ自体が苦情になります。

Step11

記録を残す

  • 月ごとの8社の書き出しの件数、読み替えの警告、つながらなかった証券番号の件数
  • 会社ごとの対応表の版(いつ、どの列やコードを直したか)
  • モデルの版、学習・検証・較正に使った期間、検証の結果(上位の世帯のうち実際に止まった割合)
  • 予定表の JSON の全文と、配った日時
  • 店長・業務管理の担当が順番を入れ替えた記録と、その理由
  • 募集人の連絡の結果(翌月に接触の記録から読む)と、予定表を見た人と日時

2つ目の対応表の版が、乗合代理店ではとくに大事です。 保険会社が書き出しの形を変えたあとに、どの月の予定表がどの版の対応表で作られたかが分からないと、 検証の結果が下がった理由を追えません。

04実装レベルの3段階

最小構成:過去の書き出しを対応表で手で読み替え、表計算の式で5つの条件を当てて並べる / 理由の条件の当てはめ
半自動化:上記+Python で毎月の書き出しを読み替えてつなぎ、規則の予定表を世帯ごとに作る / 読み替え・突合・予定表の作成
本格構成:上記+学習済みのモデルで確率を出して較正し、募集人ごとに上限を付けて配る / 見込み・順番・理由の予定表の全体

半自動化だけでも、第4章の①はほぼ無くなります。 8社の読み替えとつなぎ込みは対応表があれば機械の仕事です。残るのは②の読み込みで、規則の予定表では順番が粗いため、上位の多くを人が読み直すことになります。 本格構成で、読み直す件数が警告と上位と例外だけになります。 確率があると、同じ条件に当たった世帯のなかでも順番が付きます。本記事の想定はこの段階です。 段階を飛ばさないでください。 半自動化を3か月回すと、読み替えの警告が出やすい会社、つながらない証券番号、接触の記録のコードの付け漏れが先に見えます。そこを直さずにモデルを作ると、記録の欠けを学んだモデルになります。

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

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

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

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

AI活用について相談する

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

向いている
  1. 5社以上の生命保険会社の商品を扱い、保有契約が数千件から1万件ほどある乗合代理店。保険会社ごとの代理店向けの画面から払込状況や未入金の一覧を毎月書き出しているが、形が会社ごとに違い、業務管理の担当が表計算でつなぎ直してから募集人に配っている場合。来店・電話・訪問・アフターフォローの接触の記録を自店の顧客管理に残していて、3年分ほどが契約者で引ける場合。
向いていない
  1. 扱う保険会社が1〜2社で、保険会社の画面の一覧だけでフォローの順番が決められる代理店。保有契約が数百件で、募集人が契約者の事情をほぼ把握している場合。接触の記録が紙の日誌だけで、日付と種類をデータにできない場合。なお、契約者に継続を勧めるか、見直しや乗換えを提案するかの判断と、契約者の意向の確認は、この構成では代替できません。

07最小構成で試す方法

  1. 1年前の9月末の時点の、8社分の書き出しと顧客管理の記録を用意する
  2. 会社ごとの対応表を、業務管理の担当の読み替えの決まりから表にする(まず上位3社)
  3. 第7章の理由の表の5つの条件を、表計算の式で当てはめ、世帯ごとにまとめて並べる
  4. その翌月末までに実際に未入金・失効・解約の請求が起きた世帯が、並べた上位のどこにいたかを数える
  5. 同じ時期に業務管理の担当が付けた「急ぎ」の一覧と、どちらが多く当てていたかを比べる

モデルを作る前に、対応表と規則だけで並べてみます。 対応表が作れるかどうかが、この構成の最初の関門です。

出てきた内容判断
規則の上位に、止まった世帯が多く入っていたモデルの学習に進む
対応表に書けない読み替えがある業務管理の担当の決まりを言葉にするところから。モデルより先
世帯の動きの条件だけで当たる世帯が多い世帯でまとめる設計が効いている。予定表を世帯の単位で配る運用を先に始める

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

問題対策
保険会社が書き出しの形を変えた月に一覧が狂う対応表に無い値で止めて警告。推測で読み替えない
見直しの相談に乗った世帯ほど確率が高い当店経由の乗換えを正解から外す
学習のときだけよく当たる前月末より後の記録が混ざっている。世帯の特徴も月末の時点で切る
早めに止める見張りが古い月を新しい月で確かめる直近の月を X_val・y_val として渡す
較正で確率がゆがむ較正の記録を学習・検証と重ねない
同じ世帯に別々の募集人が連絡する世帯でまとめ、世帯の担当に寄せる
理由の書き出しが無い会社の契約が低く出る欠けた値のまま渡し、0で埋めない
確率が翌月の特徴に入る確率を顧客管理に書き戻さない
機微情報が自由記述から入る自由記述を読まない。種類のコードだけを使う
契約者に「AIが解約しそうと判定した」と伝わる確率は社内の順番づけのため。契約者への説明に使わない

上の2行が、乗合代理店で最初に当たる失敗です。 どちらも1社の記録しか見ない仕組みには無い失敗で、8社の記録と世帯をまとめて扱うことから出てきます。

下の2行は、運用が始まってから効いてきます。 接触の記録の自由記述には、入院や家族の介護の話が書かれていることがあります。種類のコードだけを使うと決めておけば、この事故は起きません。 予定表を契約者への説明に使わないことは、募集人の研修で最初に伝えます。

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

この構成で扱うデータ: 契約者の氏名と証券番号、世帯の構成、保険会社と保険の種類と保険料、払込の結果と理由、異動の履歴、接触の記録です。予定表そのものが「払込が苦しそうな世帯の名簿」になります。

  1. 機微(センシティブ)情報を読まない … 金融分野における個人情報保護に関するガイドラインでは、要配慮個人情報と保健医療などに関する情報を機微(センシティブ)情報とし、定められた場合を除いて取得・利用・第三者提供を行わないこととしています。給付金の請求の履歴や告知の内容は、読み込みの段階で除きます
  2. 利用目的の範囲で使う … 同じガイドラインは、利用目的を「自社の所要の目的で用いる」のような抽象的なものでは足りないとしています。保有契約の保全のための連絡に使うことが、自店が公表している利用目的に入っているかを確かめます
  3. 保険会社の決まりを確かめる … 書き出しの情報は保険会社から委託を受けて扱うものです。各社の顧客情報の取扱いの決まりと、代理店の委託契約の範囲で使えるかを、保険会社ごとに確かめます
  4. 外部へ出さない … この構成は社内のフォルダと Python の中で完結し、生成AIや外部のサービスに記録を渡しません
  5. 見られる人を絞る … 募集人は自分の担当分、店長は店舗の分、業務管理の担当は全店の分です
  6. 継続を押し付けない … 予定表はフォローの順番であって、解約を止めるための名簿ではありません。契約者が解約を決めているなら、その意向に沿って手続きを案内します

誤りが起きた場合のリスクは、連絡すべき世帯を予定表から落とすことと、連絡されたくない契約者に連絡することの2つです。 前者は読み替えの誤りと記録の未着から、後者は連絡停止の印の見落としから起きます。どちらも、モデルの精度ではなく記録の整備で防ぎます。

10まず何から始めるか

1週目:対応表を作る

業務管理の担当と、上位3社の書き出しの列とコードの読み替えの決まりを表にします。あわせて、読まない列の一覧と、乗換えを正解から外す決まりを確定させます。

2週目:規則だけで並べてみる

第8章のとおり、1年前の9月末の時点の記録で5つの条件を当て、世帯ごとに並べます。翌月末までの実際の結果と突き合わせ、当時の一覧と比べます。

3週目:残りの5社の対応表と、記録の欠けを洗い出す

残りの5社の対応表を作り、つながらない証券番号、接触の記録の種類のコードの付け漏れ、担当のいない世帯を数えます。ここで見つかった欠けを直すのが、モデルより先の仕事です。

4週目:半自動化の予定表を1つの店舗に配る

Python で8社の書き出しを読み替えてつなぎ、規則の予定表を世帯ごとに作って、1つの店舗の店長に配ります。店長が入れ替えた順番と、その理由を毎月残します。

2か月目以降: 3年分の記録でモデルを学ばせ、時間順に検証し、較正します。規則の予定表と並べて2か月配り、上位の世帯の実際の結果を比べます。 募集人1名あたりの上限と、対応表を直す担当を決めた時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-29/最終更新:2026-10-29
確認した内容情報源確認日
HistGradientBoostingClassifier が欠けた値をそのまま扱い、学習時に分かれ目ごとに欠けた値を左右どちらへ送るかを学ぶこと。categorical_features の既定が "from_dtype" であること。early_stopping の既定が 'auto' で、件数が1万件を超えるか X_val・y_val を fit に渡したときに有効になること。predict_proba で確率を返すこと(scikit-learn 1.9.1)scikit-learn: HistGradientBoostingClassifier2026-10-29
学習済みの分類器を FrozenEstimator で包んで CalibratedClassifierCV で較正でき、較正の記録を学習の記録と重ねないこと。isotonic はおよそ1,000件を超えると sigmoid と同等以上で、同じ値を生むことがあり、順番を厳密に保つなら sigmoid を使うことscikit-learn: Probability calibration2026-10-29
月払の払込猶予期間が払込期月の翌月の1日から末日までであること。猶予期間を過ぎると自動振替貸付が適用されるか失効するかのどちらかになること。会社によって猶予期間が異なり、解除予告期間を設ける会社もあること生命保険文化センター: 保険料の払込猶予期間と失効2026-10-29
機微(センシティブ)情報(要配慮個人情報、保健医療に関する情報など)を、定められた場合を除き取得・利用・第三者提供しないこと(第5条)。利用目的を抽象的に定めるのでは足りないこと(第2条)。委託先に必要かつ適切な監督を行うこと(第10条)個人情報保護委員会・金融庁: 金融分野における個人情報保護に関するガイドライン(令和6年3月)2026-10-29

払込猶予期間・失効・解約の扱いは保険会社と商品ごとに違います。 予定表の理由の文は、各社の約款と代理店向けの事務の手引に合わせて作ってください。

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

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

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

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