成本估算(cost estimate)即风险定价(risk pricing):为何同一项目的报价能相差数倍
在我们代理机构的项目档案里,躺着同一时期的三份报价单:306 500卢布(俄罗斯货币单位)、360 000卢布、808 000卢布。第一份是为一家医疗机构做官网,第二份是为一家美容院做官网,第三份是为一家生鲜电商做网站。第一份和第三份之间相差两倍半。
把差距归结为工作复杂度不同,这个想法很有诱惑力,但是错的。电商网站在技术上并不比一个宣传型网站复杂两倍半。真正的差别在别处:第三个项目中,承接方承担了前两个项目里根本不存在的不确定性——涉及系统对接、商品目录、支付方式,以及需求文档里还没有写清楚的一切。
成本估算(cost estimate)不是价目表,而是承接方为承担风险开出的价格。同类任务的报价差异,反映的不是承接方能力高低,而是双方之间不确定性分配方式的不同。行业标准对此说得很直白:估算的精度取决于基础数据的完备程度,而不是工作本身的复杂度,不同阶段之间的精度区间可以相差一个数量级。
报价单里的差异究竟由什么构成
让我们把成本估算拆解成几个组成部分。工作量只是其中第一项,而且通常不是占比最大的一项。
工作量。客户在报价单里能看到、并用来比较各家报价的部分。它计算得相对准确,承接方之间的差异也最小。
范围不确定性(scope uncertainty)。描述内容能否覆盖实际情况的概率。报价差异的主要来源就在这里:一家承接方为未知情况预留了缓冲,另一家没有——结果是后者中标。
环境不确定性(environment uncertainty)。别人的系统、别人的数据、别人的进度。一切依赖第三方、承接方无法控制、却要按合同承担责任的因素。
信任的价格。面对新客户,预留的缓冲要比面对熟悉客户时更大——这是理性行为,不是变相加价。同一个客户的第二个项目,在同等工作量下,几乎总是比第一个项目报价更低。
| 组成部分 | 谁能在报价单里看到 | 如何压缩 |
|---|---|---|
| 工作量 | 双方都能看到 | 明确清单内容 |
| 范围不确定性 | 只有承接方看得到 | 列出排除项和变更流程 |
| 环境不确定性 | 项目开始前谁都看不到 | 说明依赖关系和延误后果 |
| 信任的价格 | 谁都看不到 | 拆成分阶段、按实际结算的方式 |
第二列说明了为什么按"同样工作、比价格"来比较报价会产生误导:四个组成部分里有三个根本不会写进报价单——而恰恰是这三项,在承接方之间差异最大。
行业标准对估算精度是怎么说的
在工程行业里,基础数据完备程度与估算精度之间的关系已经被正式规范化,这些数字值得每一个收到报价单的人了解。
估算的精度区间取决于基础数据的完备程度:数据完备度为0–2%时,精度区间为−20…−50%到+30…+100%;完备度达到65–100%时,区间收窄为−3…−10%到+3…+15%。该标准明确指出,一个项目完备度较低的估算,精度可能反而高于另一个完备度更高的项目估算。
我直接说明这个局限:这套数字来自资本建设与工程领域,是专家协商一致的区间,而不是对真实报价方差的实测结果。百分比本身不能直接套用到数字化项目上。可以迁移的是论证结构:估算精度是基础数据成熟度的函数,这让你可以用"阶段"而不是"对承接方的信任程度"来和客户沟通这个问题。
数据不足时该如何做估算
有一套方法正是为这种情况设计的,而且它比大多数项目管理方法论都要古老。
专家的直觉估算存在系统性偏差:它们不具备回归性,并且会高估自身的准确度。作者提出的纠偏程序包含五个步骤——选择一个可比案例组成的参照类(reference class forecasting),获取该参照类的结果分布,得出直觉估算值,评估该直觉的预测力,再按预测力的大小,将估算值向参照类的均值方向调整。
发表当时,这是一份技术报告,而非同行评审的正式论文,方法本身也只用了个别示例来演示——这是一个实实在在的局限。这套程序真正的实用价值在别处:它把"这需要多久"这个问题,替换成了"我们做过的类似任务花了多久"——而对后一个问题,任何一家公司只要做过基本的实际工时记录,就有数据可查。
大型项目的传统估算之所以系统性地不准确,原因是乐观偏差(optimism bias)和战略性低报(strategic misrepresentation),而不是工作本身的复杂度。作者提出的方法是参照类预测(reference class forecasting)——即基于可比项目的实际结果来构建估算。
这里的实证数据来自交通类超大型项目,而且我读的是预印本摘要,不是期刊版全文。把它套用到商业报价上是一种类比推论,我在此说明这一点。作者提出的第二个机制更值得关注:战略性低报。报价差异的一部分,并非源于风险评估不同,而是源于为了拿下合同而报出低价的意愿不同——客户有必要学会区分这两者。
作为客户,该如何解读一份报价单
第二个问题信息量最大。前提假设,正是承接方为了给出一个数字而当作既定事实接受下来的那些未知项清单。一份没有前提假设部分的报价单,要么是草率编制的,要么就藏着一笔不会让你看到具体数字的缓冲。
给客户的一个实用做法:同时要求两个版本——一个是固定价格版,一个是按实际结算、但给出参考区间的版本。两者之间的差额,就是承接方为承担风险开出的价格。它通常比客户预期的要大,而这是一场坦诚的对话,不是讨价还价。
承接方应该怎么做
同一机制的另一面是:降价不一定要靠压缩利润,也可以靠减少自己承担的不确定性。有三个工具比其他手段更有效。
分阶段承接(staged pricing)。第一阶段只做范围界定,按固定价格收费;后续阶段等第一阶段完成后再估算。这样能消除大部分范围不确定性,让承接方报出一个诚实的数字,而不是一笔缓冲。
排除项清单。明确划定的边界,比任何缓冲都便宜,因为它把未知项变成了一场单独的对话。详见——关于需求文档的分析。
明确的依赖关系。一切依赖第三方的因素,都要连同延误后果一起写明。做不到这一点,环境不确定性就会留在承接方身上——并由承接方买单。
编制成本估算的四条规则
先写前提假设,再写工作项
把当作既定事实接受的内容列成清单。它比一堆标价的条目更能解释这个数字。
按参照类(reference class forecasting)计算
问的不是"这需要多久",而是"我们做过的类似任务花了多久"。第二个问题有一个可以验证的答案。
说明完备程度所处的阶段
基于想法做的估算,和基于需求文档做的估算,是两份精度完全不同的文件,客户有权知道自己拿到的是哪一份。
在未知项集中的地方拆分阶段
分阶段承接比缓冲更便宜,也比盲目报出的固定价格更诚实。
如果同一任务的两份报价相差数倍,该问的问题不是"为什么这么贵",而是"每一方各自认为自己的责任边界在哪里"。
最常被问到的问题
为什么同一个项目的报价会相差数倍?
因为不同的不是工作内容,而是承接方愿意承担的不确定性大小。一份成本估算包含四个组成部分:工作量、范围不确定性、环境不确定性,以及针对陌生客户的缓冲。客户只能看到第一项。比较报价时,应该看前提假设部分,以及不包含在工作范围内的清单。
怎么判断一份报价单是不是被压低了?
看它有没有前提假设部分和排除项清单。如果承接方没有说明自己把什么当作了既定事实、又不做什么,那么要么是没吃透这个任务,要么就是打算日后再谈加价。第二个信号是缺少第三方依赖关系:真实项目里这类依赖总是存在的,文档里没写,就意味着延误风险被默默地留给了双方中的某一方。
如果没有足够数据做精确估算,该怎么办?
拆成两份文件:第一阶段的精确估算,任务是把范围界定清楚;以及整个项目的数量级区间,并明确标注所处的完备程度阶段。行业标准记录显示,在基础数据完备度最低的情况下,精度区间可以达到负50%到正100%——在这种情况下只报一个数字,等于误导双方。
×2,6倍的差异有多大代表性?
这是同一家公司在同一时期,针对不同、但同属可比类别的三个任务给出的报价;它们没有经过独立第三方核实,也不构成行业基准。真正值得关注的不是倍数本身,而是原因:第三个项目涉及与第三方系统的对接,也就是环境不确定性,而前两个项目根本不存在这个因素。
报价单金额(医疗机构官网306 500₽、美容院官网360 000₽、生鲜电商网站808 000₽,2015–2016年)来自Alego.Digital的项目档案。按月收取服务费、额外工时另计费率的收费模式,来自同一时期的客户服务规范。这些都是作者所在公司的内部文件;它们没有经过独立第三方核实,在此仅作为说明机制的示例。把成本估算拆解为四个组成部分,是作者对实践经验的个人归纳,并未在公司文件中正式规定。
- AACE International. Recommended Practice 18R-97: Cost Estimate Classification System. aacei.org
- Kahneman D., Tversky A. Intuitive Prediction: Biases and Corrective Procedures, 1977. apps.dtic.mil
- Flyvbjerg B. From Nobel Prize to Project Management: Getting Risks Right. Project Management Journal, 2006. arxiv.org