# Salesforce / CM / BI Field Matrix

Date: `2026-07-07`

## 用法

这份文档是
`字段 / 指标视角`
。

适合回答这类问题：

- `某个 BI 字段到底是谁在 Salesforce 维护`
- `CM 本地已经承接到了哪个层级`
- `当前字段为什么会漂`
- `最先会打哪张报表 / 哪个 dbt 模型`

如果要先从报表面读，
看：

- [salesforce-cm-bi-canonical-matrix-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-canonical-matrix-2026-07-07.md)

如果要先从对象面读，
看：

- [salesforce-cm-bi-object-matrix-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-object-matrix-2026-07-07.md)

如果要先从机制面读，
看：

- [salesforce-cm-bi-mechanism-matrix-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-mechanism-matrix-2026-07-07.md)

## 总原则

| 读法 | 当前最稳结论 |
|---|---|
| 字段漂移是不是都等于 `CM 没能力` | `不是` |
| 当前最常见的字段漂移来源 | `exact-name Flow parity`、`semantic narrowing mismatch`、`carry-over parity`、`activation-state mismatch` |
| 什么更接近 `CM 真边界` | 同组 parity 清完后仍只能靠 trigger/runtime 维持的残余字段语义 |
| 默认动作 | 先按字段背后的 `L2 parity` / `semantic narrowing` 修，再单列 residual runtime |

## Field Matrix

