Startup Valuation MCP Server
Startup valuation for AI agents: 14 tools, 80+ pre-revenue formulas.
我该使用它吗
质量与安全性
发现(2)
- HIGH
- LOW在 valuation_stakeholder 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"startup-valuation": {
"url": "https://startup-valuation.simonmak.com/api"
}
}
}远程端点
https://startup-valuation.simonmak.com/apistreamable-http它能做什么
工具清单
工具(14)
🟢valuation_probability(method, outcomes, probabilities, weights, returns, ...)
Compute expected value and probability-weighted outcomes for startup scenarios: discrete E[X], joint probability of sequential events, probability-weighted value, VC portfolio expected return, Poisson event probability, and continuous E[X] over a range. Method selects the formula. Use for probability-weighted central estimates; for named bull/base/bear tables or option pricing use valuation_advanced, and to discount cash flows use valuation_time_value. Parameters apply per method: expected_value_discrete and probability_weighted need outcomes + probabilities; portfolio_return needs weights + returns; poisson needs mean_events + k; expected_value_continuous needs lower + upper. outcomes and probabilities must be equal length, and the probabilities should sum to 1. Routing: use valuation_advanced method 'scenario_analysis' for named bull/base/bear scenario tables, and its black_scholes/binomial methods for option pricing; use this tool for arbitrary outcome lists and probability-weighted central estimates. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"expected_value_discrete",
"joint_probability",
"probability_weighted",
"portfolio_return",
"poisson",
"expected_value_continuous"
],
"description": "Formula to apply. Options: expected_value_discrete = E[X] = Σ xᵢ·P(X=xᵢ) over a discrete outcome list.; joint_probability = P(total) = Π pᵢ for independent sequential events.; probability_weighted = E[V] = Σ pᵢ·Vᵢ.; portfolio_return = E[R] = Σ wᵢ·Rᵢ across a VC portfolio.; poisson = P(X=k) = e^-λ λ^k / k! for rare events.; expected_value_continuous = E[X] = ∫ x·f(x) dx over [lower, upper] on the standard normal."
},
"outcomes": {
"type": "array",
"items": {
"type": "number"
},
"description": "Possible outcome values x_i, in any currency unit (must match probabilities in length/order)."
},
"probabilities": {
"type": "array",
"items": {
"type": "number"
},
"description": "Probability of each outcome or stage, each in [0,1]; the list must sum to 1 where it is exhaustive."
},
"weights": {
"type": "array",
"items": {
"type": "number"
},
"description": "Portfolio or factor weights, each in [0,1] and summing to 1 (same order as the paired value list)."
},
"returns": {
"type": "array",
"items": {
"type": "number"
},
"description": "Return of each asset or scenario as a decimal (0.20 = 20%), aligned with weights."
},
"mean_events": {
"type": "number",
"description": "Poisson mean λ = expected number of events in the interval."
},
"k": {
"type": "integer",
"description": "Number of events k for the Poisson probability P(X=k); integer ≥ 0."
},
"lower": {
"type": "number",
"description": "Lower integration bound (standard-normal domain, e.g. -1.0)."
},
"upper": {
"type": "number",
"description": "Upper integration bound (standard-normal domain, e.g. 1.0)."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_time_value(method, future_value, rate, periods, cash_flows, ...)
Discount, compound, and forecast value over time: single future value PV, net present value of a cash-flow stream, annuity present value, discounted cash flow with a Gordon terminal value, constant-rate compound growth of revenue or cash flow, and the implied compound annual growth rate (CAGR). Method selects the formula. Use to convert future cash to today's value, to value a full forecast with a terminal value (dcf), to project a revenue or cash-flow series forward, or to derive the growth rate implied by two values; get the discount rate from valuation_capm or valuation_international. Parameters apply per method: present_value needs future_value + rate + periods; npv needs cash_flows + rate; annuity needs payment + rate + periods; dcf needs cash_flows + rate (optional: terminal_growth); compound_growth needs starting_value + growth_rate + periods; cagr needs starting_value + ending_value + periods. growth_rate must be greater than -1, cagr requires starting_value > 0 and periods > 0, and dcf requires rate greater than terminal_growth. Not for option values (use valuation_advanced) or for expected values over outcomes (use valuation_probability). Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"present_value",
"npv",
"annuity",
"compound_growth",
"cagr",
"dcf"
],
"description": "Formula to apply. Options: present_value = PV = C / (1+r)^t.; npv = NPV = Σ Cₜ / (1+r)^t.; annuity = PV = P·[1-(1+r)^-n]/r.; compound_growth = V_n = V_0 (1+g)^n.; cagr = CAGR = (V_n / V_0)^(1/n) - 1.; dcf = DCF = Σ Cₜ/(1+r)^t + [C_n(1+g)/(r−g)]/(1+r)^n."
},
"future_value": {
"type": "number",
"description": "Future cash amount to discount, in currency units."
},
"rate": {
"type": "number",
"description": "Per-period discount rate as a decimal (0.10 = 10%)."
},
"periods": {
"type": "number",
"description": "Number of compounding periods, must be ≥ 1 (may be fractional)."
},
"cash_flows": {
"type": "array",
"items": {
"type": "number"
},
"description": "Cash flows by period, first element at t=1; negatives allowed for outflows."
},
"payment": {
"type": "number",
"description": "Recurring payment per period, in currency units."
},
"starting_value": {
"type": "number",
"description": "Value at t=0 (revenue or cash flow) to grow forward, in currency units."
},
"growth_rate": {
"type": "number",
"description": "Revenue growth rate as a decimal (0.40 = 40%)."
},
"ending_value": {
"type": "number",
"description": "Value at t=n to compare against the starting value, in currency units."
},
"terminal_growth": {
"type": "number",
"description": "Perpetual growth rate g applied after the forecast window, as a decimal.",
"default": 0
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_capm(method, risk_free_rate, beta, market_return, market_risk_premium, ...)
Estimate the cost of capital: standard CAPM, startup-adjusted CAPM with size and illiquidity premiums, portfolio beta from weighted asset betas, and WACC blending after-tax cost of equity and debt. Method selects the formula. Use to derive the discount rate that feeds valuation_time_value and DCF models; for cross-border rates add valuation_international. Parameters apply per method: capm needs risk_free_rate + beta + market_return; startup_capm adds size_premium and liquidity_premium; portfolio_beta needs weights + betas, which must be equal length; wacc needs equity_value + debt_value + cost_of_equity + cost_of_debt + tax_rate. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"capm",
"startup_capm",
"portfolio_beta",
"wacc"
],
"description": "Formula to apply. Options: capm = E(R) = Rf + β·(E(Rm) - Rf).; startup_capm = r = Rf + β·MRP + size premium + illiquidity premium.; portfolio_beta = βp = Σ wᵢ·βᵢ.; wacc = WACC = (E/V)·Re + (D/V)·Rd·(1 − T)."
},
"risk_free_rate": {
"type": "number",
"description": "Risk-free rate as a decimal (e.g. 0.04 for 4%)."
},
"beta": {
"type": "number",
"description": "Systematic risk beta (market = 1.0)."
},
"market_return": {
"type": "number",
"description": "Expected market return as a decimal (e.g. 0.10 for 10%)."
},
"market_risk_premium": {
"type": "number",
"description": "Market risk premium as a decimal (e.g. 0.06)."
},
"size_premium": {
"type": "number",
"description": "Small-cap / size premium as a decimal.",
"default": 0
},
"liquidity_premium": {
"type": "number",
"description": "Illiquidity premium as a decimal.",
"default": 0
},
"weights": {
"type": "array",
"items": {
"type": "number"
},
"description": "Portfolio or factor weights, each in [0,1] and summing to 1 (same order as the paired value list)."
},
"betas": {
"type": "array",
"items": {
"type": "number"
},
"description": "Asset betas aligned with weights; typically 0.5–3.0 (market = 1.0)."
},
"equity_value": {
"type": "number",
"description": "Value of equity offered, currency units."
},
"debt_value": {
"type": "number",
"description": "Market value of debt, in currency units."
},
"cost_of_equity": {
"type": "number",
"description": "After-tax cost of equity Re as a decimal."
},
"cost_of_debt": {
"type": "number",
"description": "Pre-tax cost of debt Rd as a decimal."
},
"tax_rate": {
"type": "number",
"description": "Effective tax rate as a decimal in [0,1].",
"default": 0.3
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_core(method, average_valuation, weights, scores, sound_idea, ...)
The textbook's pre-revenue methods: Scorecard, Berkus, Risk-Factor Summation, VC Method (post- and pre-money), and exit terminal value. Use these first for early-stage startups. Method selects the formula, and each method names its own parameters: scorecard needs average_valuation + weights + scores; berkus takes five factor awards; risk_factor needs base_valuation + risk_ratings; vc_post_money needs terminal_value + target_return; vc_pre_money needs post_money + investment; terminal_value needs projected_revenue + multiple; triangulated needs the scorecard inputs plus terminal_value/target_return/investment. Routing: for SAFEs, tokens, ESG, network effects, or data-moat methods use valuation_emerging; for options or bull/base/bear scenario tables use valuation_advanced; for public-comparable multiples use valuation_comparables. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"scorecard",
"berkus",
"risk_factor",
"vc_post_money",
"vc_pre_money",
"terminal_value",
"triangulated"
],
"description": "Formula to apply. Options: scorecard = V = V_avg · Σ(wᵢ·sᵢ) across 7 factors.; berkus = V = Σ factor awards, each capped at $500K.; risk_factor = V = V_base + Σ(rᵢ·$250K) over 12 risks.; vc_post_money = Post = Terminal / target ROI.; vc_pre_money = Pre = Post - Investment.; terminal_value = Terminal = projected revenue × multiple.; triangulated = Runs Scorecard and the VC Method together and returns their mean."
},
"average_valuation": {
"type": "number",
"description": "Average pre-revenue valuation for the sector, currency units."
},
"weights": {
"type": "array",
"items": {
"type": "number"
},
"description": "Portfolio or factor weights, each in [0,1] and summing to 1 (same order as the paired value list)."
},
"scores": {
"type": "array",
"items": {
"type": "number"
},
"description": "Factor multipliers aligned with weights (1.0 = average, >1 above average)."
},
"sound_idea": {
"type": "number",
"description": "Berkus award for soundness of the idea, 0 to 500,000 (USD).",
"default": 0
},
"prototype": {
"type": "number",
"description": "Berkus award for prototype / technology, 0 to 500,000.",
"default": 0
},
"quality_team": {
"type": "number",
"description": "Berkus award for management team, 0 to 500,000.",
"default": 0
},
"strategic_relationships": {
"type": "number",
"description": "Berkus award for strategic relationships, 0 to 500,000.",
"default": 0
},
"product_rollout": {
"type": "number",
"description": "Berkus award for product rollout / sales, 0 to 500,000.",
"default": 0
},
"base_valuation": {
"type": "number",
"description": "Pre-adjustment baseline valuation, currency units."
},
"risk_ratings": {
"type": "array",
"items": {
"type": "number"
},
"description": "12 risk factor ratings in [-2,2] (very low to very high); each unit shifts value ±250,000."
},
"terminal_value": {
"type": "number",
"description": "Expected exit / terminal value, currency units."
},
"target_return": {
"type": "number",
"description": "VC target return multiple (e.g. 10 for a 10x target)."
},
"post_money": {
"type": "number",
"description": "Post-money valuation, currency units."
},
"investment": {
"type": "number",
"description": "Amount invested, currency units."
},
"projected_revenue": {
"type": "number",
"description": "Projected revenue at exit, currency units."
},
"multiple": {
"type": "number",
"description": "Exit or market multiple applied to the metric."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_advanced(method, underlying, strike, risk_free_rate, volatility, ...)
Advanced techniques: Black-Scholes call value, binomial-tree option value, and scenario analysis. Method selects the technique. For a quick expected value over arbitrary outcome lists, prefer valuation_probability with method 'probability_weighted'; scenario_analysis here is for explicit named bull/base/bear scenario tables. Parameters apply per method: black_scholes and binomial need underlying + strike + risk_free_rate + volatility + time_to_maturity (binomial adds steps); scenario_analysis needs scenarios. Not for plain discounted cash flow — for that use valuation_time_value. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"black_scholes",
"binomial",
"scenario_analysis"
],
"description": "Formula to apply. Options: black_scholes = C = N(d₁)S - N(d₂)Ke^(-rT).; binomial = Cox-Ross-Rubinstein binomial option value.; scenario_analysis = E[V] = Σ pᵢ·Vᵢ over named scenarios."
},
"underlying": {
"type": "number",
"description": "Underlying asset value S, currency units."
},
"strike": {
"type": "number",
"description": "Strike / exercise price K, currency units."
},
"risk_free_rate": {
"type": "number",
"description": "Risk-free rate as a decimal (e.g. 0.04 for 4%)."
},
"volatility": {
"type": "number",
"description": "Annualised volatility σ as a decimal (0.80 = 80%)."
},
"time_to_maturity": {
"type": "number",
"description": "Time to expiry in years T, must be ≥ 0."
},
"steps": {
"type": "integer",
"description": "Binomial tree time steps (integer ≥ 1; higher = more accurate).",
"default": 50
},
"scenarios": {
"type": "array",
"items": {
"type": "object"
},
"description": "Scenario objects: {name: str, probability: 0-1, value: currency}; probabilities should sum to 1."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_comparables(method, market_cap, net_income, revenue, enterprise_value, ...)
Market multiples from comparables: P/E, P/S, EV/EBITDA, EV/Revenue, and a regression-adjusted multiple. Method selects the ratio. Use when public comparables exist; for pre-revenue or private startups use valuation_core. Parameters apply per method: pe_ratio needs market_cap + net_income; ps_ratio needs market_cap + revenue; ev_ebitda needs enterprise_value + ebitda; ev_revenue needs enterprise_value + revenue; regression_multiple needs intercept + growth_rate + growth_coefficient (plus optional maturity/stage/geography terms). Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"pe_ratio",
"ps_ratio",
"ev_ebitda",
"ev_revenue",
"regression_multiple"
],
"description": "Formula to apply. Options: pe_ratio = P/E = market cap / net income.; ps_ratio = P/S = market cap / revenue.; ev_ebitda = EV/EBITDA = enterprise value / EBITDA.; ev_revenue = EV/Revenue = enterprise value / revenue.; regression_multiple = Multiple = β0 + β1·g + β2·M + β3·S + β4·G."
},
"market_cap": {
"type": "number",
"description": "Market capitalisation, currency units."
},
"net_income": {
"type": "number",
"description": "Net income (earnings), currency units."
},
"revenue": {
"type": "number",
"description": "Revenue for the period, currency units."
},
"enterprise_value": {
"type": "number",
"description": "Enterprise value (market cap + net debt), currency units."
},
"ebitda": {
"type": "number",
"description": "EBITDA, currency units."
},
"intercept": {
"type": "number",
"description": "Regression intercept β0 (base multiple)."
},
"growth_rate": {
"type": "number",
"description": "Revenue growth rate as a decimal (0.40 = 40%)."
},
"growth_coefficient": {
"type": "number",
"description": "Regression slope on growth (multiple points per unit growth)."
},
"market_maturity": {
"type": "number",
"description": "Market maturity indicator.",
"default": 0
},
"maturity_coefficient": {
"type": "number",
"description": "Regression slope on market maturity.",
"default": 0
},
"stage": {
"type": "number",
"description": "Company stage indicator.",
"default": 0
},
"stage_coefficient": {
"type": "number",
"description": "Regression slope on stage.",
"default": 0
},
"geography": {
"type": "number",
"description": "Geography indicator.",
"default": 0
},
"geography_coefficient": {
"type": "number",
"description": "Regression slope on geography.",
"default": 0
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_saas(method, arpu, gross_margin, churn_rate, sales_marketing_expense, ...)
SaaS unit economics and valuation: LTV, CAC, MRR, ARR, net revenue retention, magic number, Rule of 40, CAC payback, and ARR revenue-multiple valuation. Method selects the metric. Use for subscription software; for marketplace GMV metrics use valuation_marketplace and for payments/lending use valuation_fintech. Parameters apply per method: ltv needs arpu + gross_margin + churn_rate; cac needs sales_marketing_expense + new_customers; arr needs subscription_values; nrr needs starting_revenue + ending_revenue; revenue_multiple needs arr + revenue_multiple. Not for company-level pre-revenue value — for that use valuation_core. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"ltv",
"cac",
"mrr",
"arr",
"nrr",
"magic_number",
"rule_of_40",
"cac_payback",
"revenue_multiple"
],
"description": "Formula to apply. Options: ltv = LTV = ARPU × gross margin / churn.; cac = CAC = S&M expense / new customers.; mrr = MRR = ARR / 12 (reverse of ARR).; arr = ARR = Σ monthly subscriptions × 12.; nrr = NRR = (start + expansion) / start, net of churn.; magic_number = Magic Number = net new ARR / prior-quarter S&M.; rule_of_40 = Score = growth rate + profit margin.; cac_payback = Months to recover CAC from gross profit.; revenue_multiple = Valuation = ARR × multiple."
},
"arpu": {
"type": "number",
"description": "Average revenue per user per month, currency units."
},
"gross_margin": {
"type": "number",
"description": "Gross margin as a decimal (0.80 = 80%)."
},
"churn_rate": {
"type": "number",
"description": "Periodic churn rate as a decimal (0.02 = 2% per month)."
},
"sales_marketing_expense": {
"type": "number",
"description": "Sales & marketing spend for the period, currency units."
},
"new_customers": {
"type": "integer",
"description": "Number of customers acquired in the period."
},
"arr_value": {
"type": "number",
"description": "Annual recurring revenue, currency units."
},
"subscription_values": {
"type": "array",
"items": {
"type": "number"
},
"description": "Monthly subscription revenue per customer (summed x12 for ARR)."
},
"starting_revenue": {
"type": "number",
"description": "Revenue from the cohort at period start, currency units."
},
"ending_revenue": {
"type": "number",
"description": "Revenue from the same cohort at period end, currency units."
},
"expansion_revenue": {
"type": "number",
"description": "Expansion revenue from the cohort in the period.",
"default": 0
},
"net_new_arr": {
"type": "number",
"description": "Net new ARR added in the period, currency units."
},
"sm_expense_prior": {
"type": "number",
"description": "Sales & marketing expense in the prior period, currency units."
},
"growth_rate": {
"type": "number",
"description": "Revenue growth rate as a decimal (0.40 = 40%)."
},
"profit_margin": {
"type": "number",
"description": "Profit margin as a decimal (0.15 = 15%)."
},
"cac": {
"type": "number",
"description": "Customer acquisition cost per customer, currency units."
},
"mrr_per_customer": {
"type": "number",
"description": "Monthly recurring revenue per customer, currency units."
},
"arr": {
"type": "number",
"description": "Annual recurring revenue, currency units."
},
"revenue_multiple": {
"type": "number",
"description": "SaaS revenue multiple (e.g. 8 for 8x ARR)."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_marketplace(method, revenue, gmv, multiple, buyers_period_1, ...)
Marketplace health and valuation: take rate, GMV revenue-multiple valuation, buyer retention, and network density. Method selects the metric. Use for two-sided transaction marketplaces; for subscription software use valuation_saas. Parameters apply per method: take_rate needs revenue + gmv; gmv_multiple needs gmv + multiple; buyer_retention needs buyers_period_1 + buyers_repeat; network_density needs active_buyers + active_sellers + total_users. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"take_rate",
"gmv_multiple",
"buyer_retention",
"network_density"
],
"description": "Formula to apply. Options: take_rate = Take rate = revenue / GMV.; gmv_multiple = Valuation = GMV × multiple.; buyer_retention = Retention = repeat buyers / base-period buyers.; network_density = Density = active buyers × active sellers / total users."
},
"revenue": {
"type": "number",
"description": "Revenue for the period, currency units."
},
"gmv": {
"type": "number",
"description": "Gross merchandise value (total transaction volume), currency units."
},
"multiple": {
"type": "number",
"description": "Exit or market multiple applied to the metric."
},
"buyers_period_1": {
"type": "integer",
"description": "Distinct buyers in the base period."
},
"buyers_repeat": {
"type": "integer",
"description": "Distinct buyers from the base period who purchased again."
},
"active_buyers": {
"type": "integer",
"description": "Active buyers in the period."
},
"active_sellers": {
"type": "integer",
"description": "Active sellers in the period."
},
"total_users": {
"type": "integer",
"description": "Total users (buyers + sellers) in the period."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_fintech(method, transaction_volume, take_rate, loan_book, roe, ...)
Value and size fintech business models: payment revenue, lending valuation, payment-processor DCF, and neobank customer-based valuation. Method selects the model. Use for payments, lending, and neobanks; for SaaS-style unit economics use valuation_saas. Parameters apply per method: payment_revenue needs transaction_volume + take_rate; lending needs loan_book + roe + pe_multiple; payment_processor adds growth_rate + discount_rate + terminal_multiple; neobank needs customers + arpu + gross_margin + churn_rate + pe_multiple. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"payment_revenue",
"lending",
"payment_processor",
"neobank"
],
"description": "Formula to apply. Options: payment_revenue = Revenue = volume × take rate.; lending = V = loan book × ROE × P/E - NPL reserves.; payment_processor = DCF of payment revenue with a terminal multiple.; neobank = Customer LTV × P/E applied to the customer base."
},
"transaction_volume": {
"type": "number",
"description": "Total payment transaction volume, currency units."
},
"take_rate": {
"type": "number",
"description": "Take rate as a decimal (0.15 = 15% of GMV)."
},
"loan_book": {
"type": "number",
"description": "Outstanding loan book / principal, currency units."
},
"roe": {
"type": "number",
"description": "Return on equity as a decimal (0.20 = 20%)."
},
"pe_multiple": {
"type": "number",
"description": "Price/earnings multiple applied to earnings."
},
"npl_reserves": {
"type": "number",
"description": "Non-performing loan reserves deducted, currency units.",
"default": 0
},
"growth_rate": {
"type": "number",
"description": "Revenue growth rate as a decimal (0.40 = 40%)."
},
"discount_rate": {
"type": "number",
"description": "Discount rate as a decimal (0.12 = 12%)."
},
"terminal_multiple": {
"type": "number",
"description": "Terminal value multiple applied at the horizon."
},
"years": {
"type": "integer",
"description": "Forecast horizon in years; integer ≥ 1.",
"default": 5
},
"customers": {
"type": "integer",
"description": "Number of customers."
},
"arpu": {
"type": "number",
"description": "Average revenue per user per month, currency units."
},
"gross_margin": {
"type": "number",
"description": "Gross margin as a decimal (0.80 = 80%)."
},
"churn_rate": {
"type": "number",
"description": "Periodic churn rate as a decimal (0.02 = 2% per month)."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_biotech(method, patient_population, penetration, price, compliance, ...)
Risk-adjusted biotech valuation: peak sales, decision-tree expected value, and full pipeline rNPV across drugs. Method selects the model. Use for pharma/drug pipelines; for hardware or deep tech use valuation_hardware. Parameters apply per method: peak_sales needs patient_population + penetration + price; decision_tree needs probabilities + terminal_value; pipeline needs drugs + discount_rate. Not for hardware or deep tech — for that use valuation_hardware. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"peak_sales",
"decision_tree",
"pipeline"
],
"description": "Formula to apply. Options: peak_sales = Peak = population × penetration × price × compliance.; decision_tree = EV = Π pᵢ × terminal value.; pipeline = V = Σ(peak sales × multiple × P_success) / (1+r)^n."
},
"patient_population": {
"type": "number",
"description": "Target patient population treated per year."
},
"penetration": {
"type": "number",
"description": "Market penetration as a decimal (0.10 = 10%)."
},
"price": {
"type": "number",
"description": "Price per unit / treatment, currency units."
},
"compliance": {
"type": "number",
"description": "Compliance / adherence rate as a decimal.",
"default": 1
},
"probabilities": {
"type": "array",
"items": {
"type": "number"
},
"description": "Probability of each outcome or stage, each in [0,1]; the list must sum to 1 where it is exhaustive."
},
"terminal_value": {
"type": "number",
"description": "Expected exit / terminal value, currency units."
},
"drugs": {
"type": "array",
"items": {
"type": "object"
},
"description": "Pipeline drugs: {name, peak_sales, probability, years_to_market, multiple(optional)}."
},
"discount_rate": {
"type": "number",
"description": "Discount rate as a decimal (0.12 = 12%)."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_hardware(method, market_size, market_share, margin, multiple, ...)
Hardware and deep-tech valuation: TRL-risk-adjusted valuation, gross margin, and break-even volume. Method selects the metric. Use for hardware and deep tech with technology-readiness risk; for drug pipelines use valuation_biotech. Parameters apply per method: trl needs market_size + market_share + margin + multiple + trl_discount; gross_margin needs asp + variable_cost; break_even_volume needs fixed_costs + asp + variable_cost. Not for drug pipelines — for those use valuation_biotech. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"trl",
"gross_margin",
"break_even_volume"
],
"description": "Formula to apply. Options: trl = V = market × share × margin × multiple × (1 - TRL discount).; gross_margin = GM = (ASP - COGS) / ASP.; break_even_volume = Units = fixed costs / (ASP - variable cost)."
},
"market_size": {
"type": "number",
"description": "Total addressable market, currency units."
},
"market_share": {
"type": "number",
"description": "Target market share as a decimal in [0,1]."
},
"margin": {
"type": "number",
"description": "Profit margin as a decimal."
},
"multiple": {
"type": "number",
"description": "Exit or market multiple applied to the metric."
},
"trl_discount": {
"type": "number",
"description": "TRL risk discount as a decimal (applied as 1 - discount)."
},
"asp": {
"type": "number",
"description": "Average selling price per unit, currency units."
},
"variable_cost": {
"type": "number",
"description": "Variable cost per unit, currency units."
},
"fixed_costs": {
"type": "number",
"description": "Fixed costs for the period, currency units."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_international(method, spot_rate, inflation_foreign, inflation_domestic, sovereign_yield, ...)
Cross-border adjustments: purchasing-power parity, country risk premium, and international CAPM. Method selects the adjustment. Use for cross-border cash flows and country risk; pair with valuation_capm and valuation_time_value. Parameters apply per method: ppp needs spot_rate + inflation_foreign + inflation_domestic; country_risk_premium needs sovereign_yield + us_treasury_yield; intl_capm needs risk_free_rate + beta + mrp + crp. Not for the domestic cost of equity — for that use valuation_capm. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"ppp",
"country_risk_premium",
"intl_capm"
],
"description": "Formula to apply. Options: ppp = Eₜ = E₀·(1+π_foreign)/(1+π_domestic).; country_risk_premium = CRP = sovereign yield - US Treasury yield.; intl_capm = r = Rf + β·MRP + CRP."
},
"spot_rate": {
"type": "number",
"description": "Spot FX rate (domestic per foreign), e.g. 7.2 CNY/USD."
},
"inflation_foreign": {
"type": "number",
"description": "Foreign inflation rate as a decimal."
},
"inflation_domestic": {
"type": "number",
"description": "Domestic inflation rate as a decimal."
},
"sovereign_yield": {
"type": "number",
"description": "Foreign sovereign bond yield as a decimal."
},
"us_treasury_yield": {
"type": "number",
"description": "US Treasury yield as a decimal."
},
"risk_free_rate": {
"type": "number",
"description": "Risk-free rate as a decimal (e.g. 0.04 for 4%)."
},
"beta": {
"type": "number",
"description": "Systematic risk beta (market = 1.0)."
},
"mrp": {
"type": "number",
"description": "Market risk premium as a decimal."
},
"crp": {
"type": "number",
"description": "Country risk premium as a decimal."
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_stakeholder(method, ownership_before, investment, post_money, enterprise_value, ...)
Allocate value across stakeholders and equity classes: single-round dilution, OPM common stock, PWERM, liquidation value, M&A synergy, employee-option values, vesting adjustment, cash-vs-equity break-even, and asset-based loan capacity. Method selects the model. Use only after the company-level value is known (from valuation_core, valuation_saas, or valuation_comparables) to split that value across the cap table; for the company value itself do not use this tool. Parameters apply per method: dilution needs ownership_before + investment + post_money; opm needs enterprise_value + liquidation_pref + time_to_exit + volatility; pwerm and employee_option need scenarios; liquidation needs assets + recovery_rates; risk_adjusted_synergy needs revenue_synergies + cost_synergies; vesting_adjusted needs total_value + vested_fraction; max_asset_loan takes collateral values. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"dilution",
"opm",
"pwerm",
"liquidation",
"risk_adjusted_synergy",
"intrinsic_option",
"employee_option",
"vesting_adjusted",
"cash_equity_breakeven",
"max_asset_loan"
],
"description": "Formula to apply. Options: dilution = Ownership = before × (1 - investment / post-money).; opm = Option-pricing allocation of equity value to common shares.; pwerm = Probability-weighted expected return method across exit scenarios.; liquidation = V = Σ(asset × recovery rate).; risk_adjusted_synergy = Probability-weighted, discounted M&A revenue + cost synergies.; intrinsic_option = Intrinsic value = max(0, FMV - strike) × shares.; employee_option = Probability-weighted employee option value across scenarios.; vesting_adjusted = Option value adjusted for vesting schedule and retention probability.; cash_equity_breakeven = Break-even comparing salary reduction against discounted equity.; max_asset_loan = Borrowing capacity from asset collateral values."
},
"ownership_before": {
"type": "number",
"description": "Founder ownership before the round as a decimal (0.60 = 60%)."
},
"investment": {
"type": "number",
"description": "Amount invested, currency units."
},
"post_money": {
"type": "number",
"description": "Post-money valuation, currency units."
},
"enterprise_value": {
"type": "number",
"description": "Enterprise value (market cap + net debt), currency units."
},
"liquidation_pref": {
"type": "number",
"description": "Liquidation preference amount, currency units."
},
"time_to_exit": {
"type": "number",
"description": "Expected time to exit / liquidity in years."
},
"volatility": {
"type": "number",
"description": "Annualised volatility σ as a decimal (0.80 = 80%)."
},
"scenarios": {
"type": "array",
"items": {
"type": "object"
},
"description": "Scenario objects: {name: str, probability: 0-1, value: currency}; probabilities should sum to 1."
},
"assets": {
"type": "object",
"description": "Map of asset name to book value, e.g. {\"cash\": 500000}."
},
"recovery_rates": {
"type": "object",
"description": "Map of asset name to recovery rate in [0,1], matching assets."
},
"revenue_synergies": {
"type": "number",
"description": "Revenue synergy value, currency units."
},
"cost_synergies": {
"type": "number",
"description": "Cost synergy value, currency units."
},
"prob_revenue": {
"type": "number",
"description": "Probability of realising revenue synergies, 0-1.",
"default": 0.4
},
"prob_cost": {
"type": "number",
"description": "Probability of realising cost synergies, 0-1.",
"default": 0.8
},
"discount_rate": {
"type": "number",
"description": "Discount rate as a decimal (0.12 = 12%)."
},
"years": {
"type": "integer",
"description": "Forecast horizon in years; integer ≥ 1.",
"default": 5
},
"strike_price": {
"type": "number",
"description": "Option strike price, currency units."
},
"fair_market_value": {
"type": "number",
"description": "Current fair market value per share, currency units."
},
"shares": {
"type": "integer",
"description": "Number of option shares."
},
"total_value": {
"type": "number",
"description": "Total grant value, currency units."
},
"vested_fraction": {
"type": "number",
"description": "Fraction vested in [0,1]."
},
"annual_vest_rate": {
"type": "number",
"description": "Annual vesting rate as a decimal.",
"default": 0.25
},
"retention_prob": {
"type": "number",
"description": "Probability the holder stays, 0-1.",
"default": 0.8
},
"years_remaining": {
"type": "integer",
"description": "Years of vesting remaining.",
"default": 3
},
"salary_reduction": {
"type": "number",
"description": "Annual salary foregone for equity, currency units."
},
"equity_value": {
"type": "number",
"description": "Value of equity offered, currency units."
},
"tax_rate": {
"type": "number",
"description": "Effective tax rate as a decimal in [0,1].",
"default": 0.3
},
"cash": {
"type": "number",
"description": "Cash and equivalents, currency units.",
"default": 0
},
"accounts_receivable": {
"type": "number",
"description": "Accounts receivable, currency units.",
"default": 0
},
"inventory": {
"type": "number",
"description": "Inventory, currency units.",
"default": 0
},
"equipment": {
"type": "number",
"description": "Equipment, currency units.",
"default": 0
},
"real_estate": {
"type": "number",
"description": "Real estate, currency units.",
"default": 0
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}🟢valuation_emerging(method, series_a_price, discount, cap, investment, ...)
Modern and alternative valuation: SAFE conversion (discount, cap, expected value), token valuation (equation of exchange, NVT), ESG adjustments (rate, premium, discount), Metcalfe network value, data-moat value, and remote-first premium/NPV. Method selects the model. Use for SAFEs, tokens, ESG, network effects, data moats, and remote-first adjustments; for classic pre-revenue methods use valuation_core. Parameters apply per method: safe_discount needs series_a_price + discount; safe_cap needs cap + series_a_price; safe_expected needs investment + cap + discount + series_a_valuation + series_a_price; token_value needs transaction_volume + price_per_tx + velocity + supply; metcalfe needs n; esg_* need base_valuation + a score; data_moat needs data_volume + data_uniqueness + monetization_rate + competitive_advantage_years. Routing: for classic pre-revenue methods (Scorecard, Berkus, Risk-Factor Summation, VC Method) use valuation_core; for options or scenario tables use valuation_advanced; for public-comparable multiples use valuation_comparables. Only method is required; all other parameters are method-dependent, so supply those the selected method names and omit the rest (defaults apply where defined). Rate and decimal inputs are fractions (0.10 = 10%); probability and weight lists are in [0,1] and sum to 1. Returns value, method, inputs, assumptions, chapter, formula_number and calculation steps; pure arithmetic — no I/O and no external calls — rounded to 2 decimals, with no auth or rate limits. An unknown method, or a missing method-required parameter, returns an error instead of a value.
输入模式
{
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"safe_discount",
"safe_cap",
"safe_expected",
"token_value",
"nvt_ratio",
"esg_rate",
"esg_premium",
"esg_discount",
"metcalfe",
"data_moat",
"remote_npv",
"remote_premium"
],
"description": "Formula to apply. Options: safe_discount = Price = Series A price × (1 - discount).; safe_cap = Price = cap / pre-money shares (cap-based).; safe_expected = Expected SAFE value across cap and discount outcomes.; token_value = Value = (volume × price) / (velocity × supply).; nvt_ratio = NVT = market cap / daily transaction volume.; esg_rate = r = base + ESG risk premium - ESG opportunity discount.; esg_premium = Valuation uplift = base × (1 + score × premium per point).; esg_discount = Valuation reduction = base × (1 - risk score × discount per point).; metcalfe = V = k · n².; data_moat = Discounted value of monetised proprietary data.; remote_npv = Perpetuity NPV = annual savings / discount rate.; remote_premium = Valuation premium from cost savings, talent access, and productivity."
},
"series_a_price": {
"type": "number",
"description": "Price per share in the next priced (Series A) round."
},
"discount": {
"type": "number",
"description": "Conversion discount as a decimal (0.20 = 20% discount)."
},
"cap": {
"type": "number",
"description": "SAFE valuation cap, currency units."
},
"investment": {
"type": "number",
"description": "Amount invested, currency units."
},
"series_a_valuation": {
"type": "number",
"description": "Series A post-money valuation, currency units."
},
"transaction_volume": {
"type": "number",
"description": "Total payment transaction volume, currency units."
},
"price_per_tx": {
"type": "number",
"description": "Protocol revenue per transaction, currency units."
},
"velocity": {
"type": "number",
"description": "Token velocity (turnover of supply per period)."
},
"supply": {
"type": "number",
"description": "Circulating token supply."
},
"market_cap": {
"type": "number",
"description": "Market capitalisation, currency units."
},
"rate": {
"type": "number",
"description": "Per-period discount rate as a decimal (0.10 = 10%)."
},
"esg_risk_premium": {
"type": "number",
"description": "ESG risk premium added to the rate, as a decimal.",
"default": 0
},
"esg_opportunity_discount": {
"type": "number",
"description": "ESG opportunity discount subtracted from the rate.",
"default": 0
},
"base_valuation": {
"type": "number",
"description": "Pre-adjustment baseline valuation, currency units."
},
"esg_score": {
"type": "number",
"description": "ESG score in points (e.g. 0-100)."
},
"premium_per_point": {
"type": "number",
"description": "Valuation premium per ESG point as a decimal.",
"default": 0.02
},
"esg_risk_score": {
"type": "number",
"description": "ESG risk score in points (higher = riskier)."
},
"discount_per_point": {
"type": "number",
"description": "Valuation discount per ESG risk point as a decimal.",
"default": 0.01
},
"n": {
"type": "number",
"description": "Number of users or nodes in the network."
},
"k": {
"type": "integer",
"description": "Number of events k for the Poisson probability P(X=k); integer ≥ 0."
},
"data_volume": {
"type": "number",
"description": "Volume of proprietary data held."
},
"data_uniqueness": {
"type": "number",
"description": "Uniqueness / scarcity of the data in [0,1]."
},
"monetization_rate": {
"type": "number",
"description": "Fraction of data value monetisable as a decimal."
},
"competitive_advantage_years": {
"type": "number",
"description": "Years the data moat is expected to last."
},
"discount_rate": {
"type": "number",
"description": "Discount rate as a decimal (0.12 = 12%)."
},
"annual_savings": {
"type": "number",
"description": "Annual cost savings, currency units."
},
"cost_savings_pct": {
"type": "number",
"description": "Cost savings as a fraction of baseline.",
"default": 0.2
},
"talent_access_premium": {
"type": "number",
"description": "Talent-access premium as a decimal.",
"default": 0.1
},
"productivity_gain": {
"type": "number",
"description": "Productivity gain as a decimal.",
"default": 0.05
}
},
"required": [
"method"
]
}输出模式
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Computed valuation or metric."
},
"method": {
"type": "string",
"description": "Formula / method name that produced the result."
},
"inputs": {
"type": "object",
"description": "Echo of the normalised inputs used."
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modelling assumptions applied."
},
"chapter": {
"type": "string",
"description": "Source textbook chapter."
},
"formula_number": {
"type": "string",
"description": "Source textbook formula number (e.g. '3.1')."
},
"steps": {
"type": "array",
"items": {
"type": "object"
},
"description": "Intermediate steps for traceability."
},
"error": {
"type": "string",
"description": "Error message when the call fails."
},
"defaults_applied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional parameters that were not supplied, so their documented defaults were used."
}
},
"required": [
"value"
]
}社区
证据