TT Lab
博客 开始
学习 学习路径 课程

保险领域进阶

赔付率分析与异常理赔识别

在 TT Lab 中继续学习

目标

根据保单和理赔数据计算各产品、各季度的赔付率与综合成本率,并查找承保后短期内出险、理赔集中于特定医院、多个保单共用收款账户这三类异常迹象,生成调查转介清单。

为什么重要

财产与意外伤害保险的成绩单由两个数字构成。赔付率表示所收保费中有多少用于支付保险金;综合成本率则在此基础上加上费用,用于判断是否超过 100%。综合成本率超过 100%,意味着单从承保业务看处于亏损。管理层每月都会查看这些数字,费率上调、收紧承保标准和停售等决策都由此而来。

关键在于分母是已赚保费。即使已经收取一整年的保费,本季度赚取的也只有其中三个月的部分。分子是已发生损失,不仅包括已经支付的金额,也包括已报案但仍在审核中的案件估损金额。如果只统计支付金额,赔付率就会显得比实际更好,这种错觉会在下一个季度暴露出来。

欺诈检测是赔付率管理的另一面。刚承保就发生理赔的保单、反复集中在某一家医院的大额理赔、不同保单却向同一账户付款的理赔——每一项单独看都可能是偶然,但形成模式后就应纳入调查。规则不是作出判断,而是为调查转介提供依据;最终判断由特别调查部门(SIU)作出。

本实验的规则

步骤

  1. 将右侧示例中的生成器保存为 /root/ins/make_claims.py,并运行 python3 make_claims.py。claims.db 中将写入 65 份保单、110 笔理赔和 6 行费用数据。
  2. 将各产品、各季度的已赚保费写入 /root/ins/earned.csv,表头为 product,quarter,policies,earned_premium,共 6 行。
  3. 将各产品、各季度的赔付率写入 /root/ins/loss_ratio.csv,表头为 product,quarter,earned,incurred,loss_ratio_pct。
  4. 将综合成本率写入 /root/ins/combined.csv,表头为 product,quarter,loss_ratio_pct,expense_ratio_pct,combined_pct;并在 /root/ins/combined.txt 中写入三行:worst_product=, worst_quarter=, over_100_count=。
  5. 将承保后短期内出险的理赔写入 /root/ins/early_claims.csv,表头为 claim_no,policy_no,days_since_start,paid_amount。
  6. 将医院集中结果写入 /root/ins/hospital_flag.csv,表头为 hospital_id,claims,avg_amount,ratio。claims 是该医院的 PAID 理赔笔数,ratio 是相对于全部 PAID 理赔平均值的倍数,保留到小数点后两位。
  7. 将共用收款账户结果写入 /root/ins/payee_flag.csv,表头为 payee_account,policies,claims,total_paid;将至少命中三条规则之一的理赔写入 /root/ins/siu_referral.csv,表头为 claim_no,reasons。reasons EARLY、HOSPITAL 和 PAYEE 按字母顺序用 + 连接。
  8. 在 /root/ins/loss_report.md 中撰写报告,包含 ## Loss Ratio and Combined Ratio(赔付率与综合成本率)、## Anomalies(异常迹象)、## SIU Referral(调查移交)、## Limitations(局限性)四个章节。章节标题用英文标题或意思相同的韩文、日文、中文标题均可,也可以把两者用括号并写。

参考

生成保单与理赔数据

将右侧示例中的生成器保存为 /root/ins/make_claims.py,并运行 python3 make_claims.py。claims.db 中将写入 65 份保单、110 笔理赔和 6 行费用数据。

请将实验说明中的生成器保存为 /root/ins/make_claims.py,并使用 python3 运行。如果手工修改,后续步骤中的所有数字都会出现偏差。

计算已赚保费

将各产品、各季度的已赚保费写入 /root/ins/earned.csv,表头为 product,quarter,policies,earned_premium,共 6 行。

针对每个季度,按产品统计 start_date <= 季度首日的保单,并将 annual_premium / 4(整数除法)相加。用 UNION ALL 合并两个查询后共得到 6 行。在季度首日承保的保单计入该季度,2026-02-15 承保的保单只计入第二季度。商要按每份保单分别求出后再相加。

计算已发生损失和赔付率

将各产品、各季度的赔付率写入 /root/ins/loss_ratio.csv,表头为 product,quarter,earned,incurred,loss_ratio_pct。

连接 claim 与 policy 以取得产品,根据事故日期的月份划分季度,再汇总 paid_amount + reserve_amount(排除 DENIED)。使用 .import 导入第 2 步的结果后执行 LEFT JOIN,即可取得分母。ROUND(x * 100.0 / y, 1)。

加上费用并查看综合成本率

将综合成本率写入 /root/ins/combined.csv,表头为 product,quarter,loss_ratio_pct,expense_ratio_pct,combined_pct;并在 /root/ins/combined.txt 中写入三行:worst_product=, worst_quarter=, over_100_count=。

按产品和季度连接 expense 表,将费用 ÷ 已赚保费 × 100 四舍五入到小数点后一位,再加到四舍五入后的赔付率上(二者都先舍入再相加)。worst 是 combined_pct 最大的行,over_100_count 是超过 100 的行数。

查找承保后短期内出险的理赔

将承保后短期内出险的理赔写入 /root/ins/early_claims.csv,表头为 claim_no,policy_no,days_since_start,paid_amount。

连接 claim 与 policy,提取 julianday(accident_date) − julianday(start_date) < 90 的记录。恰好 90 天的理赔不计入。

查找集中于特定医院的大额理赔

将医院集中结果写入 /root/ins/hospital_flag.csv,表头为 hospital_id,claims,avg_amount,ratio。claims 是该医院的 PAID 理赔笔数,ratio 是相对于全部 PAID 理赔平均值的倍数,保留到小数点后两位。

先仅使用 status='PAID' 的理赔计算总体平均值(CTE),再按医院筛选 COUNT(*) >= 4 且 AVG(paid_amount) > 2 × 总体平均值的医院。avg_amount 为整数,ratio 使用 ROUND(…, 2)。

生成共用收款账户结果和调查转介清单

将共用收款账户结果写入 /root/ins/payee_flag.csv,表头为 payee_account,policies,claims,total_paid;将至少命中三条规则之一的理赔写入 /root/ins/siu_referral.csv,表头为 claim_no,reasons。reasons EARLY、HOSPITAL 和 PAYEE 按字母顺序用 + 连接。

payee_flag 按 payee_account 执行 GROUP BY,并使用 COUNT(DISTINCT policy_no) >= 3。siu_referral 汇集第 5 步的理赔、第 6 步医院的 PAID 理赔和第 7 步账户的理赔,按每笔理赔将原因以字母顺序用 + 连接,再按 claim_no 排序。

撰写赔付率与异常理赔报告

在 /root/ins/loss_report.md 中撰写报告,包含 ## Loss Ratio and Combined Ratio(赔付率与综合成本率)、## Anomalies(异常迹象)、## SIU Referral(调查移交)、## Limitations(局限性)四个章节。章节标题用英文标题或意思相同的韩文、日文、中文标题均可,也可以把两者用括号并写。

四个章节标题须与英文标题或意思相同的韩文、日文、中文标题一致。在赔付率(loss ratio)章节中把表现最差的产品及其综合成本率(combined ratio)写在同一行;在异常迹象(Anomalies)章节中写出第 6 步找到的全部医院编号和第 7 步找到的全部共用账户(payee account);在调查移交(SIU Referral)章节中以数字写入 siu_referral.csv 的案件数。