NPA / 法拍 估值定价(轻量版)
把"纸面折扣"翻译成真金白银的 IRR。任何法拍标的、不良资产包、困境资产,填一组假设即出:
三情景 IRR + MOIC 双指标、敏感性矩阵、折价可修复性打分、投标上限反推。
触发条件
- 法拍房 / 法拍股权 / 不良债权包"要不要买、出多少"
- 需要把折价率换算成 IRR / MOIC
- 客户问不良资产投资逻辑、投标上限、处置回报
- 批量筛选一堆标的,按风险调整后回报排名
三条铁律(做之前先背下来)
铁律一:先对口径,否则全错
| 口径 | 定义 | 谁在用 |
|---|---|---|
| 折扣率(本工具采用) | 成交价 ÷ 评估价 | 千际投行、中指研究院 |
| 折价幅度 | 1 − 成交价 ÷ 评估价 | 克而瑞 |
两者互为 1 的补数。同一句"折价率 74.1%",两种口径下含义相差近 3 倍。
第二层陷阱(更致命):评估价 ≠ 市场价 —— 法院评估价普遍滞后且偏高。
"相对评估价折 26%" ≠ "相对市场价便宜 26%"。必须另算【真实折价率 = 成交价 ÷ 对标市场价】,这才是真安全边际。
铁律二:只有可主动修复的折价才是真收益
| 要素 | 可修复性 | 修复抓手 |
|---|---|---|
| 信息折价 | 高 ★★★★★ | 尽调补齐产权/占用/欠费/税费 |
| 时间折价 | 中 ★★★☆☆ | 垫资提速、预清场、缩短过户 |
| 流动性折价 | 低 ★☆☆☆☆ | 只能选城市/选地段——低分即风险 |
| 风险折价 | 中高 ★★★★☆ | 交易结构与条款对冲 |
用打分卡算"可修复折价占比":>50% 才值得做,<30% 放弃。
流动性折价几乎不可修复 —— 所以远郊房、老破小、低能级城市商业资产,折得再深也不该碰。
铁律三:三情景 + IRR/MOIC 双指标,决策看保守情景
- 三层:情景(保守/基准/乐观)→ 现金流(回款节奏 + 税费/诉讼/运营)→ 门槛(叠加资金成本与机会成本)
- 决策看保守情景,乐观只估上行空间
- IRR 看效率、MOIC 看倍数;背离时(倍数高但 IRR 低)= 钱压得久,这是法拍最常见的死法
- 反推投标上限:给定门槛 IRR,反解最高可出价
环境依赖
pip install openpyxl
# 国内网络建议加镜像:-i https://pypi.tuna.tsinghua.edu.cn/simple
openpyxl:生成 xlsx 模型(必需,脚本只用这一个第三方库)
工具链
生成模型 — scripts/build_model.py
python scripts/build_model.py --config deal.json --out model.xlsx
python scripts/build_model.py --demo --out model.xlsx # 内置示例
python scripts/build_model.py --config deal.json --print-config # 回显合并后配置
产出 5 表:使用说明 / 输入假设 / 三情景现金流 / 敏感性分析 / 折价打分卡。
输入模板见 templates/deal_template.json;只填已知字段,缺的走默认值。
asset_type 支持 住宅 / 商办 / 工业 / 股权,自动切换折价要素默认权重。
标准流程
- 拿标的信息 → 拷
deal_template.json填数(评估价、起拍价、预估成交价、对标市场价) build_model.py生成模型 → 核对「真实折价率」(成交价 ÷ 对标市场价)
—— 法院评估价普遍滞后偏高,名义折扣里可能有一大半是评估价虚高造成的- 看折价打分卡:可修复折价占比 > 50% 才值得做,< 30% 直接放弃
(流动性折价几乎不可修复——远郊房、老破小、低能级城市商业资产,折得再深也不该碰) - 读结论:保守情景 IRR 是否达标?(决策看保守情景,乐观只估上行空间)
> 完整版另有:投标上限反推(给定门槛 IRR 反解最高出价)、批量标的排序(多标的按风险调整后回报排名)、独立验证链(LibreOffice + Python 双向重算比对,偏差 < 1e-12,未通过不交付)。
核心公式(可审计)
- 资产处置价值 = 可实现市场价值 − 交易与交付成本 − 风险损失 − 资金时间成本
- 年化 IRR = (1 + 季度IRR) ^ 4 − 1(现金流按季度排布)
- MOIC = 总回收 ÷ 总投入
- 投标上限:令保守情景 IRR = 门槛,反解买入价
踩过的坑
- 公式行号必须动态捕获:openpyxl 生成多表模型时硬编码行号,插一行就全表静默错位(openpyxl 不求值、不报错)
- 文本以
=开头会被 Excel/LibreOffice 当公式解析 → Err:501;说明性文字用全角= - LibreOffice 对 OOXML 默认不重算(OOXMLRecalcMode=never),转换后公式缓存值恒为 0,会误判成"模型算不出数";解法:先给工作簿打
fullCalcOnLoad标志再转 - soffice 转换时源文件与输出目录不能同名同目录,否则静默失败
- Excel
IRR()返回的是季度 IRR,年化须(1+q)^4-1 - 打印/转 PDF 要设
landscape + fitToWidth=1,否则长文本列断页
边界与风险
- 模型不产生数据:三情景假设质量取决于尽调深度,垃圾进垃圾出
- 税费是最大暗坑:原产权人为公司可能触发土地增值税、企业所得税;"所有税费由买受人承担"条款可让实际成本远超成交价
- 腾退失败、户口滞留属"回款归零"风险,模型用情景系数覆盖,须单独设红线
- 非标资产(商办/工业/股权)缺乏可比成交,售价系数最难估——先做住宅标准化标的建立模型可信度
- 本工具为决策辅助,不构成投资建议
🙋 关于作者
九品锦锂e | 把踩过的坑封装成"拿来就能跑"的 skill,不写教科书。这个 skill 是我自己每天在用的版本。
微信:ly5419495(加时备注「SkillHub」,我优先通过)
公众号:初五Agent(微信搜一搜,复盘和方法都写在那儿,不加微信也能读)
我另外做的几个能直接跑的工具,都放在这个货架页(复制到浏览器打开):
https://skillpay.alipay.com/public/jiupinjinlie
用的时候卡住了、或者有别的场景想让我封装成 skill,按上面任意方式找我就行。