# APAC Effective Sales Owner 验证报告

## 1. 结论摘要

基于当前数据，建议将第一版判定规则设为：

1. 优先使用 Active Account Owner；
2. Account Owner 缺失或 inactive 时，使用 Active、未关闭 Opportunity Owner；
3. Lead Owner 默认仅作为辅助证据记录，不直接参与最终判定；
4. `ApprovalStatus__c = 'Approved'` 不作为整个判定流程的硬门槛；
5. 排除 `Closed Lost` 等逻辑上已经关闭的 Opportunity，即使源数据的
   `IsClosed` 错误地标记为 false；
6. Owner inactive 时跳过该候选，继续检查下一候选。

这是供讨论的第一版建议，不是最终业务规则。当前样本中 Account 与 Active
Opportunity 没有 Owner 冲突，因此无法仅凭本次数据证明二者谁应绝对优先。

## 2. 验证范围与隐私边界

- Tenant 样本：2026-07-29 扫描得到的 3,265 个 APAC Active Tenant；
- CRM 数据：2026-08-13 查询的 Nexus CRM BigQuery 当前状态；
- 数据源：Org、Account、Opportunity、Lead、User 原始对象表；
- 输出内容：仅聚合数量和比例；
- 未输出或保存：Tenant ID、Owner ID、姓名、邮箱及逐 Tenant 明细。

由于 Tenant 样本与 CRM 查询日期不同，本报告是规则验证样本，不应被当作实时业务
报表。可复现 SQL 见
[`sql/effective_sales_owner_validation.sql`](sql/effective_sales_owner_validation.sql)。

## 3. 覆盖情况

| 指标 | Tenant 数 | 占全部样本 |
| --- | ---: | ---: |
| 目标 Tenant | 3,265 | 100.00% |
| 匹配到 Org | 3,254 | 99.66% |
| 匹配到 Account | 210 | 6.43% |
| Account Owner 存在 | 210 | 6.43% |
| Account Owner Active | 145 | 4.44% |
| 匹配到 Lead | 3,247 | 99.45% |
| Lead Owner Active | 3,122 | 95.62% |
| 存在未关闭 Opportunity | 51 | 1.56% |
| 选中的 Opportunity Owner Active | 29 | 0.89% |
| 至少存在一个 Active Owner 候选 | 3,172 | 97.15% |
| 不存在 Active Owner 候选 | 93 | 2.85% |

Account 覆盖率低，但在匹配到 Account 的 210 个 Tenant 中，有 145 个 Active
Owner，占 69.05%。Opportunity 当前覆盖更低，仅 29 个 Tenant 有 Active Owner。

## 4. Account 与 Opportunity 的优先级

| 对比项 | 结果 |
| --- | ---: |
| Account 与 Active Opportunity 同时存在 | 29 |
| Owner 相同 | 29 |
| Owner 不同 | 0 |
| Opportunity-first 与 Account-first 结果相同 | 3,265 |
| Opportunity-first 与 Account-first 结果不同 | 0 |

本次样本中，Active Opportunity 没有提供 Account 之外的独立 Active Owner 覆盖，
重叠部分也不存在冲突。因此：

- 当前无法通过冲突样本判断 Opportunity 与 Account 谁更准确；
- Account 的覆盖更稳定，适合作为第一版主候选；
- Opportunity 仍应保留，作为 Account Owner 缺失或 inactive 时的补充候选；
- 实现中仍需保留确定性排序，以应对未来同一 Tenant 有多个未关闭 Opportunity。

## 5. Lead 是否参与最终判定

如果把 Lead 加入 Account-first 或 Opportunity-first 规则，会改变 3,027 个 Tenant
的结果。这些 Tenant 只有 Active Lead Owner，没有 Active Account 或 Opportunity
Owner。

| Lead-only Active Owner Profile | Tenant 数 | 占 Lead-only |
| --- | ---: | ---: |
| PT1 | 2,680 | 88.54% |
| Marketing | 206 | 6.81% |
| SDR | 139 | 4.59% |
| Sales | 2 | 0.07% |

Lead 的覆盖很高，但绝大部分 Lead-only Owner Profile 不是 `Sales`。直接把 Lead
Owner 当作最终销售负责人会大幅扩大 Sales-owned 范围，并存在明显误判风险。
因此建议：

- 第一版只记录 Lead Owner 及状态，不参与 Effective Sales Owner；
- 后续如需启用 Lead，至少应同时验证 Owner Profile 和 APAC Sales 名单；
- `Owner_Profile__c = 'Sales'` 也不能单独替代 APAC Sales 名单匹配。

## 6. Account Approval 验证

匹配到的 210 个 Account 全部为 `ApprovalStatus__c = 'Approved'`。在本次样本中：

- 严格要求 Approved 与不要求 Approved，Account-first 结果差异为 0；
- 没有发现 Active Account Owner 但 Account 未 Approved 的样本。

这说明 Approval 门槛当前不会改变结果，但不能证明该字段永远没有作用。建议将其
保留为 Account 有效状态和审计字段，不把它设为整个 Effective Sales Owner 流程的
总开关；即使 Account 未 Approved，也不应直接丢弃 Opportunity 候选。

## 7. Opportunity Stage 与排序

当前共有 51 个未关闭 Opportunity，且本次数据中每个 Tenant 最多一个。主要 Stage
包括 Launched、Contract Review、Negotiation、Prospecting、Technical Validation、
Discovery & Qualification，另有 2 条 `Closed Lost`。

需要关注的异常与结论：

- 2 条 `StageName = 'Closed Lost'` 的记录同时为 `IsClosed = false`，说明不能只依赖
  `IsClosed`；
- 51 条记录的 `HasOpenActivity` 全部为 false，当前不能用它区分优先级；
- 当前没有多 Opportunity 样本可验证排序，但仍应为未来数据保留确定性规则；
- 除逻辑上已关闭的 Stage 外，暂不建议限制其他 Stage，以免无依据地丢失候选。

建议排序条件为：Owner 是否 Active、逻辑上是否未关闭、更新时间、创建时间和记录
ID；具体顺序在实现前通过业务评审确认。

## 8. 建议讨论并确认的第一版规则

```text
记录 Account、Opportunity、Lead 三类候选及 Active 状态

如果 Active Account Owner 存在
  -> Effective Sales Owner = Account Owner
否则如果存在 Active 且逻辑未关闭的 Opportunity Owner
  -> Effective Sales Owner = Opportunity Owner
否则
  -> Effective Sales Owner = none

Lead Owner 仅记录，不参与第一版最终判定

无论 Effective Owner 是否命中 APAC Sales，都记录判定结果
只有命中 APAC Sales 名单时，才进入 Sales-owned 路由
```

下一次验证应重点观察 Account 与 Opportunity Owner 冲突、一个 Tenant 存在多个
未关闭 Opportunity，以及 Lead Owner 命中 APAC Sales 名单的真实数量。如果这些
分布发生变化，再调整优先级，不需要改变 CRM 原始同步链路。
