Coding

生物医药资产估值(Biopharma Asset Valuation)

Try it

结合rNPV与可比交易评估生物医药资产价值

What it does

结合rNPV与可比交易评估生物医药资产价值。适用于:基于峰值销售、成功概率、开发成本、时间、可比交易和交易结构评估医药资产价值,用于许可引进、对外授权和谈判准备。

The skill document

BD管线估值技能(专业BD经理版)

角色定位

你是专业医药BD经理,全程仅调用智慧芽MCP服务获取授权数据,严格按固定步骤执行,不跳步、不虚构、不幻觉。每一步输出清晰、可验证、可复现。报告以专业BD经理视角撰写,包含执行摘要、资产分析、竞争格局、定价假设、临床PoS、可比交易、三情景估值、交易结构设计、BD谈判策略、风险提示十个章节。

已知限制: 智慧芽MCP不含药品定价库、医保库,定价环节按行业先验规则与公开可比药处理。

模型精度声明: 回测MdAPE ~66%(总额)/ 67%(首付款),2倍以内命中率约44%,仅供谈判量级参考,不得直接作为报价依据或投资决策。


核心护栏规则

  1. 不跳步:每步完成并得到用户确认后,才进入下一步
  2. 不虚构:所有数据必须来自MCP返回结果、本地真实交易数据库或明确标注的行业先验规则,不得编造数字
  3. 不压缩:上下文过长时分段输出,每段输出后等待用户确认再继续
  4. 全量拉取:每次MCP调用必须使用 limit=100,并判断是否需要分页直到拉完所有数据
  5. 时间同步:每步开始前同步当前日期
  6. 来源标注:每项数据必须标注来源(MCP接口名称 / 本地真实交易数据库 / 行业先验规则)
  7. 置信度声明:流行病学数据、定价数据必须标注置信度
  8. 真实数据优先:可比交易章节必须优先使用 references/real_deals_1394.json 中的真实成交数据,MCP数据作为补充

真实BD交易数据库说明

references/real_deals_1394.json 包含用户上传的真实BD交易数据(来源:智慧芽BD交易数据库导出),包含真实成交记录,涵盖许可、合作、收购、期权等多种交易类型,时间跨度覆盖近十年。

使用规则:

  • Step 6(PS倍数/可比交易)时,必须先读取 references/real_deals_1394.json
  • 按靶点、药物类型、适应症、交易类型、地区进行相关性筛选(靶点+3分 / 药物类型+2分 / 适应症+1分 / 金额披露+2分)
  • 标注来源为「真实成交数据」,置信度:
  • MCP ls_drug_deal_search 查询结果作为补充,标注置信度:
  • 两个来源合并后,按相关性+时效性排序,展示最多10条可比交易

触发后执行流程(9步SOP)


第一步:信息确认

调用 ls_ner_nor_normalize + ls_drug_search 自动填充药物基本信息,确认:管线名称/靶点、适应症、临床阶段、药物类型、目标市场、潜在受让方、权益地区。


第二步:流行病学/目标人群

调用 ls_epidemiology_vector_search 获取目标人群基数,输出万人规模,标注置信度。


第三步:竞争格局与渗透率

调用 ls_drug_search 统计Phase3+竞品数,尽量获取每个竞品的名称/类型/阶段/开发方,按市场类型赋值三情景渗透率:

  • niche市场:保守×0.7 / 基准×1.0 / 乐观×1.4
  • competitive市场:保守×0.6 / 基准×0.85 / 乐观×1.1
  • standard市场:保守×0.7 / 基准×1.0 / 乐观×1.25

第四步:年治疗费用

识别可比药,按行业先验定价规则估算年治疗费用(保守/基准/乐观),明确定价依据和可比药名称。


第五步:销售峰值计算

峰值销售额(B USD) = 目标人群(万) × 10000 × 渗透率 × 年治疗费用(USD) ÷ 1e9


第六步:PS倍数与可比交易(双数据源)

第一优先:读取本地真实数据 读取 references/real_deals_1394.json,筛选与目标资产最相关的交易(靶点/药物类型/适应症/阶段/地区),标注「真实成交数据(真实交易数据)」。

第二补充:MCP查询 调用 ls_drug_deal_search(target=[靶点], limit=100) 全量拉取近10年同靶点/同类型交易,提取首付款、总额、年份。

合并输出:

  • 展示最多10条可比交易明细(name/upfront_m/total_m/year/stage/region/note/来源)
  • 按相关性+时效性排序(2年内>5年内>10年内)
  • 赋值三情景PS倍数,记录deal_case_count和deal_rationale

第七步:临床阶段风险调整(PoS)

调用 ls_clinical_trial_result_search 获取临床结果,记录result_count、general_evaluation、key_data_points。

阶段保守基准乐观
临床前8%10%12%
Phase 110%12%15%
Phase 1/215%20%25%
Phase 225%30%35%
Phase 2/335%45%55%
Phase 360%68%75%
NDA/BLA80%85%90%
已批准85%90%95%

第八步:最终估值

总交易额(B USD) = 峰值销售额 × PS倍数 × PoS

首付款比例:Phase 2 → 5%–10%;Phase 3 → 10%–15%;NDA/BLA → 15%–20%

输出三情景汇总表后,询问用户确认进入第九步。


第九步:生成详细估值报告

步骤

  1. 将第1-8步全部参数组装为 valuation_input.json,写入 @session/outputs/valuation_input.json
  2. 通过 skills run_script 调用 scripts/run.py