| 字段 / 指标 | Salesforce 现网主要怎么维护 | CM 目前已支持什么 | CM 当前未支持 / 疑似未支持什么 | 当前更像哪类差异 | 最先影响哪张报表 / 哪个模型 |
|---|---|---|---|---|---|
| `lead_mql_timestamp` | 跟随 Lead lifecycle / status 语义维护，是 lead funnel 的主时间戳之一 | `Lead` substrate 已在，`IQM_Completion_Flow`、`Lead_Status_Duration`、`Std_ConvertLeadCampaignPreview` 已在；`salesforce_leads` 已真实带出 `lead_mql_timestamp` | 当前更像 `Lead_StatusChangeTimestamp` 语义过宽和长尾 Lead Flow 未追回，不是字段完全无承接 | `semantic narrowing mismatch` + `L2 Lead parity` | `fd12...`，以及 `salesforce_leads` / `dim_lead` / `dws_lead_timeline` / `dws_icp_summary` |
| `lead_iqm_timestamp` | 跟随 IQM / lifecycle 语义维护，是 lead qualification 关键时间戳 | `IQM_Completion_Flow`、`Lead.json` 上的 IQM 字段已在；`salesforce_leads` 已真实带出 `lead_iqm_timestamp` | 当前仍受 lifecycle timestamp 语义收窄和 Lead 长尾 parity 影响 | `semantic narrowing mismatch` + `L2 Lead parity` | `fd12...`，以及 `salesforce_leads` / `dws_lead_timeline` / `dws_icp_summary` |
| `first_responded_date` | 由 `CampaignMember` response / involvement 语义维护，作为 attribution 输入 | 本地已有 `Lead/Contact Set First And Last CampaignMember` 和 `Std_ConvertLeadCampaignPreview`；`salesforce_campaign_members` 已真实带出 `first_responded_date` | `Campaign_Member_Key_Message_Update` 当前 `0 hits`；剩余 `Trigger_CampaignMember` / Contact stitching residue 仍在 | `L2 exact-flow parity` | `8c6f...`，以及 `salesforce_campaign_members` / `dws_campaign_attribution` / `dws_campaign_attribution_details` |
| `owner_team` | Opportunity create/update 后由 owner/share 邻近逻辑维持，支撑 DQ / owner-team 分析 | 本地 `Opportunity` 的 stage/forecast/close-date/cloud-order-type parity 已在；下游已真实消费 `owner_team` | `OpportunityShareToPersalesOwner` / `OpportunityUpdateShareToPerSalOwner` 当前 `0 hits` | `L2 exact-flow parity` | `1733...`，以及 `dws_data_quality_alerting` / `rpt_data_quality_wtw_comparison` / `dim_opportunity` |
| `forecast_category` | 随 `StageName` 派生维护，是 pipeline/forecast 主字段 | 本地 `Std_OpportunityStageDerivedFields` 已在，并直接回写 `ForecastCategory` / `ForecastCategoryName` | 当前不是字段空白；更多受邻近 Opportunity parity 和 trigger residue 影响 | `already-supported core field` + 邻近 parity risk | `1733...`、`837...`，以及 `salesforce_opportunities` / `dws_salesforce_arr_summary` |
| `cloud_order_type` | 随 Opportunity / Order 商业语义和阶段变化维护 | 本地 `Opportunity_Cloud_Order_Type_Set` 已在；`salesforce_opportunities` 已真实消费 `cloud_order_type` | 当前更多受 owner-team 邻近 parity、order carry-over、residual trigger 影响 | `already-supported core field` + 邻近 parity risk | `1733...`、`837...`，以及 `salesforce_opportunities` / `salesforce_orders` |
| `quote_service_start_date` | 由 Quote service-window / commercial helper / nonstandard-term 语义维护 | Quote 字段与邻近 enrichment 已在；`Quote.json` 已有 `Service_Start_Date__c` 和 `Governing_Service_Start_Date__c`，Order governing-contract validation 也继续消费这组 service-window；`1733...` 清理面已直接消费 `quote_service_start_date` | `Quote_update_nonstandard_conditions_checkbox` / `_2` 当前 `0 hits`；另有 quote validation local inactive | `L2 Quote parity` + `activation-state mismatch` | `1733...`，以及 `dws_salesforce_pipeline_data_quality_cleanup_detail_v2` / `salesforce_opportunities` |
| `quote_service_end_date` | 同组 quote service-window 终点语义 | 同上；`Quote.json` 已有 `Service_End_Date__c` 和 `Governing_Service_End_Date__c`，不是字段缺口 | 同上 | `L2 Quote parity` + `activation-state mismatch` | `1733...`，以及 `dws_salesforce_pipeline_data_quality_cleanup_detail_v2` / `salesforce_opportunities` |
| `account_current_order_type` | 由 Account side flow 持续维护，统一 account、tenant、current-month MRRARR、forecast/account 面口径 | `Account.json` 已有 `Current_Order_Type__c`；`Org_Set_Account` 和 shared-dimension substrate 已在；`dws_cloud_tenants_basicinfo` 已真实带出 `account_current_order_type` | `Account_Current_Order_Type` 当前 `0 hits`；历史还暴露过 dispatch/accessibility 风险 | `L2 exact-flow parity` + `dispatch/accessibility risk` | `583...`、`690...`、`673... / 212...`，以及 `model_tidbcloud.dws_cloud_tenants_basicinfo` |
| `tenant_id` | 由 Account / Org / order carry-over / cloud-registration 链共同维持 | `Org_Set_Account`、`Cloud_Registration_Source_from_Org_to_Order`、org/account shared-key substrate 已在；`dim_org` / `dim_tenant` 已真实带出 `tenant_id` | 当前更容易被 `Order_Org_Auto_Set_Account_*`、`Cloud_Registration_Source_from_Org_to_Collections` 等 carry-over gap 污染 | `shared bridge parity` | `690...`、`f9c4...`，以及 `dim_org` / `dim_tenant` / `dws_cloud_tenants_basicinfo` / `salesforce_org_monthly_revrec` |
| `order_product_family` | 由 custom / standard line-item 语义维护，是 order-day / MRRARR / ARR summary 的关键分类字段 | `Order_Product__c` 公式/rollup、标准 OLI/QLI helper flow 已在；front-door 已真实消费 `order_product_family` | 仍受 `Order_Org_Auto_Set_Account_*`、`Order_Set_PLG_BD_Pool`、line-item trigger residue、`Name` auto-number 缺失影响 | `line-item parity` + `carry-over parity` | `583...`、`837...`、`f9c4...`，以及 `salesforce_orders` / `salesforce_order_daily_view` / `cp_order_monthly_revrec` |
| `arr_usd_cd_rate_current_month` | 由 order current-month finance、carry-over、line-item 语义共同支撑 | 本地 Order / Revenue / Order_Product substrate 已在；current-month MRRARR 模型已真实消费此字段 | 当前更容易被 `Order_Org_Auto_Set_Account_*`、`Order_Set_PLG_BD_Pool`、`RevRec_Set_PLG_BD_Pool` 打歪 | `L2 finance carry-over parity` | `583...`、`837...`，以及 current-month order MRRARR datasources |
| `mrr_usd_cd_rate_finance` | 同组 current/monthly MRRARR finance 指标 | 本地 Order / Revenue / line-item substrate 已在 | 当前更容易被 order carry-over、revrec pool、collections 邻近 drift 污染 | `L2 finance carry-over parity` | `583...`、`837...`、`f9c4...`，以及 current/monthly order MRRARR datasources；这轮 `f9c4...` label-backed SQL 又补到 `activated_order_account_monthly_revrec_v3` 的 direct report evidence |
| `Recognized_Revenue_Amount__c` | 由 revenue / order revrec 聚合语义维护 | `Order.json` 已有 revenue rollup，`Revenue__c` 公式与 `Order_Default_RevRec_Entity` 已在 | `RevRec_Set_PLG_BD_Pool` 当前 `0 hits`；后续仍有 `RevenueTrigger` residue | `L2 revrec parity` | `837...`，次级 `f9c4...` / `salesforce_revrec` / `salesforce_orders.revenues` |
| `Amount_Before_Adjust__c` | 由 Revenue 明细 / revrec helper 语义维护 | `Revenue__c.json` 已有 `Amount_Before_Adjust__c`；Order 侧已有 `Accumulated_Revenue_Before_Adjust__c` rollup | 当前更容易被 `RevRec_Set_PLG_BD_Pool` 和 revenue-side residual behavior 影响 | `L2 revrec parity` | `837...`，次级 `salesforce_revrec` / `monthly_revrec_orders` |
| `collections_status_c` | 由 Invoice Collection status/helper 语义维护 | 本地 `Invoice_Collection__c.json` 已有 `CollectionsStatus__c`；Order 侧已有 collections rollup | 当前更容易被 `Collection_*` helper parity 未补齐影响 | `L2 collections parity` | `f9c4...`，以及 `salesforce_order_daily_view` / collections-revrec outputs；当前更硬的明文查询证据仍偏 direct-query 面 |
| `collections_amount_exc_tax_c` | 由 collection helper flow 在 create/update 时维护 exc-tax collections 金额 | 本地 `Invoice_Collection__c.json` 已有 `Collections_Amount_exc_tax__c` 等 helper 字段 | `Collection_Amount_and_Payable_Amount_exc_tax` / `_Update` 当前 `0 hits` | `L2 collections parity` | `f9c4...`，以及 `salesforce_order_daily_view` / `salesforce_org_monthly_revrec` |
| `payable_amount_usd_2_exc_tax_c` | 由 collection helper flow 维护 payable exc-tax 金额 | 本地 helper 字段已在；Order 侧已有 payable 汇总 | `Collection_Amount_and_Payable_Amount_exc_tax` / `_Update` 当前 `0 hits` | `L2 collections parity` | `f9c4...`，以及 `salesforce_order_daily_view` / `salesforce_org_monthly_revrec`；当前更硬的明文查询证据仍偏 finance direct-query / recurring-output 面 |
| `plg_bd_pool_c` | 由 order / revenue / collection 三侧 pool carry-over 共同维护 | 本地三侧字段 substrate 已在 | `Order_Set_PLG_BD_Pool`、`RevRec_Set_PLG_BD_Pool`、`Collection_Set_PLG_BD_Pool` 当前都 `0 hits` | `shared finance carry-over parity` | `837...`、`f9c4...`，次级 `583...` / `salesforce_revrec` / `salesforce_order_daily_view` |
| `marketplace_c` | 由 org-to-collections cloud-registration / marketplace carry-over 维护 | 本地 `Invoice_Collection__c` helper 字段已在；Order 侧已有 org-to-order peer | `Cloud_Registration_Source_from_Org_to_Collections` 当前 `0 hits` | `L2 finance carry-over parity` | `f9c4...`，次级 `690...` / `salesforce_org_monthly_revrec` / `stg_salesforce_invoice_collection` |

## 当前最该优先盯的字段组

1. `lead_mql_timestamp` / `lead_iqm_timestamp`
   这是 `fd12...` 最直接的 qualification 主链。
2. `first_responded_date`
   这是 `8c6f...` attribution 面最短、最明确的 exact-gap 入口。
3. `account_current_order_type` / `tenant_id` / `order_product_family`
   这是 account-tenant-finance 复合面最关键的 shared-key 组合。
4. `arr_usd_cd_rate_current_month` / `mrr_usd_cd_rate_finance`
   这是 `583...` / `837...` / `f9c4...` 最容易先漂的 finance front-door 指标。
5. `collections_amount_exc_tax_c` / `payable_amount_usd_2_exc_tax_c` / `marketplace_c`
   这是 collections helper / marketplace bridge 对 finance 口径最直接的打击面。

## 一句话收口

`字段层最常见的问题不是字段不存在，而是字段背后的 exact-name Flow、semantic narrowing、carry-over helper 还没和 live Salesforce 对齐；真正更像 CM 真边界的，要等这些字段级 parity 清完后剩下的 trigger/runtime 残余。`
