赔付率分析与异常理赔识别
目标
根据保单和理赔数据计算各产品、各季度的赔付率与综合成本率,并查找承保后短期内出险、理赔集中于特定医院、多个保单共用收款账户这三类异常迹象,生成调查转介清单。
为什么重要
财产与意外伤害保险的成绩单由两个数字构成。赔付率表示所收保费中有多少用于支付保险金;综合成本率则在此基础上加上费用,用于判断是否超过 100%。综合成本率超过 100%,意味着单从承保业务看处于亏损。管理层每月都会查看这些数字,费率上调、收紧承保标准和停售等决策都由此而来。
关键在于分母是已赚保费。即使已经收取一整年的保费,本季度赚取的也只有其中三个月的部分。分子是已发生损失,不仅包括已经支付的金额,也包括已报案但仍在审核中的案件估损金额。如果只统计支付金额,赔付率就会显得比实际更好,这种错觉会在下一个季度暴露出来。
欺诈检测是赔付率管理的另一面。刚承保就发生理赔的保单、反复集中在某一家医院的大额理赔、不同保单却向同一账户付款的理赔——每一项单独看都可能是偶然,但形成模式后就应纳入调查。规则不是作出判断,而是为调查转介提供依据;最终判断由特别调查部门(SIU)作出。
本实验的规则
- 季度分为
2026Q1(1–3 月)和2026Q2(4–6 月)。已赚保费是对季度首日有效的保单(start_date小于或等于季度首日)逐份求出annual_premium ÷ 4的整数商(舍去不足 1 韩元的部分)后相加的值(本实验的简化规则)。如果先求合计再除以 4,可能会相差 1 韩元。 - 已发生损失 = 事故日期位于该季度且状态不为
DENIED的理赔中,paid_amount + reserve_amount的合计。即使拒赔案件仍留有估损金额,也不计入。 - 赔付率(%)= 已发生损失 ÷ 已赚保费 × 100;费用率(%)= 费用 ÷ 已赚保费 × 100,二者都四舍五入到小数点后一位。综合成本率是四舍五入后的赔付率与费用率之和。
- 承保后短期内出险 = 事故日期距
start_date不满 90 天(恰好 90 天不算;按天数计算,而不是按“三个月”计算)。不论理赔状态如何都计入。划分季度所依据的日期始终是事故日期。 - 医院集中 = 该医院的
PAID理赔达到 4 笔或以上,且这些PAID理赔的平均支付金额超过全部PAID理赔平均值的 2 倍。拒赔和未决理赔既不计入笔数,也不计入平均值;HOSPITAL原因也只标注在命中医院的PAID理赔上。 - 共用收款账户 = 3 个或以上不同保单使用同一个
payee_account。命中账户的理赔不论状态如何,全部标注PAYEE原因。
步骤
- 将右侧示例中的生成器保存为
/root/ins/make_claims.py,并运行python3 make_claims.py。claims.db中将写入 65 份保单、110 笔理赔和 6 行费用数据。 - 将各产品、各季度的已赚保费写入
/root/ins/earned.csv,表头为product,quarter,policies,earned_premium,共 6 行。 - 将各产品、各季度的赔付率写入
/root/ins/loss_ratio.csv,表头为product,quarter,earned,incurred,loss_ratio_pct。 - 将综合成本率写入
/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=。 - 将承保后短期内出险的理赔写入
/root/ins/early_claims.csv,表头为claim_no,policy_no,days_since_start,paid_amount。 - 将医院集中结果写入
/root/ins/hospital_flag.csv,表头为hospital_id,claims,avg_amount,ratio。claims是该医院的PAID理赔笔数,ratio是相对于全部PAID理赔平均值的倍数,保留到小数点后两位。 - 将共用收款账户结果写入
/root/ins/payee_flag.csv,表头为payee_account,policies,claims,total_paid;将至少命中三条规则之一的理赔写入/root/ins/siu_referral.csv,表头为claim_no,reasons。reasonsEARLY、HOSPITAL和PAYEE按字母顺序用+连接。 - 在
/root/ins/loss_report.md中撰写报告,包含## Loss Ratio and Combined Ratio(赔付率与综合成本率)、## Anomalies(异常迹象)、## SIU Referral(调查移交)、## Limitations(局限性)四个章节。章节标题用英文标题或意思相同的韩文、日文、中文标题均可,也可以把两者用括号并写。
参考
- 可使用
CASE WHEN substr(accident_date, 6, 2) <= '03' THEN '2026Q1' ELSE '2026Q2' END划分季度。 - 比率请使用
ROUND(x * 100.0 / y, 1)这样的浮点除法。整数相除会得到 0。 - 常见错误 1:从赔付率分子中排除状态为
OPEN的案件估损金额。尚未支付的金额同样属于已发生损失。 - 常见错误 2:把 2026-02-15 承保的保单计入第一季度已赚保费。该保单在季度首日尚不存在。
- 常见错误 3:使用全部理赔而非
PAID理赔计算医院平均值。拒赔和未决案件的支付金额为 0,会拉低平均值。
生成保单与理赔数据
将右侧示例中的生成器保存为 /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 的案件数。