Files
tyapi-server/internal/domains/api/services/processors/dwbg/dwbg9fb3评分规则.md

323 lines
11 KiB
Markdown
Raw Normal View History

2026-06-10 17:47:36 +08:00
# DWBG9FB3 RA 安全评估 — 千分制计算说明(三维度动态权重版)
> **修订说明**
> 本版本采用 **「身份固定 10% + 司法 / 借贷动态 90%」** 的三维度加权模型,突出个人司法与信贷风险的主次关系;司法维度细分为 **涉诉统计、失信被执行人、限高被执行人** 三类独立计分。
---
## 一、核心原则
- 所有分值采用 **千分制01000**
- **分值越高表示越安全**
- 统一计算路径:
```text
安全分 = 1000 风险扣分(单维上限 1000
```
- **个人身份信息权重固定 10%,不参与动态调整**
- **个人司法信息与借贷信息合计 90%,根据风险场景动态分配**
- **司法 + 借贷同时高风险时,直接判定 F 级(不参与加权)**
---
## 二、综合分三维度结构
| 业务维度 | 输出字段 | 计算方法 | 基准权重 | 是否动态 |
| :--- | :--- | :--- | :--- | :--- |
| 个人身份信息 | `ra_verify_score` | `calcRAVerifyScore` | **10%(固定)** | 否 |
| 个人司法信息 | `ra_judicial_score` | `calcRAJudicialScore` | **50%(基准)** | 是 |
| 借贷信息 | `ra_credit_score` | `calcRACreditScore` | **40%(基准)** | 是 |
> 基准权重合计:`10% + 50% + 40% = 100%`
### 辅助输出字段(不参与综合分加权)
| 输出字段 | 计算方法 | 说明 |
| :--- | :--- | :--- |
| `ra_fraud_score` | `calcRAFraudScore` | 欺诈 / 黑名单维度,单独输出供业务参考 |
| `ra_score` | `buildDWBG9FB3RA` | 三维度动态加权汇总 |
| `ra_level` | `raLevelFromScore` | 由 `ra_score` 映射 AF |
---
## 三、等级划分(含 F 级)
| 等级 | 分数区间 | 含义 |
| :--- | :--- | :--- |
| A | 800 1000 | 最安全 |
| B | 600 799 | 较安全 |
| C | 400 599 | 一般 |
| D | 200 399 | 较不安全 |
| E | 0 199 | 高风险 |
| **F** | — | **司法 + 借贷双重高风险(强制)** |
---
## 四、动态权重机制
### 1⃣ 风险标志位
```text
HAS_JUDICIAL_RISK =
ra_judicial_score < 1000
HAS_CREDIT_RISK =
ra_credit_score < 1000
HAS_SEVERE_JUDICIAL =
ra_judicial_score ≤ 400
OR breachCaseList 非空
OR consumptionRestrictionList 非空
HAS_SEVERE_CREDIT =
ra_credit_score ≤ 400
```
---
### 2⃣ 权重分配表
**固定项:个人身份信息始终占 10%**
| 场景 | 个人身份 | 个人司法 | 借贷 | 说明 |
| :--- | :--- | :--- | :--- | :--- |
| **基准(无显著风险)** | **10%** | **50%** | **40%** | 默认比例 |
| **有司法风险** | **10%** | **65%** | **25%** | 司法权重上调,借贷权重下调 |
| **有借贷风险、无司法风险** | **10%** | **40%** | **50%** | 借贷权重上调,司法权重下调 |
| **司法 + 借贷均有风险** | **10%** | **70%** | **20%** | 司法优先于借贷 |
> 动态权重仅调整 **司法 / 借贷** 两个维度,三者之和恒为 100%。
---
### 3⃣ 综合分计算公式
```text
// 第一步:确定司法 / 借贷权重(身份固定 0.10
IF HAS_JUDICIAL_RISK AND HAS_CREDIT_RISK:
w_judicial = 0.70, w_credit = 0.20
ELSE IF HAS_JUDICIAL_RISK:
w_judicial = 0.65, w_credit = 0.25
ELSE IF HAS_CREDIT_RISK:
w_judicial = 0.40, w_credit = 0.50
ELSE:
w_judicial = 0.50, w_credit = 0.40
w_verify = 0.10 // 固定
// 第二步:加权汇总
ra_score = round(
ra_verify_score × w_verify +
ra_judicial_score × w_judicial +
ra_credit_score × w_credit
)
```
---
## 五、F 级强判规则(最高优先级)
同时满足以下条件时:
```text
ra_level = "F"
ra_score = 0
```
| 条件 | 判定标准 |
| :--- | :--- |
| 司法高风险 | `ra_judicial_score ≤ 400` |
| 借贷高风险 | `ra_credit_score ≤ 400` |
| 风险叠加 | 至少存在 2 项中高风险记录 |
> **F 级不参与任何加权计算,直接覆盖结果**
---
## 六、各维度风险扣分规则
### 1⃣ ra_verify_score个人身份信息权重 10% 固定)
- **方法链:** `calcRAVerifyScore → calcRAVerifyRiskPoints → toRASafetyScore`
- **数据来源:** `triple``identity``presence`
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 |
| :--- | :--- | :--- | :--- |
| 三要素不一致 | `triple.state` | 有值且不为 `"1"` | 400 |
| 二要素不一致 | `identity.result` | 不为 `0` | 400 |
| 在网异常 | `presence.desc` | 含停机 / 销号 / 不在网 | 80 |
| 状态码异常 | `presence.status` | 大于 `1` | 50 |
> 身份核验为 **基础准入项**,权重低但不可忽略;不一致时单项扣分仍可达 400800 分。
---
### 2⃣ ra_judicial_score个人司法信息基准权重 50%,可动态上调)
- **方法链:** `calcRAJudicialScore → calcRAJudicialRiskPoints → toRASafetyScore`
- **数据来源:** `judicial.judicial_data`
- **子维度结构:** 涉诉统计 + 失信被执行人 + 限高被执行人(三类独立累加)
#### 2.1 涉诉统计lawsuitStat
遍历 `lawsuitStat` 下各类型节点(如 `civil``criminal``administrative``preservation``implement``bankrupt` 等),读取 `*.count` 累加:
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 | 单项上限 |
| :--- | :--- | :--- | :--- | :--- |
| 涉诉总件数 | `lawsuitStat.*.count.count_total` | 各类型累加 | 80 / 件 | 400 |
| 未结案数 | `lawsuitStat.*.count.count_wei_total` | 各类型累加 | 60 / 件 | 300 |
| 被告件数 | `lawsuitStat.*.count.count_beigao` | 各类型累加 | 50 / 件 | 250 |
#### 2.2 失信被执行人breachCaseList
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 | 单项上限 |
| :--- | :--- | :--- | :--- | :--- |
| 失信执行人记录 | `breachCaseList` 长度 | 每条记录 | **150 / 条** | **450** |
- 对应最高法 **失信被执行人名单**
- 命中即视为 **重度司法风险**,触发动态权重向司法倾斜(`HAS_JUDICIAL_RISK = true`
- 单条扣分高于普通涉诉件数,体现执行阶段信用惩戒的严重性
#### 2.3 限高被执行人consumptionRestrictionList
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 | 单项上限 |
| :--- | :--- | :--- | :--- | :--- |
| 限高执行人记录 | `consumptionRestrictionList` 长度 | 每条记录 | **200 / 条** | **400** |
- 对应 **限制高消费被执行人名单**
- 单条扣分高于失信记录,体现对消费 / 出行能力的直接限制
- 与失信记录 **独立计分、互不替代**,可同时累加
#### 2.4 司法子维度扣分优先级(业务解释)
| 优先级 | 子维度 | 典型场景 | 相对严重度 |
| :--- | :--- | :--- | :--- |
| 1 | 限高被执行人 | 已被法院采取限高措施 | 最高 |
| 2 | 失信被执行人 | 已被列入失信名单 | 高 |
| 3 | 未结案涉诉 | 纠纷仍在审理 / 执行中 | 中 |
| 4 | 被告涉诉 | 作为被告被起诉 | 中 |
| 5 | 历史涉诉(已结案) | 仅 count_total 有值 | 相对较低 |
---
### 3⃣ ra_credit_score借贷信息基准权重 40%,可动态上调)
- **方法链:** `calcRACreditScore → calcRACreditRiskPoints → toRASafetyScore`
- **数据来源:** `probe``intent``rating`
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 |
| :--- | :--- | :--- | :--- |
| 当前逾期 | `probe.currently_overdue` | `"1"` | 300 |
| 睡眠账户 | `probe.acc_sleep` | `"1"` | 150 |
| 未履约 | `probe.currently_performance` | `"0"` | 100 |
| 探针命中 | `probe.result_code` | `"1"` | 100 |
| 借贷意向 | `intent.Rule_final_decision` | `Reject` / `Review` | 400 / 250 |
| 规则权重 | `intent.Rule_final_weight` | 有值 | weight×5上限 250 |
| 借选指数低 | `rating.score` | 0 < score < 500 | 500score上限 300 |
---
### 4⃣ ra_fraud_score欺诈辅助输出不参与加权
- **方法链:** `calcRAFraudScore → calcRAFraudRiskPoints → toRASafetyScore`
- **数据来源:** `behavior``complaint``fraud``special`
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 |
| :--- | :--- | :--- | :--- |
| 行为黑名单 | `behavior.result.black_list` | `"1"` | 500 |
| 行为黑标签 | `behavior.result.black_tag**` | 任意 `"1"` | 每个 80 |
| 投诉风险 | `complaint.result.score` | 有值 | score×10上限 300 |
| 欺诈黑名单 | `fraud.hit` | `1` | 400 |
| 特殊名单 | `special.Rule_final_decision` | `Reject` / `Review` | 350 / 200 |
> 欺诈信号仍单独计算并返回 `ra_fraud_score`,供风控人工复核;**不进入 `ra_score` 三维度加权**,避免与借贷维度重复计分。
---
## 七、综合分与等级计算样例
### ✅ 样例 1基准场景无显著风险 → A
| 维度 | 安全分 | 权重 |
| :--- | :--- | :--- |
| 个人身份 | 920 | 10% |
| 个人司法 | 980 | 50% |
| 借贷 | 760 | 40% |
```text
ra_score = 920×0.10 + 980×0.50 + 760×0.40
= 92 + 490 + 304
= 886 → A
```
---
### ⚠️ 样例 2命中失信 + 限高(司法权重上调 → C/D
| 维度 | 安全分 | 说明 |
| :--- | :--- | :--- |
| 个人身份 | 900 | 核验正常 |
| 个人司法 | 350 | 失信 1 条 + 限高 1 条,扣分 350 |
| 借贷 | 680 | 轻度借贷风险 |
动态权重:身份 10% + 司法 65% + 借贷 25%
```text
ra_score = 900×0.10 + 350×0.65 + 680×0.25
= 90 + 227.5 + 170
= 488 → D/E
```
---
### ⚠️ 样例 3仅借贷风险借贷权重上调 → B/C
| 维度 | 安全分 |
| :--- | :--- |
| 个人身份 | 880 |
| 个人司法 | 1000 |
| 借贷 | 520 |
动态权重:身份 10% + 司法 40% + 借贷 50%
```text
ra_score = 880×0.10 + 1000×0.40 + 520×0.50
= 88 + 400 + 260
= 748 → B
```
---
### ❌ 样例 4司法 + 借贷双高F 级)
- `ra_judicial_score ≤ 400`(含失信 / 限高 / 多笔涉诉)
- `ra_credit_score ≤ 400`(当前逾期 + 借贷意向 Reject
**直接判定F`ra_score = 0`**
---
## 八、代码位置
| 方法 | 文件 |
| :--- | :--- |
| `buildDWBG9FB3RA` | `dwbg9fb3_ra.go` |
| `calcRA*Score` / `calcRA*RiskPoints` | `dwbg9fb3_ra.go` |
| `toRASafetyScore` | `dwbg9fb3_ra.go` |
| `raLevelFromScore` | `dwbg9fb3_ra.go` |
---
## 九、变更总结
| 项目 | 原方案 | 新方案 |
| :--- | :--- | :--- |
| 加权维度 | 欺诈 + 借贷 + 司法 + 身份(四维) | **身份 + 司法 + 借贷(三维)** |
| 身份权重 | 15%20% 浮动 | **固定 10%** |
| 司法 / 借贷权重 | 各自独立浮动 | **基准 50% / 40%,动态互调** |
| 司法子维度 | 合并描述 | **涉诉统计 / 失信执行人 / 限高执行人 分项说明** |
| 限高 vs 失信 | 同表罗列 | **限高 200/条、失信 150/条,独立计分** |
| 欺诈维度 | 参与加权 | **单独输出,不参与 `ra_score`** |
| 双高风险 | 仍参与加权 | **直接 F 级** |