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:
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
# 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.simonplmak-cloud/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/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.
Metadata
Release files for startup-valuation 2.0.0
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.0.0.tar.gz | 313.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| startup_valuation-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 396.7 kB
Release files / startup_valuation-2.0.0.tar.gz
| Download URL | startup_valuation-2.0.0.tar.gz |
|---|---|
| Size | 313.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
25127f1efc0ae41108a089a35bd5b936cc129df81089cd1c47e68b577dcb7b86
|
|
BLAKE2b-256 checksum How to use checksums |
04e0fc0906eb9707b9d500fcb5c02ef77465316ef95030f62bd1fbdadc2e0b75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / startup_valuation-2.0.0-py3-none-any.whl
| Download URL | startup_valuation-2.0.0-py3-none-any.whl |
|---|---|
| Size | 83.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
491778f96be2e5b6195a4f6d50f653b9098d073416c00403a6d3212b53683e7a
|
|
BLAKE2b-256 checksum How to use checksums |
3ea83f257b3bc9773f7448b89640838eb8c8992a4908e8bcb2435536ab411d61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency log