CRM 深度

Odoo CRM 预测报表为什么不能只看 expected revenue:prorated revenue、lost reason 与 Pipeline Analysis 口径讲透

很多团队拿 Odoo CRM 报表时只盯着 expected revenue,结果越看越乱。官方报表真正更依赖的是 stage、deadline、prorated revenue、won_status 与 lost reason 这些维度;如果你不先分清预测值和原值,漏斗、forecast 与丢单复盘都会失真。

CRM
进阶 开发者 2 分钟阅读
0 评论 0 点赞 0 收藏 35 阅读

先说结论

在 Odoo CRM 里,报表最容易被误读的一点就是:

expected_revenue 不等于 forecast。

这句话看起来简单,但它几乎决定了你会不会把 CRM 报表看歪。

因为官方给你的分析口径,其实是围绕这些字段搭起来的:

  • stage_id
  • date_deadline
  • date_closed
  • won_status
  • lost_reason_id
  • prorated_revenue

如果你只盯着商机面值 expected_revenue, 你会把三个本来应该分开的东西混在一起:

  • 机会原值
  • 预测折算值
  • 结果归因与复盘信号

这会导致漏斗、forecast 和丢单复盘同时失真。


一、先把“原值”和“预测值”分清

crm.lead 里:

  • expected_revenue 是机会面值
  • prorated_revenue 是面值 × 概率后的预测口径

也就是说,官方已经明确把:

  • “这单如果成了值多少钱”
  • “按当前把握折算后,应该算进多少预测”

拆成两个字段。

这个拆分特别重要。

很多团队做 forecast 时,会直接 group 一下 expected revenue, 然后说“这就是本月 pipeline 总额”。

这当然能看总盘子, 但它不是预测。

因为预测关心的不是:

  • 理论合同面值有多大

而是:

  • 按当前概率和阶段,这些机会折算后大概值多少

而 Odoo 给这个口径预留的字段,正是 prorated_revenue


二、为什么官方 Pipeline Analysis 默认更适合做预测盘点

crm/report/crm_opportunity_report_views.xml 里,crm_opportunity_report_view_pivot 和 graph 视图里,核心 measure 都围绕 prorated_revenue

这几乎已经把官方态度写在脸上了:

  • 机会分析不是只堆原始金额
  • 而是更偏向概率折算后的分析面

这件事非常关键。

因为只要系统默认 measure 就偏 prorated_revenue, 说明它希望你在 pipeline 分析里回答的是:

  • 哪些阶段累计了多少“有效预测值”
  • 到某个 expected closing 时间点前,大概能折算出多少收入
  • 不同 team / salesperson 的 pipeline 质量有没有区别

而不是只问:

  • 名义上大家手里挂了多少金额

后者更像“存量盘子”, 前者才更像“预测口径”。


三、date_deadlinedate_closedcreate_date 不是一个日期换着看

官方在搜索视图里专门给了几组日期筛选:

  • create_date
  • date_deadline
  • date_closed
  • 对 lead 还有 date_conversion

很多人会把它们当成“反正都是日期字段”。

实际上它们对应的是完全不同的问题:

  • create_date:机会是什么时候进池的
  • date_deadline:你预计什么时候该关单
  • date_closed:它实际什么时候结束
  • date_conversion:lead 什么时候真正升级成 opportunity

这就意味着,报表上一个月的数据可以有好几种完全不同的含义:

  • 本月新进了多少机会
  • 本月预计该关多少机会
  • 本月实际关了多少机会
  • 本月资格化了多少 lead

如果你把这些时间口径混用, 任何 forecast 都会显得“忽高忽低、总是对不上”。

不是系统不准, 而是你在用不同时间语义回答同一个问题。


四、lost reason 不是装饰字段,而是复盘主维度

在机会分析 search view 里,官方明确给了:

  • filter_won_status_lost
  • group_by lost_reason_id

这说明 lost_reason_id 从来不是“写了也行,不写也行”的装饰备注。

在官方设计里,它就是一个可被分析、可被 group、可被追踪的业务原因维度。

crm.lost.reason 模型里甚至还单独计算了 leads_count, 并提供 action 直接打开相关 leads。

这透露出很明确的产品意图:

丢单原因不是给销售留一句文字解释,而是要被当作结构化复盘维度。

所以如果你们团队只是让销售随便在备注里写“价格高 / 没预算 / 竞品赢了”, 却不维护 lost reason 体系, 那 Odoo CRM 的官方分析面其实并没有被真正用起来。


五、为什么 Leads Analysis 和 Pipeline Analysis 不能混着看

视图里其实给了两套主分析动作:

  • Pipeline Analysis
  • Leads Analysis

它们虽然都基于 crm.lead,但语义并不一样。

Pipeline Analysis 更偏机会:

  • 关注 stage
  • 关注 date_deadline
  • 关注 prorated revenue

Leads Analysis 更偏入站和资格化:

  • 关注 create_date
  • 关注 team
  • 可同时看 active / inactive

这也解释了为什么官方在 lead 分析动作里默认打开:

  • active
  • inactive
  • create_date period

它想让你看的是线索形成与流入节奏, 而不是直接拿 lead 当机会 forecast。

如果你把这两张报表混在一起看, 就会非常容易出现这种误读:

  • 本月线索量很高,所以 forecast 应该也高

现实当然没这么简单。

线索量、资格化率、阶段分布、概率折算值,本来就是不同层的指标。


六、lost / inactive 为什么必须进入复盘视角

官方在 search 里同时给了:

  • Active
  • Inactive
  • Won
  • Lost
  • Archived

这说明 CRM 报表不是只给你看“还活着的 pipeline”。

一个真正靠谱的销售分析体系,至少要同时回答三件事:

  • 现在还有多少活跃机会
  • 已经关闭了哪些,结果如何
  • 丢掉的是哪一类,原因是什么

所以如果你把 lost / archived 机会一律排除在分析之外, 你就只能看到“当前漏斗长什么样”, 却看不到“这个漏斗过去是怎么漏掉的”。

这会让团队一直忙着修当下,而看不到结构性问题。


七、实战里最容易踩的 5 个坑

1. 把 expected revenue 当成 forecast

它更像原始机会面值。

2. 用 create_date 回答 closing 问题

时间语义一换,报表解释就会跑偏。

3. 不维护 lost reason,只写自由文本备注

复盘维度就永远结构化不起来。

4. 把 Leads Analysis 当成机会预测盘

线索量不等于可成交价值。

5. 分析时只保留 active 记录

你会丢掉最关键的输因数据。


最后一句

Odoo CRM 的报表设计其实已经给了非常明确的提示:

forecast 更该看 prorated_revenue,复盘更该看 lost_reason_id,节奏更该分清 create / deadline / closed 几组日期。

一旦把这些口径分开,你会发现很多“CRM 报表总是对不上”的问题,其实不是数据错,而是问题问错了。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。