保险域三个过程
保险域围绕三个业务过程建模:承保形成保单,缴费形成期缴流水,理赔形成赔案。投保人与被保人是两个独立的角色维度,同一张保单可能涉及多个被保人,因此要用角色扮演维度或保单与被保人的关系表来承载。度量上保额、保费、赔付额分属不同业务含义,不能混在一张表里相加。保单是一等维度,续保、批改、退保都挂在保单维度或事件表上管理。
基本信息
| 业务过程 | 承保、缴费、理赔 |
|---|---|
| 维度 | 投保人、被保人、险种、渠道、机构 |
| 度量 | 保额、保费、赔付额、手续费 |
| 角色维度 | 投保人与被保人分开建模 |
| 事件 | 批改、续保、退保、给付 |
典型使用场景
- 保费收入与续保率分析,按险种、渠道、机构多维查看
- 理赔时效与赔付率监控:报案到结案的周期分布
- 保单保有量统计,区分有效、失效、退保状态
- 批改管理:保额与被保人变更留痕,支撑争议追溯
- 与财务精算口径核对,确认准备金与实收保费的关系
理赔事实
理赔事实
-- 理赔事实:赔案级粒度,关联保单与角色维
CREATE TABLE fact_claim (
claim_id string,
policy_id string,
insured_sk bigint COMMENT '被保人角色维键',
claim_type string COMMENT '赔案类型',
report_ts timestamp COMMENT '报案时间',
close_ts timestamp COMMENT '结案时间,空表示未结案',
claim_amt decimal(18,2) COMMENT '赔付金额'
) PARTITIONED BY (dt string) STORED AS ORC;
-- 赔付率按险种聚合,注意分子分母的期间口径
SELECT claim_type, count(1) AS claim_cnt FROM fact_claim GROUP BY claim_type;建模对象对照
| 建模对象 | 粒度 | 要点 |
|---|---|---|
| 保单 | 一保单一行 | 状态变化需事件表补充 |
| 期缴流水 | 一缴费一行 | 应收与实际到账需分开 |
| 赔案 | 一赔案一行 | 结案时间为空表示未结案 |
| 角色维 | 投保人与被保人 | 一人多角色需桥接表承载 |
投保人与被保人不能合并成一个维度:一张保单可以有多个被保人,合并后风险人数会被算错,风控与精算口径都会受影响。
保单状态不要原地覆盖:保全变更、退保、失效都是业务事实,用状态事件表记录变更过程,才能在争议与审计时给出完整链条。