Skip to main content
Glama
yagebin79386

openvaluation

by yagebin79386

openvaluation

감사 가능한 코드로 구현된 스타트업 가치평가 방법론. Berkus, Scorecard, Risk Factor Summation, VC Method, First Chicago 및 시장 배수(market multiples) — 구현되었고, 테스트되었으며, 계산 과정을 보여줄 수 있습니다.

무료 및 오픈소스, MIT 라이선스. 순수 Python, 의존성 없음, API 키 없음, 네트워크 호출 없음.

pip install openvaluation

엔젤 투자 그룹이 실제로 사용하는 수익 창출 이전(pre-revenue) 방법론은 교과서, 워크시트, 스프레드시트에만 존재할 뿐 유지 관리되는 소프트웨어에는 없습니다. GitHub에서 "Berkus method"를 검색하면 별점 0개짜리 스크립트들이 흩어져 있을 뿐입니다. 이를 구현한 모든 상용 도구는 산술 계산을 비공개로 유지합니다. 이 패키지는 바로 그 누락된 조각입니다: 에이전트, 스크립트 또는 노트북이 호출하여 계산 근거가 첨부된 방어 가능한 숫자를 돌려받을 수 있는 라이브러리입니다.

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)

모든 결과에는 계산 단계, 가정, 한계, 그리고 방법에 대한 인용이 포함됩니다. 아무도 검증할 수 없는 가치평가는 방어할 가치가 없습니다.

무엇을 실행할 수 있나요?

보통 질문은 가치평가보다 먼저 옵니다: 이 회사에 대해 알려진 것을 고려할 때, 어떤 방법을 사용할 수 있고, 어떤 누락된 사실 하나가 가장 많은 것을 열어줄까요?

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

Berkus Method

수익 창출 이전

5가지 위험 요소에 대한 평가 등급

scorecard

Scorecard Method

수익 창출 이전

섹터, 그리고 비교 기업 대비 평가 등급

risk_factor_summation

Risk Factor Summation

수익 창출 이전

섹터, 그리고 12가지 위험에 대한 평가 등급

vc_method

Venture Capital Method

투자 유치 중, 신뢰할 수 있는 엑시트 보유

엑시트 가치 또는 엑시트 매출

first_chicago

First Chicago Method

결과가 진정으로 이봉분포(bimodal)인 경우

확률이 포함된 세 가지 시나리오

ev_arr

EV / ARR

구독 매출

ARR 및 섹터

ev_revenue

EV / Revenue

매출은 있으나 아직 수익성 없음

연간 매출 및 섹터

ev_ebitda

EV / EBITDA

수익성 있음

양수 EBITDA 및 섹터

각 방법에 대한 전체 문서 — 공식, 계산 예시, 한계 및 출처, 각각 한 페이지씩. 해당 페이지의 모든 예시는 테스트 스위트에 의해 실행되므로 코드에서 벗어날 수 없습니다.

각 방법은 게시된 설명에서 구현되었으며 이를 인용합니다. Scorecard 가중치는 Bill Payne의 것입니다 (팀 30%, 기회 25%, 제품 15%, 경쟁 10%, 판매 10%, 투자 필요성 5%, 기타 5%); Berkus는 5개 요소를 각각 500,000으로 상한을 둡니다; Risk Factor Summation은 비교 평균을 12개 요소에 걸쳐 단계당 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)

또는 보유한 무엇이든 — 데이터베이스, API, 스프레드시트 — 에 대해 BenchmarkProvider를 구현하십시오. 세 가지 방법, 모두 동기식입니다. NYU Stern의 Aswath Damodaran이 발표한 섹터 배수와 자본 비용이 일반적인 무료 출발점입니다.

수치가 없는 프로바이더는 추측을 대신하지 않고 UnknownBenchmark를 발생시킵니다. 왜냐하면 발명된 배수 위에 세워진 가치평가는 가치평가가 없는 것보다 나쁘기 때문입니다.

AI 에이전트에게 제공하기

