Startup Valuation Engine
A comprehensive startup valuation library implementing 80+ formulas from the Startup Valuation textbook — Python library, MCP server, and 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:
graph TB
subgraph Library["Python Library"]
MOD["14 Modules<br/>80+ Functions"] --> VR["ValuationResult"]
end
subgraph MCP["MCP Server"]
VR --> SVR["FastMCP Server<br/>14 Tools"]
end
subgraph Skills["AI-agent skills"]
SVR --> CORE["Core"]
SVR --> ADV["Advanced"]
SVR --> IND["Industry"]
SVR --> STAKE["Stakeholder"]
SVR --> EMER["Emerging"]
end
style Library fill:#0083AB,color:#fff
style MCP fill:#4CAF50,color:#fff
style Skills fill:#9C27B0,color:#fff
- Python Library — 14 modules, 80+ typed functions, all returning
ValuationResult(value + assumptions + sensitivity) - MCP Server — 14 folded tools (80+ formulas) for AI agents via stdio and hosted Streamable HTTP
- AI-agent skills — 6 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)
The server exposes 14 tools, each folding a family of formulas behind a method
argument — probability, time value, CAPM, core pre-revenue methods, options,
comparables, SaaS, marketplaces, fintech, biotech, hardware, international,
stakeholder equity, emerging methods, and a triangulated full analysis.
Local (stdio):
pip install "startup-valuation[mcp]"
startup-valuation-mcp # console script installed with the [mcp] extra
**Prompts and resources.** Besides the 14 tools, the server offers three guided
prompts (`value_pre_revenue_startup`, `value_saas_startup`, `model_funding_round`)
and a machine-readable method catalog at `startup-valuation://methods`, so agents
can see every method's required parameters before calling a tool.
# or: python -m startup_valuation.mcp
# or ephemeral, no clone: uvx --from startup-valuation startup-valuation-mcp
Hosted (Streamable HTTP) — no install, no API key:
https://startup-valuation.simonmak.com/api
OpenCode — add to opencode.json:
"startup-valuation": {
"type": "remote",
"url": "https://startup-valuation.simonmak.com/api",
"timeout": 60000
}
Claude Desktop / Cursor — add the HTTP URL https://startup-valuation.simonmak.com/api
as an MCP server, or run the stdio entrypoint above.
MCP Registry — published as io.github.simonmak-ascent/startup-valuation
(manifest: server.json) and listed on
Glama and the
Official MCP Registry. The
glama.json file holds the Glama maintainer entry.
AI-agent skills
Copy the skills/ directory to your agent's skills folder:
valuation-core— Scorecard, Berkus, VC Method, Risk Factor Summationvaluation-foundations— Probability, time value, CAPM, comparablesvaluation-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
pytest
# Run with coverage
pytest --cov=startup_valuation --cov-report=term-missing
# Lint
ruff check .
# Type check
mypy src/startup_valuation --ignore-missing-imports
Documentation
- API Reference: GitHub Pages
- Wiki (Theory & Derivations): GitHub Wiki
- 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/simonmak-ascent/startup-valuation},
license = {MIT},
}
Based on formulas from the Startup Valuation textbook.
Use with Context7
Up-to-date Startup Valuation Engine documentation is indexed on Context7, so coding agents can pull it into context on demand. With the Context7 MCP server or ctx7 CLI installed, name the library in your prompt:
use library /simonmak-ascent/startup-valuation for API and docs
License
MIT — see LICENSE.
By Ascent Partners — part of the Valuation in Practice Series.
If this saves you time, a ⭐ on GitHub helps others find it.
Metadata
Release files for startup-valuation 2.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| startup_valuation-2.1.1.tar.gz | 401.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| startup_valuation-2.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 489.2 kB
Release files / startup_valuation-2.1.1.tar.gz
| Download URL | startup_valuation-2.1.1.tar.gz |
|---|---|
| Size | 401.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1b6b597efc1167a56e306b667111c8b8578d511baa25af997cacaf002af4d2d1
|
|
BLAKE2b-256 checksum How to use checksums |
4b12f3aedb32bf0c38d7ba0630a929c082e6d958d9fed80fe40bd92f8b85e89c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Alibaba Cloud Linux","version":"3","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / startup_valuation-2.1.1-py3-none-any.whl
| Download URL | startup_valuation-2.1.1-py3-none-any.whl |
|---|---|
| Size | 88.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
679abd5ba045acbc00a0eb24f2431be477159e621a7d846e20de6de0addb26c5
|
|
BLAKE2b-256 checksum How to use checksums |
2a310c076dddcbb453ed190eb4695e778fea3617d341ac799141dd5a634e4046
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Alibaba Cloud Linux","version":"3","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|