Valuation MCP: DCF/NAV/CCA, WACC, derivatives, credit risk, fixed income, structured products.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Actuarial present value engine. Discount expected cash flows with mortality, survival, and risk adjustment for insurance and benefit obligations, generalising IFRS 17 (fulfilment cash flows), IAS 19 (employee benefits), IFRS 2 (share-based payments), and IAS 37 (provisions). Use this for regulated IFRS/HKFRS obligations only; it does NOT do generic project or scenario probability weighting (use calculate_expected_value). Methods: ifrs17_gmm: cash_flows, discount_rate, risk_adjustment; ifrs17_paa: premiums, claims_cash, acquisition_cash_flows, coverage_periods; ifrs17_vfa: cash_flows, discount_rate, underlying_items_return, risk_adjustment; ias19_puc: projected_benefits, discount_rate, attribution_years; ias37_provision: outcomes, probabilities, discount_rate, periods. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Formula to apply; the tool description lists the exact inputs each value requires.
Number of periods n (>=1).
Outcome values aligned with probabilities.
Premiums in reporting currency.
Projected cash flows in reporting currency, indexed t=1..n.
Expected claims in reporting currency.
Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax.
Cumulative success probability per period in [0,1], aligned with cash_flows.
Explicit risk adjustment for non-financial risk.
Coverage periods for the PAA (>=1).
Years of service for attribution (>=1).
Projected benefits per service year.
Acquisition cash flows in reporting currency.
Return on underlying items (decimal).
Actuarial present value engine. Discount expected cash flows with mortality, survival, and risk adjustment for insurance and benefit obligations, generalising IFRS 17 (fulfilment cash flows), IAS 19 (employee benefits), IFRS 2 (share-based payments), and IAS 37 (provisions). Use this for regulated IFRS/HKFRS obligations only; it does NOT do generic project or scenario probability weighting (use calculate_expected_value). Methods: ifrs17_gmm: cash_flows, discount_rate, risk_adjustment; ifrs17_paa: premiums, claims_cash, acquisition_cash_flows, coverage_periods; ifrs17_vfa: cash_flows, discount_rate, underlying_items_return, risk_adjustment; ias19_puc: projected_benefits, discount_rate, attribution_years; ias37_provision: outcomes, probabilities, discount_rate, periods. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| periods | any | Number of periods n (>=1). |
| outcomes | any | Outcome values aligned with probabilities. |
| premiums | any | Premiums in reporting currency. |
| cash_flows | any | Projected cash flows in reporting currency, indexed t=1..n. |
| claims_cash | any | Expected claims in reporting currency. |
| discount_rate | any | Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax. |
| probabilities | any | Cumulative success probability per period in [0,1], aligned with cash_flows. |
| risk_adjustment | any | Explicit risk adjustment for non-financial risk. |
| coverage_periods | any | Coverage periods for the PAA (>=1). |
| attribution_years | any | Years of service for attribution (>=1). |
| projected_benefits | any | Projected benefits per service year. |
| acquisition_cash_flows | any | Acquisition cash flows in reporting currency. |
| underlying_items_return | any | Return on underlying items (decimal). |
{
"type": "object",
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"ifrs17_gmm",
"ifrs17_paa",
"ifrs17_vfa",
"ias19_puc",
"ias37_provision"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"periods": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of periods n (>=1)."
},
"outcomes": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Outcome values aligned with probabilities."
},
"premiums": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Premiums in reporting currency."
},
"cash_flows": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Projected cash flows in reporting currency, indexed t=1..n."
},
"claims_cash": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Expected claims in reporting currency."
},
"discount_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax."
},
"probabilities": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Cumulative success probability per period in [0,1], aligned with cash_flows."
},
"risk_adjustment": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Explicit risk adjustment for non-financial risk."
},
"coverage_periods": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Coverage periods for the PAA (>=1)."
},
"attribution_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Years of service for attribution (>=1)."
},
"projected_benefits": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Projected benefits per service year."
},
"acquisition_cash_flows": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Acquisition cash flows in reporting currency."
},
"underlying_items_return": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Return on underlying items (decimal)."
}
},
"additionalProperties": false
}Convertible-bond engine. Value callable and puttable convertible or exchangeable bonds with credit risk using a Tsiveriotis-Fernandes lattice (equity discounted at the risk-free rate, debt at a credit spread), with conversion, issuer call, holder put, coupon schedule, and a straight-bond floor. Use this for convertible and exchangeable bonds; for a plain bond or rate curve use calculate_fixed_income, and for a standalone option or warrant use calculate_option. The lattice_tsf, lattice_intensity, finite_difference, lsmc and quantlib methods are alternative numerical schemes for the same valuation and take identical inputs (Tsiveriotis-Fernandes is the reference, lsmc is Monte Carlo, quantlib needs the optional engine); choose one. Methods: lattice_tsf/lattice_intensity/finite_difference/lsmc/quantlib: spot, face, coupon_rate, maturity, conversion_ratio, volatility, risk_free, credit_spread, call_schedule, put_schedule, rights_priority. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| face | any | Bond face value. |
| spot | any | Spot price of the underlying (or FX rate for garman_kohlhagen). |
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| maturity | any | Time to expiry in years (0.5 = six months); > 0. |
| risk_free |
Credit-risk engine (IFRS 9 / HKFRS 9). Compute 12-month, lifetime, and staged expected credit loss, PD/LGD/EAD, provision matrices, hazard rates, and CVA/DVA. Use this for impairment, fair-value credit adjustment, and loan-loss provisioning; for the credit component of a specific convertible bond use calculate_convertible_bond, and for liquidity, control or marketability discounts rather than credit loss use calculate_fair_value_adjustment. Methods: ecl_12m: ead, pd, lgd; ecl_lifetime: ead, pd_lifetime, lgd; ecl_staged: ead, pd_12m, pd_lifetime, lgd, stage; provision_matrix: receivables_ageing, loss_rates; pd_from_spread: credit_spread, recovery, tenor_years; cumulative_pd: annual_pd, years; hazard: hazard_rate, tenor_years; cva_dva: exposure_profile, pd, lgd, discount_rate. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| pd | any | Probability of default over the horizon, in [0,1]. |
| ead | any | Exposure at default in currency units. |
| lgd | any | Loss given default in [0,1] (1 - recovery rate). |
| stage | any | IFRS 9 stage (1, 2 or 3). |
| years | any | Number of projection years n; equal len(cash_flows) when both are supplied. |
| method* |
Discounted cash flow valuation engine. Choose a method and supply its exact inputs to value a business from projected free cash flows, dividends, residual income, or economic profit. Covers FCFF/FCFE DCF, NPV/IRR, terminal values, and multi-stage growth. Use this for going-concern cash-flow businesses; for asset-anchored or financial firms use calculate_residual, for peer-based pricing use calculate_market_multiple, and for pre-profit companies use calculate_loss_making_company. Methods: dcf/npv: cash_flows, discount_rate; annuity: payment, discount_rate, periods; growing_annuity: payment, discount_rate, growth_rate, periods; perpetuity: payment, discount_rate; terminal_gordon: final_cash_flow, discount_rate, perpetual_growth; terminal_multiple: final_cash_flow, exit_multiple; viu_pre_tax: cash_flows, pre_tax_discount_rate; rnpv: cash_flows, discount_rate, probabilities; lease_pv: lease_payments, incremental_borrowing_rate. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| payment | any | Level periodic payment in reporting currency. |
| periods | any | Number of periods n (>=1). |
| cash_flows | any | Projected cash flows in reporting currency, indexed t=1..n. |
| growth_rate |
Cost-of-capital engine. Compute WACC, cost of equity (CAPM), cost of debt, unlevered/relevered beta, and country or size premiums from an explicit capital structure and market inputs. Use this to derive the discount rate an income-approach valuation needs; it returns a rate, not a valuation, so feed the result to calculate_dcf, or to calculate_residual for IFRS-basis measurement. Methods: wacc: equity_weight, debt_weight, cost_equity, cost_debt, tax_rate; capm: risk_free, beta, market_return; startup_capm: risk_free, beta, market_risk_premium, size_premium, illiquidity_premium; build_up: risk_free, equity_risk_premium, size_premium, industry_premium, specific_premium; currency_adjusted: base_rate, currency_risk_premium, country_risk_premium; country_risk: sovereign_yield, us_risk_free; esg: base_rate, esg_risk_premium, esg_opportunity_discount; portfolio_beta: weights, betas; ibr: risk_free, credit_spread, tenor_years. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| beta | any | Equity beta (market = 1.0). |
| betas | any | Asset/segment betas aligned with weights. |
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| weights | any | Weights that must sum to 1. |
| tax_rate | any |
Expected-value engine. Compute expected values over discrete, continuous, simulated, or tree-structured uncertainty, plus football-field ranges. Use this for generic probability weighting of scenarios, Monte-Carlo and decision trees; it does NOT perform IFRS/HKFRS measurement of provisions, insurance or employee-benefit obligations (use calculate_actuarial_pv), and it does not price path-dependent payoffs (use calculate_structured_product). Methods: discrete: outcomes, probabilities; continuous: distribution, mean, std, lower, upper; scenario: scenarios; monte_carlo: iterations, distributions, base_params, seed; decision_tree: tree; football_field: estimates. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| std | any | Distribution standard deviation (>0). |
| mean | any | Distribution mean. |
| seed | any | Deterministic RNG seed (required by simulation methods for reproducibility). |
| tree | any | Decision tree with chance/decision nodes. |
| lower | any | Lower integration bound. |
| upper | any | Upper integration bound. |
| method |
Fair-value-adjustment engine (IFRS 13). Compute exit-price adjustments including credit, liquidity, control and marketability discounts, blockage, and the fair-value hierarchy level. Use this to move from an indicated value to the fair value recognised in the accounts; for liquidity/marketability inputs of a listed instrument prefer calculate_market_multiple, and for expected credit loss use calculate_credit_loss. Methods: dlom: base_value, restricted_period, volatility, risk_free; dloc: base_value, transaction_cost_pct; control_premium: base_value, control_premium_pct; minority_discount: base_value, minority_discount_pct; highest_best_use: base_value, alternative_use_values; hierarchy_level: inputs. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| inputs | any | Inputs [{value, level}] used to determine the hierarchy level. |
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| risk_free | any | Continuously-compounded risk-free rate (decimal). |
| base_value | any | Base valuation before the adjustment. |
| volatility | any | Annualized volatility (decimal, 0.30 = 30%); > 0. |
Fixed-income engine. Price plain coupon bonds, solve for yield to maturity, measure interest-rate sensitivity via Macaulay and modified duration and convexity, and build a HIBOR/HKD-style term structure: bootstrap a zero curve from par rates, infer forward rates, and discount cash flows on the curve. Use this for vanilla bonds, rate risk and discount curves; for convertibles use calculate_convertible_bond and for structured payoffs use calculate_structured_product. Methods: bond_price/duration/convexity: face, coupon_rate, years, ytm, frequency; bond_yield: face, coupon_rate, years, price, frequency; matrix_pricing: target_tenor, benchmark_tenors, benchmark_yields; discount_factor: rate, years, frequency; zero_curve: par_rates, tenors, frequency; forward_rate: zero_rates, tenors, t1, t2; pv_curve: cash_flows, times, zero_rates, tenors. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| t1 | any | Forward period start in years (>=0). |
| t2 | any | Forward period end in years (> t1). |
| ytm | any | Yield to maturity (decimal, annualised). |
| face | any | Bond face value. |
| rate | any | A single interest/zero rate (decimal). |
| price | any |
Loss-making-company engine. Value currently unprofitable companies with margin-ramp DCF, revenue multiples, Merton structural equity, the VC method, distressed waterfalls, bank residual income, and SPAC deals; every method returns a central value plus a dispersion (sigma, percentiles, long-tail). Use this when earnings-based multiples break down; for standalone probability weighting of arbitrary scenarios use calculate_expected_value, and for a single going-concern DCF use calculate_dcf. Methods: margin_ramp_dcf: revenue, growth_rate, start_margin, target_margin, ramp_years, discount_rate, years, shares_outstanding, net_debt, range_method; revenue_multiple: revenue, ev_revenue_multiple, net_debt, shares_outstanding, range_method; merton_equity: firm_value, firm_volatility, debt, risk_free, maturity, range_method; vc_method: terminal_value, target_return, investment, shares_outstanding, range_method; distressed_waterfall: enterprise_value, claims, range_method; bank_residual_income: book_value, net_income, cost_equity, growth_rate, range_method; spac_deal: trust_cash, shares_outstanding, redemption_price, range_method. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| debt | any | Debt face value (default point) for the Merton equity model. |
| years | any | Number of projection years n; equal len(cash_flows) when both are supplied. |
| claims | any | Ordered claims [{name, amount, priority}] for a waterfall. |
| method* |
Market-multiple engine. Apply peer multiples (P/E, P/B, EV/EBITDA, EV/Sales, PEG and more) or derive implied multiples to price a company on a comparable basis. Use this for market-approach pricing where peers exist; it does peer multiples only — for intrinsic cash-flow value use calculate_dcf, and for residual-income or IFRS-basis measurement use calculate_residual. Methods: ev_revenue: revenue, ev_revenue_multiple; ev_ebitda: ebitda, ev_ebitda_multiple; ev_arr: arr, ev_arr_multiple; ev_gmv: gmv, ev_gmv_multiple; pe: eps, pe_multiple; pb: book_value_per_share, pb_multiple; ps: sales_per_share, ps_multiple; cap_rate: net_operating_income, cap_rate; regression: intercept, growth_rate, growth_coefficient, market_maturity, maturity_coefficient; royalty_cap: revenue, royalty_rate, discount_rate; ddm: dividend_per_share, cost_equity, growth_rate. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| arr | any | Annual recurring revenue in reporting currency. |
| eps | any | Earnings per share. |
| gmv | any | Gross merchandise value in reporting currency. |
| ebitda | any | EBITDA in reporting currency. |
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
Option-pricing engine. Price European and American options and warrants (Black-Scholes, Black-76, CRR binomial, Garman-Kohlhagen FX, digital, range, share-based) and their greeks. Use this for a single contingent claim or warrant on one underlying; it does NOT price listed structured payoffs such as CBBCs, inline/derivative warrants or autocallables (use calculate_structured_product). Methods: black_scholes: spot, strike, maturity, risk_free, volatility, option_type; black76: forward, strike, maturity, risk_free, volatility, option_type; binomial_american: spot, strike, maturity, risk_free, volatility, option_type, steps; garman_kohlhagen: spot, strike, maturity, domestic_rate, foreign_rate, volatility, option_type; barrier_first_passage: spot, strike, maturity, risk_free, volatility, option_type, barrier, barrier_type; asian_average: spot, strike, maturity, risk_free, volatility, option_type, average_type; digital: spot, strike, maturity, risk_free, volatility, cash_payout; range: spot, lower_strike, upper_strike, maturity, risk_free, volatility, payout; share_based: share_price, exercise_price, expected_life, volatility, risk_free, dividend_yield. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| spot | any | Spot price of the underlying (or FX rate for garman_kohlhagen). |
| steps | any | Lattice steps for binomial_american (>=50). |
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| payout |
IFRS/HKFRS measurement engine. Compute goodwill and purchase-price allocation, impairment (IAS 36), inventory net realisable value, held-for-sale, debt waterfalls, cap tables, sum-of-the-parts and SPAC redemption; residual income and justified price-to-book; and non-financial asset fair value: investment property (IAS 40 / HKAS 40), PP&E revaluation via depreciated replacement cost (IAS 16) and biological assets at fair value less costs to sell (IAS 41). Use this for accounting-basis measurement of assets and equity; for going-concern cash flow use calculate_dcf and for peer multiples use calculate_market_multiple. Methods: goodwill: purchase_price, fair_value_net_identifiable_assets; ppa: purchase_price, tangible_assets_fv, identified_intangibles_fv; impairment_fvlcd: carrying_value, fair_value_less_costs_to_dispose; impairment_viu: carrying_value, value_in_use; inventory_nrv: carrying_value, net_realisable_value; held_for_sale: carrying_value, fair_value_less_costs_to_sell; debt_waterfall/cap_table: enterprise_value, claims; sotp: segments, net_debt, holding_discount; spac_redemption: trust_cash, shares_outstanding, redemption_price; investment_property: noi, cap_rate; ppe_revaluation: replacement_cost, accumulated_depreciation; biological_asset: expected_price, quantity, costs_to_sell; residual_income: book_value, net_income, cost_equity; justified_pb: roe, cost_equity, growth_rate; relief_from_royalty: revenue, royalty_rate, discount_rate, periods; mpeem: cash_flows, contributory_charges, discount_rate; with_without: with_cash_flows, without_cash_flows, discount_rate; recoverable_amount: fair_value_less_costs_to_dispose, value_in_use; liability_fulfilment: fulfilment_costs, mark_up, discount_rate; inventory_residual: selling_price, costs_to_complete, profit_allowance; development_residual: gross_development_value, development_costs, developer_profit. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| noi | any |
Sector-metric engine. Compute the metrics that anchor valuation in specific industries: SaaS (ARR, NRR, magic number, Rule of 40), marketplaces (take rate, GMV multiple), lending (LTV/CAC), and crypto (NVT, Metcalfe). It returns operating metrics, not a valuation; use them as inputs to calculate_market_multiple or calculate_dcf. Methods: ltv: arpu, gross_margin, churn_rate; cac: sales_marketing_expense, new_customers; arr: subscription_values; nrr: starting_revenue, ending_revenue, expansion_revenue; magic_number: net_new_arr, sales_marketing_expense_prior; rule_of_40: growth_rate, profit_margin; take_rate: revenue, gmv; gmv_multiple: gmv, ev_gmv_multiple; retention: retained_customers, starting_customers; trl: market_size, market_share, margin, exit_multiple, trl_discount; break_even: fixed_costs, asp, variable_cost; gross_margin: asp, variable_cost; token: transaction_volume, price_per_tx, velocity, supply; nvt: market_cap, transaction_volume; metcalfe: n, coefficient. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| n | any | Node/participant count n (>=0). |
| asp | any | Average selling price per unit. |
| gmv | any | Gross merchandise value in reporting currency. |
| arpu | any | Average revenue per user per period. |
| margin | any | Operating margin as a decimal. |
Structured-product engine. Value HKEX-listed and OTC structures: CBBCs, derivative and inline warrants, equity-linked notes and investments, autocallables, accumulators and decumulators, credit-linked notes, TRS, and CFDs. Use this for equity-linked and credit-linked payoff structures; for a plain option or warrant use calculate_option, for a convertible or exchangeable bond use calculate_convertible_bond, and for a vanilla bond or term structure use calculate_fixed_income. Methods: cbbc: notional, spot, strike, barrier, barrier_type, maturity, risk_free, volatility, option_type; cbbc_residual: notional, spot, call_price, entitlement, barrier, barrier_type, maturity, risk_free, volatility, option_type; derivative_warrant: notional, spot, strike, maturity, risk_free, volatility, average_type, option_type; inline_warrant: notional, spot, lower_strike, upper_strike, maturity, risk_free, volatility, payout; inline_warrant_avg: notional, spot, lower_strike, upper_strike, maturity, risk_free, volatility, payout, fixing_days; eli/eln: notional, spot, strike, maturity, risk_free, volatility, coupon_rate; autocallable: notional, spot, knock_out_level, observation_dates, coupon_rate_structured, maturity, risk_free, volatility; credit_linked_note: notional, credit_spread, recovery, maturity, risk_free, coupon_rate_structured; accumulator/decumulator: notional, spot, strike, knock_out_level, observation_dates, risk_free, volatility; trs: notional, spot, maturity, risk_free, dividend_yield; cfd: notional, spot, strike, maturity, risk_free. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
| Argument | Type | Description |
|---|---|---|
| spot | any | Spot price of the underlying (or FX rate for garman_kohlhagen). |
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| any |
| Continuously-compounded risk-free rate (decimal). |
| volatility | any | Annualized volatility (decimal, 0.30 = 30%); > 0. |
| coupon_rate | any | Annual coupon rate (decimal). |
| put_schedule | any | Investor put schedule [{date_years, price}]; pass [] when there is none. |
| call_schedule | any | Issuer call schedule [{date_years, price}]; pass [] when there is none. |
| credit_spread | any | Credit spread over the risk-free rate (decimal). |
| rights_priority | any | Which right prevails when call and put coincide. |
| conversion_ratio | any | Shares received per bond on conversion. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"face": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Bond face value."
},
"spot": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Spot price of the underlying (or FX rate for garman_kohlhagen)."
},
"method": {
"enum": [
"lattice_tsf",
"lattice_intensity",
"finite_difference",
"lsmc",
"quantlib"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"maturity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Time to expiry in years (0.5 = six months); > 0."
},
"risk_free": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuously-compounded risk-free rate (decimal)."
},
"volatility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annualized volatility (decimal, 0.30 = 30%); > 0."
},
"coupon_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annual coupon rate (decimal)."
},
"put_schedule": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Investor put schedule [{date_years, price}]; pass [] when there is none."
},
"call_schedule": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Issuer call schedule [{date_years, price}]; pass [] when there is none."
},
"credit_spread": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Credit spread over the risk-free rate (decimal)."
},
"rights_priority": {
"anyOf": [
{
"enum": [
"holder",
"issuer"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which right prevails when call and put coincide."
},
"conversion_ratio": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Shares received per bond on conversion."
}
},
"additionalProperties": false
}| string |
| Formula to apply; the tool description lists the exact inputs each value requires. |
| pd_12m | any | 12-month PD in [0,1]. |
| recovery | any | Recovery rate in [0,1]. |
| annual_pd | any | Annual PD in [0,1]. |
| loss_rates | any | Loss rate per ageing bucket. |
| hazard_rate | any | Default hazard rate as a decimal. |
| pd_lifetime | any | Lifetime PD in [0,1]. |
| tenor_years | any | Tenor in years (>0). |
| credit_spread | any | Credit spread over the risk-free rate (decimal). |
| discount_rate | any | Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax. |
| exposure_profile | any | Expected exposure per period. |
| receivables_ageing | any | Ageing buckets [{bucket, amount}]. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"pd": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Probability of default over the horizon, in [0,1]."
},
"ead": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exposure at default in currency units."
},
"lgd": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Loss given default in [0,1] (1 - recovery rate)."
},
"stage": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "IFRS 9 stage (1, 2 or 3)."
},
"years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of projection years n; equal len(cash_flows) when both are supplied."
},
"method": {
"enum": [
"ecl_12m",
"ecl_lifetime",
"ecl_staged",
"provision_matrix",
"pd_from_spread",
"cumulative_pd",
"hazard",
"cva_dva"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"pd_12m": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "12-month PD in [0,1]."
},
"recovery": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Recovery rate in [0,1]."
},
"annual_pd": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annual PD in [0,1]."
},
"loss_rates": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Loss rate per ageing bucket."
},
"hazard_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Default hazard rate as a decimal."
},
"pd_lifetime": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Lifetime PD in [0,1]."
},
"tenor_years": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Tenor in years (>0)."
},
"credit_spread": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Credit spread over the risk-free rate (decimal)."
},
"discount_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax."
},
"exposure_profile": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Expected exposure per period."
},
"receivables_ageing": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Ageing buckets [{bucket, amount}]."
}
},
"additionalProperties": false
}| any |
| Periodic growth rate as a decimal (0.03 = 3%). |
| discount_rate | any | Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax. |
| exit_multiple | any | Exit multiple on the final flow, e.g. 8.0 for 8x. |
| probabilities | any | Cumulative success probability per period in [0,1], aligned with cash_flows. |
| lease_payments | any | Contractual lease payments in reporting currency, t=1..n. |
| final_cash_flow | any | Final-period cash flow for the terminal value. |
| perpetual_growth | any | Gordon growth rate (decimal); strictly below discount_rate. |
| pre_tax_discount_rate | any | Pre-tax discount rate (decimal), required by viu_pre_tax (IAS 36). |
| incremental_borrowing_rate | any | Lessee incremental borrowing rate (decimal), IFRS 16. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"dcf",
"npv",
"annuity",
"growing_annuity",
"perpetuity",
"terminal_gordon",
"terminal_multiple",
"viu_pre_tax",
"rnpv",
"lease_pv"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"payment": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Level periodic payment in reporting currency."
},
"periods": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of periods n (>=1)."
},
"cash_flows": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Projected cash flows in reporting currency, indexed t=1..n."
},
"growth_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Periodic growth rate as a decimal (0.03 = 3%)."
},
"discount_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax."
},
"exit_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exit multiple on the final flow, e.g. 8.0 for 8x."
},
"probabilities": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Cumulative success probability per period in [0,1], aligned with cash_flows."
},
"lease_payments": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Contractual lease payments in reporting currency, t=1..n."
},
"final_cash_flow": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Final-period cash flow for the terminal value."
},
"perpetual_growth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Gordon growth rate (decimal); strictly below discount_rate."
},
"pre_tax_discount_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Pre-tax discount rate (decimal), required by viu_pre_tax (IAS 36)."
},
"incremental_borrowing_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Lessee incremental borrowing rate (decimal), IFRS 16."
}
},
"additionalProperties": false
}| Marginal corporate tax rate as a decimal. |
| base_rate | any | Base rate before currency/country/ESG adjustment (decimal). |
| cost_debt | any | Pre-tax cost of debt as a decimal. |
| risk_free | any | Continuously-compounded risk-free rate (decimal). |
| cost_equity | any | Cost of equity as a decimal (0.12 = 12%). |
| debt_weight | any | Market-value weight of debt (decimal); with equity_weight must sum to 1. |
| tenor_years | any | Tenor in years (>0). |
| size_premium | any | Small-size premium (decimal). |
| us_risk_free | any | US Treasury risk-free yield (decimal). |
| credit_spread | any | Credit spread over the risk-free rate (decimal). |
| equity_weight | any | Market-value weight of equity (decimal); with debt_weight must sum to 1. |
| market_return | any | Expected market return (decimal). |
| sovereign_yield | any | Sovereign bond yield (decimal). |
| esg_risk_premium | any | ESG risk premium added to the base rate (decimal). |
| industry_premium | any | Industry risk premium (decimal). |
| specific_premium | any | Company-specific risk premium (decimal). |
| equity_risk_premium | any | Equity risk premium (decimal). |
| illiquidity_premium | any | Illiquidity premium (decimal). |
| market_risk_premium | any | Market risk premium (decimal). |
| country_risk_premium | any | Country risk premium (decimal). |
| currency_risk_premium | any | Currency risk premium (decimal). |
| esg_opportunity_discount | any | ESG opportunity discount subtracted from the base rate (decimal). |
{
"type": "object",
"required": [
"method"
],
"properties": {
"beta": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Equity beta (market = 1.0)."
},
"betas": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Asset/segment betas aligned with weights."
},
"method": {
"enum": [
"wacc",
"capm",
"startup_capm",
"build_up",
"currency_adjusted",
"country_risk",
"esg",
"portfolio_beta",
"ibr"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"weights": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Weights that must sum to 1."
},
"tax_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Marginal corporate tax rate as a decimal."
},
"base_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Base rate before currency/country/ESG adjustment (decimal)."
},
"cost_debt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Pre-tax cost of debt as a decimal."
},
"risk_free": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuously-compounded risk-free rate (decimal)."
},
"cost_equity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Cost of equity as a decimal (0.12 = 12%)."
},
"debt_weight": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Market-value weight of debt (decimal); with equity_weight must sum to 1."
},
"tenor_years": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Tenor in years (>0)."
},
"size_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Small-size premium (decimal)."
},
"us_risk_free": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "US Treasury risk-free yield (decimal)."
},
"credit_spread": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Credit spread over the risk-free rate (decimal)."
},
"equity_weight": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Market-value weight of equity (decimal); with debt_weight must sum to 1."
},
"market_return": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Expected market return (decimal)."
},
"sovereign_yield": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Sovereign bond yield (decimal)."
},
"esg_risk_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "ESG risk premium added to the base rate (decimal)."
},
"industry_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Industry risk premium (decimal)."
},
"specific_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Company-specific risk premium (decimal)."
},
"equity_risk_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Equity risk premium (decimal)."
},
"illiquidity_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Illiquidity premium (decimal)."
},
"market_risk_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Market risk premium (decimal)."
},
"country_risk_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Country risk premium (decimal)."
},
"currency_risk_premium": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Currency risk premium (decimal)."
},
"esg_opportunity_discount": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "ESG opportunity discount subtracted from the base rate (decimal)."
}
},
"additionalProperties": false
}| string |
| Formula to apply; the tool description lists the exact inputs each value requires. |
| outcomes | any | Outcome values aligned with probabilities. |
| estimates | any | Estimates [{method, central, low, high}] for a football field. |
| scenarios | any | Scenarios [{probability, value}] with probabilities summing to 1. |
| iterations | any | Monte-Carlo iterations (>=1000). |
| base_params | any | Base parameter values for simulation. |
| distribution | any | Continuous distribution to integrate over. |
| distributions | any | Input distributions [{parameter, type, mean, std}]. |
| probabilities | any | Cumulative success probability per period in [0,1], aligned with cash_flows. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"std": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Distribution standard deviation (>0)."
},
"mean": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Distribution mean."
},
"seed": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Deterministic RNG seed (required by simulation methods for reproducibility)."
},
"tree": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"default": null,
"description": "Decision tree with chance/decision nodes."
},
"lower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Lower integration bound."
},
"upper": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Upper integration bound."
},
"method": {
"enum": [
"discrete",
"continuous",
"scenario",
"monte_carlo",
"decision_tree",
"football_field"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"outcomes": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Outcome values aligned with probabilities."
},
"estimates": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Estimates [{method, central, low, high}] for a football field."
},
"scenarios": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Scenarios [{probability, value}] with probabilities summing to 1."
},
"iterations": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Monte-Carlo iterations (>=1000)."
},
"base_params": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"default": null,
"description": "Base parameter values for simulation."
},
"distribution": {
"anyOf": [
{
"enum": [
"normal",
"lognormal",
"uniform"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuous distribution to integrate over."
},
"distributions": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Input distributions [{parameter, type, mean, std}]."
},
"probabilities": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Cumulative success probability per period in [0,1], aligned with cash_flows."
}
},
"additionalProperties": false
}| restricted_period |
| any |
| Restricted/marketability period in years (>=0). |
| control_premium_pct | any | Control premium as a fraction of value. |
| transaction_cost_pct | any | Transaction cost as a fraction of value. |
| minority_discount_pct | any | Minority discount as a fraction of value. |
| alternative_use_values | any | Financially feasible alternative-use values. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"inputs": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Inputs [{value, level}] used to determine the hierarchy level."
},
"method": {
"enum": [
"dlom",
"dloc",
"control_premium",
"minority_discount",
"highest_best_use",
"hierarchy_level"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"risk_free": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuously-compounded risk-free rate (decimal)."
},
"base_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Base valuation before the adjustment."
},
"volatility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annualized volatility (decimal, 0.30 = 30%); > 0."
},
"restricted_period": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Restricted/marketability period in years (>=0)."
},
"control_premium_pct": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Control premium as a fraction of value."
},
"transaction_cost_pct": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Transaction cost as a fraction of value."
},
"minority_discount_pct": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minority discount as a fraction of value."
},
"alternative_use_values": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Financially feasible alternative-use values."
}
},
"additionalProperties": false
}| Dirty price of the instrument in reporting currency. |
| times | any | Cash-flow times in years, aligned with cash_flows. |
| years | any | Number of projection years n; equal len(cash_flows) when both are supplied. |
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| tenors | any | Tenors in years, aligned with par_rates or zero_rates. |
| frequency | any | Coupon payments per year (1=annual, 2=semi-annual). |
| par_rates | any | Par (coupon) rates per tenor, aligned with tenors (decimal). |
| cash_flows | any | Projected cash flows in reporting currency, indexed t=1..n. |
| zero_rates | any | Zero (spot) rates per tenor, decimal, annual compounding. |
| coupon_rate | any | Annual coupon rate (decimal). |
| target_tenor | any | Target tenor in years for matrix pricing (interpolated). |
| benchmark_tenors | any | Benchmark tenors in years, sorted, aligned with benchmark_yields. |
| benchmark_yields | any | Benchmark yields (decimal) at each benchmark tenor. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"t1": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Forward period start in years (>=0)."
},
"t2": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Forward period end in years (> t1)."
},
"ytm": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Yield to maturity (decimal, annualised)."
},
"face": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Bond face value."
},
"rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "A single interest/zero rate (decimal)."
},
"price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Dirty price of the instrument in reporting currency."
},
"times": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Cash-flow times in years, aligned with cash_flows."
},
"years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of projection years n; equal len(cash_flows) when both are supplied."
},
"method": {
"enum": [
"bond_price",
"bond_yield",
"duration",
"convexity",
"matrix_pricing",
"discount_factor",
"zero_curve",
"forward_rate",
"pv_curve"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"tenors": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Tenors in years, aligned with par_rates or zero_rates."
},
"frequency": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Coupon payments per year (1=annual, 2=semi-annual)."
},
"par_rates": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Par (coupon) rates per tenor, aligned with tenors (decimal)."
},
"cash_flows": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Projected cash flows in reporting currency, indexed t=1..n."
},
"zero_rates": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Zero (spot) rates per tenor, decimal, annual compounding."
},
"coupon_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annual coupon rate (decimal)."
},
"target_tenor": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Target tenor in years for matrix pricing (interpolated)."
},
"benchmark_tenors": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Benchmark tenors in years, sorted, aligned with benchmark_yields."
},
"benchmark_yields": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Benchmark yields (decimal) at each benchmark tenor."
}
},
"additionalProperties": false
}| string |
| Formula to apply; the tool description lists the exact inputs each value requires. |
| revenue | any | Base-year revenue in reporting currency. |
| maturity | any | Time to expiry in years (0.5 = six months); > 0. |
| net_debt | any | Total debt minus cash and equivalents. |
| risk_free | any | Continuously-compounded risk-free rate (decimal). |
| book_value | any | Book value of equity in reporting currency. |
| firm_value | any | Firm/asset value for the Merton equity model. |
| investment | any | Amount invested (VC method). |
| net_income | any | Net income in reporting currency. |
| ramp_years | any | Years to move from start_margin to target_margin (>=1). |
| trust_cash | any | SPAC trust cash available for redemption. |
| cost_equity | any | Cost of equity as a decimal (0.12 = 12%). |
| growth_rate | any | Periodic growth rate as a decimal (0.03 = 3%). |
| range_method | any | Statistic returned as the headline value; the full dispersion is always included. |
| start_margin | any | Opening operating margin (decimal, may be negative); margin_ramp. |
| discount_rate | any | Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax. |
| target_margin | any | Normalized margin reached after ramp_years; margin_ramp. |
| target_return | any | VC target return multiple. |
| terminal_value | any | Exit/terminal value (VC method). |
| firm_volatility | any | Asset volatility for the Merton equity model (decimal). |
| enterprise_value | any | Enterprise value distributed across claims. |
| redemption_price | any | SPAC redemption price per share. |
| shares_outstanding | any | Shares outstanding. |
| ev_revenue_multiple | any | EV/Revenue multiple. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"debt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Debt face value (default point) for the Merton equity model."
},
"years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of projection years n; equal len(cash_flows) when both are supplied."
},
"claims": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Ordered claims [{name, amount, priority}] for a waterfall."
},
"method": {
"enum": [
"margin_ramp_dcf",
"revenue_multiple",
"merton_equity",
"vc_method",
"distressed_waterfall",
"bank_residual_income",
"spac_deal"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Base-year revenue in reporting currency."
},
"maturity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Time to expiry in years (0.5 = six months); > 0."
},
"net_debt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total debt minus cash and equivalents."
},
"risk_free": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuously-compounded risk-free rate (decimal)."
},
"book_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Book value of equity in reporting currency."
},
"firm_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Firm/asset value for the Merton equity model."
},
"investment": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Amount invested (VC method)."
},
"net_income": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Net income in reporting currency."
},
"ramp_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Years to move from start_margin to target_margin (>=1)."
},
"trust_cash": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "SPAC trust cash available for redemption."
},
"cost_equity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Cost of equity as a decimal (0.12 = 12%)."
},
"growth_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Periodic growth rate as a decimal (0.03 = 3%)."
},
"range_method": {
"anyOf": [
{
"enum": [
"central",
"mean",
"median",
"downside",
"upside"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Statistic returned as the headline value; the full dispersion is always included."
},
"start_margin": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opening operating margin (decimal, may be negative); margin_ramp."
},
"discount_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax."
},
"target_margin": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Normalized margin reached after ramp_years; margin_ramp."
},
"target_return": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "VC target return multiple."
},
"terminal_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exit/terminal value (VC method)."
},
"firm_volatility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Asset volatility for the Merton equity model (decimal)."
},
"enterprise_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Enterprise value distributed across claims."
},
"redemption_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "SPAC redemption price per share."
},
"shares_outstanding": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Shares outstanding."
},
"ev_revenue_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "EV/Revenue multiple."
}
},
"additionalProperties": false
}| revenue |
| any |
| Base-year revenue in reporting currency. |
| cap_rate | any | Capitalisation rate as a decimal (0.06 = 6%). |
| intercept | any | Regression intercept (base multiple). |
| cost_equity | any | Cost of equity as a decimal (0.12 = 12%). |
| growth_rate | any | Periodic growth rate as a decimal (0.03 = 3%). |
| pb_multiple | any | Price/Book multiple. |
| pe_multiple | any | Price/Earnings multiple. |
| ps_multiple | any | Price/Sales multiple. |
| royalty_rate | any | Royalty rate as a decimal (0.05 = 5% of revenue). |
| discount_rate | any | Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax. |
| ev_arr_multiple | any | EV/ARR multiple. |
| ev_gmv_multiple | any | EV/GMV multiple. |
| market_maturity | any | Market maturity indicator. |
| sales_per_share | any | Sales per share. |
| dividend_per_share | any | Dividend per share in reporting currency. |
| ev_ebitda_multiple | any | EV/EBITDA multiple. |
| growth_coefficient | any | Regression slope on growth. |
| ev_revenue_multiple | any | EV/Revenue multiple. |
| book_value_per_share | any | Book value per share. |
| maturity_coefficient | any | Regression slope on market maturity. |
| net_operating_income | any | Stabilised net operating income in reporting currency. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"arr": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annual recurring revenue in reporting currency."
},
"eps": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Earnings per share."
},
"gmv": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Gross merchandise value in reporting currency."
},
"ebitda": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "EBITDA in reporting currency."
},
"method": {
"enum": [
"ev_revenue",
"ev_ebitda",
"ev_arr",
"ev_gmv",
"pe",
"pb",
"ps",
"cap_rate",
"regression",
"royalty_cap",
"ddm"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Base-year revenue in reporting currency."
},
"cap_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Capitalisation rate as a decimal (0.06 = 6%)."
},
"intercept": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Regression intercept (base multiple)."
},
"cost_equity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Cost of equity as a decimal (0.12 = 12%)."
},
"growth_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Periodic growth rate as a decimal (0.03 = 3%)."
},
"pb_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Price/Book multiple."
},
"pe_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Price/Earnings multiple."
},
"ps_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Price/Sales multiple."
},
"royalty_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Royalty rate as a decimal (0.05 = 5% of revenue)."
},
"discount_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax."
},
"ev_arr_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "EV/ARR multiple."
},
"ev_gmv_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "EV/GMV multiple."
},
"market_maturity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Market maturity indicator."
},
"sales_per_share": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Sales per share."
},
"dividend_per_share": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Dividend per share in reporting currency."
},
"ev_ebitda_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "EV/EBITDA multiple."
},
"growth_coefficient": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Regression slope on growth."
},
"ev_revenue_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "EV/Revenue multiple."
},
"book_value_per_share": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Book value per share."
},
"maturity_coefficient": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Regression slope on market maturity."
},
"net_operating_income": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Stabilised net operating income in reporting currency."
}
},
"additionalProperties": false
}| any |
| Fixed payout when the range condition is met. |
| strike | any | Strike or exercise price in the same currency as spot. |
| barrier | any | Knock level for barrier_first_passage. |
| forward | any | Forward/futures price of the underlying. |
| maturity | any | Time to expiry in years (0.5 = six months); > 0. |
| risk_free | any | Continuously-compounded risk-free rate (decimal). |
| volatility | any | Annualized volatility (decimal, 0.30 = 30%); > 0. |
| cash_payout | any | Fixed cash amount paid when the digital condition is met. |
| option_type | any | Option right. |
| share_price | any | Grant-date share price (IFRS 2). |
| average_type | any | Averaging convention. |
| barrier_type | any | Barrier direction. |
| foreign_rate | any | Foreign continuously-compounded rate (decimal). |
| lower_strike | any | Lower strike of the range. |
| upper_strike | any | Upper strike of the range. |
| domestic_rate | any | Domestic continuously-compounded rate (decimal). |
| expected_life | any | Expected life of the award in years (IFRS 2). |
| dividend_yield | any | Continuous dividend yield (decimal). |
| exercise_price | any | Exercise price of the award (IFRS 2). |
{
"type": "object",
"required": [
"method"
],
"properties": {
"spot": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Spot price of the underlying (or FX rate for garman_kohlhagen)."
},
"steps": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Lattice steps for binomial_american (>=50)."
},
"method": {
"enum": [
"black_scholes",
"black76",
"binomial_american",
"garman_kohlhagen",
"barrier_first_passage",
"asian_average",
"digital",
"range",
"share_based"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"payout": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Fixed payout when the range condition is met."
},
"strike": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Strike or exercise price in the same currency as spot."
},
"barrier": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Knock level for barrier_first_passage."
},
"forward": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Forward/futures price of the underlying."
},
"maturity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Time to expiry in years (0.5 = six months); > 0."
},
"risk_free": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuously-compounded risk-free rate (decimal)."
},
"volatility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annualized volatility (decimal, 0.30 = 30%); > 0."
},
"cash_payout": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Fixed cash amount paid when the digital condition is met."
},
"option_type": {
"anyOf": [
{
"enum": [
"call",
"put"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Option right."
},
"share_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Grant-date share price (IFRS 2)."
},
"average_type": {
"anyOf": [
{
"enum": [
"arithmetic",
"geometric"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Averaging convention."
},
"barrier_type": {
"anyOf": [
{
"enum": [
"knock_in",
"knock_out"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Barrier direction."
},
"foreign_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Foreign continuously-compounded rate (decimal)."
},
"lower_strike": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Lower strike of the range."
},
"upper_strike": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Upper strike of the range."
},
"domestic_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Domestic continuously-compounded rate (decimal)."
},
"expected_life": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Expected life of the award in years (IFRS 2)."
},
"dividend_yield": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuous dividend yield (decimal)."
},
"exercise_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exercise price of the award (IFRS 2)."
}
},
"additionalProperties": false
}| Net operating income of the property (IAS 40). |
| roe | any | Return on equity (decimal). |
| claims | any | Ordered claims [{name, amount, priority}] for a waterfall. |
| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| mark_up | any | Reasonable mark-up on fulfilment costs (decimal, IVS 220 Bottom-Up). |
| periods | any | Number of periods n (>=1). |
| revenue | any | Base-year revenue in reporting currency. |
| cap_rate | any | Capitalisation rate as a decimal (0.06 = 6%). |
| net_debt | any | Total debt minus cash and equivalents. |
| quantity | any | Number of units (biological assets). |
| segments | any | Segments [{name, value}] for a sum-of-the-parts. |
| book_value | any | Book value of equity in reporting currency. |
| cash_flows | any | Projected cash flows in reporting currency, indexed t=1..n. |
| net_income | any | Net income in reporting currency. |
| trust_cash | any | SPAC trust cash available for redemption. |
| cost_equity | any | Cost of equity as a decimal (0.12 = 12%). |
| growth_rate | any | Periodic growth rate as a decimal (0.03 = 3%). |
| royalty_rate | any | Royalty rate as a decimal (0.05 = 5% of revenue). |
| value_in_use | any | Value in use in reporting currency. |
| costs_to_sell | any | Incremental costs to sell / dispose (IAS 41). |
| discount_rate | any | Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax. |
| selling_price | any | Estimated selling price of the finished inventory (IVS 230 top-down). |
| carrying_value | any | Carrying amount before the test. |
| expected_price | any | Expected market price per biological-asset unit (IAS 41). |
| purchase_price | any | Consideration transferred in reporting currency. |
| with_cash_flows | any | After-tax cash flows with the asset in use (IVS 210 with-and-without). |
| developer_profit | any | Required developer's profit/risk allowance (IVS 410). |
| enterprise_value | any | Enterprise value distributed across claims. |
| fulfilment_costs | any | Costs required to fulfil the performance obligation per period (IVS 220 Bottom-Up). |
| holding_discount | any | Holding-company discount as a decimal. |
| profit_allowance | any | Estimated profit allowance on the completion/disposal effort. |
| redemption_price | any | SPAC redemption price per share. |
| replacement_cost | any | Depreciated-replacement-cost gross value of PP&E (IAS 16). |
| costs_to_complete | any | Remaining costs to complete work-in-process inventory (IVS 230). |
| development_costs | any | All known/anticipated costs to complete the development. |
| shares_outstanding | any | Shares outstanding. |
| tangible_assets_fv | any | Fair value of tangible assets. |
| without_cash_flows | any | After-tax cash flows absent the asset (IVS 210 with-and-without), aligned with with_cash_flows. |
| contributory_charges | any | Contributory-asset charges (economic rent) per period, aligned with cash_flows (IVS 210 MPEEM). |
| net_realisable_value | any | Estimated NRV in reporting currency. |
| gross_development_value | any | Anticipated value of the completed development (IVS 410 residual method). |
| accumulated_depreciation | any | Accumulated depreciation to deduct (IAS 16). |
| identified_intangibles_fv | any | Fair value of separately identified intangibles. |
| fair_value_less_costs_to_sell | any | FV less costs to sell in reporting currency. |
| fair_value_less_costs_to_dispose | any | FVLCD in reporting currency. |
| fair_value_net_identifiable_assets | any | Fair value of net identifiable assets. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"noi": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Net operating income of the property (IAS 40)."
},
"roe": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Return on equity (decimal)."
},
"claims": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Ordered claims [{name, amount, priority}] for a waterfall."
},
"method": {
"enum": [
"goodwill",
"ppa",
"impairment_fvlcd",
"impairment_viu",
"inventory_nrv",
"held_for_sale",
"debt_waterfall",
"cap_table",
"sotp",
"spac_redemption",
"investment_property",
"ppe_revaluation",
"biological_asset",
"residual_income",
"justified_pb",
"relief_from_royalty",
"mpeem",
"with_without",
"recoverable_amount",
"liability_fulfilment",
"inventory_residual",
"development_residual"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"mark_up": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Reasonable mark-up on fulfilment costs (decimal, IVS 220 Bottom-Up)."
},
"periods": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of periods n (>=1)."
},
"revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Base-year revenue in reporting currency."
},
"cap_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Capitalisation rate as a decimal (0.06 = 6%)."
},
"net_debt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total debt minus cash and equivalents."
},
"quantity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of units (biological assets)."
},
"segments": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Segments [{name, value}] for a sum-of-the-parts."
},
"book_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Book value of equity in reporting currency."
},
"cash_flows": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Projected cash flows in reporting currency, indexed t=1..n."
},
"net_income": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Net income in reporting currency."
},
"trust_cash": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "SPAC trust cash available for redemption."
},
"cost_equity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Cost of equity as a decimal (0.12 = 12%)."
},
"growth_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Periodic growth rate as a decimal (0.03 = 3%)."
},
"royalty_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Royalty rate as a decimal (0.05 = 5% of revenue)."
},
"value_in_use": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Value in use in reporting currency."
},
"costs_to_sell": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Incremental costs to sell / dispose (IAS 41)."
},
"discount_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Discount rate as a decimal (0.10 = 10%); pre-tax when method=viu_pre_tax."
},
"selling_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Estimated selling price of the finished inventory (IVS 230 top-down)."
},
"carrying_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Carrying amount before the test."
},
"expected_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Expected market price per biological-asset unit (IAS 41)."
},
"purchase_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Consideration transferred in reporting currency."
},
"with_cash_flows": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "After-tax cash flows with the asset in use (IVS 210 with-and-without)."
},
"developer_profit": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Required developer's profit/risk allowance (IVS 410)."
},
"enterprise_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Enterprise value distributed across claims."
},
"fulfilment_costs": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Costs required to fulfil the performance obligation per period (IVS 220 Bottom-Up)."
},
"holding_discount": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Holding-company discount as a decimal."
},
"profit_allowance": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Estimated profit allowance on the completion/disposal effort."
},
"redemption_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "SPAC redemption price per share."
},
"replacement_cost": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Depreciated-replacement-cost gross value of PP&E (IAS 16)."
},
"costs_to_complete": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Remaining costs to complete work-in-process inventory (IVS 230)."
},
"development_costs": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "All known/anticipated costs to complete the development."
},
"shares_outstanding": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Shares outstanding."
},
"tangible_assets_fv": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Fair value of tangible assets."
},
"without_cash_flows": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "After-tax cash flows absent the asset (IVS 210 with-and-without), aligned with with_cash_flows."
},
"contributory_charges": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Contributory-asset charges (economic rent) per period, aligned with cash_flows (IVS 210 MPEEM)."
},
"net_realisable_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Estimated NRV in reporting currency."
},
"gross_development_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Anticipated value of the completed development (IVS 410 residual method)."
},
"accumulated_depreciation": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Accumulated depreciation to deduct (IAS 16)."
},
"identified_intangibles_fv": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Fair value of separately identified intangibles."
},
"fair_value_less_costs_to_sell": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "FV less costs to sell in reporting currency."
},
"fair_value_less_costs_to_dispose": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "FVLCD in reporting currency."
},
"fair_value_net_identifiable_assets": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Fair value of net identifiable assets."
}
},
"additionalProperties": false
}| method* | string | Formula to apply; the tool description lists the exact inputs each value requires. |
| supply | any | Token supply. |
| revenue | any | Base-year revenue in reporting currency. |
| velocity | any | Token velocity. |
| churn_rate | any | Periodic churn rate as a decimal. |
| market_cap | any | Market capitalisation. |
| coefficient | any | Scaling coefficient (Metcalfe). |
| fixed_costs | any | Period fixed costs. |
| growth_rate | any | Periodic growth rate as a decimal (0.03 = 3%). |
| market_size | any | Total addressable market in reporting currency. |
| net_new_arr | any | Net new ARR in the period. |
| gross_margin | any | Gross margin as a decimal (0.80 = 80%). |
| market_share | any | Achievable market share as a decimal. |
| price_per_tx | any | Value per transaction. |
| trl_discount | any | Technology-readiness risk discount as a decimal. |
| exit_multiple | any | Exit multiple on the final flow, e.g. 8.0 for 8x. |
| new_customers | any | Customers acquired in the period. |
| profit_margin | any | Profit margin as a decimal. |
| variable_cost | any | Variable cost per unit. |
| ending_revenue | any | Revenue from the cohort at period end. |
| ev_gmv_multiple | any | EV/GMV multiple. |
| starting_revenue | any | Revenue from the cohort at period start. |
| expansion_revenue | any | Expansion revenue from the cohort. |
| retained_customers | any | Customers retained at period end. |
| starting_customers | any | Customers at period start. |
| transaction_volume | any | Transaction volume for the period. |
| subscription_values | any | Subscription revenue per customer. |
| sales_marketing_expense | any | Sales and marketing spend for the period. |
| sales_marketing_expense_prior | any | Prior-period sales and marketing spend. |
{
"type": "object",
"required": [
"method"
],
"properties": {
"n": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Node/participant count n (>=0)."
},
"asp": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Average selling price per unit."
},
"gmv": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Gross merchandise value in reporting currency."
},
"arpu": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Average revenue per user per period."
},
"margin": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Operating margin as a decimal."
},
"method": {
"enum": [
"ltv",
"cac",
"arr",
"nrr",
"magic_number",
"rule_of_40",
"take_rate",
"gmv_multiple",
"retention",
"trl",
"break_even",
"gross_margin",
"token",
"nvt",
"metcalfe"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"supply": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Token supply."
},
"revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Base-year revenue in reporting currency."
},
"velocity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Token velocity."
},
"churn_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Periodic churn rate as a decimal."
},
"market_cap": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Market capitalisation."
},
"coefficient": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Scaling coefficient (Metcalfe)."
},
"fixed_costs": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Period fixed costs."
},
"growth_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Periodic growth rate as a decimal (0.03 = 3%)."
},
"market_size": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total addressable market in reporting currency."
},
"net_new_arr": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Net new ARR in the period."
},
"gross_margin": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Gross margin as a decimal (0.80 = 80%)."
},
"market_share": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Achievable market share as a decimal."
},
"price_per_tx": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Value per transaction."
},
"trl_discount": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Technology-readiness risk discount as a decimal."
},
"exit_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exit multiple on the final flow, e.g. 8.0 for 8x."
},
"new_customers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Customers acquired in the period."
},
"profit_margin": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Profit margin as a decimal."
},
"variable_cost": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Variable cost per unit."
},
"ending_revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Revenue from the cohort at period end."
},
"ev_gmv_multiple": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "EV/GMV multiple."
},
"starting_revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Revenue from the cohort at period start."
},
"expansion_revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Expansion revenue from the cohort."
},
"retained_customers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Customers retained at period end."
},
"starting_customers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Customers at period start."
},
"transaction_volume": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Transaction volume for the period."
},
"subscription_values": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Subscription revenue per customer."
},
"sales_marketing_expense": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Sales and marketing spend for the period."
},
"sales_marketing_expense_prior": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Prior-period sales and marketing spend."
}
},
"additionalProperties": false
}| payout | any | Fixed payout when the range condition is met. |
| strike | any | Strike or exercise price in the same currency as spot. |
| barrier | any | Knock level for barrier_first_passage. |
| maturity | any | Time to expiry in years (0.5 = six months); > 0. |
| notional | any | Contract notional/face amount in reporting currency. |
| recovery | any | Recovery rate in [0,1]. |
| risk_free | any | Continuously-compounded risk-free rate (decimal). |
| call_price | any | CBBC call price (mandatory-call trigger level). |
| volatility | any | Annualized volatility (decimal, 0.30 = 30%); > 0. |
| coupon_rate | any | Annual coupon rate (decimal). |
| entitlement | any | CBBC entitlement: units of underlying per contract. |
| fixing_days | any | Number of closing fixings averaged for settlement (>=1). |
| option_type | any | Option right. |
| average_type | any | Averaging convention. |
| barrier_type | any | Barrier direction. |
| lower_strike | any | Lower strike of the range. |
| upper_strike | any | Upper strike of the range. |
| credit_spread | any | Credit spread over the risk-free rate (decimal). |
| dividend_yield | any | Continuous dividend yield (decimal). |
| knock_out_level | any | Knock-out level for autocallables and accumulators. |
| observation_dates | any | Observation dates in years for path-dependent products. |
| coupon_rate_structured | any | Conditional coupon rate (decimal). |
{
"type": "object",
"required": [
"method"
],
"properties": {
"spot": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Spot price of the underlying (or FX rate for garman_kohlhagen)."
},
"method": {
"enum": [
"cbbc",
"cbbc_residual",
"derivative_warrant",
"inline_warrant",
"inline_warrant_avg",
"eli",
"eln",
"autocallable",
"credit_linked_note",
"accumulator",
"decumulator",
"trs",
"cfd"
],
"type": "string",
"description": "Formula to apply; the tool description lists the exact inputs each value requires."
},
"payout": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Fixed payout when the range condition is met."
},
"strike": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Strike or exercise price in the same currency as spot."
},
"barrier": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Knock level for barrier_first_passage."
},
"maturity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Time to expiry in years (0.5 = six months); > 0."
},
"notional": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Contract notional/face amount in reporting currency."
},
"recovery": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Recovery rate in [0,1]."
},
"risk_free": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuously-compounded risk-free rate (decimal)."
},
"call_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "CBBC call price (mandatory-call trigger level)."
},
"volatility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annualized volatility (decimal, 0.30 = 30%); > 0."
},
"coupon_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Annual coupon rate (decimal)."
},
"entitlement": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "CBBC entitlement: units of underlying per contract."
},
"fixing_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of closing fixings averaged for settlement (>=1)."
},
"option_type": {
"anyOf": [
{
"enum": [
"call",
"put"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Option right."
},
"average_type": {
"anyOf": [
{
"enum": [
"arithmetic",
"geometric"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Averaging convention."
},
"barrier_type": {
"anyOf": [
{
"enum": [
"knock_in",
"knock_out"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Barrier direction."
},
"lower_strike": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Lower strike of the range."
},
"upper_strike": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Upper strike of the range."
},
"credit_spread": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Credit spread over the risk-free rate (decimal)."
},
"dividend_yield": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Continuous dividend yield (decimal)."
},
"knock_out_level": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Knock-out level for autocallables and accumulators."
},
"observation_dates": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"default": null,
"description": "Observation dates in years for path-dependent products."
},
"coupon_rate_structured": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Conditional coupon rate (decimal)."
}
},
"additionalProperties": false
}