Appearance
2.2 概率现金流分析
工期有不确定性,钱就有不确定性。工期每偏移一天,对应着现金流出或流入的时间也偏移一天。本章教你如何量化「钱」的不确定性。
为什么要做概率现金流?
在确定性计划中,现金流是一条静态的 S 曲线——好看,但不真实。
真实世界是:
- 工期提前 → 业主付款提前,「资金占用」时间缩短
- 工期延误 → 付款推迟,同时管理费、设备租金等持续增加
- 存在性风险(比如变更签证)→ 需要额外投入资金
概率现金流分析就是对 1000 次蒙特卡洛模拟的每一次迭代,都记录下现金流数据。最后你可以看到:
- 累计现金流的 P20/P50/P80 曲线(如同工期的 P20/P50/P80)
- 每个时间段的现金流入/流出上下限
- 项目总成本与完工日期的散点分布
运行概率现金流分析
准备工作
确保项目已有关联的现金流数据。可以打开 Primavera 自带样例:
Help → Open Samples → ExampleRegister-Rocket.plan
或者按 上一章 创建自己的现金流。
操作步骤
| 步骤 | 操作 | 关键点 |
|---|---|---|
| ① | Risk → Run Risk Analysis | 打开风险分析对话框 |
| ② | 点击 Options... 按钮 | 进入分析选项 |
| ③ | 勾选 Save Probabilistic Cash Flow Data | 核心开关,必须勾选! |
| ④ | 点击旁边的 Cash Flow... 按钮 | 设置采集参数 |
现金流采样设置(Cash Flow Settings)

| 参数 | 含义 | 建议值 |
|---|---|---|
| Collection Period | 数据采集周期 | 月(大型项目)/ 周(短期项目) |
| Start Date | 现金流起始日期 | 默认为项目开始日期 |
| Data Collected | 采集哪些数据 | 默认全选 |
!> 注意:勾选「概率现金流」后会增加分析时间。对于有数百个任务的项目,增加的耗时通常可忽略;但对于上千任务的复杂项目,可能多花 10-30 秒。
完成分析
依次点击:OK → OK → Analyze → Complete
分析完成后,查看报告:
Reports → Probabilistic Cash Flow

读懂概率现金流图
上图显示了三组关键信息:
一、概率累积曲线(Cumulative Curves)
| 曲线 | 含义 | 怎么用 |
|---|---|---|
| P20 线 | 20% 概率下的现金流 | 「乐观情景」— 钱够用的底线 |
| P80 线 | 80% 概率下的现金流 | 「保守情景」— 按这条件备钱 |
| Mean 线 | 平均现金流 | 中间参考线 |
核心解读:P80 线与 P20 线之间的「带宽」代表了现金流的不确定性。带宽越宽,说明你的资金计划越不可靠。
二、每期柱状图(Per-Period Bars)
按采集周期(月/周)显示每个时间段内现金的流入流出:
- 读取 左侧纵轴 的数值(非右侧累计轴)
- 正值 = 该期净流入,负值 = 净流出
- 可切换查看均值和概率分位数(如 P50)的每期分布
三、散点图(Scatter / Football Plot)
Cost/Time Football Plot — 每个点代表一次模拟迭代的「总成本 vs 完工日期」。形状类似橄榄球(football),因此得名。
- 横轴:完工日期
- 纵轴:项目总成本
- 点越密集 = 该组合出现的次数越多
- 右上角的点 = 又贵又慢的情景
更多显示选项
确定性曲线(Deterministic Curves)
在图形右侧面板勾选以下选项,叠加确定性计划曲线:
| 选项 | 显示内容 |
|---|---|
| Scheduled | 基于任务当前开始/完成日期的现金流 |
| Early | 按最早开始/最早完成 |
| Late | 按最晚开始/最晚完成 |
| Shade Early/Late Envelope | 填充最早与最晚之间的阴影区域 |
用途:将确定性计划曲线与概率曲线叠加,直观看出「确定性计划有多乐观/悲观」。
显示差异(Show Differences)
勾选 Show differences 后,图形区新增一条差异曲线,表示两组每期数据之间的差值。
最常见的用法:Mean(概率均值) 减去 Early(确定性早期)。
**这个问题值得你问:**考虑了所有不确定性和风险之后,项目平均而言是会比确定性计划花更多钱还是更少钱?