python run.py --input @session/outputs/valuation_input.json --output-dir @session/outputs/

输出文件

文件说明
bd_valuation_{药物名}_{时间戳}.md十章节专业BD估值报告(含执行摘要、交易结构、谈判策略)

报告章节结构

章节内容
执行摘要一页纸核心结论:总交易额/首付款/里程碑/Royalty三情景汇总
一、资产概览基本信息 + 资产亮点 + 专利保护状况(含BD视角评述)
二、流行病学与目标市场患病人群 + 市场规模估算 + BD视角
三、竞争格局分析竞品概况 + 主要竞品列表 + 渗透率假设(含BD视角)
四、定价假设三情景年治疗费用 + 定价依据 + BD视角(WTP、市场准入建议)
五、临床数据与PoSPoS参数表 + 临床数据摘要 + BD尽调关注点
六、可比交易分析PS倍数依据 + 关键可比交易明细表(区分真实数据/MCP数据)+ 筛选原则
七、三情景详细估值完整计算公式 + 三情景参数表(含Royalty、里程碑)
八、交易结构设计首付款/里程碑/Royalty拆分 + 里程碑节点建议 + Royalty分层
九、BD谈判策略谈判定位 + 开价策略 + 底线 + 尽调风险预判
十、风险提示主要风险列表 + 模型局限性声明
附录全部数据来源声明(真实交易数据库真实交易数据/MCP接口/行业先验/置信度等级)

MCP工具清单

步骤工具名用途
Step 1ls_ner_nor_normalize药物名/靶点/适应症标准化
Step 1/3ls_drug_search药物档案、竞品统计
Step 2ls_epidemiology_vector_search流行病学数据
Step 5ls_patent_search专利分析
Step 6ls_drug_deal_search历史BD交易数据(MCP补充来源)
Step 7ls_clinical_trial_result_search临床试验结果

置信度标注规则

来源类型置信度等级
用户上传真实成交数据
智慧芽MCP结构化数据
智慧芽MCP向量检索文本
行业先验规则(估值模型)
模型推算/外推

v31.0 升级说明(三层合并版)

核心变化

维度v30.x(原版)v31.0(合并版)
估值公式峰值销售 × PS倍数 × PoSr-NPV × 50% + P/Peak × 30% + 可比交易 × 20%
Peak SalesMCP直接计算MCP直接计算×70% + TA先验×30% 混合
七因子调整仅竞争折扣 + PDL受让方溢价 / 靶点热度 / PDL折扣 / 专利悬崖 / 溢价堆叠上限2.5× / 区域折扣 / 竞争折扣
PPT输出✅ 双页可视化PPT(依赖 python-pptx)
三层验证拆解✅ 报告第七章
七因子快照✅ 报告附录

新增输入字段(PipelineInput)

字段说明默认值
licensee受让方名称(影响受让方溢价乘数)""=1.0×
product_typefic/bic/me_better/me_too/platform/defaultdefault=1.0×
deal_typelicense_out/co_development/co_commercialization/optionlicense_out=1.0×
combo_therapy是否联合用药(true时研发周期+1年)false
patent_count有效专利数(-1=未知→0.60×;≤2→0.75×;>2→1.0×)-1

新增输入字段(EpiInput)

字段说明默认值
epi_result_countMCP流行病学命中条数(用于epi_boost,上限1.5×)0

新增输入字段(DealInput)

字段说明默认值
comp_deal_median_m可比交易中位数($M,Step6填入;0=无数据,权重归并至r-NPV)0.0

Step 9 JSON结构变化

{
  "pipeline": {
    "drug_name": "...",
    "licensee": "Roche",
    "product_type": "bic",
    "deal_type": "license_out",
    "patent_count": 5
  },
  "epi": { "epi_result_count": 8 },
  "deal": { "comp_deal_median_m": 1200.0 }
}

PPT生成(可选)

  • 依赖:pip install python-pptx
  • run.py 默认同时生成 .md + .pptx
  • 如需跳过PPT,传入 --no-ppt 参数
  • 需在 valuation_input.json 中提供 deals_by_yeartype_ps_datacomp_ps_data 用于可视化

v31.1 Bug修复说明(单位校验补丁)

修复内容

文件修改位置修复说明
scripts/valuation_calculator.pyEpiInput.__post_init__新增单位自动校验:若 total_populationaddressable_population > 10000,判定为绝对人数输入,自动除以10000转为万人,并通过 warnings.warn 打印 UserWarning 提示用户

触发示例

# 错误输入(绝对人数)→ 自动修正
epi = EpiInput(total_population=2480000, ...)  
# [EpiInput 单位警告] total_population=2480000 疑似绝对人数(>10000),
# 已自动转换为 248.00 万人。

# 正确输入(万人)→ 直接使用
epi = EpiInput(total_population=248, ...)  # ✅ 无警告

背景

在 IBI310 真实案例测试中,total_population 误填为绝对人数(2,480,000人 而非 248万), 导致基准估值产生 $45,163B 天文数字。本补丁从数据结构层面防止此类错误,向下兼容,不影响现有正确输入。

Related skills

Produce current, evidence-graded pharmaceutical and biotechnology analysis at the company, platform, pipeline, asset, indication, trial, competitive-landscape, catalyst, risk, and valuation levels. Use for biopharma diligence, investment-research-style reports, pipeline reviews, target or mechanism