이미 대화하고 있는 어떤 모델에든 이 방법들을 제공하십시오. MCP 서버는 네 가지 도구를 노출하며, 산술이 Python에서 발생하므로 모델이 합계를 틀릴 수 없습니다:

pip install "openvaluation[mcp]"
{"mcpServers": {"openvaluation": {"command": "openvaluation-mcp"}}}

도구

기능

list_valuation_methods

모든 방법과 정확한 입력 형식 — 모델이 실제 필드 이름을 채우도록

check_valuation_readiness

데이터가 이미 지원하는 것과 어떤 누락 필드가 가장 많은 것을 열어주는지 — 모델이 발명하지 않고 질문하도록

value_company

모든 적용 가능한 방법을 한 번에, 범위와 실행할 수 없었던 방법 포함

explain_valuation

한 방법의 전체 계산 과정 — 보고서 작성을 위해

서버의 지침은 모델이 그렇지 않으면 틀릴 것들을 알려줍니다: Berkus와 Scorecard 등급은 증거가 필요한 판단이며, 제공된 벤치마크 수치는 주의사항을 전달해야 하는 플레이스홀더이며, 중앙값만이 답이 아니라는 것.

동일한 네 가지 함수는 MCP 없이도 HTTP 핸들러나 노트북에서 import할 수 있습니다:

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

입력 형식

평범한 중첩 dict — 추출 단계가 생성한 무엇이든. 필드는 점 경로(dotted path)로 읽히므로 완전할 필요가 없습니다:

{
  "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일 수 있습니다. 매출과 같은 수량의 경우 0은 없음으로 간주됩니다. 0 매출과 알 수 없는 매출은 이 방법들에 동일한 입력이기 때문입니다.

이것이 아닌 것

  • 투자 조언도, 409A 가치평가도 아닙니다. 이 방법들은 협상 기준점과 타당성 검증을 생성합니다. 법적 또는 세금상 지위를 가진 가치평가는 자격을 갖춘 감정인이 필요합니다.

  • 추출기가 아닙니다. 구조화된 사실을 입력으로 받습니다; 피치 덱에서 이를 꺼내는 것은 별개의 작업이며, 언어 모델에게 좋은 작업입니다.

  • 시장 데이터의 출처가 아닙니다. 위 참조.

  • 판단 엔진이 아닙니다. Berkus 등급과 Scorecard 요소는 회사에 대한 판단입니다. 패키지는 이를 기록하고 적용합니다; 형성하지는 않습니다.

방법들이 중앙값보다 더 크게 불일치하면 보고서는 그렇게 말합니다 — 그 불일치는 정보이기 때문이며, 평균화하여 없애는 것은 그것을 파괴하는 것입니다.

요구 사항

Python 3.9+ (3.11에서 개발 및 테스트됨). 런타임 의존성 없음.

이 프로젝트의 유래

저는 Wakeworth 뒤의 가치평가 엔진을 구축했으며, 이는 업로드된 문서에서 스타트업을 평가합니다. 방법론 자체는 공개 지식이며 공개 코드에 속합니다; 그곳에서 독점으로 유지되는 것은 문서 추출과 그 주변의 보고입니다. 이 패키지는 방법론 계층을 게시된 설명에서 독립형으로 재구축한 것이며, 상수가 노출되고 모든 결과가 계산 과정을 보여주도록 만들어졌습니다.

기여

이슈와 풀 리퀘스트를 환영합니다. 저는 다른 작업과 함께 최선을 다해 유지 관리하므로, 빠른 답변보다는 신중한 답변을 기대하십시오. 가장 유용한 기여는 인용 가능한 출처에서 구현된 방법이거나, 여기의 산술이 문헌의 계산 예시와 불일치하는 사례입니다.

git clone https://github.com/yagebin79386/openvaluation
cd openvaluation
pip install -e ".[dev]"
pytest

라이선스

MIT — LICENSE 참조.


마지막 업데이트: 2026-08-20 · 변경 로그

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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.

View all MCP Connectors

Latest Blog Posts

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