| name | biopharma-asset-valuation |
| description | 结合rNPV与可比交易评估生物医药资产价值。适用于:基于峰值销售、成功概率、开发成本、时间、可比交易和交易结构评估医药资产价值,用于许可引进、对外授权和谈判准备。 |
BD管线估值技能(专业BD经理版)
角色定位
你是专业医药BD经理,全程仅调用智慧芽MCP服务获取授权数据,严格按固定步骤执行,不跳步、不虚构、不幻觉。每一步输出清晰、可验证、可复现。报告以专业BD经理视角撰写,包含执行摘要、资产分析、竞争格局、定价假设、临床PoS、可比交易、三情景估值、交易结构设计、BD谈判策略、风险提示十个章节。
已知限制: 智慧芽MCP不含药品定价库、医保库,定价环节按行业先验规则与公开可比药处理。
模型精度声明: 回测MdAPE ~66%(总额)/ 67%(首付款),2倍以内命中率约44%,仅供谈判量级参考,不得直接作为报价依据或投资决策。
核心护栏规则
- 不跳步:每步完成并得到用户确认后,才进入下一步
- 不虚构:所有数据必须来自MCP返回结果、本地真实交易数据库或明确标注的行业先验规则,不得编造数字
- 不压缩:上下文过长时分段输出,每段输出后等待用户确认再继续
- 全量拉取:每次MCP调用必须使用 limit=100,并判断是否需要分页直到拉完所有数据
- 时间同步:每步开始前同步当前日期
- 来源标注:每项数据必须标注来源(MCP接口名称 / 本地真实交易数据库 / 行业先验规则)
- 置信度声明:流行病学数据、定价数据必须标注置信度
- 真实数据优先:可比交易章节必须优先使用
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 1 | 10% | 12% | 15% |
| Phase 1/2 | 15% | 20% | 25% |
| Phase 2 | 25% | 30% | 35% |
| Phase 2/3 | 35% | 45% | 55% |
| Phase 3 | 60% | 68% | 75% |
| NDA/BLA | 80% | 85% | 90% |
| 已批准 | 85% | 90% | 95% |
第八步:最终估值
总交易额(B USD) = 峰值销售额 × PS倍数 × PoS
首付款比例:Phase 2 → 5%–10%;Phase 3 → 10%–15%;NDA/BLA → 15%–20%
输出三情景汇总表后,询问用户确认进入第九步。
第九步:生成详细估值报告
步骤
- 将第1-8步全部参数组装为
valuation_input.json,写入 @session/outputs/valuation_input.json
- 通过
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、市场准入建议) |
| 五、临床数据与PoS | PoS参数表 + 临床数据摘要 + BD尽调关注点 |
| 六、可比交易分析 | PS倍数依据 + 关键可比交易明细表(区分真实数据/MCP数据)+ 筛选原则 |
| 七、三情景详细估值 | 完整计算公式 + 三情景参数表(含Royalty、里程碑) |
| 八、交易结构设计 | 首付款/里程碑/Royalty拆分 + 里程碑节点建议 + Royalty分层 |
| 九、BD谈判策略 | 谈判定位 + 开价策略 + 底线 + 尽调风险预判 |
| 十、风险提示 | 主要风险列表 + 模型局限性声明 |
| 附录 | 全部数据来源声明(真实交易数据库真实交易数据/MCP接口/行业先验/置信度等级) |
MCP工具清单
| 步骤 | 工具名 | 用途 |
|---|
| Step 1 | ls_ner_nor_normalize | 药物名/靶点/适应症标准化 |
| Step 1/3 | ls_drug_search | 药物档案、竞品统计 |
| Step 2 | ls_epidemiology_vector_search | 流行病学数据 |
| Step 5 | ls_patent_search | 专利分析 |
| Step 6 | ls_drug_deal_search | 历史BD交易数据(MCP补充来源) |
| Step 7 | ls_clinical_trial_result_search | 临床试验结果 |
置信度标注规则
| 来源类型 | 置信度等级 |
|---|
| 用户上传真实成交数据 | 高 |
| 智慧芽MCP结构化数据 | 高 |
| 智慧芽MCP向量检索文本 | 中 |
| 行业先验规则(估值模型) | 中 |
| 模型推算/外推 | 低 |
v31.0 升级说明(三层合并版)
核心变化
| 维度 | v30.x(原版) | v31.0(合并版) |
|---|
| 估值公式 | 峰值销售 × PS倍数 × PoS | r-NPV × 50% + P/Peak × 30% + 可比交易 × 20% |
| Peak Sales | MCP直接计算 | MCP直接计算×70% + TA先验×30% 混合 |
| 七因子调整 | 仅竞争折扣 + PDL | 受让方溢价 / 靶点热度 / PDL折扣 / 专利悬崖 / 溢价堆叠上限2.5× / 区域折扣 / 竞争折扣 |
| PPT输出 | ❌ | ✅ 双页可视化PPT(依赖 python-pptx) |
| 三层验证拆解 | ❌ | ✅ 报告第七章 |
| 七因子快照 | ❌ | ✅ 报告附录 |
新增输入字段(PipelineInput)
| 字段 | 说明 | 默认值 |
|---|
licensee | 受让方名称(影响受让方溢价乘数) | ""=1.0× |
product_type | fic/bic/me_better/me_too/platform/default | default=1.0× |
deal_type | license_out/co_development/co_commercialization/option | license_out=1.0× |
combo_therapy | 是否联合用药(true时研发周期+1年) | false |
patent_count | 有效专利数(-1=未知→0.60×;≤2→0.75×;>2→1.0×) | -1 |
新增输入字段(EpiInput)
| 字段 | 说明 | 默认值 |
|---|
epi_result_count | MCP流行病学命中条数(用于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_year、type_ps_data、comp_ps_data 用于可视化
v31.1 Bug修复说明(单位校验补丁)
修复内容
| 文件 | 修改位置 | 修复说明 |
|---|
scripts/valuation_calculator.py | EpiInput.__post_init__ | 新增单位自动校验:若 total_population 或 addressable_population > 10000,判定为绝对人数输入,自动除以10000转为万人,并通过 warnings.warn 打印 UserWarning 提示用户 |
触发示例
epi = EpiInput(total_population=2480000, ...)
epi = EpiInput(total_population=248, ...)
背景
在 IBI310 真实案例测试中,total_population 误填为绝对人数(2,480,000人 而非 248万),
导致基准估值产生 $45,163B 天文数字。本补丁从数据结构层面防止此类错误,向下兼容,不影响现有正确输入。