TT Lab
はじめる
学ぶ 学習パス コース

保険ドメイン深化

IBNRを数え出再保険を照合する

TT Labで続きを見る

目標

データにない事故を数える方法を身につけ、準備金がどのような部分でできているか、再保険の出再がずれたときにどの順序で絞り込んでいくかを、自分の手で行えるようになります。

なぜ重要なのか

決算時点の事故データは、常に未成熟な状態です。6月30日に6月の事故を数えると少なく出ますが、それは事故が少なかったからではなく、まだ受け付けられる時間がなかったからです。この差を知らずに「今月は損害率がよくなりました」と報告すると、翌月に元の位置に戻り、そのときはなぜ急に悪くなったのかという会議が開かれます。

まだ来ていない案件の量は、推測ではなく計算です。成熟した事故月から受付遅延の分布を出しておけば、未成熟な月が今何パーセントまで届いているかがわかります。このラボのデータは決算基準日が2026-06-30で、受付遅延は最大5か月なので、5か月分をすべて満たした事故月は2026-01までです。

準備金は2つの部分でできています。

미지급 발생손해   발생손해액 − 기지급액. 이미 접수된 건의 남은 몫
IBNR 추정액       미접수 추정 건수 × 건당 평균 발생손해액

2つ目の部分の平均を取るときは、1億を超える大型案件を除く必要があります。大型案件は別に個別見積もりをするのが通常の処理で、平均に混ぜると準備金が億単位に膨らみます。

最後に再保険です。このデータでは、すべての損害にQS30の比例再保険がかかっていて、発生損害額の30%が出再されます。ところが、出再の内訳が2か所にあります。会計元帳(月単位の計上)と再保険管理システム(案件単位の登録)です。元帳は元受データから計算された値で、再保険システムは人が登録します。そのため、ずれが生じます。

ステップ

  1. 右の例にあるジェネレーターを/root/ins/make_reserve.pyとして保存し、python3 make_reserve.pyで実行してください。損害1,296件、出再1,293件、元帳12か月分が作られます。
  2. 事故月 × 受付遅延月数の表を、/root/ins/triangle.csvにaccident_ym,lag0,lag1,lag2,lag3,lag4,lag5,reportedとして書いてください。事故月12行がすべて入っている必要があります。
  3. 5か月分をすべて満たした事故月(2025-07から2026-01まで)だけを集め、/root/ins/lagrate.csvにlag,claims,cum_claims,cum_permilleの6行を書いてください。cum_permilleは、累積を全体で割った千分率の整数です。
  4. まだ成熟していない事故月の最終件数を推定し、/root/ins/ibnr.csvにaccident_ym,reported,max_lag,cum_claims,ultimate,ibnrとして書いてください。
  5. /root/ins/reserve.txtにoutstanding=、ibnr_claims=、avg_incurred_excl_large=、ibnr_amount=、reserve_total=、avg_incurred_incl_large=、reserve_if_incl_large=、overstated_by=の8行を書いてください。
  6. 元帳と再保険システムを事故月単位で突合し、差が0でない月を/root/ins/cession_diff.csvにaccident_ym,ledger,system,diffとして書き、案件単位まで絞って/root/ins/cession_claims.csvにclaim_no,accident_ym,incurred,expected,recorded,diffとして書いてください。
  7. /root/ins/netloss.txtにgross_incurred=、ceded=、net_retained=、big_claim=、big_net=、net_excl_big=、big_share_pct=の7行を書いてください。出再額は元帳の値を使ってください。
  8. /root/ins/reserve_report.mdに、## 확인한 것、## 준비금、## 출재 대사、## 대형 사고、## 권고の5つの節で報告書を書いてください(見出しは順に、韓国語で「確認したこと」「準備金」「出再突合」「大型事故」「勧告」を意味する語です)。勧告は3項目以上必要です。

参考

決算データを作る

右の例にあるジェネレーターを/root/ins/make_reserve.pyとして保存し、python3 make_reserve.pyで実行してください。損害1,296件、出再1,293件、元帳12か月分が作られます。

ラボの案内にあるジェネレーターを/root/ins/make_reserve.pyとして保存し、python3で実行してください。決算基準日以降に受け付けられる事故は、そもそもデータに入りません。

遅延三角形を作る

事故月 × 受付遅延月数の表を、/root/ins/triangle.csvにaccident_ym,lag0,lag1,lag2,lag3,lag4,lag5,reportedとして書いてください。事故月12行がすべて入っている必要があります。

受付遅延月数は、report_ymとaccident_ymをそれぞれ年×12+月に変換して引けば出ます。右下が空くのが正常です。

成熟した月から報告率を出す

5か月分をすべて満たした事故月(2025-07から2026-01まで)だけを集め、/root/ins/lagrate.csvにlag,claims,cum_claims,cum_permilleの6行を書いてください。cum_permilleは、累積を全体で割った千分率の整数です。

決算基準日が2026-06で最大遅延が5か月なので、5か月分をすべて満たした事故月は2026-01までです。まだ成熟途中の月を混ぜると、比率が前のほうに偏ります。

まだ受け付けられていない案件を推定する

まだ成熟していない事故月の最終件数を推定し、/root/ins/ibnr.csvにaccident_ym,reported,max_lag,cum_claims,ultimate,ibnrとして書いてください。

まだ成熟途中の月は、観測できる最大遅延が5より小さいです。その遅延までの累積件数で割り、全体件数を掛けると、最終推定値が出ます。掛け算を先に行い、割り算は最後に1回だけ行ってください。

準備金を2つの部分に分けて計算する

/root/ins/reserve.txtにoutstanding=、ibnr_claims=、avg_incurred_excl_large=、ibnr_amount=、reserve_total=、avg_incurred_incl_large=、reserve_if_incl_large=、overstated_by=の8行を書いてください。

IBNR推定額は、未受付件数に1件あたりの平均発生損害額を掛けたものです。平均を出すとき、1億を超える大型案件を入れた場合と除いた場合をそれぞれ計算して、並べてください。

元帳と再保険システムを突合する

元帳と再保険システムを事故月単位で突合し、差が0でない月を/root/ins/cession_diff.csvにaccident_ym,ledger,system,diffとして書き、案件単位まで絞って/root/ins/cession_claims.csvにclaim_no,accident_ym,incurred,expected,recorded,diffとして書いてください。

まず事故月単位に絞って、差が0でない月だけを残し、次に案件単位で開いて確定してください。月合計の差と案件合計の差が一致すれば、すべて見つけたことになります。

大型事故1件の財務への影響を測る

/root/ins/netloss.txtにgross_incurred=、ceded=、net_retained=、big_claim=、big_net=、net_excl_big=、big_share_pct=の7行を書いてください。出再額は元帳の値を使ってください。

出再額は、突合が終わっていない再保険システムの値ではなく、会計元帳の値を使ってください。正味保有は、総発生損害から出再額を引いたものです。

決算報告書を書く

/root/ins/reserve_report.mdに、## 확인한 것、## 준비금、## 출재 대사、## 대형 사고、## 권고の5つの節で報告書を書いてください。勧告は3項目以上必要です(見出しは順に、韓国語で「確認したこと」「準備金」「出再突合」「大型事故」「勧告」を意味する語です)。

5つの節が必要で、勧告は3項目以上必要です。準備金と出再は別々のチームが見るので、誰の仕事なのかが区別されていてはじめて、その文書が動きます。