商业预测员

commercial-forecaster
分类通用
作者Alireza Rezvani
许可MIT
评分4.50/5
使用2.1K

commercial-forecaster

目的

帮助商业领导者在预测关键时刻回答三个问题:

1. 提交/最佳情况/仅管线的数字是多少?(包含披露假设的三层预订预测)
2. 哪些队列在流失?合并后的 NRR 是否掩盖了流失情况?(跨周期的各队列 NRR/GRR 预测)
3. 哪些漏斗阶段是可靠的,哪些只是统计噪声?(各阶段变异系数信心区间)

该技能建议提供 三个预测数字 + 一个明确的假设区块。CRO 呈报数字,董事会查看假设,消除猜测空间。

使用场景

  • 为董事会构建季度预订预测
  • 准备 QBR 预测,以应对 CFO 关于“提交、最佳情况、仅管线”数字的询问
  • 使用队列留存数据预测未来 4-8 个季度的 ARR
  • 怀疑合并后的 NRR 数字掩盖了近期队列的流失
  • 管线覆盖率正在下降,需要确认哪些阶段仍然可信
  • 当被要求提供“单一数字”时,需要一个能揭示假设的结构化答案

不适用场景:

  • 回溯性的财务结账 + 报告 $\rightarrow$ finance/financial-analysis

  • 战略财务规划(多年期、场景分析、融资)$\rightarrow$ c-level-advisor/cfo-advisor

  • “是否应该招聘销售副总裁?”/ 领地设计 / 薪酬计划 $\rightarrow$ c-level-advisor/cro-advisor

  • 定价设定 $\rightarrow$ 同级 pricing-strategist(该工具预测的是*既定价格*下的收入)

  • 单笔交易折扣审批 $\rightarrow$ 同级 deal-desk

工作流

第一步 — 导入管线 + 队列 + 历史转化数据

填写 assets/forecast_intake_template.md(约 20 分钟)。涵盖:包含阶段/金额/关闭日期/时长/最后活动记录的机会列表;过去 4 个季度和 12 个季度的历史阶段转化率;各队列 ARR + 每季度留存 + 扩张数据;带有 12 个季度转化历史的漏斗阶段名称。

第二步 — 运行三层预订预测

code
scripts/bookings_forecaster.py --input intake.json --profile saas --output markdown

输出三个数字 —— 提交 (commit)最佳情况 (best-case)仅管线 (pipe-only) —— 每个数字均附带所应用的转化率、使用的数据窗口(过去 4 季度 vs 过去 12 季度,权重 70/30)
)、以及结单时间概率调整。通过 Commit(承诺)与 Pipe-only(仅管线)之间的差异来体现管线风险指标。

假设模块(Assumption block)是必选项。 如果将其删除,预测就变成了“表演”。

步骤 3 — 预测队列级 ARR

code
scripts/cohort_arr_projector.py --input intake.json --output markdown

计算预测周期内每个队列的 NRR(净留存率)+ GRR(总留存率)。标记任何 NRR 低于历史队列平均值的队列——这些是“渗漏队列”,在渗漏影响到顶线数据之前,综合数据会在 2-3 个季度内将其掩盖。

输出内容包括:综合 NRR/GRR 趋势图 + 队列热力图 + 渗漏队列提醒。

步骤 4 — 评估各阶段漏斗置信度

code
scripts/funnel_confidence_scorer.py --input intake.json --output markdown

针对每个阶段:计算平均转化率 %、标准差、变异系数(CoV = 标准差 / 平均值)、置信区间(高 < 10%,中 10-25%,低 25-50%,极低 > 50%)。并针对每个阶段推荐处理方案:延长数据窗口(extend-data-window)、视为软底线(treat-as-soft-floor)或优化承诺质量(commit-quality)。

步骤 5 — 组装预测汇报页

将三级预订数据 + 队列热力图 + 漏斗置信度放入 QBR(季度业务回顾)或董事会汇报页中。假设模块必须与数据出现在同一页。 如果页面只有一个数字而没有假设模块,那么这个页面就是在“表演”。

