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: @trigvale/mcp
我到底能运行什么?
通常问题先于答案:基于对这家公司已知的信息, 哪些方法可用,以及哪一项缺失的事实能带来最大的信息增益?
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that reads startup pitch drafts from Notion to provide comprehensive investor-style analysis and scoring. It evaluates key areas like market opportunity and team strength, delivering feedback through a visual dashboard.
- 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.119MIT
- AlicenseAqualityCmaintenanceAn MCP server for analyzing startup financial health and generating metrics reports locally.2MIT
- 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
Related MCP Connectors
Free MCP tools: the only MCP linter, health checks, cost estimation, and trust evaluation.
A paid remote MCP for Equibles, built to return verdicts, receipts, usage logs, and audit-ready JSON
Free SME valuation, sell-readiness, M&A pricing, partner and deal-referral tools in EN/FR/ES/PT.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yagebin79386/openvaluation'
If you have feedback or need assistance with the MCP directory API, please join our Discord server