修改差异设置路径:Format → Difference Settings`

注释标注(Annotations)
在右侧面板的 Annotations 区域:
| 选项 | 显示内容 |
|---|---|
| Deterministic cost/finish | 标注确定性计划的成本和完工日期 |
| Percentile cost/finish | 标注所选分位数的日期范围(如 P10-P90 阴影) |
| Data Date | 显示数据日期线 |
| Estimated Cost/Finish | 基于 CPI/SPI 预测完工成本和日期(需项目有进展) |
| CPI and SPI | 在图上显示 CPI 和 SPI 值(需项目有进展) |
折现设置(Discount Settings)
如果你需要计算净现值(NPV),可以为现金流设置折现率。
路径:Format → Discount Settings

| 参数 | 含义 |
|---|---|
| Yearly Discount Rate | 年折现率(%) |
| Discount period | 折现周期单位 |
| Discount from | 折现起始日期 |
默认折现率为 0%,即不折现。
更新显示周期(Display Period)
如果当前图的显示周期(如「月」)不是你想要的(如「周」):
- 修改后如果新周期是旧周期的整数倍 → 直接使用已有数据,无需重跑分析
- 如果新周期不是整数倍 → 系统会提示你重新运行风险分析
复制概率现金流数据
| 操作 | 路径 |
|---|---|
| 复制数据 | Edit → Copy data |
| 复制图表到剪贴板 | Edit → Copy picture to clipboard |
| 复制图表到文件 | Edit → Copy picture to file |
实战案例:水电站大坝浇筑现金流风险
案例:某水电站大坝混凝土浇筑项目
项目背景
西南某水电站大坝工程,混凝土总方量 120 万 m³,浇筑工期 28 个月,合同总价 ¥18 亿。业主要求汛期前必须达到防汛高程,否则面临巨额罚款。总包方投入自建拌合站 3 座,月最大产能 5 万 m³。
问题分析
- 产能限制:3 座拌合站满负荷月产能 5 万 m³,但高峰期需月产 6 万 m³,缺口 20%
- 天气影响:6-9 月雨季,平均每月 12 天无法浇筑,产能利用率仅 40%
- 资金压力:业主要求「按形象进度付款」,但汛期抢工需要突击投入 ¥3000 万/月
- 涨价风险:水泥价格波动 ±15%,直接冲击材料成本
建模过程
为每个月的浇筑任务设置三角分布工期不确定性(Min = 原工期×0.7, ML = 原工期, Max = 原工期×1.5),同时为关键任务设置天气停工概率(存在性风险,30%/月)。
| 现金流参数 | 设置 |
|---|---|
| 采集周期 | 月 |
| 模拟次数 | 1000 |
| CASH 分配 | 按各标段合同额比例分配到月任务 |
| 水泥成本波动 | 三角分布 Min=85% ML=100% Max=115% |
分析结果
| 指标 | 确定性计划 | P50 | P80 | P95 |
|---|---|---|---|---|
| 累计成本 | ¥18.0亿 | ¥19.2亿 | ¥20.8亿 | ¥22.1亿 |
| 最大月度现金缺口 | ¥2500万 | ¥3800万 | ¥5200万 | ¥6800万 |
| 资金峰值时间 | 第 14 月 | 第 14 月 | 第 17 月 | 第 19 月 |
关键发现:P80 情景下,最大月现金缺口高达 ¥5200 万,远超确定性计划的 ¥2500 万——几乎是两倍!
** 决策与总结
项目经理基于 P80 曲线向公司申请了 ¥6000 万的备用资金额度,并提前与水泥供应商签订了「锁量锁价」协议(锁定 70% 用量价格)。雨季期间,备用资金确实动用了 ¥3200 万用于突击抢工,但项目最终在防汛节点前 3 天达标。
一句话启示:现金流风险分析不是算「会不会超预算」,而是算「什么时候需要额外准备多少钱」——时间差才是风险的本质。
本章小结
| 要点 | 一句话 |
|---|---|
| 核心开关 | 勾选 Save Probabilistic Cash Flow Data` |
| 关键图表 | P20/P80 累计曲线之间的「带宽」就是现金流的不确定性 |
| Football Plot | 每个点 = 一次模拟的「成本×日期」,看成本-工期相关性 |
| Show Differences | Mean - Early → 概率平均值比确定性计划多花还是少花 |
| 折现 | Format → Discount Settings → 设置折现率用于 NPV 分析 |
英文原版内容版权归 Oracle Corporation 所有。中文翻译、案例、习题由 计划工程师 独立创作。
