f
This commit is contained in:
322
internal/domains/api/services/processors/dwbg/dwbg9fb3评分规则.md
Normal file
322
internal/domains/api/services/processors/dwbg/dwbg9fb3评分规则.md
Normal file
@@ -0,0 +1,322 @@
|
||||
# DWBG9FB3 RA 安全评估 — 千分制计算说明(三维度动态权重版)
|
||||
|
||||
> **修订说明**
|
||||
> 本版本采用 **「身份固定 10% + 司法 / 借贷动态 90%」** 的三维度加权模型,突出个人司法与信贷风险的主次关系;司法维度细分为 **涉诉统计、失信被执行人、限高被执行人** 三类独立计分。
|
||||
|
||||
---
|
||||
|
||||
## 一、核心原则
|
||||
|
||||
- 所有分值采用 **千分制(0–1000)**
|
||||
- **分值越高表示越安全**
|
||||
- 统一计算路径:
|
||||
|
||||
```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` 映射 A–F |
|
||||
|
||||
---
|
||||
|
||||
## 三、等级划分(含 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 |
|
||||
|
||||
> 身份核验为 **基础准入项**,权重低但不可忽略;不一致时单项扣分仍可达 400–800 分。
|
||||
|
||||
---
|
||||
|
||||
### 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 | 500−score,上限 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 级** |
|
||||
Reference in New Issue
Block a user