Skip to main content
Glama
JerBouma

Finance Toolkit

models

Read-onlyIdempotent

Calculate pre-computed financial analyses and scores—such as WACC, DCF, DuPont, Altman Z, Piotroski F, and Beneish M—for tickers to assess valuation, credit risk, quality, and earnings manipulation.

Instructions

Pre-computed financial models (WACC, DuPont analysis, Extended DuPont analysis, Enterprise value breakdown, intrinsic value/DCF, Gordon Growth Model, Altman Z-Score, Piotroski F-Score, Beneish M-Score, Economic Value Added (EVA), Present Value of Growth Opportunities, Sustainable Growth Rate, Internal Growth Rate, Graham Number). Valuation: get_reverse_discounted_cash_flow (the growth rate the share price implies, next to the historical growth), get_earnings_power_value (Greenwald's no-growth value), get_monte_carlo_intrinsic_valuation (growth_rate= required; percentiles of the DCF value and the probability it exceeds the price) and get_peer_comparison (valuation, margins, returns, growth and leverage against the company's peers, or peers={'AAPL': ['MSFT', 'GOOGL']}). Credit: get_merton_distance_to_default (Merton/KMV asset value, distance to default and probability of default per year) and get_synthetic_credit_rating (Damodaran's rating, default spread and cost of debt from interest coverage). Quality and manipulation scores: get_magic_formula (Greenblatt ranking across the tickers given), get_mohanram_g_score (relative to the tickers given, so pass peers), get_dechow_f_score, get_montier_c_score and get_accruals_ratio (Sloan). weighted_average_cost_of_capital= defaults to each company's latest WACC. Requires tickers='AAPL' — use comma-separated values for multiple tickers. Supports quarterly=true and start_date/end_date.

Input Schema

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
seedNoThe seed of the random numbers, so that results can be reproduced.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
peersNoThe peers per ticker, e.g. {"AAPL": ["MSFT", "GOOGL"]}.
growthNoReturn period-over-period growth rates instead of absolute values.
dilutedNoFor get_altman_z_score: Whether to use diluted shares outstanding in the calculation. For get_enterprise_value_breakdown, get_graham_number, get_market_value_added, get_present_value_of_growth_opportunities, get_tobins_q_ratio, get_weighted_average_cost_of_capital: Whether to use diluted shares in the calculation. For get_magic_formula: Whether to use the diluted share count for the market capitalization.
periodsNoFor get_earnings_power_value: The number of periods the operating margin and tax rate are averaged over; with `trailing`, the number of trailing sums, `trailing` calendar periods apart so that they do not overlap, counted back from the latest reported one. A sum that includes a missing period is left out of the average. For get_intrinsic_valuation: The number of periods to use for the cash flow projections. For get_monte_carlo_intrinsic_valuation, get_reverse_discounted_cash_flow: The number of projection periods.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-27
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
firm_typeNoThe table to use: "large" (market capitalization above five billion), "small" (smaller and riskier firms), "financial" (banks and other financial firms) or "auto", which picks large or small from the market capitalization of every period.auto
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-28
growth_rateNoAssumed constant growth rate as a decimal. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_intrinsic_valuation, get_monte_carlo_intrinsic_valuation.
simulationsNoThe number of simulations.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
time_horizonNoThe horizon in years over which default is measured.
cash_flow_typeNoFor get_intrinsic_valuation: The type of cash flow to use for the cash flow projections. The other options are "Free Cash Flow" and "Operating Cash Flow" as reported on the cash flow statement; both are after interest, so discounting them at the WACC and subtracting the debt counts the cost of debt twice. For get_monte_carlo_intrinsic_valuation, get_reverse_discounted_cash_flow: The cash flow to project: "Free Cash Flow to Firm" (see `get_free_cash_flow_to_firm`), the cash flow to debt and equity holders that the WACC discounts into an enterprise value; or "Free Cash Flow" or "Operating Cash Flow" as reported, which are after interest (cash flows to equity), so that...Free Cash Flow to Firm
rate_of_returnNoFor get_gorden_growth_model: The required rate of return. For get_two_stage_dividend_discount_model: The required rate of return (discount rate) used to discount both phases. Can be one number to use for all tickers, or a list or dict that contains a rate of return for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_two_stage_dividend_discount_model.
calculate_dailyNoWhether to calculate the PVGO using daily historical data.
project_periodsNoThe number of years to project the intrinsic value for, beyond the last complete period.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
high_growth_rateNoThe constant growth rate applied to dividends during the explicit high-growth phase. Can be one number to use for all tickers, or a list or dict that contains a high growth rate for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model.
variance_periodsNoThe number of yearly values the variances of G4 (return on assets) and G5 (revenue growth) are calculated over, of which at least three (or all, when fewer are asked for) must be available. With `trailing` the values are `trailing` periods apart (one a year with 4 quarters); without it, one per...
include_dividendsNoWhether to deduct Preferred Dividends Paid from Net Income when calculating the Earnings per Share, so that the earnings figure reflects what is attributable to common shareholders only.
show_full_resultsNoWhether to show the full results or just the WACC values.
stable_growth_rateNoThe perpetual (terminal) growth rate applied to dividends from the end of the high-growth phase onward. Can be one number to use for all tickers, or a list or dict that contains a stable growth rate for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model.
high_growth_periodsNoThe number of years in the explicit high-growth phase.
market_risk_premiumNoThe annual equity risk premium the Cost of Equity uses.
perpetual_growth_rateNoTerminal (perpetual) growth rate used in DCF models. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation. Defaults are 0.025 for get_monte_carlo_intrinsic_valuation, get_reverse_discounted_cash_flow.
growth_rate_volatilityNoThe standard deviation of the growth rate.
perpetual_growth_rate_volatilityNoIts standard deviation.
weighted_average_cost_of_capitalNoWACC as a decimal, e.g. 0.09 for 9 %. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation. Defaults are None for get_earnings_power_value, get_monte_carlo_intrinsic_valuation, get_reverse_discounted_cash_flow.
weighted_average_cost_of_capital_volatilityNoIts standard deviation.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed22 schema fields changedv2.3.0
    • changedInput schema / properties / cash_flow_type / default
      Previous value: -"Free Cash Flow"New value: +"Free Cash Flow to Firm"
    • changedInput schema / properties / cash_flow_type / description
      Previous value: -"The type of cash flow to use for the cash flow projections. Other options are \"Operating Cash Flow\", \"Change in Working Capital\", and \"Capital Expenditure\"."New value: +"For get_intrinsic_valuation: The type of cash flow to use for the cash flow projections. The other options are \"Free Cash Flow\" and \"Operating Cash Flow\" as reported on the cash flow statement; both are after interest, so discounting them at the WACC and subtracting the debt counts the cost of debt twice. For get_monte_carlo_intrinsic_valuation, get_reverse_discounted_cash_flow: The cash flow to project: \"Free Cash Flow to Firm\" (see `get_free_cash_flow_to_firm`), the cash flow to debt and equity holders that the WACC discounts into an enterprise value; or \"Free Cash Flow\" or \"Operating Cash Flow\" as reported, which are after interest (cash flows to equity), so that..."
    • changedInput schema / properties / diluted / description
      Previous value: -"For get_altman_z_score: Whether to use diluted shares outstanding in the calculation. For get_enterprise_value_breakdown, get_graham_number, get_market_value_added, get_present_value_of_growth_opportunities, get_tobins_q_ratio, get_weighted_average_cost_of_capital: Whether to use diluted shares in the calculation."New value: +"For get_altman_z_score: Whether to use diluted shares outstanding in the calculation. For get_enterprise_value_breakdown, get_graham_number, get_market_value_added, get_present_value_of_growth_opportunities, get_tobins_q_ratio, get_weighted_average_cost_of_capital: Whether to use diluted shares in the calculation. For get_magic_formula: Whether to use the diluted share count for the market capitalization."
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-10-14"New value: +"2026-10-27"
    • addedInput schema / properties / firm_type
      Added value: +{
      +  "default": "auto",
      +  "description": "The table to use: \"large\" (market capitalization above five billion), \"small\" (smaller and riskier firms), \"financial\" (banks and other financial firms) or \"auto\", which picks large or small from the market capitalization of every period.",
      +  "type": "string"
      +}
    • changedInput schema / properties / growth_rate / description
      Previous value: -"Assumed constant growth rate as a decimal. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_intrinsic_valuation."New value: +"Assumed constant growth rate as a decimal. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_intrinsic_valuation, get_monte_carlo_intrinsic_valuation."
    • addedInput schema / properties / growth_rate_volatility
      Added value: +{
      +  "default": 0.02,
      +  "description": "The standard deviation of the growth rate.",
      +  "type": "number"
      +}
    • changedInput schema / properties / high_growth_periods / description
      Previous value: -"The number of periods in the explicit high-growth phase."New value: +"The number of years in the explicit high-growth phase."
    • changedInput schema / properties / indicator / enum
      Previous value: -[
      -  "get_altman_z_score",
      -  "get_beneish_m_score",
      -  "get_dupont_analysis",
      -  "get_economic_value_added",
      -  "get_enterprise_value_breakdown",
      -  "get_extended_dupont_analysis",
      -  "get_free_cash_flow_to_equity",
      -  "get_free_cash_flow_to_firm",
      -  "get_fulmer_h_score",
      -  "get_gorden_growth_model",
      -  "get_graham_number",
      -  "get_grover_score",
      -  "get_internal_growth_rate",
      -  "get_intrinsic_valuation",
      -  "get_market_value_added",
      -  "get_ohlson_o_score",
      -  "get_piotroski_score",
      -  "get_present_value_of_growth_opportunities",
      -  "get_residual_income",
      -  "get_springate_score",
      -  "get_sustainable_growth_rate",
      -  "get_tobins_q_ratio",
      -  "get_two_stage_dividend_discount_model",
      -  "get_weighted_average_cost_of_capital",
      -  "get_zmijewski_score"
      -]New value: +[
      +  "get_accruals_ratio",
      +  "get_altman_z_score",
      +  "get_beneish_m_score",
      +  "get_dechow_f_score",
      +  "get_dupont_analysis",
      +  "get_earnings_power_value",
      +  "get_economic_value_added",
      +  "get_enterprise_value_breakdown",
      +  "get_extended_dupont_analysis",
      +  "get_free_cash_flow_to_equity",
      +  "get_free_cash_flow_to_firm",
      +  "get_fulmer_h_score",
      +  "get_gorden_growth_model",
      +  "get_graham_number",
      +  "get_grover_score",
      +  "get_internal_growth_rate",
      +  "get_intrinsic_valuation",
      +  "get_magic_formula",
      +  "get_market_value_added",
      +  "get_merton_distance_to_default",
      +  "get_mohanram_g_score",
      +  "get_monte_carlo_intrinsic_valuation",
      +  "get_montier_c_score",
      +  "get_ohlson_o_score",
      +  "get_peer_comparison",
      +  "get_piotroski_score",
      +  "get_present_value_of_growth_opportunities",
      +  "get_residual_income",
      +  "get_reverse_discounted_cash_flow",
      +  "get_springate_score",
      +  "get_sustainable_growth_rate",
      +  "get_synthetic_credit_rating",
      +  "get_tobins_q_ratio",
      +  "get_two_stage_dividend_discount_model",
      +  "get_weighted_average_cost_of_capital",
      +  "get_zmijewski_score"
      +]
    • addedInput schema / properties / market_risk_premium
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The annual equity risk premium the Cost of Equity uses."
      +}
    • addedInput schema / properties / peers
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The peers per ticker, e.g. {\"AAPL\": [\"MSFT\", \"GOOGL\"]}."
      +}
    • changedInput schema / properties / periods / description
      Previous value: -"The number of periods to use for the cash flow projections."New value: +"For get_earnings_power_value: The number of periods the operating margin and tax rate are averaged over; with `trailing`, the number of trailing sums, `trailing` calendar periods apart so that they do not overlap, counted back from the latest reported one. A sum that includes a missing period is left out of the average. For get_intrinsic_valuation: The number of periods to use for the cash flow projections. For get_monte_carlo_intrinsic_valuation, get_reverse_discounted_cash_flow: The number of projection periods."
    • changedInput schema / properties / perpetual_growth_rate / description
      Previous value: -"Terminal (perpetual) growth rate used in DCF models. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation."New value: +"Terminal (perpetual) growth rate used in DCF models. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation. Defaults are 0.025 for get_monte_carlo_intrinsic_valuation, get_reverse_discounted_cash_flow."
    • addedInput schema / properties / perpetual_growth_rate_volatility
      Added value: +{
      +  "default": 0.005,
      +  "description": "Its standard deviation.",
      +  "type": "number"
      +}
    • changedInput schema / properties / project_periods / description
      Previous value: -"The number of periods to project the the stock price."New value: +"The number of years to project the intrinsic value for, beyond the last complete period."
    • addedInput schema / properties / seed
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": 0,
      +  "description": "The seed of the random numbers, so that results can be reproduced."
      +}
    • addedInput schema / properties / simulations
      Added value: +{
      +  "default": 10000,
      +  "description": "The number of simulations.",
      +  "type": "integer"
      +}
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-10-15"New value: +"2021-10-28"
    • addedInput schema / properties / time_horizon
      Added value: +{
      +  "default": 1,
      +  "description": "The horizon in years over which default is measured.",
      +  "type": "number"
      +}
    • addedInput schema / properties / variance_periods
      Added value: +{
      +  "default": 5,
      +  "description": "The number of yearly values the variances of G4 (return on assets) and G5 (revenue growth) are calculated over, of which at least three (or all, when fewer are asked for) must be available. With `trailing` the values are `trailing` periods apart (one a year with 4 quarters); without it, one per...",
      +  "type": "integer"
      +}
    • changedInput schema / properties / weighted_average_cost_of_capital / description
      Previous value: -"WACC as a decimal, e.g. 0.09 for 9 %. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation."New value: +"WACC as a decimal, e.g. 0.09 for 9 %. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation. Defaults are None for get_earnings_power_value, get_monte_carlo_intrinsic_valuation, get_reverse_discounted_cash_flow."
    • addedInput schema / properties / weighted_average_cost_of_capital_volatility
      Added value: +{
      +  "default": 0.01,
      +  "description": "Its standard deviation.",
      +  "type": "number"
      +}
  2. Changed51 schema fields changedv2.2.3
    • removedInput schema / properties / benchmark_ticker / title
      Removed value: -"Benchmark Ticker"
    • changedInput schema / properties / calculate_daily / description
      Previous value: -"Value for calculate_daily."New value: +"Whether to calculate the PVGO using daily historical data."
    • removedInput schema / properties / calculate_daily / title
      Removed value: -"Calculate Daily"
    • changedInput schema / properties / cash_flow_type / description
      Previous value: -"Value for cash_flow_type."New value: +"The type of cash flow to use for the cash flow projections. Other options are \"Operating Cash Flow\", \"Change in Working Capital\", and \"Capital Expenditure\"."
    • removedInput schema / properties / cash_flow_type / title
      Removed value: -"Cash Flow Type"
    • changedInput schema / properties / diluted / description
      Previous value: -"Value for diluted."New value: +"For get_altman_z_score: Whether to use diluted shares outstanding in the calculation. For get_enterprise_value_breakdown, get_graham_number, get_market_value_added, get_present_value_of_growth_opportunities, get_tobins_q_ratio, get_weighted_average_cost_of_capital: Whether to use diluted shares in the calculation."
    • removedInput schema / properties / diluted / title
      Removed value: -"Diluted"
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-10-02"New value: +"2026-10-14"
    • removedInput schema / properties / end_date / title
      Removed value: -"End Date"
    • removedInput schema / properties / growth / title
      Removed value: -"Growth"
    • changedInput schema / properties / growth_rate / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "items": {
      +      "type": "number"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / growth_rate / title
      Removed value: -"Growth Rate"
    • changedInput schema / properties / high_growth_periods / description
      Previous value: -"Value for high_growth_periods."New value: +"The number of periods in the explicit high-growth phase."
    • removedInput schema / properties / high_growth_periods / title
      Removed value: -"High Growth Periods"
    • changedInput schema / properties / high_growth_rate / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "items": {
      +      "type": "number"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / high_growth_rate / description
      Previous value: -"Value for high_growth_rate. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model."New value: +"The constant growth rate applied to dividends during the explicit high-growth phase. Can be one number to use for all tickers, or a list or dict that contains a high growth rate for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model."
    • removedInput schema / properties / high_growth_rate / title
      Removed value: -"High Growth Rate"
    • changedInput schema / properties / include_dividends / description
      Previous value: -"Value for include_dividends."New value: +"Whether to deduct Preferred Dividends Paid from Net Income when calculating the Earnings per Share, so that the earnings figure reflects what is attributable to common shareholders only."
    • removedInput schema / properties / include_dividends / title
      Removed value: -"Include Dividends"
    • changedInput schema / properties / indicator / description
      Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
    • removedInput schema / properties / indicator / title
      Removed value: -"Indicator"
    • addedInput schema / properties / lag / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "items": {
      +      "type": "integer"
      +    },
      +    "type": "array"
      +  }
      +]
    • removedInput schema / properties / lag / title
      Removed value: -"Lag"
    • removedInput schema / properties / lag / type
      Removed value: -"integer"
    • addedInput schema / properties / limit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
      +}
    • changedInput schema / properties / periods / description
      Previous value: -"Value for periods."New value: +"The number of periods to use for the cash flow projections."
    • removedInput schema / properties / periods / title
      Removed value: -"Periods"
    • changedInput schema / properties / perpetual_growth_rate / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "items": {
      +      "type": "number"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / perpetual_growth_rate / title
      Removed value: -"Perpetual Growth Rate"
    • changedInput schema / properties / project_periods / description
      Previous value: -"Value for project_periods."New value: +"The number of periods to project the the stock price."
    • removedInput schema / properties / project_periods / title
      Removed value: -"Project Periods"
    • removedInput schema / properties / quarterly / title
      Removed value: -"Quarterly"
    • changedInput schema / properties / rate_of_return / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "items": {
      +      "type": "number"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / rate_of_return / description
      Previous value: -"Value for rate_of_return. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_two_stage_dividend_discount_model."New value: +"For get_gorden_growth_model: The required rate of return. For get_two_stage_dividend_discount_model: The required rate of return (discount rate) used to discount both phases. Can be one number to use for all tickers, or a list or dict that contains a rate of return for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_two_stage_dividend_discount_model."
    • removedInput schema / properties / rate_of_return / title
      Removed value: -"Rate Of Return"
    • removedInput schema / properties / show_columns / title
      Removed value: -"Show Columns"
    • changedInput schema / properties / show_full_results / description
      Previous value: -"Value for show_full_results."New value: +"Whether to show the full results or just the WACC values."
    • removedInput schema / properties / show_full_results / title
      Removed value: -"Show Full Results"
    • changedInput schema / properties / stable_growth_rate / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "items": {
      +      "type": "number"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / stable_growth_rate / description
      Previous value: -"Value for stable_growth_rate. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model."New value: +"The perpetual (terminal) growth rate applied to dividends from the end of the high-growth phase onward. Can be one number to use for all tickers, or a list or dict that contains a stable growth rate for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model."
    • removedInput schema / properties / stable_growth_rate / title
      Removed value: -"Stable Growth Rate"
    • removedInput schema / properties / standardize / title
      Removed value: -"Standardize"
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-10-03"New value: +"2021-10-15"
    • removedInput schema / properties / start_date / title
      Removed value: -"Start Date"
    • addedInput schema / properties / tickers / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +]
    • removedInput schema / properties / tickers / title
      Removed value: -"Tickers"
    • removedInput schema / properties / tickers / type
      Removed value: -"string"
    • removedInput schema / properties / trailing / title
      Removed value: -"Trailing"
    • changedInput schema / properties / weighted_average_cost_of_capital / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "items": {
      +      "type": "number"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / weighted_average_cost_of_capital / title
      Removed value: -"Weighted Average Cost Of Capital"
    • removedInput schema / title
      Removed value: -"modelsArguments"
  3. Changed2 schema fields changedv2.2.1
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-08-19"New value: +"2026-10-02"
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-08-20"New value: +"2021-10-03"
  4. Changed22 schema fields changedv2.2.0
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-07-14"New value: +"2026-08-19"
    • addedInput schema / properties / growth_rate / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / growth_rate / default
      Previous value: -""New value: +null
    • changedInput schema / properties / growth_rate / description
      Previous value: -"Assumed constant growth rate as a decimal."New value: +"Assumed constant growth rate as a decimal. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_intrinsic_valuation."
    • removedInput schema / properties / growth_rate / type
      Removed value: -"number"
    • addedInput schema / properties / high_growth_periods
      Added value: +{
      +  "default": 5,
      +  "description": "Value for high_growth_periods.",
      +  "title": "High Growth Periods",
      +  "type": "integer"
      +}
    • addedInput schema / properties / high_growth_rate
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Value for high_growth_rate. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model.",
      +  "title": "High Growth Rate"
      +}
    • changedInput schema / properties / indicator / enum
      Previous value: -[
      -  "get_altman_z_score",
      -  "get_beneish_m_score",
      -  "get_dupont_analysis",
      -  "get_economic_value_added",
      -  "get_enterprise_value_breakdown",
      -  "get_extended_dupont_analysis",
      -  "get_gorden_growth_model",
      -  "get_graham_number",
      -  "get_internal_growth_rate",
      -  "get_intrinsic_valuation",
      -  "get_piotroski_score",
      -  "get_present_value_of_growth_opportunities",
      -  "get_sustainable_growth_rate",
      -  "get_weighted_average_cost_of_capital"
      -]New value: +[
      +  "get_altman_z_score",
      +  "get_beneish_m_score",
      +  "get_dupont_analysis",
      +  "get_economic_value_added",
      +  "get_enterprise_value_breakdown",
      +  "get_extended_dupont_analysis",
      +  "get_free_cash_flow_to_equity",
      +  "get_free_cash_flow_to_firm",
      +  "get_fulmer_h_score",
      +  "get_gorden_growth_model",
      +  "get_graham_number",
      +  "get_grover_score",
      +  "get_internal_growth_rate",
      +  "get_intrinsic_valuation",
      +  "get_market_value_added",
      +  "get_ohlson_o_score",
      +  "get_piotroski_score",
      +  "get_present_value_of_growth_opportunities",
      +  "get_residual_income",
      +  "get_springate_score",
      +  "get_sustainable_growth_rate",
      +  "get_tobins_q_ratio",
      +  "get_two_stage_dividend_discount_model",
      +  "get_weighted_average_cost_of_capital",
      +  "get_zmijewski_score"
      +]
    • addedInput schema / properties / perpetual_growth_rate / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / perpetual_growth_rate / default
      Previous value: -""New value: +null
    • changedInput schema / properties / perpetual_growth_rate / description
      Previous value: -"Terminal (perpetual) growth rate used in DCF models."New value: +"Terminal (perpetual) growth rate used in DCF models. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation."
    • removedInput schema / properties / perpetual_growth_rate / type
      Removed value: -"number"
    • addedInput schema / properties / rate_of_return / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / rate_of_return / default
      Previous value: -""New value: +null
    • changedInput schema / properties / rate_of_return / description
      Previous value: -"Value for rate_of_return."New value: +"Value for rate_of_return. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_two_stage_dividend_discount_model."
    • removedInput schema / properties / rate_of_return / type
      Removed value: -"number"
    • addedInput schema / properties / stable_growth_rate
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Value for stable_growth_rate. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model.",
      +  "title": "Stable Growth Rate"
      +}
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-07-15"New value: +"2021-08-20"
    • addedInput schema / properties / weighted_average_cost_of_capital / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / weighted_average_cost_of_capital / default
      Previous value: -""New value: +null
    • changedInput schema / properties / weighted_average_cost_of_capital / description
      Previous value: -"WACC as a decimal, e.g. 0.09 for 9 %."New value: +"WACC as a decimal, e.g. 0.09 for 9 %. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation."
    • removedInput schema / properties / weighted_average_cost_of_capital / type
      Removed value: -"number"
  5. Changed5 schema fields changed
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-07-09"New value: +"2026-07-14"
    • changedInput schema / properties / indicator / enum
      Previous value: -[
      -  "get_altman_z_score",
      -  "get_dupont_analysis",
      -  "get_enterprise_value_breakdown",
      -  "get_extended_dupont_analysis",
      -  "get_gorden_growth_model",
      -  "get_intrinsic_valuation",
      -  "get_piotroski_score",
      -  "get_present_value_of_growth_opportunities",
      -  "get_weighted_average_cost_of_capital"
      -]New value: +[
      +  "get_altman_z_score",
      +  "get_beneish_m_score",
      +  "get_dupont_analysis",
      +  "get_economic_value_added",
      +  "get_enterprise_value_breakdown",
      +  "get_extended_dupont_analysis",
      +  "get_gorden_growth_model",
      +  "get_graham_number",
      +  "get_internal_growth_rate",
      +  "get_intrinsic_valuation",
      +  "get_piotroski_score",
      +  "get_present_value_of_growth_opportunities",
      +  "get_sustainable_growth_rate",
      +  "get_weighted_average_cost_of_capital"
      +]
    • addedInput schema / properties / standardize
      Added value: +{
      +  "default": false,
      +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
      +  "title": "Standardize",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-07-10"New value: +"2021-07-15"
    • changedInput schema / properties / trailing / description
      Previous value: -"Number of trailing periods for rolling-window calculations."New value: +"Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period."
  6. Changed2 schema fields changedv2.1.4
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-06-27"New value: +"2026-07-09"
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-06-28"New value: +"2021-07-10"
  7. Changed2 schema fields changedv2.1.3
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-06-23"New value: +"2026-06-27"
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-06-24"New value: +"2021-06-28"
  8. Changed4 schema fields changedv0.1.2
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-06-22"New value: +"2026-06-23"
    • removedInput schema / properties / rounding
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Number of decimal places to round results to.",
      -  "title": "Rounding"
      -}
    • addedInput schema / properties / show_columns
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
      +  "title": "Show Columns"
      +}
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-06-23"New value: +"2021-06-24"
  9. Addedv0.1.1

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so safety is covered. The description adds that models are pre-computed and notes some defaults (e.g., WACC defaults to each company's latest WACC), but it does not disclose output granularity, error behavior, or rate limits beyond what the schema and annotations already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The length is partly justified by 36 parameters and 36 indicators, but the description is a dense single paragraph with a huge opening parenthetical list. Category labels (Valuation, Credit, Quality) help, yet front-loading is weak and some indicators receive detailed parameter notes while others are only named.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full schema description coverage, and safety annotations, the description is largely complete for calling the tool. It covers most specialized parameters and indicator categories, though it could better explain how to choose between this broad dispatcher and the more focused sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats several parameter requirements (e.g., growth_rate required by get_gorden_growth_model) and notes a WACC default, but these details already exist in the schema descriptions, adding minimal semantic value beyond structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns pre-computed financial models and enumerates specific indicators across valuation, credit, and quality categories. It is specific about the resource but never distinguishes this dispatcher from sibling tools like valuation, efficiency, or profitability, leaving sibling selection ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists indicators and notes required parameters such as tickers='AAPL', but gives no guidance on when to use this tool instead of the sibling valuation, efficiency, or profitability tools. There are no exclusions or alternatives mentioned, so an agent must infer selection from the indicator list alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.