Comprehensive startup valuation library implementing 80+ formulas from the Startup Valuation textbook. Includes Python library, MCP server, and AI-Agent Skills.
Project description
Startup Valuation Engine
Comprehensive startup valuation library implementing 80+ formulas from the Startup Valuation textbook. Python library + MCP server + AI-Agent Skills.
Overview
A production-grade Python library for startup valuation, implementing every formula from the Startup Valuation textbook by Simon Mak (Valuation in Practice Series, Ascent Partners). Designed for developers, financial analysts, and AI agents who need auditable, structured valuation computations.
Three-layer architecture:
- Python Library — 14 modules, 80+ typed functions, all returning
ValuationResult(value + assumptions + sensitivity) - MCP Server — 60+ tools for AI agents (Claude, OpenCode, etc.) via stdio/SSE
- AI-Agent Skills — 5 skill definitions with workflow guidance for valuation domains
Installation
pip install startup-valuation # library only
pip install startup-valuation[mcp] # + MCP server
pip install startup-valuation[dev] # + pytest, ruff, mypy
Quick Start
Python Library
from startup_valuation.core import scorecard_valuation, vc_method_post_money
from startup_valuation.advanced import black_scholes, scenario_analysis
from startup_valuation.types import Scenario
# Scorecard Method (pre-revenue startups)
result = scorecard_valuation(
average_valuation=1_500_000,
weights=[0.30, 0.25, 0.15, 0.10, 0.10, 0.05, 0.05],
scores=[1.25, 1.50, 1.20, 0.75, 1.00, 0.90, 1.00],
)
print(f"Scorecard: ${result.value:,.0f}") # $1,800,000
# Black-Scholes for real options (startup equity)
result = black_scholes(
underlying=20_000_000, strike=5_000_000,
risk_free_rate=0.05, volatility=0.40, time_to_maturity=1.0,
)
print(f"Option value: ${result.value:,.0f}") # $15,240,000
# Scenario Analysis
scenarios = [
Scenario("bull", 0.20, 10_000_000),
Scenario("base", 0.60, 5_000_000),
Scenario("bear", 0.20, 1_000_000),
]
result = scenario_analysis(scenarios)
print(f"Expected value: ${result.value:,.0f}") # $5,200,000
MCP Server (for AI Agents)
cd mcp_server && python server.py
Connect with any MCP-compatible AI agent. All 60+ valuation tools available.
AI-Agent Skills
Copy the skills/ directory to your agent's skills folder:
valuation-core— Scorecard, Berkus, VC Method, Risk Factor Summationvaluation-advanced— Black-Scholes, Binomial, Monte Carlo, Scenario Analysisvaluation-industry— SaaS, Biotech, Fintech, Marketplace, Hardwarevaluation-stakeholder— Dilution, OPM, PWERM, Liquidation Preferencevaluation-emerging— SAFE, Crypto (MV=PQ), ESG, Metcalfe's Law
Valuation Methods by Category
| Category | Methods | Chapter |
|---|---|---|
| Probability | Expected value, joint probability, Poisson | 2 |
| Time Value | PV, NPV, annuity | 2 |
| CAPM | CAPM, portfolio beta, startup-adjusted | 2 |
| Core | Scorecard, Berkus, Risk Factor, VC Method | 3 |
| Advanced | Black-Scholes, Binomial, Monte Carlo, Scenario | 4 |
| Comparables | P/E, P/S, EV/EBITDA, regression-adjusted | 5 |
| SaaS | LTV, CAC, NRR, Magic Number, Rule of 40 | 11 |
| Biotech | rNPV, decision tree, peak sales, pipeline | 11 |
| Fintech | Payment revenue, lending, neobank, network effects | 11 |
| Marketplace | GMV, take rate, liquidity, network density | 11 |
| Hardware | TRL-adjusted, break-even, P-weighted DCF | 11 |
| International | PPP, CRP, currency-adjusted DCF, Damodaran | 12 |
| Stakeholders | Dilution, OPM, PWERM, liquidation, synergies | 13 |
| Emerging | SAFE, MV=PQ, ESG, Metcalfe's, data moat | 14 |
Why This Library?
- Auditable — Every function returns
ValuationResultwith value, method, inputs, assumptions, and sensitivity analysis - Textbook-accurate — All formulas verified against book example values with unit tests
- AI-ready — MCP server and Skills for seamless AI agent integration
- Industry-specific — Dedicated modules for SaaS, biotech, fintech, marketplace, and hardware startups
- Open source — MIT license, extensible, well-documented
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests (101 tests, ~6s)
pytest
# Run with coverage
pytest --cov=startup_valuation --cov-report=term-missing
# Lint
ruff check .
# Type check
mypy src/startup_valuation
Documentation
- API Reference: GitHub Pages
- PyPI: pypi.org/project/startup-valuation
- Chapter Index: Maps every function to its textbook chapter
- Examples: Interactive code snippets for each valuation category
Companion Textbook
Startup Valuation: A Comprehensive Guide to Valuing Fast-Growing Pre-Revenue Companies
Theory, Methods, Regulation, and Practice — Valuation in Practice Series by Ascent Partners
By Simon Mak · 338 pages · 15 chapters · 300+ exercises · 20+ real-world cases
Citing This Project
@software{startup_valuation_engine,
author = {Mak, Simon},
title = {Startup Valuation Engine},
year = {2026},
url = {https://github.com/simonplmak-cloud/startup-valuation},
license = {MIT},
}
Based on formulas from the Startup Valuation textbook. See output/ for the full textbook source in markdown.
License
MIT — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file startup_valuation-1.0.2.tar.gz.
File metadata
- Download URL: startup_valuation-1.0.2.tar.gz
- Upload date:
- Size: 98.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea706ac54aeaa15c5a13602128804717c6e164d9ca6446aea5ec8a20b043465d
|
|
| MD5 |
f2035b854b0c8500f48ce77dac79f9ce
|
|
| BLAKE2b-256 |
d529051ac40eb3e30e2dd0a588c2123bfe0039da8ecab1db415ed85805f864c8
|
Provenance
The following attestation bundles were made for startup_valuation-1.0.2.tar.gz:
Publisher:
publish.yml on simonplmak-cloud/startup-valuation
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
startup_valuation-1.0.2.tar.gz -
Subject digest:
ea706ac54aeaa15c5a13602128804717c6e164d9ca6446aea5ec8a20b043465d - Sigstore transparency entry: 1588464249
- Sigstore integration time:
-
Permalink:
simonplmak-cloud/startup-valuation@65942763fa6ffd0656942e10cd1bf6436cd0759b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/simonplmak-cloud
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@65942763fa6ffd0656942e10cd1bf6436cd0759b -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file startup_valuation-1.0.2-py3-none-any.whl.
File metadata
- Download URL: startup_valuation-1.0.2-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd935eabc7fbe19f4b314e710c4da2bc1ac1cb5ad6abb86d8010c7332fdea858
|
|
| MD5 |
a40658ab87a456a2c08fb2637a8c13bb
|
|
| BLAKE2b-256 |
0abcb7aca891b69b155077aa671a7dc37c5a104f7df76f10a2064e81afbbe9d1
|
Provenance
The following attestation bundles were made for startup_valuation-1.0.2-py3-none-any.whl:
Publisher:
publish.yml on simonplmak-cloud/startup-valuation
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
startup_valuation-1.0.2-py3-none-any.whl -
Subject digest:
cd935eabc7fbe19f4b314e710c4da2bc1ac1cb5ad6abb86d8010c7332fdea858 - Sigstore transparency entry: 1588464260
- Sigstore integration time:
-
Permalink:
simonplmak-cloud/startup-valuation@65942763fa6ffd0656942e10cd1bf6436cd0759b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/simonplmak-cloud
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@65942763fa6ffd0656942e10cd1bf6436cd0759b -
Trigger Event:
workflow_dispatch
-
Statement type: