Server definition
- Hash
- sha256:89f733abdf815030c2f0e8597e6ba99937e4aba02bcc974358b781f917652f00
- What it is
- What a remote MCP server returned when asked what it offers: 14 tools
The blob, as servednamed by its sha256
{
"instructions": "Startup valuation calculators: 14 tools covering probability, time value, CAPM, core pre-revenue methods, options, comparables, SaaS, marketplaces, fintech, biotech, hardware, international, stakeholder equity, and emerging methods. Select a formula with the `method` argument. Read the resource startup-valuation://methods for every method's required parameters, or use a prompt (value_pre_revenue_startup, value_saas_startup, model_funding_round) for a guided multi-method workflow.",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"method": {
"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.",
"enum": [
"black_scholes",
"binomial",
"scenario_analysis"
],
"type": "string"
},
"risk_free_rate": {
"description": "Risk-free rate as a decimal (e.g. 0.04 for 4%).",
"type": "number"
},
"scenarios": {
"description": "Scenario objects: {name: str, probability: 0-1, value: currency}; probabilities should sum to 1.",
"items": {
"type": "object"
},
"type": "array"
},
"steps": {
"default": 50,
"description": "Binomial tree time steps (integer ≥ 1; higher = more accurate).",
"type": "integer"
},
"strike": {
"description": "Strike / exercise price K, currency units.",
"type": "number"
},
"time_to_maturity": {
"description": "Time to expiry in years T, must be ≥ 0.",
"type": "number"
},
"underlying": {
"description": "Underlying asset value S, currency units.",
"type": "number"
},
"volatility": {
"description": "Annualised volatility σ as a decimal (0.80 = 80%).",
"type": "number"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_advanced",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"compliance": {
"default": 1,
"description": "Compliance / adherence rate as a decimal.",
"type": "number"
},
"discount_rate": {
"description": "Discount rate as a decimal (0.12 = 12%).",
"type": "number"
},
"drugs": {
"description": "Pipeline drugs: {name, peak_sales, probability, years_to_market, multiple(optional)}.",
"items": {
"type": "object"
},
"type": "array"
},
"method": {
"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.",
"enum": [
"peak_sales",
"decision_tree",
"pipeline"
],
"type": "string"
},
"patient_population": {
"description": "Target patient population treated per year.",
"type": "number"
},
"penetration": {
"description": "Market penetration as a decimal (0.10 = 10%).",
"type": "number"
},
"price": {
"description": "Price per unit / treatment, currency units.",
"type": "number"
},
"probabilities": {
"description": "Probability of each outcome or stage, each in [0,1]; the list must sum to 1 where it is exhaustive.",
"items": {
"type": "number"
},
"type": "array"
},
"terminal_value": {
"description": "Expected exit / terminal value, currency units.",
"type": "number"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_biotech",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"beta": {
"description": "Systematic risk beta (market = 1.0).",
"type": "number"
},
"betas": {
"description": "Asset betas aligned with weights; typically 0.5–3.0 (market = 1.0).",
"items": {
"type": "number"
},
"type": "array"
},
"cost_of_debt": {
"description": "Pre-tax cost of debt Rd as a decimal.",
"type": "number"
},
"cost_of_equity": {
"description": "After-tax cost of equity Re as a decimal.",
"type": "number"
},
"debt_value": {
"description": "Market value of debt, in currency units.",
"type": "number"
},
"equity_value": {
"description": "Value of equity offered, currency units.",
"type": "number"
},
"liquidity_premium": {
"default": 0,
"description": "Illiquidity premium as a decimal.",
"type": "number"
},
"market_return": {
"description": "Expected market return as a decimal (e.g. 0.10 for 10%).",
"type": "number"
},
"market_risk_premium": {
"description": "Market risk premium as a decimal (e.g. 0.06).",
"type": "number"
},
"method": {
"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).",
"enum": [
"capm",
"startup_capm",
"portfolio_beta",
"wacc"
],
"type": "string"
},
"risk_free_rate": {
"description": "Risk-free rate as a decimal (e.g. 0.04 for 4%).",
"type": "number"
},
"size_premium": {
"default": 0,
"description": "Small-cap / size premium as a decimal.",
"type": "number"
},
"tax_rate": {
"default": 0.3,
"description": "Effective tax rate as a decimal in [0,1].",
"type": "number"
},
"weights": {
"description": "Portfolio or factor weights, each in [0,1] and summing to 1 (same order as the paired value list).",
"items": {
"type": "number"
},
"type": "array"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_capm",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"ebitda": {
"description": "EBITDA, currency units.",
"type": "number"
},
"enterprise_value": {
"description": "Enterprise value (market cap + net debt), currency units.",
"type": "number"
},
"geography": {
"default": 0,
"description": "Geography indicator.",
"type": "number"
},
"geography_coefficient": {
"default": 0,
"description": "Regression slope on geography.",
"type": "number"
},
"growth_coefficient": {
"description": "Regression slope on growth (multiple points per unit growth).",
"type": "number"
},
"growth_rate": {
"description": "Revenue growth rate as a decimal (0.40 = 40%).",
"type": "number"
},
"intercept": {
"description": "Regression intercept β0 (base multiple).",
"type": "number"
},
"market_cap": {
"description": "Market capitalisation, currency units.",
"type": "number"
},
"market_maturity": {
"default": 0,
"description": "Market maturity indicator.",
"type": "number"
},
"maturity_coefficient": {
"default": 0,
"description": "Regression slope on market maturity.",
"type": "number"
},
"method": {
"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.",
"enum": [
"pe_ratio",
"ps_ratio",
"ev_ebitda",
"ev_revenue",
"regression_multiple"
],
"type": "string"
},
"net_income": {
"description": "Net income (earnings), currency units.",
"type": "number"
},
"revenue": {
"description": "Revenue for the period, currency units.",
"type": "number"
},
"stage": {
"default": 0,
"description": "Company stage indicator.",
"type": "number"
},
"stage_coefficient": {
"default": 0,
"description": "Regression slope on stage.",
"type": "number"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_comparables",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"average_valuation": {
"description": "Average pre-revenue valuation for the sector, currency units.",
"type": "number"
},
"base_valuation": {
"description": "Pre-adjustment baseline valuation, currency units.",
"type": "number"
},
"investment": {
"description": "Amount invested, currency units.",
"type": "number"
},
"method": {
"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.",
"enum": [
"scorecard",
"berkus",
"risk_factor",
"vc_post_money",
"vc_pre_money",
"terminal_value",
"triangulated"
],
"type": "string"
},
"multiple": {
"description": "Exit or market multiple applied to the metric.",
"type": "number"
},
"post_money": {
"description": "Post-money valuation, currency units.",
"type": "number"
},
"product_rollout": {
"default": 0,
"description": "Berkus award for product rollout / sales, 0 to 500,000.",
"type": "number"
},
"projected_revenue": {
"description": "Projected revenue at exit, currency units.",
"type": "number"
},
"prototype": {
"default": 0,
"description": "Berkus award for prototype / technology, 0 to 500,000.",
"type": "number"
},
"quality_team": {
"default": 0,
"description": "Berkus award for management team, 0 to 500,000.",
"type": "number"
},
"risk_ratings": {
"description": "12 risk factor ratings in [-2,2] (very low to very high); each unit shifts value ±250,000.",
"items": {
"type": "number"
},
"type": "array"
},
"scores": {
"description": "Factor multipliers aligned with weights (1.0 = average, >1 above average).",
"items": {
"type": "number"
},
"type": "array"
},
"sound_idea": {
"default": 0,
"description": "Berkus award for soundness of the idea, 0 to 500,000 (USD).",
"type": "number"
},
"strategic_relationships": {
"default": 0,
"description": "Berkus award for strategic relationships, 0 to 500,000.",
"type": "number"
},
"target_return": {
"description": "VC target return multiple (e.g. 10 for a 10x target).",
"type": "number"
},
"terminal_value": {
"description": "Expected exit / terminal value, currency units.",
"type": "number"
},
"weights": {
"description": "Portfolio or factor weights, each in [0,1] and summing to 1 (same order as the paired value list).",
"items": {
"type": "number"
},
"type": "array"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_core",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"annual_savings": {
"description": "Annual cost savings, currency units.",
"type": "number"
},
"base_valuation": {
"description": "Pre-adjustment baseline valuation, currency units.",
"type": "number"
},
"cap": {
"description": "SAFE valuation cap, currency units.",
"type": "number"
},
"competitive_advantage_years": {
"description": "Years the data moat is expected to last.",
"type": "number"
},
"cost_savings_pct": {
"default": 0.2,
"description": "Cost savings as a fraction of baseline.",
"type": "number"
},
"data_uniqueness": {
"description": "Uniqueness / scarcity of the data in [0,1].",
"type": "number"
},
"data_volume": {
"description": "Volume of proprietary data held.",
"type": "number"
},
"discount": {
"description": "Conversion discount as a decimal (0.20 = 20% discount).",
"type": "number"
},
"discount_per_point": {
"default": 0.01,
"description": "Valuation discount per ESG risk point as a decimal.",
"type": "number"
},
"discount_rate": {
"description": "Discount rate as a decimal (0.12 = 12%).",
"type": "number"
},
"esg_opportunity_discount": {
"default": 0,
"description": "ESG opportunity discount subtracted from the rate.",
"type": "number"
},
"esg_risk_premium": {
"default": 0,
"description": "ESG risk premium added to the rate, as a decimal.",
"type": "number"
},
"esg_risk_score": {
"description": "ESG risk score in points (higher = riskier).",
"type": "number"
},
"esg_score": {
"description": "ESG score in points (e.g. 0-100).",
"type": "number"
},
"investment": {
"description": "Amount invested, currency units.",
"type": "number"
},
"k": {
"description": "Number of events k for the Poisson probability P(X=k); integer ≥ 0.",
"type": "integer"
},
"market_cap": {
"description": "Market capitalisation, currency units.",
"type": "number"
},
"method": {
"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.",
"enum": [
"safe_discount",
"safe_cap",
"safe_expected",
"token_value",
"nvt_ratio",
"esg_rate",
"esg_premium",
"esg_discount",
"metcalfe",
"data_moat",
"remote_npv",
"remote_premium"
],
"type": "string"
},
"monetization_rate": {
"description": "Fraction of data value monetisable as a decimal.",
"type": "number"
},
"n": {
"description": "Number of users or nodes in the network.",
"type": "number"
},
"premium_per_point": {
"default": 0.02,
"description": "Valuation premium per ESG point as a decimal.",
"type": "number"
},
"price_per_tx": {
"description": "Protocol revenue per transaction, currency units.",
"type": "number"
},
"productivity_gain": {
"default": 0.05,
"description": "Productivity gain as a decimal.",
"type": "number"
},
"rate": {
"description": "Per-period discount rate as a decimal (0.10 = 10%).",
"type": "number"
},
"series_a_price": {
"description": "Price per share in the next priced (Series A) round.",
"type": "number"
},
"series_a_valuation": {
"description": "Series A post-money valuation, currency units.",
"type": "number"
},
"supply": {
"description": "Circulating token supply.",
"type": "number"
},
"talent_access_premium": {
"default": 0.1,
"description": "Talent-access premium as a decimal.",
"type": "number"
},
"transaction_volume": {
"description": "Total payment transaction volume, currency units.",
"type": "number"
},
"velocity": {
"description": "Token velocity (turnover of supply per period).",
"type": "number"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_emerging",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"arpu": {
"description": "Average revenue per user per month, currency units.",
"type": "number"
},
"churn_rate": {
"description": "Periodic churn rate as a decimal (0.02 = 2% per month).",
"type": "number"
},
"customers": {
"description": "Number of customers.",
"type": "integer"
},
"discount_rate": {
"description": "Discount rate as a decimal (0.12 = 12%).",
"type": "number"
},
"gross_margin": {
"description": "Gross margin as a decimal (0.80 = 80%).",
"type": "number"
},
"growth_rate": {
"description": "Revenue growth rate as a decimal (0.40 = 40%).",
"type": "number"
},
"loan_book": {
"description": "Outstanding loan book / principal, currency units.",
"type": "number"
},
"method": {
"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.",
"enum": [
"payment_revenue",
"lending",
"payment_processor",
"neobank"
],
"type": "string"
},
"npl_reserves": {
"default": 0,
"description": "Non-performing loan reserves deducted, currency units.",
"type": "number"
},
"pe_multiple": {
"description": "Price/earnings multiple applied to earnings.",
"type": "number"
},
"roe": {
"description": "Return on equity as a decimal (0.20 = 20%).",
"type": "number"
},
"take_rate": {
"description": "Take rate as a decimal (0.15 = 15% of GMV).",
"type": "number"
},
"terminal_multiple": {
"description": "Terminal value multiple applied at the horizon.",
"type": "number"
},
"transaction_volume": {
"description": "Total payment transaction volume, currency units.",
"type": "number"
},
"years": {
"default": 5,
"description": "Forecast horizon in years; integer ≥ 1.",
"type": "integer"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_fintech",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"asp": {
"description": "Average selling price per unit, currency units.",
"type": "number"
},
"fixed_costs": {
"description": "Fixed costs for the period, currency units.",
"type": "number"
},
"margin": {
"description": "Profit margin as a decimal.",
"type": "number"
},
"market_share": {
"description": "Target market share as a decimal in [0,1].",
"type": "number"
},
"market_size": {
"description": "Total addressable market, currency units.",
"type": "number"
},
"method": {
"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).",
"enum": [
"trl",
"gross_margin",
"break_even_volume"
],
"type": "string"
},
"multiple": {
"description": "Exit or market multiple applied to the metric.",
"type": "number"
},
"trl_discount": {
"description": "TRL risk discount as a decimal (applied as 1 - discount).",
"type": "number"
},
"variable_cost": {
"description": "Variable cost per unit, currency units.",
"type": "number"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_hardware",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"beta": {
"description": "Systematic risk beta (market = 1.0).",
"type": "number"
},
"crp": {
"description": "Country risk premium as a decimal.",
"type": "number"
},
"inflation_domestic": {
"description": "Domestic inflation rate as a decimal.",
"type": "number"
},
"inflation_foreign": {
"description": "Foreign inflation rate as a decimal.",
"type": "number"
},
"method": {
"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.",
"enum": [
"ppp",
"country_risk_premium",
"intl_capm"
],
"type": "string"
},
"mrp": {
"description": "Market risk premium as a decimal.",
"type": "number"
},
"risk_free_rate": {
"description": "Risk-free rate as a decimal (e.g. 0.04 for 4%).",
"type": "number"
},
"sovereign_yield": {
"description": "Foreign sovereign bond yield as a decimal.",
"type": "number"
},
"spot_rate": {
"description": "Spot FX rate (domestic per foreign), e.g. 7.2 CNY/USD.",
"type": "number"
},
"us_treasury_yield": {
"description": "US Treasury yield as a decimal.",
"type": "number"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_international",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"active_buyers": {
"description": "Active buyers in the period.",
"type": "integer"
},
"active_sellers": {
"description": "Active sellers in the period.",
"type": "integer"
},
"buyers_period_1": {
"description": "Distinct buyers in the base period.",
"type": "integer"
},
"buyers_repeat": {
"description": "Distinct buyers from the base period who purchased again.",
"type": "integer"
},
"gmv": {
"description": "Gross merchandise value (total transaction volume), currency units.",
"type": "number"
},
"method": {
"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.",
"enum": [
"take_rate",
"gmv_multiple",
"buyer_retention",
"network_density"
],
"type": "string"
},
"multiple": {
"description": "Exit or market multiple applied to the metric.",
"type": "number"
},
"revenue": {
"description": "Revenue for the period, currency units.",
"type": "number"
},
"total_users": {
"description": "Total users (buyers + sellers) in the period.",
"type": "integer"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_marketplace",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"k": {
"description": "Number of events k for the Poisson probability P(X=k); integer ≥ 0.",
"type": "integer"
},
"lower": {
"description": "Lower integration bound (standard-normal domain, e.g. -1.0).",
"type": "number"
},
"mean_events": {
"description": "Poisson mean λ = expected number of events in the interval.",
"type": "number"
},
"method": {
"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.",
"enum": [
"expected_value_discrete",
"joint_probability",
"probability_weighted",
"portfolio_return",
"poisson",
"expected_value_continuous"
],
"type": "string"
},
"outcomes": {
"description": "Possible outcome values x_i, in any currency unit (must match probabilities in length/order).",
"items": {
"type": "number"
},
"type": "array"
},
"probabilities": {
"description": "Probability of each outcome or stage, each in [0,1]; the list must sum to 1 where it is exhaustive.",
"items": {
"type": "number"
},
"type": "array"
},
"returns": {
"description": "Return of each asset or scenario as a decimal (0.20 = 20%), aligned with weights.",
"items": {
"type": "number"
},
"type": "array"
},
"upper": {
"description": "Upper integration bound (standard-normal domain, e.g. 1.0).",
"type": "number"
},
"weights": {
"description": "Portfolio or factor weights, each in [0,1] and summing to 1 (same order as the paired value list).",
"items": {
"type": "number"
},
"type": "array"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_probability",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"arpu": {
"description": "Average revenue per user per month, currency units.",
"type": "number"
},
"arr": {
"description": "Annual recurring revenue, currency units.",
"type": "number"
},
"arr_value": {
"description": "Annual recurring revenue, currency units.",
"type": "number"
},
"cac": {
"description": "Customer acquisition cost per customer, currency units.",
"type": "number"
},
"churn_rate": {
"description": "Periodic churn rate as a decimal (0.02 = 2% per month).",
"type": "number"
},
"ending_revenue": {
"description": "Revenue from the same cohort at period end, currency units.",
"type": "number"
},
"expansion_revenue": {
"default": 0,
"description": "Expansion revenue from the cohort in the period.",
"type": "number"
},
"gross_margin": {
"description": "Gross margin as a decimal (0.80 = 80%).",
"type": "number"
},
"growth_rate": {
"description": "Revenue growth rate as a decimal (0.40 = 40%).",
"type": "number"
},
"method": {
"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.",
"enum": [
"ltv",
"cac",
"mrr",
"arr",
"nrr",
"magic_number",
"rule_of_40",
"cac_payback",
"revenue_multiple"
],
"type": "string"
},
"mrr_per_customer": {
"description": "Monthly recurring revenue per customer, currency units.",
"type": "number"
},
"net_new_arr": {
"description": "Net new ARR added in the period, currency units.",
"type": "number"
},
"new_customers": {
"description": "Number of customers acquired in the period.",
"type": "integer"
},
"profit_margin": {
"description": "Profit margin as a decimal (0.15 = 15%).",
"type": "number"
},
"revenue_multiple": {
"description": "SaaS revenue multiple (e.g. 8 for 8x ARR).",
"type": "number"
},
"sales_marketing_expense": {
"description": "Sales & marketing spend for the period, currency units.",
"type": "number"
},
"sm_expense_prior": {
"description": "Sales & marketing expense in the prior period, currency units.",
"type": "number"
},
"starting_revenue": {
"description": "Revenue from the cohort at period start, currency units.",
"type": "number"
},
"subscription_values": {
"description": "Monthly subscription revenue per customer (summed x12 for ARR).",
"items": {
"type": "number"
},
"type": "array"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_saas",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"accounts_receivable": {
"default": 0,
"description": "Accounts receivable, currency units.",
"type": "number"
},
"annual_vest_rate": {
"default": 0.25,
"description": "Annual vesting rate as a decimal.",
"type": "number"
},
"assets": {
"description": "Map of asset name to book value, e.g. {\"cash\": 500000}.",
"type": "object"
},
"cash": {
"default": 0,
"description": "Cash and equivalents, currency units.",
"type": "number"
},
"cost_synergies": {
"description": "Cost synergy value, currency units.",
"type": "number"
},
"discount_rate": {
"description": "Discount rate as a decimal (0.12 = 12%).",
"type": "number"
},
"enterprise_value": {
"description": "Enterprise value (market cap + net debt), currency units.",
"type": "number"
},
"equipment": {
"default": 0,
"description": "Equipment, currency units.",
"type": "number"
},
"equity_value": {
"description": "Value of equity offered, currency units.",
"type": "number"
},
"fair_market_value": {
"description": "Current fair market value per share, currency units.",
"type": "number"
},
"inventory": {
"default": 0,
"description": "Inventory, currency units.",
"type": "number"
},
"investment": {
"description": "Amount invested, currency units.",
"type": "number"
},
"liquidation_pref": {
"description": "Liquidation preference amount, currency units.",
"type": "number"
},
"method": {
"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.",
"enum": [
"dilution",
"opm",
"pwerm",
"liquidation",
"risk_adjusted_synergy",
"intrinsic_option",
"employee_option",
"vesting_adjusted",
"cash_equity_breakeven",
"max_asset_loan"
],
"type": "string"
},
"ownership_before": {
"description": "Founder ownership before the round as a decimal (0.60 = 60%).",
"type": "number"
},
"post_money": {
"description": "Post-money valuation, currency units.",
"type": "number"
},
"prob_cost": {
"default": 0.8,
"description": "Probability of realising cost synergies, 0-1.",
"type": "number"
},
"prob_revenue": {
"default": 0.4,
"description": "Probability of realising revenue synergies, 0-1.",
"type": "number"
},
"real_estate": {
"default": 0,
"description": "Real estate, currency units.",
"type": "number"
},
"recovery_rates": {
"description": "Map of asset name to recovery rate in [0,1], matching assets.",
"type": "object"
},
"retention_prob": {
"default": 0.8,
"description": "Probability the holder stays, 0-1.",
"type": "number"
},
"revenue_synergies": {
"description": "Revenue synergy value, currency units.",
"type": "number"
},
"salary_reduction": {
"description": "Annual salary foregone for equity, currency units.",
"type": "number"
},
"scenarios": {
"description": "Scenario objects: {name: str, probability: 0-1, value: currency}; probabilities should sum to 1.",
"items": {
"type": "object"
},
"type": "array"
},
"shares": {
"description": "Number of option shares.",
"type": "integer"
},
"strike_price": {
"description": "Option strike price, currency units.",
"type": "number"
},
"tax_rate": {
"default": 0.3,
"description": "Effective tax rate as a decimal in [0,1].",
"type": "number"
},
"time_to_exit": {
"description": "Expected time to exit / liquidity in years.",
"type": "number"
},
"total_value": {
"description": "Total grant value, currency units.",
"type": "number"
},
"vested_fraction": {
"description": "Fraction vested in [0,1].",
"type": "number"
},
"volatility": {
"description": "Annualised volatility σ as a decimal (0.80 = 80%).",
"type": "number"
},
"years": {
"default": 5,
"description": "Forecast horizon in years; integer ≥ 1.",
"type": "integer"
},
"years_remaining": {
"default": 3,
"description": "Years of vesting remaining.",
"type": "integer"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_stakeholder",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"cash_flows": {
"description": "Cash flows by period, first element at t=1; negatives allowed for outflows.",
"items": {
"type": "number"
},
"type": "array"
},
"ending_value": {
"description": "Value at t=n to compare against the starting value, in currency units.",
"type": "number"
},
"future_value": {
"description": "Future cash amount to discount, in currency units.",
"type": "number"
},
"growth_rate": {
"description": "Revenue growth rate as a decimal (0.40 = 40%).",
"type": "number"
},
"method": {
"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.",
"enum": [
"present_value",
"npv",
"annuity",
"compound_growth",
"cagr",
"dcf"
],
"type": "string"
},
"payment": {
"description": "Recurring payment per period, in currency units.",
"type": "number"
},
"periods": {
"description": "Number of compounding periods, must be ≥ 1 (may be fractional).",
"type": "number"
},
"rate": {
"description": "Per-period discount rate as a decimal (0.10 = 10%).",
"type": "number"
},
"starting_value": {
"description": "Value at t=0 (revenue or cash flow) to grow forward, in currency units.",
"type": "number"
},
"terminal_growth": {
"default": 0,
"description": "Perpetual growth rate g applied after the forecast window, as a decimal.",
"type": "number"
}
},
"required": [
"method"
],
"type": "object"
},
"name": "valuation_time_value",
"outputSchema": {
"properties": {
"assumptions": {
"description": "Modelling assumptions applied.",
"items": {
"type": "string"
},
"type": "array"
},
"chapter": {
"description": "Source textbook chapter.",
"type": "string"
},
"defaults_applied": {
"description": "Optional parameters that were not supplied, so their documented defaults were used.",
"items": {
"type": "string"
},
"type": "array"
},
"error": {
"description": "Error message when the call fails.",
"type": "string"
},
"formula_number": {
"description": "Source textbook formula number (e.g. '3.1').",
"type": "string"
},
"inputs": {
"description": "Echo of the normalised inputs used.",
"type": "object"
},
"method": {
"description": "Formula / method name that produced the result.",
"type": "string"
},
"steps": {
"description": "Intermediate steps for traceability.",
"items": {
"type": "object"
},
"type": "array"
},
"value": {
"description": "Computed valuation or metric.",
"type": "number"
}
},
"required": [
"value"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:89f733abdf815030c2f0e8597e6ba99937e4aba02bcc974358b781f917652f00 | sha256sum