Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted 2 min ago
teppi

Server definition

Hash
sha256:641e7232f5e03018e3b60e34a5d851c9b6783e2cc919a3b5f15f129f3a9824cf
What it is
What a remote MCP server returned when asked what it offers: 16 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "acquisition_cash_flows": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Acquisition cash flows in reporting currency." }, "attribution_years": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Years of service for attribution (>=1)." }, "cash_flows": { "anyOf": [ { "items": {}, "type": "array" }, { "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." }, "coverage_periods": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Coverage periods for the PAA (>=1)." }, "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." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "ifrs17_gmm", "ifrs17_paa", "ifrs17_vfa", "ias19_puc", "ias37_provision" ], "type": "string" }, "outcomes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Outcome values aligned with probabilities." }, "periods": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Number of periods n (>=1)." }, "premiums": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Premiums in reporting currency." }, "probabilities": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Cumulative success probability per period in [0,1], aligned with cash_flows." }, "projected_benefits": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Projected benefits per service year." }, "risk_adjustment": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Explicit risk adjustment for non-financial risk." }, "underlying_items_return": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Return on underlying items (decimal)." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_actuarial_pv", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "Company-summary engine. Return a company profile with live market metrics (price, shares, beta, volatility, market capitalisation) to seed valuation inputs. Use this to seed inputs for the other calculate_* tools; it does not compute a valuation itself, and it omits missing fields rather than inventing them. Supplying a ticker performs a network fetch Methods: profile: ticker. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "method": { "const": "profile", "description": "Formula to apply; each value lists its own required inputs in the description.", "type": "string" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Equity ticker, e.g. '9988.HK'." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_company_summary", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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 HK-listed convertible and exchangeable bonds 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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "call_schedule": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Issuer call schedule [{date_years, price}]; pass [] when there is none." }, "conversion_ratio": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Shares received per bond on conversion." }, "coupon_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annual coupon rate (decimal)." }, "credit_spread": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Credit spread over the risk-free rate (decimal)." }, "face": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Bond face value." }, "maturity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Time to expiry in years (0.5 = six months); > 0." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "lattice_tsf", "lattice_intensity", "finite_difference", "lsmc", "quantlib" ], "type": "string" }, "put_schedule": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Investor put schedule [{date_years, price}]; pass [] when there is none." }, "rights_priority": { "anyOf": [ { "enum": [ "holder", "issuer" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Which right prevails when call and put coincide." }, "risk_free": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Continuously-compounded risk-free rate (decimal)." }, "spot": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Spot price of the underlying (or FX rate for garman_kohlhagen)." }, "volatility": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annualized volatility (decimal, 0.30 = 30%); > 0." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_convertible_bond", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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. 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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "annual_pd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annual PD in [0,1]." }, "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." }, "ead": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Exposure at default in currency units." }, "exposure_profile": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Expected exposure per period." }, "hazard_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Default hazard rate as a decimal." }, "lgd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Loss given default in [0,1] (1 - recovery rate)." }, "loss_rates": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Loss rate per ageing bucket." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "ecl_12m", "ecl_lifetime", "ecl_staged", "provision_matrix", "pd_from_spread", "cumulative_pd", "hazard", "cva_dva" ], "type": "string" }, "pd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Probability of default over the horizon, in [0,1]." }, "pd_12m": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "12-month PD in [0,1]." }, "pd_lifetime": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Lifetime PD in [0,1]." }, "receivables_ageing": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Ageing buckets [{bucket, amount}]." }, "recovery": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Recovery rate in [0,1]." }, "stage": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "IFRS 9 stage (1, 2 or 3)." }, "tenor_years": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Tenor in years (>0)." }, "years": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Number of projection years n; equal len(cash_flows) when both are supplied." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_credit_loss", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "cash_flows": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Projected cash flows in reporting currency, indexed t=1..n." }, "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." }, "final_cash_flow": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Final-period cash flow for the terminal value." }, "growth_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Periodic growth rate as a decimal (0.03 = 3%)." }, "incremental_borrowing_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Lessee incremental borrowing rate (decimal), IFRS 16." }, "lease_payments": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Contractual lease payments in reporting currency, t=1..n." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "dcf", "npv", "annuity", "growing_annuity", "perpetuity", "terminal_gordon", "terminal_multiple", "viu_pre_tax", "rnpv", "lease_pv" ], "type": "string" }, "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)." }, "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)." }, "probabilities": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Cumulative success probability per period in [0,1], aligned with cash_flows." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_dcf", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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 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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "base_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Base rate before currency/country/ESG adjustment (decimal)." }, "beta": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Equity beta (market = 1.0)." }, "betas": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Asset/segment betas aligned with weights." }, "cost_debt": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Pre-tax cost of debt as a decimal." }, "cost_equity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Cost of equity as a decimal (0.12 = 12%)." }, "country_risk_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Country risk premium (decimal)." }, "credit_spread": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Credit spread over the risk-free rate (decimal)." }, "currency_risk_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Currency risk premium (decimal)." }, "debt_weight": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Market-value weight of debt (decimal); with equity_weight must sum to 1." }, "equity_risk_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Equity risk premium (decimal)." }, "equity_weight": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Market-value weight of equity (decimal); with debt_weight must sum to 1." }, "esg_opportunity_discount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "ESG opportunity discount subtracted from the base rate (decimal)." }, "esg_risk_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "ESG risk premium added to the base rate (decimal)." }, "illiquidity_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Illiquidity premium (decimal)." }, "industry_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Industry risk premium (decimal)." }, "market_return": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Expected market return (decimal)." }, "market_risk_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Market risk premium (decimal)." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "wacc", "capm", "startup_capm", "build_up", "currency_adjusted", "country_risk", "esg", "portfolio_beta", "ibr" ], "type": "string" }, "risk_free": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Continuously-compounded risk-free rate (decimal)." }, "size_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Small-size premium (decimal)." }, "sovereign_yield": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Sovereign bond yield (decimal)." }, "specific_premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Company-specific risk premium (decimal)." }, "tax_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Marginal corporate tax rate as a decimal." }, "tenor_years": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Tenor in years (>0)." }, "us_risk_free": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "US Treasury risk-free yield (decimal)." }, "weights": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Weights that must sum to 1." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_discount_rate", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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; decision_tree: tree; football_field: estimates. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "base_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "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": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Input distributions [{parameter, type, mean, std}]." }, "estimates": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Estimates [{method, central, low, high}] for a football field." }, "iterations": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Monte-Carlo iterations (>=1000)." }, "lower": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Lower integration bound." }, "mean": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Distribution mean." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "discrete", "continuous", "scenario", "monte_carlo", "decision_tree", "football_field" ], "type": "string" }, "outcomes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Outcome values aligned with probabilities." }, "probabilities": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Cumulative success probability per period in [0,1], aligned with cash_flows." }, "scenarios": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Scenarios [{probability, value}] with probabilities summing to 1." }, "std": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Distribution standard deviation (>0)." }, "tree": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "description": "Decision tree with chance/decision nodes." }, "upper": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Upper integration bound." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_expected_value", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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 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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "alternative_use_values": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Financially feasible alternative-use values." }, "base_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Base valuation before the adjustment." }, "control_premium_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Control premium as a fraction of value." }, "inputs": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Inputs [{value, level}] used to determine the hierarchy level." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "dlom", "dloc", "control_premium", "minority_discount", "highest_best_use", "hierarchy_level" ], "type": "string" }, "minority_discount_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Minority discount as a fraction of value." }, "restricted_period": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Restricted/marketability period in years (>=0)." }, "risk_free": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Continuously-compounded risk-free rate (decimal)." }, "transaction_cost_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transaction cost as a fraction of value." }, "volatility": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annualized volatility (decimal, 0.30 = 30%); > 0." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_fair_value_adjustment", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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; 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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "cash_flows": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Projected cash flows in reporting currency, indexed t=1..n." }, "coupon_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annual coupon rate (decimal)." }, "face": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Bond face value." }, "frequency": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Coupon payments per year (1=annual, 2=semi-annual)." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "bond_price", "bond_yield", "duration", "convexity", "discount_factor", "zero_curve", "forward_rate", "pv_curve" ], "type": "string" }, "par_rates": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Par (coupon) rates per tenor, aligned with tenors (decimal)." }, "price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Dirty price of the instrument in reporting currency." }, "rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "A single interest/zero rate (decimal)." }, "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)." }, "tenors": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Tenors in years, aligned with par_rates or zero_rates." }, "times": { "anyOf": [ { "items": {}, "type": "array" }, { "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." }, "ytm": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Yield to maturity (decimal, annualised)." }, "zero_rates": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Zero (spot) rates per tenor, decimal, annual compounding." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_fixed_income", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "book_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Book value of equity in reporting currency." }, "claims": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Ordered claims [{name, amount, priority}] for a waterfall." }, "cost_equity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Cost of equity as a decimal (0.12 = 12%)." }, "debt": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Debt face value (default point) for the Merton equity model." }, "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." }, "enterprise_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Enterprise value distributed across claims." }, "ev_revenue_multiple": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "EV/Revenue multiple." }, "firm_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Firm/asset value for the Merton equity model." }, "firm_volatility": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Asset volatility for the Merton equity model (decimal)." }, "growth_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Periodic growth rate as a decimal (0.03 = 3%)." }, "investment": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Amount invested (VC method)." }, "maturity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Time to expiry in years (0.5 = six months); > 0." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "margin_ramp_dcf", "revenue_multiple", "merton_equity", "vc_method", "distressed_waterfall", "bank_residual_income", "spac_deal" ], "type": "string" }, "net_debt": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Total debt minus cash and equivalents." }, "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)." }, "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." }, "redemption_price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "SPAC redemption price per share." }, "revenue": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Base-year revenue in reporting currency." }, "risk_free": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Continuously-compounded risk-free rate (decimal)." }, "shares_outstanding": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Shares outstanding." }, "start_margin": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Opening operating margin (decimal, may be negative); margin_ramp." }, "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)." }, "trust_cash": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "SPAC trust cash available for redemption." }, "years": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Number of projection years n; equal len(cash_flows) when both are supplied." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_loss_making_company", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "arr": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annual recurring revenue in reporting currency." }, "book_value_per_share": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Book value per share." }, "cap_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Capitalisation rate as a decimal (0.06 = 6%)." }, "cost_equity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Cost of equity as a decimal (0.12 = 12%)." }, "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." }, "dividend_per_share": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Dividend per share in reporting currency." }, "ebitda": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "EBITDA in reporting currency." }, "eps": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Earnings per share." }, "ev_arr_multiple": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "EV/ARR multiple." }, "ev_ebitda_multiple": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "EV/EBITDA multiple." }, "ev_gmv_multiple": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "EV/GMV multiple." }, "ev_revenue_multiple": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "EV/Revenue multiple." }, "gmv": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Gross merchandise value in reporting currency." }, "growth_coefficient": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Regression slope on growth." }, "growth_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Periodic growth rate as a decimal (0.03 = 3%)." }, "intercept": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Regression intercept (base multiple)." }, "market_maturity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Market maturity indicator." }, "maturity_coefficient": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Regression slope on market maturity." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "ev_revenue", "ev_ebitda", "ev_arr", "ev_gmv", "pe", "pb", "ps", "cap_rate", "regression", "royalty_cap", "ddm" ], "type": "string" }, "net_operating_income": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Stabilised net operating income in reporting currency." }, "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." }, "revenue": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Base-year revenue in reporting currency." }, "royalty_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Royalty rate as a decimal (0.05 = 5% of revenue)." }, "sales_per_share": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Sales per share." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_market_multiple", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "average_type": { "anyOf": [ { "enum": [ "arithmetic", "geometric" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Averaging convention." }, "barrier": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Knock level for barrier_first_passage." }, "barrier_type": { "anyOf": [ { "enum": [ "knock_in", "knock_out" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Barrier direction." }, "cash_payout": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Fixed cash amount paid when the digital condition is met." }, "dividend_yield": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Continuous dividend yield (decimal)." }, "domestic_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Domestic continuously-compounded rate (decimal)." }, "exercise_price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Exercise price of the award (IFRS 2)." }, "expected_life": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Expected life of the award in years (IFRS 2)." }, "foreign_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Foreign continuously-compounded rate (decimal)." }, "forward": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Forward/futures price of the underlying." }, "lower_strike": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Lower strike of the range." }, "maturity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Time to expiry in years (0.5 = six months); > 0." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "black_scholes", "black76", "binomial_american", "garman_kohlhagen", "barrier_first_passage", "asian_average", "digital", "range", "share_based" ], "type": "string" }, "option_type": { "anyOf": [ { "enum": [ "call", "put" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Option right." }, "payout": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Fixed payout when the range condition is met." }, "risk_free": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Continuously-compounded risk-free rate (decimal)." }, "share_price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Grant-date share price (IFRS 2)." }, "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)." }, "strike": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Strike or exercise price in the same currency as spot." }, "upper_strike": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Upper strike of the range." }, "volatility": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annualized volatility (decimal, 0.30 = 30%); > 0." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_option", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "Report-review engine. Audit a valuation document against an IVS 2025 and IFRS/HKFRS checklist: methodology, assumptions, discount rate, standards basis, fair-value conclusion, valuation date, and fair-value hierarchy, each mapped to the governing standard. Macro-enabled files are refused Methods: audit: file_path; draft: report_type. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "file_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Path to the report (.xlsx/.xls/.pdf/.docx/image)." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "audit", "draft" ], "type": "string" }, "report_type": { "anyOf": [ { "enum": [ "dcf", "market", "credit", "report_review" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Valuation report type to draft a structure for." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_report_review", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "accumulated_depreciation": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Accumulated depreciation to deduct (IAS 16)." }, "book_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Book value of equity in reporting currency." }, "cap_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Capitalisation rate as a decimal (0.06 = 6%)." }, "carrying_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Carrying amount before the test." }, "claims": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Ordered claims [{name, amount, priority}] for a waterfall." }, "cost_equity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Cost of equity as a decimal (0.12 = 12%)." }, "costs_to_sell": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Incremental costs to sell / dispose (IAS 41)." }, "enterprise_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Enterprise value distributed across claims." }, "expected_price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Expected market price per biological-asset unit (IAS 41)." }, "fair_value_less_costs_to_dispose": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "FVLCD in reporting currency." }, "fair_value_less_costs_to_sell": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "FV less costs to sell in reporting currency." }, "fair_value_net_identifiable_assets": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Fair value of net identifiable assets." }, "growth_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Periodic growth rate as a decimal (0.03 = 3%)." }, "holding_discount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Holding-company discount as a decimal." }, "identified_intangibles_fv": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Fair value of separately identified intangibles." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "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" ], "type": "string" }, "net_debt": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Total debt minus cash and equivalents." }, "net_income": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Net income in reporting currency." }, "net_realisable_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Estimated NRV in reporting currency." }, "noi": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Net operating income of the property (IAS 40)." }, "purchase_price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Consideration transferred in reporting currency." }, "quantity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Number of units (biological assets)." }, "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)." }, "roe": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Return on equity (decimal)." }, "segments": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Segments [{name, value}] for a sum-of-the-parts." }, "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." }, "trust_cash": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "SPAC trust cash available for redemption." }, "value_in_use": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Value in use in reporting currency." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_residual", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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). Use these as inputs to a multiple or 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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "arpu": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Average revenue per user per period." }, "asp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Average selling price per unit." }, "churn_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Periodic churn rate as a decimal." }, "coefficient": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Scaling coefficient (Metcalfe)." }, "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." }, "exit_multiple": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Exit multiple on the final flow, e.g. 8.0 for 8x." }, "expansion_revenue": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Expansion revenue from the cohort." }, "fixed_costs": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Period fixed costs." }, "gmv": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Gross merchandise value in reporting currency." }, "gross_margin": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Gross margin as a decimal (0.80 = 80%)." }, "growth_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Periodic growth rate as a decimal (0.03 = 3%)." }, "margin": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Operating margin as a decimal." }, "market_cap": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Market capitalisation." }, "market_share": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Achievable market share as a decimal." }, "market_size": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Total addressable market in reporting currency." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "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" }, "n": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Node/participant count n (>=0)." }, "net_new_arr": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Net new ARR in the period." }, "new_customers": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Customers acquired in the period." }, "price_per_tx": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Value per transaction." }, "profit_margin": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Profit margin as a decimal." }, "retained_customers": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Customers retained at period end." }, "revenue": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Base-year revenue in reporting currency." }, "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." }, "starting_customers": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Customers at period start." }, "starting_revenue": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Revenue from the cohort at period start." }, "subscription_values": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Subscription revenue per customer." }, "supply": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Token supply." }, "transaction_volume": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transaction volume for the period." }, "trl_discount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Technology-readiness risk discount as a decimal." }, "variable_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Variable cost per unit." }, "velocity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Token velocity." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_sector_metrics", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } }, { "description": "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. 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. Read-only and deterministic: it performs no network I/O (except calculate_company_summary's ticker fetch), mutates no state, and returns the same result for the same inputs. Each method requires its exact inputs (no defaults), so a missing input, an unknown method, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising. The result envelope carries status, method, value, assumptions, formula_ref, data_timestamp, steps and error.", "inputSchema": { "additionalProperties": false, "properties": { "average_type": { "anyOf": [ { "enum": [ "arithmetic", "geometric" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Averaging convention." }, "barrier": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Knock level for barrier_first_passage." }, "barrier_type": { "anyOf": [ { "enum": [ "knock_in", "knock_out" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Barrier direction." }, "call_price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "CBBC call price (mandatory-call trigger level)." }, "coupon_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annual coupon rate (decimal)." }, "coupon_rate_structured": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Conditional coupon rate (decimal)." }, "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)." }, "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)." }, "knock_out_level": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Knock-out level for autocallables and accumulators." }, "lower_strike": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Lower strike of the range." }, "maturity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Time to expiry in years (0.5 = six months); > 0." }, "method": { "description": "Formula to apply; each value lists its own required inputs in the description.", "enum": [ "cbbc", "cbbc_residual", "derivative_warrant", "inline_warrant", "inline_warrant_avg", "eli", "eln", "autocallable", "credit_linked_note", "accumulator", "decumulator", "trs", "cfd" ], "type": "string" }, "notional": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Contract notional/face amount in reporting currency." }, "observation_dates": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "description": "Observation dates in years for path-dependent products." }, "option_type": { "anyOf": [ { "enum": [ "call", "put" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Option right." }, "payout": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Fixed payout when the range condition is met." }, "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)." }, "spot": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Spot price of the underlying (or FX rate for garman_kohlhagen)." }, "strike": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Strike or exercise price in the same currency as spot." }, "upper_strike": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Upper strike of the range." }, "volatility": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Annualized volatility (decimal, 0.30 = 30%); > 0." } }, "required": [ "method" ], "type": "object" }, "name": "calculate_structured_product", "outputSchema": { "description": "Shared result envelope returned by every tool.", "properties": { "assumptions": { "description": "Inputs and assumptions used, echoed for traceability.", "type": [ "object", "null" ] }, "data_timestamp": { "description": "ISO-8601 UTC timestamp of the underlying data, when fetched.", "type": [ "string", "null" ] }, "error": { "description": "Error detail, present only when status='error'.", "properties": { "code": { "description": "Stable machine-readable error code.", "type": "string" }, "message": { "description": "Human-readable error message.", "type": "string" } }, "type": [ "object", "null" ] }, "formula_ref": { "description": "Formula or standards reference for the method.", "type": [ "string", "null" ] }, "method": { "description": "Method or tool name that produced the result.", "type": [ "string", "null" ] }, "status": { "description": "'ok' on success, 'error' on failure.", "enum": [ "ok", "error" ], "type": "string" }, "steps": { "description": "Ordered computation steps, when the method reports them.", "type": [ "array", "null" ] }, "ticker": { "description": "Ticker the result pertains to, when applicable.", "type": [ "string", "null" ] }, "value": { "description": "Primary result: a number for scalar methods, an object for valuation methods." } }, "required": [ "status" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:641e7232f5e03018e3b60e34a5d851c9b6783e2cc919a3b5f15f129f3a9824cf | sha256sum