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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:641e7232f5e03018e3b60e34a5d851c9b6783e2cc919a3b5f15f129f3a9824cf | sha256sum