openvaluation
openvaluation
将初创公司估值方法转化为可审计的代码。 Berkus 法、Scorecard 法、风险因素求和法、风险投资法、First Chicago 法和市场倍数法——均已实现、测试,并能展示其计算过程。
免费开源,MIT 许可。纯 Python,零依赖,无需 API 密钥,无需网络调用。
pip install openvaluation天使投资圈实际使用的 pre-revenue 方法,只存在于教科书、工作表和电子表格中, 却不在维护良好的软件里。在 GitHub 上搜索 "Berkus method",找到的是一堆 零散的脚本;而每个实现了这些方法的商业工具,都把计算过程封闭起来。这个包 正是缺失的那块拼图:一个代理、脚本或 notebook 可以调用并得到 有依据的数字,同时附带完整的推导过程。
from openvaluation import Engine
company = {
"company": {"sector": "saas", "stage": "seed", "region": "us"},
"financials": {"revenue": {"arr": 480_000}},
"berkus": {"sound_idea": 1.0, "prototype": 1.0, "management_team": 0.8,
"strategic_relationships": 0.4, "product_rollout": 0.6},
"scorecard": {"management_team": 1.25, "opportunity_size": 1.4},
}
print(Engine().run_all(company, stage="seed").summary())4 methods ran; median 4,420,000 USD (range 1,400,000–6,462,500)
berkus 1,900,000 [1,400,000 – 2,400,000]
ev_arr 3,840,000 [2,400,000 – 5,760,000]
risk_factor_summation 5,000,000 [4,750,000 – 5,250,000]
scorecard 5,875,000 [5,287,500 – 6,462,500]
2 methods could not run:
vc_method: vc_method needs exit.value, exit.revenue (supply an exit value, or
projected revenue at exit to apply a multiple to)
first_chicago: first_chicago needs scenarios.success.probability, ...提取是概率性的;计算不应如此
语言模型经常被问到一家初创公司值多少钱,而它们在这方面表现很差——不是差在 推理上,而是差在计算上,以及记住哪种方法需要哪些输入。然而,它们非常 擅长阅读 pitch deck 并提取出结构化的事实。
这个包划清了这两项工作的界限:模型负责读取文档并填写 字段。计算引擎负责执行运算,确定性地完成,并精确报告每一步是如何得出的。 相同的输入,相同的输出,每一次都如此——计算过程中没有任何模型参与,因此不会产生漂移。
result = Engine().run(company, "berkus")
print(result.explain())berkus: 1,900,000 USD (range 1,400,000–2,400,000)
Steps
1. Sound idea — basic value, product risk: 500,000 — rating 1.00
2. Prototype — technology risk: 500,000 — rating 1.00
3. Quality management team — execution risk: 400,000 — rating 0.80
4. Strategic relationships — market risk: 200,000 — rating 0.40
5. Product rollout or sales — production risk: 300,000 — rating 0.60
6. Pre-money valuation: 1,900,000 — sum of five elements
Assumptions
cap_per_element: 500000.0
Limitations
- Berkus caps pre-revenue value and ignores market size, growth and financials.
- Ratings are judgements, not measurements; this run capped at 2,500,000.
- This company reports revenue; Berkus was designed for pre-revenue companies
and a revenue-based method will usually say more.
Sources
- Dave Berkus, 'The Berkus Method: Valuing an Early Stage Investment' (berkonomics.com)每个结果都附带其计算步骤、假设、局限性,以及方法的引用来源。 无法被核验的估值,不值得为之辩护。
Related MCP server: tvr-mcp-server
我到底能运行什么?
通常问题先于答案:基于对这家公司已知的信息, 哪些方法可用,以及哪一项缺失的事实能带来最大的信息增益?
report = Engine().readiness(company)
[m.method for m in report.ready] # ['berkus', 'scorecard', 'risk_factor_summation', 'ev_arr']
report.unlocks()
# {'exit.value|exit.revenue': ('vc_method',),
# 'financials.ebitda': ('ev_ebitda',),
# 'financials.revenue.annual': ('ev_revenue',)}unlocks() 按每个缺失字段能解锁多少种方法进行排序,因此第一个条目就是
最值得去查明的事项。路径中的 | 表示该字段二者取其一即可。
一个报告为"就绪"的方法,必定能够运行——这一不变式经过了测试,因为一份 声称就绪却无法运行的方法清单,比没有清单更糟糕。
方法列表
id | 方法名称 | 适用场景 | 所需输入 |
| Berkus 法 | Pre-revenue | 五项风险要素的评分 |
| Scorecard 法 | Pre-revenue | 行业领域,以及与可比公司的对比评分 |
| 风险因素求和法 | Pre-revenue | 行业领域,以及十二项风险的评分 |
| 风险投资法 | 正在融资,且有可信的退出路径 | 退出估值或退出收入 |
| First Chicago 法 | 结果确实呈多峰分布 | 三种情景及其概率 |
| EV / 收入 | 订阅制收入 | 年度经常性收入(ARR)和行业领域 |
| EV / EBITDA | 已盈利 | 正的 EBITDA 和行业领域 |
每种方法的完整文档 — 公式、计算示例、局限性, 每种方法一页。这些页面上的每个示例都由测试套件执行,因此不会 与代码脱节。
每种方法都依据其公开发表的描述实现,并注明引用来源。Scorecard 法的权重来自 Bill Payne(团队 30%、机遇 20%、产品 15%、竞争 10%、销售 10%、投资需求 5%、 其他 5%);Berkus 法将五项要素各上限设为 50 万;风险因素求和法以 25 万为步长,在十二项因素上调整一个基准平均值。所有这些常量都是构造函数参数, 而不是埋藏在计算逻辑中的魔法数字。
from openvaluation import Berkus, RiskFactorSummation
Berkus(cap_per_element=300_000) # a market where 500k is too rich
RiskFactorSummation(step=100_000) # finer-grained risk adjustments基准数据是你的问题,这个包只负责说明这一点
三种方法需要外部数据:可比公司的估值、行业倍数、 以及基金的投资回报率目标。这些数据会过时,因此没有任何库应该 替你硬编码这些数字。相反,它们通过一个你提供的 provider 来获取。
默认的 provider 提供示例性的占位数据——取整的、未注明日期的数字,仅用于让示例 能够运行。任何使用了这些数据的估值,都会在其局限性说明中明确标注:
- Benchmark figures are illustrative placeholders, not market data; replace
StaticBenchmarks with a real source before relying on this figure从不查询市场数据的方法(如 Berkus 法)则不附带此警告。提供真实数据, 警告即消失:
from openvaluation import Engine, Multiple, TableBenchmarks
benchmarks = TableBenchmarks(
seed_valuations={"saas": 4_200_000},
multiple_table={("saas", "ARR"): Multiple(4.1, 6.8, 11.2, basis="ARR",
source="Our comp set", sample_size=180,
as_of="2026-06-30")},
rate_table={"seed": 0.5},
citations=("Our comp set, n=180, June 2026",),
)
engine = Engine(benchmarks=benchmarks)或者,实现一个 BenchmarkProvider 来对接你已有的任何数据源——数据库、API、电子表格。三种
方法均为同步实现。Aswath Damodaran 发布的行业倍数和资本成本数据,
是常用的免费起点。
如果 provider 缺少某个数据点,应抛出 UnknownBenchmark 异常,而不是
用猜测值来替代,因为基于虚构倍数构建的估值,比没有估值更糟糕。
交给 AI 代理
将方法直接提供给任何你已经在使用的模型。MCP 服务器暴露四个工具, 由于计算在 Python 中完成,模型不可能算错:
pip install "openvaluation[mcp]"{"mcpServers": {"openvaluation": {"command": "openvaluation-mcp"}}}工具 | 功能 |
| 列出所有方法及其适用条件,以便模型能填入真实的字段名称 |
| 检查数据已支持哪些方法,以及哪个缺失字段能解锁最多方法——这样模型就能询问而非编造 |
| 一次性运行所有适用方法,返回估值区间以及无法运行的方法 |
| 生成单个方法的完整推导过程,用于撰写报告 |
服务器的指令会告诉模型那些它原本可能弄错的事项:Berkus 和 Scorecard 的评分需要证据支持;内置的基准数据只是示例, 其局限性必须被明确传达;当多种方法结果不一致时,中位数并非最终答案。
同样的四个函数也可以不通过 MCP 直接导入使用,适用于 HTTP 处理器或 notebook:
from openvaluation.tools import check_readiness, value_company
check_readiness(company) # plain dicts in, plain dicts out命令行使用
openvaluation company.json # every applicable method
openvaluation company.json --readiness # what can run, what is missing
openvaluation company.json --method berkus --explain
openvaluation company.json --json # for piping onward
openvaluation --list-methods输入格式
一个普通的嵌套字典——无论你的提取步骤产出了什么。字段通过点路径读取,因此 无需所有字段齐全:
{
"company": {"sector": "saas", "stage": "seed", "region": "us"},
"financials": {"revenue": {"arr": 480000, "annual": 520000}, "ebitda": 90000},
"product": {"stage": "mvp"},
"berkus": {"sound_idea": 1.0, "prototype": 0.8},
"scorecard": {"management_team": 1.25, "opportunity_size": 1.4},
"risk": {"management": 2, "competition": -1},
"exit": {"revenue": 40000000, "years": 5, "dilution": 0.3},
"funding": {"round_size": 2000000},
"scenarios": {"success": {"value": 80000000, "probability": 0.15},
"base": {"value": 15000000, "probability": 0.35},
"failure": {"value": 0, "probability": 0.50}}
}金额可以是纯数字、数字字符串,或 {"value": 480000, "currency": "USD"} 对象。
比率可以是 0.4 或 40。对于收入等数量指标,零值视为缺失,因为零收入
与未知收入,对这些方法而言是相同的输入。
这不是什么
不是投资建议,也不是 409A 估值。 这些方法产生的是谈判锚点 和合理性检查。具有法律或税务效力的估值,需要由合格评估师出具。
不是提取器。 它接收的是结构化事实;从 pitch deck 中提取这些事实是另一项 工作,而这正是语言模型所擅长的。
不是市场数据来源。 参见上文。
不是判断引擎。 Berkus 评分和 Scorecard 因素是关于一家公司的判断。 本包只负责记录和应用这些判断,并不自行形成判断。
当各方法的结果差异超过中位数时,报告会明确说明——因为这种分歧本身就是 信息,将其平均掉反而会破坏信息。
环境要求
Python 3.9+(在 3.11 上开发和测试)。无运行时依赖。
来源
我构建了 Wakeworth 背后的估值引擎,该应用根据 上传的文档为初创公司估值。这些方法本身是公开知识,理应属于公开代码;而 文档提取和报告生成则是该产品专有的部分。这个包是 方法层的独立重构,基于已发表的描述实现,所有常量均公开暴露, 每个结果都展示其完整计算过程。
贡献
欢迎提交 issue 和 pull request。我会在主要工作之余尽力维护, 因此回复可能不会很快,但会经过认真考虑。最有价值的贡献是:基于可引用来源 实现一个新方法,或者指出这里的计算与文献中某个计算示例不一致的案例。
git clone https://github.com/yagebin79386/openvaluation
cd openvaluation
pip install -e ".[dev]"
pytest许可证
MIT — 参见 LICENSE。
最后更新:2026-08-20 · 更新日志
This server cannot be deployed
Maintenance
Related MCP Connectors
Free MCP tools: the only MCP linter, health checks, cost estimation, and trust evaluation.
MCP server for VC pitch-deck scoring, thesis-fit matching, and deal-flow management.
Get 409A Valuation: the site's own MCP server — checker, enquiry (enquiry = a human handoff, not...
Valuation MCP: DCF/NAV/CCA, WACC, derivatives, credit risk, fixed income, structured products.
Related MCP Servers
- AlicenseAqualityDmaintenanceValidates startup ideas with a deterministic scorecard, evidence brief, and verdict before code is written, integrating with MCP-aware build agents to avoid building dead-on-arrival products.111 npmMIT
- AlicenseNot gradedqualityCmaintenanceCryptocurrency fundamental analysis tools via MCP. Enables users and AI agents to evaluate cryptocurrencies across 8 metrics using Sound Value principles. Provides educational material, fair value estimates, and valuation categories.1MIT

NUVC MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceProvides VC-grade startup intelligence, allowing founders to validate ideas and VCs to screen deals using tools like scoring, investor matching, and financial analysis.11 npmMIT- AlicenseNot gradedqualityCmaintenanceEnables financial modeling for SaaS and other assets via MCP tools, including simulation, scenario comparison, sensitivity analysis, semantic knowledge search, and persistent context memory.MIT