Startup Valuation MCP Server
Startup valuation for AI agents: 14 tools, 80+ pre-revenue formulas.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- HIGH
- LOWen valuation_stakeholder
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"startup-valuation": {
"url": "https://startup-valuation.simonmak.com/api"
}
}
}Puntos de conexión remotos
https://startup-valuation.simonmak.com/apistreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
]
}Esquema de salida
{
"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"
]
}Comunidad
Evidencia