This commit is contained in:
Mrx
2026-06-10 17:47:36 +08:00
parent 9d4a3f584c
commit 66e8bb267d
10 changed files with 3055 additions and 45 deletions

View File

@@ -0,0 +1,139 @@
# DWBG9FB3 RA 安全评估 — 千分制计算说明
## 核心原则
- 所有分值为**千分制0-1000**
- **分值越高越安全**(与风险扣分相反)
- 各维度先统计**风险扣分**,再换算:**安全分 = 1000 - 风险扣分**
## 字段与方法对应关系
| 输出字段 | 计算方法 | 统计逻辑 |
| :--- | :--- | :--- |
| `ra_fraud_score` | `calcRAFraudScore` | `1000 - calcRAFraudRiskPoints` |
| `ra_credit_score` | `calcRACreditScore` | `1000 - calcRACreditRiskPoints` |
| `ra_judicial_score` | `calcRAJudicialScore` | `1000 - calcRAJudicialRiskPoints` |
| `ra_verify_score` | `calcRAVerifyScore` | `1000 - calcRAVerifyRiskPoints` |
| `ra_score` | `buildDWBG9FB3RA` | 四维安全分加权汇总 |
| `ra_level` | `raLevelFromScore` | 由 `ra_score` 映射 A-F |
## 等级划分(越高越安全,每档间隔 100
| 等级 | 分数区间 | 含义 |
| :--- | :--- | :--- |
| A | 900 - 1000 | 最安全 |
| B | 800 - 899 | 较安全 |
| C | 700 - 799 | 一般 |
| D | 600 - 699 | 较不安全 |
| E | 500 - 599 | 不安全 |
| F | 0 - 499 | 最不安全 |
## 综合分公式ra_score
```
ra_score = round(
ra_fraud_score × 25% +
ra_credit_score × 35% +
ra_judicial_score × 25% +
ra_verify_score × 15%
)
```
---
## 一、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 |
**安全分 = 1000 - 风险扣分(上限 1000**
### 样例DWBG9FB3.json
风险扣分 110 → **ra_fraud_score = 890**
---
## 二、ra_credit_score
- **方法链:** `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 |
### 样例DWBG9FB3.json
风险扣分 1100截断 1000)→ **ra_credit_score = 0**
---
## 三、ra_judicial_score
- **方法链** `calcRAJudicialScore` `calcRAJudicialRiskPoints` `toRASafetyScore`
- **数据来源** `judicial.judicial_data`
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 |
| :--- | :--- | :--- | :--- |
| 涉诉总件数 | `lawsuitStat.*.count.count_total` | 各类型累加 | 每件 80单项上限 400 |
| 未结案数 | `lawsuitStat.*.count.count_wei_total` | 各类型累加 | 每件 60单项上限 300 |
| 被告件数 | `lawsuitStat.*.count.count_beigao` | 各类型累加 | 每件 50单项上限 250 |
| 失信案件 | `breachCaseList` 长度 | 每条 | 150上限 450 |
| 限高名单 | `consumptionRestrictionList` 长度 | 每条 | 200上限 400 |
### 样例DWBG9FB3.json
风险扣分 420 **ra_judicial_score = 580**
---
## 四、ra_verify_score
- **方法链** `calcRAVerifyScore` `calcRAVerifyRiskPoints` `toRASafetyScore`
- **数据来源** `triple``identity``presence`
| 风险扣分项 | 子字段路径 | 触发条件 | 扣分 |
| :--- | :--- | :--- | :--- |
| 三要素不一致 | `triple.state` | 有值且不为 `"1"` | 400 |
| 二要素不一致 | `identity.result` | 不为 `0` | 400 |
| 在网异常 | `presence.desc` | 含停机/销号/不在网 | 150 |
| 状态码异常 | `presence.status` | 大于 `1` | 100 |
### 样例DWBG9FB3.json
风险扣分 150 **ra_verify_score = 850**
---
## 五、综合分与等级(样例)
```
ra_score = round(890×0.25 + 0×0.35 + 580×0.25 + 850×0.15)
= round(222.5 + 0 + 145 + 127.5)
= 495
ra_level = "F"
```
## 代码位置
| 方法 | 文件 |
| :--- | :--- |
| `buildDWBG9FB3RA` | `dwbg9fb3_ra.go` |
| `calcRA*Score` / `calcRA*RiskPoints` | `dwbg9fb3_ra.go` |
| `toRASafetyScore` | `dwbg9fb3_ra.go` |
| `raLevelFromScore` | `dwbg9fb3_ra.go` |