openvaluation
openvaluation
Методы оценки стартапов как проверяемый код. Berkus, Scorecard, Risk Factor Summation, метод венчурного капитала, First Chicago и рыночные мультипликаторы — реализованы, протестированы и способны показать свои расчёты.
Бесплатно и с открытым исходным кодом, лицензия MIT. Чистый Python, без зависимостей, без API-ключей, без сетевых вызовов.
pip install openvaluationМетоды для компаний без выручки, которые реально используют ангельские группы, живут в учебниках, таблицах и электронных таблицах, но не в поддерживаемом программном обеспечении. Поищите на GitHub «Berkus method» — найдёте разрозненные скрипты с нулём звёзд; каждый коммерческий инструмент, реализующий эти методы, держит арифметику закрытой. Этот пакет — недостающий элемент: библиотека, которую может вызвать агент, скрипт или блокнот и получить защищаемое число с приложенным выводом.
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, ...Извлечение вероятностно; арифметика — нет
Языковые модели постоянно спрашивают, сколько стоит стартап, и они плохи в этом — не в рассуждениях, а в арифметике и в запоминании того, какой метод требует какой вход. Однако они очень хороши в чтении питч-дека и извлечении структурированных фактов.
Этот пакет проводит границу между этими двумя задачами. Модель читает документы и заполняет поля. Движок выполняет арифметику детерминированно и сообщает, как именно он к этому пришёл. Одинаковый вход, одинаковый выход, каждый раз — без модели в цикле, которая могла бы отклоняться.
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 Method | До выручки | Оценки по пяти факторам риска |
| Scorecard Method | До выручки | Сектор, плюс оценки относительно сопоставимых компаний |
| Risk Factor Summation | До выручки | Сектор, плюс оценки по двенадцати рискам |
| Venture Capital Method | Привлечение капитала с реалистичным выходом | Стоимость выхода или выручка при выходе |
| First Chicago Method | Исходы действительно бимодальны | Три сценария с вероятностями |
| EV / ARR | Подписная выручка | ARR и сектор |
| EV / Revenue | Выручка, но ещё нет прибыли | Годовая выручка и сектор |
| EV / EBITDA | Прибыльная | Положительный EBITDA и сектор |
Полная документация по каждому методу — формула, проработанный пример, ограничения и источник, по одной странице на каждый. Каждый пример на этих страницах выполняется тестовым набором, поэтому ничто не может отклониться от кода.
Каждый метод реализован из его опубликованного описания и цитирует его. Веса Scorecard — это веса Билла Пейна (30% команда, 25% возможность, 15% продукт, 10% конкуренция, 10% продажи, 5% потребность в инвестициях, 5% прочее); Berkus ограничивает пять элементов по 500 000 каждый; Risk Factor Summation сдвигает сопоставимое среднее на 250 000 за шаг по двенадцати факторам. Каждая из этих констант — аргумент конструктора, а не магическое число, зарытое в арифметике.
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Данные для бенчмарков — ваша проблема, и пакет об этом говорит
Три метода нуждаются во внешних числах: сколько стоят сопоставимые компании, по какому мультипликатору торгуется сектор, под какую ставку фонд андеррайтит. Эти числа устаревают, и ни одна библиотека не должна делать вид, что это не так, поэтому они поступают через провайдера, которого вы поставляете.
Провайдер по умолчанию поставляет иллюстративные заглушки — круглые, без дат, чтобы примеры работали. Любая оценка, которая их касается, говорит об этом в своих ограничениях:
- 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, электронной
таблицы. Три метода, все синхронные. Отраслевые мультипликаторы и стоимость капитала, публикуемые
Асватом Дамадараном в NYU Stern, — обычная бесплатная отправная точка.
Провайдер, у которого нет цифры, вызывает UnknownBenchmark, а не подставляет догадку, потому что
оценка, построенная на выдуманном мультипликаторе, хуже, чем отсутствие оценки.
Дайте это ИИ-агенту
Отправьте методы любой модели, с которой вы уже общаетесь. MCP-сервер предоставляет четыре инструмента, и, поскольку арифметика происходит в Python, модель не может ошибиться в расчётах:
pip install "openvaluation[mcp]"{"mcpServers": {"openvaluation": {"command": "openvaluation-mcp"}}}Инструмент | Что делает |
| Каждый метод и точный формат ввода, чтобы модель заполняла реальные имена полей |
| Что данные уже поддерживают и какое недостающее поле открывает больше всего — чтобы модель спрашивала, а не выдумывала |
| Все применимые методы сразу, с диапазоном и теми, которые не смогли запуститься |
| Полный вывод одного метода для отчёта |
Инструкции сервера сообщают модели то, что она иначе сделала бы неправильно: что оценки Berkus и Scorecard — это суждения, требующие доказательств, что поставляемые бенчмарк-цифры — заглушки, оговорку о которых нужно передавать дальше, и что медиана сама по себе не является ответом.
Те же четыре функции импортируются без MCP, для HTTP-обработчика или блокнота:
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. Эти методы дают переговорные якоря и проверки здравомыслия. Оценка с юридическим или налоговым статусом требует квалифицированного оценщика.
Не экстрактор. Он принимает структурированные факты; извлечение их из питч-дека — отдельная задача, и хорошая для языковой модели.
Не источник рыночных данных. См. выше.
Не механизм суждений. Оценки Berkus и факторы Scorecard — это суждения о компании. Пакет записывает и применяет их; он не формирует их.
Когда методы расходятся более чем на медиану, отчёт говорит об этом — потому что это расхождение является информацией, и усреднение его уничтожает.
Требования
Python 3.9+ (разработано и протестировано на 3.11). Нет зависимостей времени выполнения.
Откуда это взялось
Я построил движок оценки, лежащий в основе Wakeworth, который оценивает стартапы по загруженным документам. Сами методы — общеизвестное знание и должны быть в публичном коде; проприетарными там остаются извлечение документов и отчётность вокруг них. Этот пакет — слой методов, пересобранный отдельно из опубликованных описаний, с открытыми константами и каждым результатом, показывающим свои расчёты.
Участие
Приветствуются issues и pull request'ы. Я поддерживаю это на основе best-effort наряду с другой работой, поэтому ожидайте обдуманных ответов, а не быстрых. Самые полезные вклады — метод, реализованный из цитируемого источника, или случай, когда арифметика здесь расходится с проработанным примером в литературе.
git clone https://github.com/yagebin79386/openvaluation
cd openvaluation
pip install -e ".[dev]"
pytestЛицензия
MIT — см. LICENSE.
Последнее обновление: 2026-08-20 · Changelog
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