公责险水损定损
Purpose(目的)
把水损案件的损失核定固化成一件事:给一个案件资料文件夹,出一张可复核的水损定损表。
覆盖公责险项下第三方财产损失与财产险自身标的损失两条线,逐项核定单价、数量、维修复换、折旧与残值;报损单价高于市场价的,加重价值凭证的举证要求。每笔核减写明依据,输出双栏对照的 xlsx。
When to Use(何时使用)
- 用户提供水损案件资料文件夹路径,要求定损、核损、出定损表
- 用户提供报损清单或维修报价单,要求核定金额
- 用户询问地板/墙顶面/家具家电泡水该按什么价、折几年
- 用户质疑报损单价虚高,要求核价,或要求报损方补价值凭证
- 触发说法:「这个水损案子资料在桌面,帮我定个损」「反水把业主家泡了,损失清单核一下」「漏水泡了地板和柜子,出个定损表」「报损清单里这些数量我不信,帮我核」「爆管了,业主报了一万八,看看能核到多少」「地板报了 680 一平,这价靠谱吗」「单价虚高又拿不出发票」
不适用:人伤定损(走 injury-claims-assessment)、责任比例认定、综合报告书与理赔单填写、车损定损。这些不在本技能范围内,遇到时说明并交给对应技能。
首次使用环境自检
每个案件开始前先跑一次只读环境检查,按结果路由:
python scripts/check_environment.py --capability case-folder-scan --capability loss-table-generation --capability depreciation-calculation --capability quantity-verification --capability price-verification --capability video-extraction
| 结果 | 动作 |
|---|---|
| ready | 跳过配置引导,直接进入流程 |
| partial | 继续可用功能,只说明受影响功能与降级方式 |
| needs_setup | 只展示缺失必需项的配置步骤,配置后重检 |
| unavailable | 说明故障原因、恢复步骤与可用降级 |
配置步骤见 @references/setup-guide.md。本技能只依赖 Python 3.10+ 标准库,正常环境下结果为 ready。
输入
用户给出的案件资料文件夹。典型内容:现场照片与视频、报损清单、维修报价单、购置凭证与发票、保单、查勘记录、户型图。
- 原文件只读,不修改、不移动、不删除。
- 用户未给路径时先问路径,不要按常见位置猜测遍历磁盘。
Process(工作流程)
档位选择(开工确认一次)
用户指定档位按档位执行;未指定默认 A。
| 档位 | 执行范围 | 用户一句话示例 |
|---|---|---|
| A 标准全流程(默认) | 扫描 → 提取 → 核定 → 出表 | "这个水损案子定个损" |
| B 仅扫描归类 | 只做第 1 步,输出分类与待补清单 | "先看看资料齐不齐" |
| C 已核过,只重出表 | 用户已给核定好的数据,直接第 4 步 | "数据我核好了,出个表" |
第 1 步 扫描归类
python scripts/scan_case_folder.py "<案件文件夹>" --out "<输出目录>/_扫描结果.json"
输出七类归类(照片与视频、报损清单、维修报价、购置凭证、保单与条款、查勘记录、图纸)与 P0/P1/P2 待补清单。
- 扫描输出的文件清单即判读勾销底单:第 2 步必须对底单逐份勾销,每一份文件(照片、视频、PDF、Excel、凭证)都要被实际读取过,杜绝「扫了但没看」。
- 待补项为 P0(无照片或无报损清单)时,仍继续出表,但相关行标【待补】,并在交付时明确列出。
- 待补清单与取数自检项一并输出给用户,见
@references/水损资料清单.md。
第 2 步 提取损失项
先做资料全覆盖判读(硬规则,防缺失),再提取损失项:
- 照片逐张读:每个现场子文件夹的照片全部读一遍,不做抽样跳读。
- 视频必须抽帧读:所有视频(mp4/mov 等)用 OpenCV 抽帧后读图,每个视频至少取 25%/50%/75% 三帧;截帧存
核损成果/_视频截帧/留档。不得以「只有视频没照片」或「缺解码工具」为由跳过视频——环境自检含video-extraction能力,缺 OpenCV 时先装opencv-python-headless再抽帧。
- ⚠️ Windows 中文路径坑:cv2.imwrite写中文路径会静默失败,必须用cv2.imencode('.jpg', frame)编码到内存后以 Python 原生open(..., 'wb')写盘。 - 单证全部打开读:报损清单、报价单、凭证、保单等逐份打开,内容为空的也要记录「已读·空白」。
- 判读结果对扫描底单勾销:文件名 → 判读结论一句话(如「壁纸脱落」「空白」「与照片重复」)。有未勾销文件不得进入核定。
然后从报损清单、维修报价单、现场照片与视频截帧中读出损失项目,归一到统一口径:项目名、单位、数量、单价、金额、损失程度、备注。
- 归口规则与类别对照见
@references/损失项目库.md。 - 同一材质同一部位只保留一行,同项多行拆开报的合并。
- 单位统一为 m²、米、樘、件、台、套。
- 关联项目互相勾稽:铲除/找平/腻子/刷漆四项面积应一致,地板面积应与铺装面积一致。不一致的以可信依据为准并在备注说明。
第 3 步 逐项核定(五道规则,顺序不得颠倒)
对每一项依次过五道规则,任一规则改了金额都要在备注写明。
- 单价核验:报损单价高于同材质同规格市场均价时,举证责任加重。必须取得「原始凭证 + 对应实物 + 付款实证」三项齐全的价值凭证,才认可凭证价作重置价;缺任一项即按市场均价核定,报损单价不予采信。
- 数量核验:数量必须有依据,首选户型图反推,其次照片实测,再次凭证件数。
- 维修复换判断:先问能不能修,可修复的按维修费核,不按换新核。柜类家具必须走「修复 → 部分损失 → 全损」三级分流(修复级只核维修费;部分损失按受损部件价值占比取损失比例、不折旧;全损才折旧换新并判残值),详见
@references/核定标准.md第九节。 - 折旧计提:仅整体报废的项目按年折旧率三档核成新率,不用原始买价直接赔付;维修项与局部受损不折旧(折旧与损失比例互斥,见下方「核定单价口径」)。
- 残值抵扣:整体更换的项目逐项判断残值,计入残值抵扣专项。
单价核验的触发条件、凭证合格线与核减口径见 @references/核定标准.md 第六节,规则细节与计算式见同文件其余各节,取数方法见 @references/数量核验.md。
同时剔除不计入损失的项目(停业损失、租金损失、误工费、精神损害、旧损混入等),剔除项在备注写明理由。
第 4 步 生成定损表
把核定结果整理成 JSON,然后生成 xlsx:
先判适用险种,一个案件只出一张表:
- 第三方索赔(业主/租户等,物业责任引起)→
公责险定损表; - 被保险人自身标的损失 →
财产险定损表; - 同一事故两类损失都有 → 分开两份工作簿各出一张,不混在一份里;
- 保单信息判断不了的,问用户,不得默认两张都出;
- 判定结果写入 JSON
适用险种字段(公责险/财产险),也可用--sheet 公责险|财产险显式指定;都缺省时脚本按公责险出表并在结果中提示核对。判定规则见@references/定损表结构.md第〇节。
python scripts/build_loss_table.py "<核定结果.json>" --out "<案件文件夹>/核损成果/水损定损表_YYYYMMDD.xlsx"
- 输出工作簿只含适用险种的一张工作表。
- 核定结果 JSON 的字段结构、适用险种判定、尾部结算与格式约定见
@references/定损表结构.md;JSON 至少写全meta与items两组,缺字段时表中对应格留空,不填假值。 - 包内
assets/水损定损表模板.xlsx是同版式的空白表样,供人工填表或核对格式使用;正常出表走上面的脚本,不依赖该模板。 - 核定单价是实际赔付单价,口径按损失程度三分支取其一(见下方「核定单价口径」),折旧与损失比例互斥。
- 汇总与赔付金额写公式不写死值,用户改责任比例或免赔额后自动重算。
第 5 步 自检与交付
出表后逐条自查,任一条不通过则修表重出:
- [ ] 扫描底单逐份勾销:案件文件夹内每份资料(照片/视频/PDF/Excel/凭证)均已读取判读,无遗漏
- [ ] 所有视频均已抽帧判读(每视频 ≥3 帧,截帧留档
核损成果/_视频截帧/),「仅有视频」的部位未直接标待补 - [ ] 每条有金额的行,备注列四要素是否写全;核定单价是否按所走分支写明来历(维修单价/更换单价/重置价×成新率/重置价×损失比例)
- [ ] 折旧与损失比例是否互斥:局部受损的行未乘成新率,整体报废的行未乘损失比例
- [ ] 整体更换的项目是否都判过残值
- [ ] 按换新报价的项目是否都回退核过可修复性
- [ ] 柜类家具是否走过「修复→部分损失→全损」三级分流;全损项是否做了折旧与残值;定制柜报损单价是否与市场均价同口径比价(投影面积 vs 展开面积)
- [ ] 按面积计量的项目数量是否有户型图或照片依据
- [ ] 无凭证项目是否都标了【无凭证】且未引用对方单价
- [ ] 报损单价高于市场均价的项,是否都做过凭证三查,并在备注写明溢价幅度与核减口径
- [ ] 工作簿只含适用险种的一张定损表(险种判定有据,未擅自两张都出);结算区公式与险种匹配(公责=责任比例式,财产=保额封顶式)
- [ ] 剔除项是否都在备注写明理由
- [ ] 结算区公式引用是否正确,行号错位则公式会指向错误单元格
- [ ] 用表格工具打开一次,确认能正常打开且公式可算
五条硬规则(最容易翻车的地方)
| # | 坑 | 硬规则 |
|---|---|---|
| G1 | 原始凭证不充分,直接采信了对方报价 | 无凭证时按同材质市场均价核定,备注标【无凭证】,不得直接引用报损方单价 |
| G2 | 可修复的按换新定损 | 先判可修复性:可修复且维修费 ≤ 本体现值 → 按维修费核;维修费 > 本体现值 → 才按更换核定(全损走重置价×成新率,局部受损按分支口径、不折旧)。柜类家具必须再走「修复→部分损失→全损」三级分流,防整组换新虚高 |
| G3 | 残值没考虑 | 整体更换的旧物必须判残值并填入「残值抵扣专项」,从核定总额冲减 |
| G4 | 数量来源没依据 | 数量必须有据:用户型图反推基准面积校验,照片可测的按照片实测,都不行的标【待核数】 |
| G5 | 报损单价虚高,凭证却跟着一起松 | 报损单价 > 市场均价即触发加重审查,须原始凭证(载明品牌型号、购置日期、金额)+ 能与受损实物对应 + 合同收据另附原始付款记录三项齐全才认可凭证价;缺任一项按市场均价核,报损单价不予采信,备注标【溢价·凭证不充分】 |
| G6 | 资料没判读完就定损(尤其视频被跳过) | 扫描底单逐份勾销:照片逐张读、视频抽帧读(每视频 ≥3 帧,存 _视频截帧/)、单证逐份打开;有未勾销文件不得出表。「仅有视频没照片」不是跳过理由,先抽帧;缺工具先装 opencv-python-headless |
核定单价口径(折旧与损失比例互斥,每行都要经得起当场验算)
核定金额按损失程度三分支取其一,成新率(折旧)与损失比例不得相乘叠加——折旧的前提是整件换新,仅全损场景成立;受损范围在维修费、受损数量或损失比例里体现,不重复扣减:
| 损失程度 | 核定金额 | 折旧(成新率) | 损失比例 | 残值 |
|---|---|---|---|---|
| 维修项(能修复) | 数量 × 维修单价 | ✗ 不折旧 | ✗ 无(费用即范围) | 无 |
| 局部受损·量可拆(地板、踢脚线按 m²/米核) | 受损数量 × 更换单价 | ✗ 不折旧 | ✗ 无(比例体现在数量) | 判,有则抵扣 |
| 局部受损·量不可拆(柜按组、家电按台、门按樘计) | 数量 × 重置价 × 损失比例 | ✗ 不折旧 | ✓ 仅此场景使用 | 判,有则抵扣 |
| 整体报废(全损) | 数量 × 重置价 × 成新率 | ✓ 仅此场景折旧 | 固定 100%,不再取比例 | 必判必抵扣 |
| 组成 | 取法 |
|---|---|
| 重置价 | 凭证价或同材质市场均价,作核价基准 |
| 成新率 | 1 − 年折旧率 × 使用年限(10%/20%/30% 三档,下限 0);仅整体报废使用 |
| 损失比例 | 仅量不可拆的局部受损使用:受损部件价值占比(可换板修复 0.5—0.6;单部件受损(门板/层板/五金)0.2—0.4;表面饰面受损 0.1—0.2),取值理由写入备注 |
备注列四要素(每条有金额的行必写)
①数量依据:户型图测算 套内 Z m²,报损 X → 核定 Y
②单价依据(含重置价):原始购置凭证/同材质市场均价/维修报价单
报损价高于市场均价时必须写全:报损 X > 市场均价 Y(来源·检索日期);
凭证三查 原始凭证【有/无】·对应实物【能/不能】·付款记录【有/无】→ 重置价 Z
③损失与折旧(按所走分支只写其一):
维修项:写「维修项,不折旧,核定单价 = 维修单价」
局部受损·量可拆:写「局部受损(换板/部件 X 量),核定单价 = 更换单价,不折旧」
局部受损·量不可拆:写「局部受损,重置价 Z × 损失比例 W(仅 XX 部位),不折旧」
整体报废:写「整体报废,折 Y 年,成新率 Z%(10%/20%/30% 档),损失程度 100% → 核定单价 = 重置价 × 成新率」
④残值:无残值(维修项)/有残值 X 元,已计入残值抵扣专项
核定单价不写来历视为不合格。 任一项没有依据时写【待补:缺什么】,不得空着。
计算公式
按适用险种取其一,一个案件只用一套:
核定总金额合计 = Σ 各行核定金额 − 残值抵扣专项
公责险最终赔付金额 = 核定总金额合计 × 事故责任比例 − 本保单免赔额
财产险最终赔付金额 = MIN(核定总金额合计 − 本保单免赔额, 分项保额/限额)
先乘责任比例,再扣免赔额,顺序不得颠倒。责任比例不属本技能核定范围,默认留 1 并提示用户填写。
Delegating Logic(分工与调用逻辑)
| 任务 | 调用方式 |
|---|---|
| 扫描案件文件夹、归类、找缺料 | scripts/scan_case_folder.py(只读) |
| 生成定损表 xlsx | scripts/build_loss_table.py(纯标准库写 xlsx) |
| 环境检查与路由 | scripts/check_environment.py(只读) |
| 读报损清单/报价单(xls、xlsx) | 优先用表格工具读取;失败时请用户导出 CSV 或截图 |
| 户型图检索、市场均价检索与溢价核验 | 网络检索;不可用时按降级处理(数量标【待核数】,溢价项转用历史核定价区间上限并标注来源) |
| 现场照片判读 | 直接读图,按参照物估算尺寸 |
| 现场视频判读 | 必须抽帧后读图:OpenCV 按 25%/50%/75% 抽帧(每视频 ≥3 帧)存 核损成果/_视频截帧/,逐帧判读;Windows 中文路径用 cv2.imencode+原生 open('wb') 写盘(cv2.imwrite 会静默失败) |
参考文档(按需加载):@references/核定标准.md(单价核验·折旧·填复·残值·剔除·柜类专则第九节)、@references/数量核验.md(户型图反推)、@references/损失项目库.md(分类·单位·历史单价参考)、@references/定损表结构.md(字段·公式·格式)、@references/水损资料清单.md(八项材料·照片要求·视频抽帧要求)、@references/setup-guide.md(环境配置)。
Output(输出规范)
- 主产出:
水损定损表_YYYYMMDD.xlsx,只含适用险种的一张工作表(公责险或财产险,判定规则见第 4 步)。 - 附带产出:扫描结果 JSON 与待补清单(第 1 步),可并入对话正文而不单独出文件。
- 存放位置:案件文件夹下的
核损成果/子目录;用户指定其他位置时从其指定。 - 中间数据:核定结果 JSON 存
核损成果/_核定结果.json,便于改数据重出表。 - 金额两位小数;日期
YYYY-MM-DD;每笔核减可追溯到规则或凭证。
绝不做什么
- 不核定责任比例,不做责任主体认定。
- 不出综合报告书、理赔单、结案材料。
- 不臆造金额、单价、数量;无依据一律标注待补。
- 不修改、不移动、不删除案件资料中的任何原文件。
- 不覆盖已存在的定损表;同名时另存带序号的新文件。
- 不把报损方自报值直接当核定值。
- 不对报损方作虚报、欺诈一类的主观定性,只做金额核减与依据说明。
- 不在资料缺失时用估值顶替并称为完成核定。