脚本

  • scripts/bookings_forecaster.py — 三级预订预测(Commit / Best-case / Pipe-only),包含公开的转化率 + 数据窗口 + 权重模块。
  • scripts/cohort_arr_projector.py — 预测周期内各队列的 NRR/GRR 投影,包含渗漏队列提醒。
  • scripts/funnel_confidence_scorer.py — 基于 CoV 的各阶段置信区间及处理建议。

所有脚本:仅使用标准库。三个脚本均支持 --help--sample

参考资料

  • references/saas_forecasting_canon.md — Skok, Tunguz, OpenView, BVP, Pacific Crest/KeyBanc, ProfitWell, Patrick Campbell
  • references/cohort_analysis_canon.md — Andrew Chen (a16z), Brian Balfour, Skok, Ramanujam, OpenView, Lenny Rachitsky, Reforge
  • references/forecast_anti_patterns.md — McKinsey, Tunguz, OpenView, MIT Sloan, Bain, Forrester, Pacific Crest

假设

  • 历史转化率是先验概率,而非绝对真理。 最近 4 个季度的权重为 70%,最近 12 个季度的权重为 30%。这种混合方式在捕捉环境变化(如近期放缓)的同时,避免了对单个糟糕季度的过度拟合。窗口和权重将在每个输出中公开。
  • 没有公开假设模块的预测就是“表演”。 这是该方法的硬性规则。CLI 强制要求包含假设模块。
  • 队列分解能在综合数据显现之前 2-3 个季度揭示渗漏。 仅报告 NRR 而不提供队列细分会掩盖渗漏。
  • 变异系数 (CoV) 是衡量阶段置信度的正确标准。 平均转化率 40% 且标准差 4% (CoV 10%) 的阶段为“高”置信度;平均 40% 但标准差 20% (CoV 50%) 则为“极低”。相同的平均值掩盖了截然不同的可靠性。
  • 行业概况调整先验概率,而非定义真理。 行业概况会调整默认的阶段转化率,但你的历史数据具有最高优先级。
  • 该方法输出三个数字和一个假设模块。 由 CRO 选择 Commit 数字,承担权衡结果,并向董事会解释差异。

反模式

  • 没有置信区间的单一数字预测。 董事会可能会要求一个“确切数字”,但专业做法是提供三个带有明确假设的数字。参见 forecast_anti
_patterns.md
  • 盲目使用过去 12 个季度的转化率。 这会掩盖近期的下滑。采用过去 4 个季度(权重 70%)与过去 12 个季度(权重 30%)的混合计算可修正此问题。
  • 报告 NRR 时未进行队列分解。 综合数据可能持平,但近期某个队列可能在流失 15 个百分点;这种流失会在 2-3 个季度后体现在顶线收入中。务必进行分解。
  • 将“最佳情况 (Best-case)”视为“承诺 (Commit)”。 这样会被 CFO 痛批。最佳情况包含成交概率 < 50% 的加权阶段机会;而承诺仅包含承诺级别的阶段。
  • 隐藏假设模块。 技能本身会拒绝隐藏;如果你手动将其删除,你就是在操纵结果。
  • 未标注流失队列。 如果 cohort_arr_projector.py 标记了某个队列而你在汇报 PPT 中将其屏蔽,那么下个季度该流失将成为你的麻烦。
  • 忽略后期机会的停留时长。 一个处于“口头承诺”状态且已持续 180 天的订单并非承诺。预订预测工具会自动降低停滞机会的权重,请勿手动将其调高。
  • 缺乏管线覆盖率检查。 行业经验法则:预测值 > 管线 ÷ 3 即为反模式。工具会显示该比率,请予以尊重。

区别于

  • finance/financial-analysis —— 回溯性的财务结账、GAAP/IFRS 报告、预算差异分析。commercial-forecaster 是前瞻性的管线数学计算。
  • c-level-advisor/cfo-advisor —— 战略性的多年财务规划、融资场景、资金跑道。commercial-forecaster 是提供给 CFO 的一个输入项,而非战略本身。
  • c-level-advisor/cro-advisor —— 战略性的 CRO 判断:例如“是否聘请销售副总裁”、区域设计、薪酬计划、何时增加销售工程师。commercial-forecaster 是 CRO 使用的数学工具;cro-advisor 是 CRO 应用的判断力。
  • 同级 pricing-strategist —— 设定价格(模型 + 范围)。commercial-forecaster 根据这些价格*预测收入*。定价在前,预测在后。
  • 同级 deal-desk —— 单笔订单评分 + 折扣审批流。commercial-forecaster 汇总了 deal-desk 每日操作的管线数据。

