This commit is contained in:
Mrx
2026-06-10 20:27:18 +08:00
parent 66e8bb267d
commit 0cfcd6a7ee
3 changed files with 456 additions and 127 deletions

View File

@@ -17,7 +17,7 @@
- **个人身份信息权重固定 10%,不参与动态调整**
- **个人司法信息与借贷信息合计 90%,根据风险场景动态分配**
- **司法 + 借贷同时高风险时,直接判定 F 级(不参与加权**
- **司法 + 借贷同时高风险时,强制归入 F 档(仍参与加权,分数上限 500**
---
@@ -43,14 +43,18 @@
## 三、等级划分(含 F 级)
千分制下 **每档间隔 100 分**F 为 **500 分以下**
| 等级 | 分数区间 | 含义 |
| :--- | :--- | :--- |
| A | 800 1000 | 最安全 |
| B | 600 799 | 较安全 |
| C | 400 599 | 一般 |
| D | 200 399 | 较不安全 |
| E | 0 199 | 高风险 |
| **F** | — | **司法 + 借贷双重高风险(强制)** |
| A | 900 1000 | 最安全 |
| B | 800 899 | 较安全 |
| C | 700 799 | 一般 |
| D | 600 699 | 较不安全 |
| E | 500 599 | 不安全 |
| **F** | **0 499** | **最不安全** |
> 另:司法 + 借贷双重高风险时 **强制 F 档**(仍按三维度加权计算 `ra_score`,封顶 **500 分**,不置 0
---
@@ -116,22 +120,37 @@ ra_score = round(
---
## 五、F 强判规则(最高优先级)
## 五、F 强判规则(最高优先级)
同时满足以下条件时:
```text
ra_level = "F"
ra_score = 0
```
同时满足以下条件时**强制归入 F 档**
| 条件 | 判定标准 |
| :--- | :--- |
| 司法高风险 | `ra_judicial_score ≤ 400` |
| 借贷高风险 | `ra_credit_score ≤ 400` |
| 风险叠加 | 至少存在 2 项中高风险记录 |
| 命中总条数 | 司法 + 借贷 **合计命中 > 5 条** |
> **F 级不参与任何加权计算,直接覆盖结果**
**命中条数统计:**
| 维度 | 计数方式 |
| :--- | :--- |
| 司法 | `lawsuitStat.*.count.count_total` 累加 + `breachCaseList` 条数 + `consumptionRestrictionList` 条数 |
| 借贷 | 探针命中项(逾期 / 睡眠 / 未履约 / 探针)+ 借贷意向Reject / Review+ 借选模型分低(`xyp_model_score_*` 各 1 条) |
```text
// 第一步:正常三维度动态加权(与常规定价路径相同)
ra_score_raw = round(
ra_verify_score × 0.10 +
ra_judicial_score × w_judicial +
ra_credit_score × w_credit
)
// 第二步:强制 F 档映射(保留分数,不置 0
ra_level = "F"
ra_score = min(ra_score_raw, 500)
```
> 双高风险场景 **仍参与加权**,仅覆盖等级为 F并将综合分 **封顶 500**F 档最高分)。
---
@@ -144,36 +163,44 @@ ra_score = 0
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 |
| :--- | :--- | :--- | :--- |
| 三要素不一致 | `triple.state` | 有值且不为 `"1"` | 400 |
| 二要素不一致 | `identity.result` | 不为 `0` | 400 |
| 在网异常 | `presence.desc` | 含停机 / 销号 / 不在网 | 80 |
| 状态码异常 | `presence.status` | 大于 `1` | 50 |
| 三要素不一致 | `triple.state` | 有值且不为 `"1"` | 387 |
| 二要素不一致 | `identity.result` | 不为 `0` | 387 |
| 在网异常 | `presence.desc` | 含停机 / 销号 / 不在网 | 73 |
| 状态码异常 | `presence.status` | 大于 `1` | 47 |
> 身份核验为 **基础准入项**,权重低但不可忽略;不一致时单项扣分仍可达 400800 分。
> 身份核验为 **基础准入项**,权重低但不可忽略;不一致时单项扣分仍可达 387774 分。
---
### 2⃣ ra_judicial_score个人司法信息基准权重 50%,可动态上调)
- **方法链:** `calcRAJudicialScore → calcRAJudicialRiskPoints → toRASafetyScore`
- **数据来源:** `judicial.judicial_data`
- **数据来源:** `judicial.judicial_data`FLXG7E8F 个人司法数据查询)
- **子维度结构:** 涉诉统计 + 失信被执行人 + 限高被执行人(三类独立累加)
- **计分方式:** 按 **命中条数 / 件数** 统计,遍历累加后换算安全分
| 子维度 | 命中统计方式 | 代码实现 |
| :--- | :--- | :--- |
| 涉诉统计 | 各类型 `*.count` 字段累加件数 | `lawsuitStat.*.count` 遍历求和 |
| 失信被执行人 | `breachCaseList` 数组长度 = 命中条数 | `len(breachCaseList)` |
| 限高被执行人 | `consumptionRestrictionList` 数组长度 = 命中条数 | `len(consumptionRestrictionList)` |
#### 2.1 涉诉统计lawsuitStat
遍历 `lawsuitStat` 下各类型节点(如 `civil`、`criminal`、`administrative`、`preservation`、`implement`、`bankrupt` 等),读取 `*.count` 累加
遍历 `lawsuitStat` 下各类型节点(如 `civil`、`criminal`、`administrative`、`preservation`、`implement`、`bankrupt` 等),读取 `*.count` 累加
扣分采用 **非整齐系数**(避免 50/80/100 等整齐倍数),例如涉诉总件数按 **件数 × 47** 折算:
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 | 单项上限 |
| :--- | :--- | :--- | :--- | :--- |
| 涉诉总件数 | `lawsuitStat.*.count.count_total` | 各类型累加 | 80 / 件 | 400 |
| 未结案数 | `lawsuitStat.*.count.count_wei_total` | 各类型累加 | 60 / 件 | 300 |
| 被告件数 | `lawsuitStat.*.count.count_beigao` | 各类型累加 | 50 / 件 | 250 |
| 涉诉总件数 | `lawsuitStat.*.count.count_total` | 各类型累加 | **件数 × 47** | 387 |
| 未结案数 | `lawsuitStat.*.count.count_wei_total` | 各类型累加 | **件数 × 38** | 293 |
| 被告件数 | `lawsuitStat.*.count.count_beigao` | 各类型累加 | **件数 × 33** | 247 |
#### 2.2 失信被执行人breachCaseList
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 | 单项上限 |
| :--- | :--- | :--- | :--- | :--- |
| 失信执行人记录 | `breachCaseList` 长度 | 每条记录 | **150 / 条** | **450** |
| 失信执行人记录 | `breachCaseList` 长度 | 每条记录 | **条数 × 143** | **437** |
- 对应最高法 **失信被执行人名单**
- 命中即视为 **重度司法风险**,触发动态权重向司法倾斜(`HAS_JUDICIAL_RISK = true`
@@ -183,7 +210,7 @@ ra_score = 0
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 | 单项上限 |
| :--- | :--- | :--- | :--- | :--- |
| 限高执行人记录 | `consumptionRestrictionList` 长度 | 每条记录 | **200 / 条** | **400** |
| 限高执行人记录 | `consumptionRestrictionList` 长度 | 每条记录 | **条数 × 187** | **413** |
- 对应 **限制高消费被执行人名单**
- 单条扣分高于失信记录,体现对消费 / 出行能力的直接限制
@@ -204,17 +231,29 @@ ra_score = 0
### 3⃣ ra_credit_score借贷信息基准权重 40%,可动态上调)
- **方法链:** `calcRACreditScore → calcRACreditRiskPoints → toRASafetyScore`
- **数据来源:** `probe`、`intent`、`rating`
- **数据来源:** `probe`、`intent`、`rating`JRZQ5E9F / loanRiskTagV21
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 |
| :--- | :--- | :--- | :--- |
| 当前逾期 | `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 |
| 当前逾期 | `probe.currently_overdue` | `"1"` | 287 |
| 睡眠账户 | `probe.acc_sleep` | `"1"` | 143 |
| 未履约 | `probe.currently_performance` | `"0"` | 97 |
| 探针命中 | `probe.result_code` | `"1"` | 103 |
| 借贷意向 | `intent.Rule_final_decision` | `Reject` / `Review` | 387 / 237 |
| 规则权重 | `intent.Rule_final_weight` | 有值 | **weight × 4**,上限 243 |
| 小额网贷分低 | `rating.xyp_model_score_high` | 命中且 < 650 | 650score上限 97 |
| 小额分期分低 | `rating.xyp_model_score_mid` | 命中且 < 650 | 650score上限 97 |
| 中大额分期分低 | `rating.xyp_model_score_low` | 命中且 < 650 | 650score上限 97 |
**借选指数模型分说明JRZQ5E9F**
| 字段 | 含义 | 取值范围 |
| :--- | :--- | :--- |
| `xyp_model_score_high` | 星耀Pro 小额网贷分 V1 | [350, 950],越大逾期率越低 |
| `xyp_model_score_mid` | 星耀Pro 小额分期分 V1 | [350, 950],越大逾期率越低 |
| `xyp_model_score_low` | 星耀Pro 中大额分期分 V1 | [350, 950],越大逾期率越低 |
> 未命中为 `-1`,不参与扣分;三项独立计分,合计扣分上限 291。
---
@@ -225,12 +264,13 @@ ra_score = 0
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 |
| :--- | :--- | :--- | :--- |
| 行为黑名单 | `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 |
| 行为黑名单 | `behavior.result.black_list` | `"1"` | 23 |
| 行为黑标签 | `behavior.result.black_tag**` | 任意 `"1"` | 23 / 项 |
| 投诉风险 | `complaint.result.score` | 有值且 > 0 | 23 |
| 欺诈黑名单 | `fraud.hit` | `1` | 23 |
| 特殊名单 | `special.Rule_final_decision` | `Reject` / `Review` | 23 |
> 欺诈维度采用 **「每命中一项扣 23 分」** 统一计分,多项独立累加,单维上限 1000。
> 欺诈信号仍单独计算并返回 `ra_fraud_score`,供风控人工复核;**不进入 `ra_score` 三维度加权**,避免与借贷维度重复计分。
---
@@ -258,15 +298,15 @@ ra_score = 920×0.10 + 980×0.50 + 760×0.40
| 维度 | 安全分 | 说明 |
| :--- | :--- | :--- |
| 个人身份 | 900 | 核验正常 |
| 个人司法 | 350 | 失信 1 条 + 限高 1 条,扣分 350 |
| 个人司法 | 670 | 失信 1 条 + 限高 1 条,扣分 330143+187 |
| 借贷 | 680 | 轻度借贷风险 |
动态权重:身份 10% + 司法 65% + 借贷 25%
```text
ra_score = 900×0.10 + 350×0.65 + 680×0.25
= 90 + 227.5 + 170
= 488 → D/E
ra_score = 900×0.10 + 670×0.65 + 680×0.25
= 90 + 435.5 + 170
= 696 → C
```
---
@@ -289,12 +329,21 @@ ra_score = 880×0.10 + 1000×0.40 + 520×0.50
---
### ❌ 样例 4司法 + 借贷双高F
### ❌ 样例 4司法 + 借贷双高(强制 F
- `ra_judicial_score ≤ 400`失信 / 限高 / 多笔涉诉
- `ra_credit_score ≤ 400`当前逾期 + 借贷意向 Reject
- `ra_judicial_score = 197`(失信 3 条 ×143 + 限高 2 条 ×187扣分 803司法命中 **5 条**
- `ra_credit_score = 0`(逾期 287 + 未履约 97 + 探针 103 + Reject 387 + 权重 40×4扣分超 1000借贷命中 **4 条**
- 合计命中 **9 条 > 5**,满足强制 F 条件
- `ra_verify_score = 1000`
→ **直接判定F`ra_score = 0`**
动态权重:身份 10% + 司法 70% + 借贷 20%
```text
ra_score_raw = 1000×0.10 + 197×0.70 + 0×0.20
= 100 + 137.9 + 0
= 238
→ 强制 F 档ra_level = "F"ra_score = min(238, 500) = 238
```
---
@@ -317,6 +366,9 @@ ra_score = 880×0.10 + 1000×0.40 + 520×0.50
| 身份权重 | 15%20% 浮动 | **固定 10%** |
| 司法 / 借贷权重 | 各自独立浮动 | **基准 50% / 40%,动态互调** |
| 司法子维度 | 合并描述 | **涉诉统计 / 失信执行人 / 限高执行人 分项说明** |
| 限高 vs 失信 | 同表罗列 | **限高 200/条、失信 150/条,独立计分** |
| 欺诈维度 | 参与加权 | **单独输出,不参与 `ra_score`** |
| 双高风险 | 仍参与加权 | **直接 F 级** |
| 限高 vs 失信 | 同表罗列 | **限高 ×187/条、失信 ×143/条,独立计分** |
| 欺诈维度 | 参与加权 | **单独输出,不参与 `ra_score`;每命中一项扣 23 分** |
| 扣分系数 | 整齐 5/10 倍数 | **47/38/33/143/187 等非整齐系数** |
| 双高风险 | 强制 0 分 | **加权计分 + 强制 F 档,封顶 500** |
| 等级区间 | A:800+ / B:600+ … | **每档 100 分F: 0499** |
| 借选指数 | `rating.score` | **`xyp_model_score_high/mid/low`JRZQ5E9F** |