强制质询库 (Matt Pocock 式严苛审查纪律)

/cs:grill-commercial 或编排器逐一引导。每道题提供推荐答案 + 权威引用。绝不打包提问。

1. “你使用的是哪个转化率?是过去 4 个季度还是过去 12 个季度的?”
推荐答案:70/30 混合比(过去 4 季度权重 70%,过去 12 季度权重 30%)。仅用过去 12 季度会掩盖近期下滑;仅用过去 4 季度则容易受单个糟糕季度的过度影响。
权威引用:Tomasz Tunguz (Theory Ventures) —— 预测研究表明,单一窗口的转化率估算在捕捉趋势转变时约有 3 个季度的滞后。

2. “你的管线覆盖率是多少?你的承诺值是否超过了管线 ÷ 3?”
推荐答案:3 倍覆盖率是 SaaS 行业的底线;低于 3 倍意味着你的承诺在结构上缺乏支撑。
权威引用:Pacific Crest / KeyBanc SaaS 调查 —— 顶尖 25% 的 SaaS 公司在承诺预订额面前维持 3.0-4.5 倍的管线覆盖率。

3. “你能给我看分队列的 NRR,而不仅仅是综合数据吗?”
推荐答案:绝不要在没有分队列明细的情况下报告综合 NRR。流失队列往往隐藏在平均值中。
权威引用:Patrick Campbell (ProfitWell) + David Skok —— 基于队列的留存分解能在综合 NRR 发生变动前 2-3 个季度就发现流失。

4. “过去 12 个季度中,每个阶段转化率的变异系数 (CoV) 是多少?”
推荐答案:CoV < 10% $\rightarrow$ 承诺级;10-25% $\rightarrow$ 中等;25-50% $\rightarrow$ 仅作为软底线;> 50% $\rightarrow$ 不要将此阶段用于预测。
anon:MIT Sloan 预测研究 / Hyndman & Athanasopoulos(《预测:原理与实践》)—— 输入序列的变异系数 (CoV) 比平均值能更可靠地预测预测准确度。

5. “每个后期机会在后期阶段停留了多久?”
建议:阶段时长 (stage-age) > 中位数阶段时长的 2 倍 $\rightarrow$ 视为停滞,将其从 commit(承诺额)中剔除,仅保留在 pipe-only(管线额)中。
权威依据:David Skok (*For Entrepreneurs*) —— 通过阶段时长识别停滞机会是顶尖 SaaS 管线预测中最重要的卫生实践(hygiene practice)。

6. “你的最佳情况预测是否在管线额的 30% 范围内?”
建议:如果最佳情况 < 管线额的 50%,说明你的阶段转化假设过于悲观,在刻意压低预期 (sandbagging);如果最佳情况 > 管线额的 80%,则是在盲目乐观 (hockey-sticking)。
权威依据:麦肯锡关于预测偏差的研究 + OpenView SaaS 基准 —— 大多数团队处于两种失效模式之一:压低预期 (commit $\ll$ 实际营收) 或 盲目乐观 (commit $\gg$ 实际营收)。

7. “董事会幻灯片上的数字附带了哪些假设模块?”
建议:董事会幻灯片上的每个预测数字都必须标明:(a) 转化率,(b) 数据窗口,(c) 权重选择,(d) 管线覆盖率。没有假设模块的幻灯片纯属“表演”。
权威依据:贝恩公司 (Bain & Company) 商业预测实践 + Forrester 管线覆盖研究 —— 未披露假设的预测与实际结果的方差比披露假设的预测高出 2.3 倍。

按深度优先顺序执行。在开启 4-7 项之前,先锁定 1-3 项。在所有 7 项均回答完毕后,依次调用 bookings_forecaster.py $\rightarrow$ cohort_arr_projector.py $\rightarrow$ funnel_confidence_scorer.py