Skip to main content
Glama
JerBouma

Finance Toolkit

rates

Read-onlyIdempotent

Retrieve central bank policy, government bond yields, overnight benchmarks, and yield curves by country and date range for financial analysis.

Instructions

Interest rate data (central bank policy rates, short/long-term rates, government bond yields, ICE BofA corporate bond series, EURIBOR, ECB rates, Federal Reserve rates, official U.S. Treasury par yield curve, yield curve slope). Requires countries='United States' — use comma-separated values for multiple countries. Do NOT use tickers= for this tool. Supports start_date/end_date. Indicators with a period come at the highest frequency they are published at unless period= says otherwise (daily, else weekly, monthly, quarterly, yearly); keep the date range short for daily series. quarterly=true returns quarterly data only where a source has it (a note says when it does not). Without an API key: get_central_bank_policy_rate defaults to daily rates (BIS, around fifty central banks incl. 'Euro Area'); get_long_term_interest_rate defaults to daily 10-year yields for the United States, United Kingdom, Japan and Euro Area and to monthly otherwise; get_government_bond_yield returns monthly OECD 10-year yields (short_term=true for 3-month rates) for every OECD country; get_overnight_rate returns €STR, SONIA, TONA and SOFR (Euro Area, United Kingdom, Japan, United States) with period='daily', 'weekly' or 'monthly'. get_government_bond_yield_curve returns full government yield curves (columns per country and maturity, e.g. 3M to 30Y) for the United States, Euro Area, Germany, United Kingdom, Japan, Canada, Sweden, Norway and Australia, daily, weekly or monthly, plus the monthly 10-year yield of every other EU member (e.g. France, Italy, Spain) with period='monthly'; keep the date range short (a few weeks) or use period='monthly', since one country is up to 15 maturities per day. get_treasury_rates returns the US par yield curve and works without an API key. Curve analytics without an API key, on the curves of get_government_bond_yield_curve (the full history from start_date, so use period='monthly' for long ranges): get_zero_coupon_curve (zero-coupon rates bootstrapped from the par yields; United States, Euro Area, Germany, Japan, Canada, Sweden; countries= optional, United States by default), get_nelson_siegel_svensson (Svensson parameters Beta 0-3, Tau 1-2 and the fit error per date, svensson=false for the three-factor Nelson-Siegel level/slope/curvature; maturities='0.5,1,10,50' returns the fitted zero-coupon yields instead), get_yield_curve_principal_components (one country: level/slope/curvature loadings with the explained variance as the last row, scores=true for the scores per date, changes=false to analyze levels), get_short_rate_model (one country: Vasicek and CIR calibrated to the history of the short_rate='3M' yield, with the model's zero-coupon curve next to the market's; CIR needs a rate above zero throughout, so use short_rate='6M' or a later start_date for the US) and get_short_rate_simulation (one country: model='hull_white' (fits today's curve), 'vasicek' or 'cir'; short_rate=, years=, steps_per_year=, paths=; returns the mean and 5-95% percentiles per step). get_treasury_auctions returns US Treasury auction results (no countries needed; security_type='Bill'|'Cash Management Bill'|'Note'|'Bond'|'TIPS'|'FRN', security_term= e.g. '10-Year'; yield, bid-to-cover ratio, amounts and primary dealer/direct/indirect bidder shares, from 1979; keep the date range short). The central bank policy rate, short/long-term rate, overnight rate and yield curve slope indicators additionally support rolling=N (moving-average smoothing) and trailing=N (trailing N-period sum). Also includes get_mortgage_rate_30_year (Freddie Mac, US only, works without an API key). Inflation-linked curves without an API key, columns per country and maturity, countries= optional: get_real_yield_curve (real yields of inflation-linked government bonds: United States TIPS, United Kingdom index-linked gilts, Germany inflation-linked federal bonds at constant maturities) and get_breakeven_inflation_expectations (market-implied inflation, nominal minus real: United States incl. 5Y5Y forward, United Kingdom RPI implied inflation, Germany as the euro area proxy), both with period='daily', 'weekly' or 'monthly'; get_inflation_expectations (survey-based longer-term inflation expectations: Germany 5Y and 10Y monthly from 1989 via Consensus Economics, Euro Area 5Y from the ECB Survey of Professional Forecasters from 1999), period='monthly' or 'quarterly'. Long-history US credit series: get_hqm_corporate_bond_yield_curve (Treasury HQM corporate curve, rate='spot' for 6 months to 100 years or 'par', monthly from 1984), get_hqm_corporate_bond_spread (HQM par minus Treasury yields at 2, 5, 10 and 30 years, from 1984), get_moodys_corporate_bond_yields (Aaa and Baa, daily from 1986 or period='monthly' from 1919; spread=true for the spreads over the 10-year Treasury and Baa - Aaa) and get_excess_bond_premium (Gilchrist-Zakrajšek credit spread, excess bond premium and implied recession probability, monthly from 1973, no key needed). Also without a key: get_eiopa_risk_free_rate (EIOPA Solvency II risk-free curves for the euro and 40 other currencies, 1 to 150 years, monthly from 2023; countries= e.g. 'Euro Area,United Kingdom', curve='spot_no_va'|'spot_with_va'|'shock_up'|'shock_down'; returns the 1, 2, 5, 10, 20 and 30 year maturities unless maturity_years= lists others, e.g. '1,3,7,50'), get_bank_of_england_yield_curve (UK zero-coupon spot curve, curve='nominal'|'ois', 0.5 to 40 years, daily from 1985), get_corporate_borrowing_cost (ECB cost of bank borrowing for euro area companies, monthly from 2003), get_corporate_bond_yields (monthly corporate bond yields by country: Germany all ratings from 1957 (Bundesbank), Australia A and BBB at 3, 5, 7 and 10 years from 2005 (RBA), United States Moody's Aaa/Baa with a FRED key; spread=true for the spread over government bonds), get_rating_transition_matrix (ESMA CEREP rating migration matrix of a rating agency, agency='S&P'|'Moody's'|'Fitch'|'DBRS'|'Scope'|..., rating_type='corporate'|'sovereign'|'structured_finance'|'covered_bonds', year=, horizon= years, region= e.g. 'Europe'; probabilities, withdrawal-adjusted), get_default_rates (one-year default rates per rating per year from the agency's first reported year, ESMA CEREP; slow the first time, about 30 seconds per year), get_eiopa_symmetric_adjustment (Solvency II equity dampener and type 1/type 2 equity charges, daily from 1991) and get_financial_stress_index (ECB CISS for the euro area, its members, the UK, US and China, daily from 1980). The HQM, Moody's and ICE BofA series require a free FRED API key (get one at https://fred.stlouisfed.org/docs/api/api_key.html). The ICE BofA option-adjusted spreads are decimals like the other rates (0.0077 is 77 basis points).

Input Schema

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
rateNoFor get_european_central_bank_rates: The rate to return. Choose between 'refinancing', 'lending' or 'deposit'. For get_federal_reserve_rates: The rate to return. For get_hqm_corporate_bond_yield_curve: "spot" for the spot rates or "par" for the par yields. Leave unset to use the default of the indicator you selected. Defaults are 'EFFR' for get_federal_reserve_rates; None for get_european_central_bank_rates; 'spot' for get_hqm_corporate_bond_yield_curve.
seedNoThe random seed, None for a different simulation every time.
yearNoThe first year of the period.
curveNoFor get_eiopa_risk_free_rate: "spot_no_va", "spot_with_va", "shock_up" or "shock_down". For get_bank_of_england_yield_curve: "nominal" or "ois". Leave unset to use the default of the indicator you selected. Defaults are 'nominal' for get_bank_of_england_yield_curve; 'spot_no_va' for get_eiopa_risk_free_rate.
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.
modelNo"hull_white", "vasicek" or "cir".hull_white
pathsNoThe number of simulated paths.
yearsNoThe horizon in years.
agencyNoThe rating agency, e.g. "S&P", "Moody's", "Fitch", "DBRS", "Scope" or "Kroll", or the CEREP code of any registered agency.S&P
growthNoReturn period-over-period growth rates instead of absolute values.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). Leave unset to use the default of the indicator you selected. Defaults differ between indicators.
regionNoThe area of the rated entities: "Africa", "America", "Asia", "Europe", "EU members", "International" or "Oceania".
scoresNoWhether to return the value of every component per date (the scores) instead of the loadings.
spreadNoFor get_moodys_corporate_bond_yields: Whether to return the spreads over the 10-year Treasury yield instead of the yields. For get_corporate_bond_yields: Whether to return the spread over government bonds instead of the yield.
changesNoWith series: how their changes (the 'Return' column the regressions and diagnostics use) are calculated: 'percentage' (default), 'log', 'difference' (for rates and ratios) or 'none' (the series are changes already). The series themselves are the 'Adj Close' column the unit root and cointegration tests use.
countryNoThe country, see `get_government_bond_yield_curve`.United States
horizonNoThe length of the period in years, from 1 January of year.
nominalNoWhether to retrieve the nominal Euribor fixings or their real (inflation-adjusted) counterpart. The ECB only publishes a real Euribor for the 3-month maturity, so nominal=False returns that maturity alone and warns about any others that were requested rather than silently answering them with a...
rollingNoRolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-27
maturityNoWhether to return the maturity total return or the rating total return.
svenssonNoWhether to fit the Svensson model (True) or the Nelson-Siegel model (False).
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.
countriesNoCountry names, comma-separated or as a list, e.g. 'United States,Germany,Japan'.
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.
componentsNoThe number of components.
maturitiesNoComma-separated maturities, e.g. '1M,3M,6M,1Y'.
short_rateNoThe maturity of the yield used as the short rate, such as "1M", "3M" or "6M".3M
short_termNoWhether to return the short-term interest rate. This means that the long-term interest rate will be returned.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-28
gmdb_sourceNoUse the Global Macro Database as the data source when True, rather than the OECD. The two are independent providers with different country and period coverage; both return rates and ratios as decimal fractions.
rating_typeNo"corporate", "sovereign", "structured_finance" or "covered_bonds".corporate
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.
probabilitiesNoWhether to return the share of ratings per row instead of the number.
security_termNoThe term as the Treasury writes it, such as "13-Week", "10-Year" or "30-Year".
security_typeNoThe kind of security: "Bill", "Cash Management Bill", "Note", "Bond", "TIPS" or "FRN", or several (a list or a comma-separated string).
gmdb_forecastsNoSet to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.
maturity_yearsNoComma-separated maturities in years to return, e.g. '1,2,5,10,20,30'. Leave unset to use the default of the indicator you selected. Defaults are [1, 2, 5, 10, 20, 30] for get_eiopa_risk_free_rate.
steps_per_yearNoThe steps per year.
include_withdrawalsNoWhether to keep the ratings withdrawn during the period as a "Withdrawals" column.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changedv2.3.0
    • addedInput schema / properties / changes
      Added value: +{
      +  "default": true,
      +  "description": "With series: how their changes (the 'Return' column the regressions and diagnostics use) are calculated: 'percentage' (default), 'log', 'difference' (for rates and ratios) or 'none' (the series are changes already). The series themselves are the 'Adj Close' column the unit root and cointegration tests use.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / components
      Added value: +{
      +  "default": 3,
      +  "description": "The number of components.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / country
      Added value: +{
      +  "default": "United States",
      +  "description": "The country, see `get_government_bond_yield_curve`.",
      +  "type": "string"
      +}
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-10-14"New value: +"2026-10-27"
    • changedInput schema / properties / indicator / enum
      Previous value: -[
      -  "get_central_bank_policy_rate",
      -  "get_short_term_interest_rate",
      -  "get_long_term_interest_rate",
      -  "get_overnight_rate",
      -  "get_government_bond_yield",
      -  "get_government_bond_yield_curve",
      -  "get_euribor_rates",
      -  "get_european_central_bank_rates",
      -  "get_federal_reserve_rates",
      -  "get_ice_bofa_effective_yield",
      -  "get_ice_bofa_option_adjusted_spread",
      -  "get_ice_bofa_total_return",
      -  "get_ice_bofa_yield_to_worst",
      -  "get_hqm_corporate_bond_yield_curve",
      -  "get_hqm_corporate_bond_spread",
      -  "get_moodys_corporate_bond_yields",
      -  "get_excess_bond_premium",
      -  "get_eiopa_risk_free_rate",
      -  "get_bank_of_england_yield_curve",
      -  "get_corporate_borrowing_cost",
      -  "get_corporate_bond_yields",
      -  "get_rating_transition_matrix",
      -  "get_default_rates",
      -  "get_eiopa_symmetric_adjustment",
      -  "get_financial_stress_index",
      -  "get_mortgage_rate_30_year",
      -  "get_real_yield_curve",
      -  "get_breakeven_inflation_expectations",
      -  "get_inflation_expectations",
      -  "get_treasury_rates",
      -  "get_yield_curve_slope"
      -]New value: +[
      +  "get_central_bank_policy_rate",
      +  "get_short_term_interest_rate",
      +  "get_long_term_interest_rate",
      +  "get_overnight_rate",
      +  "get_government_bond_yield",
      +  "get_government_bond_yield_curve",
      +  "get_euribor_rates",
      +  "get_european_central_bank_rates",
      +  "get_federal_reserve_rates",
      +  "get_ice_bofa_effective_yield",
      +  "get_ice_bofa_option_adjusted_spread",
      +  "get_ice_bofa_total_return",
      +  "get_ice_bofa_yield_to_worst",
      +  "get_hqm_corporate_bond_yield_curve",
      +  "get_hqm_corporate_bond_spread",
      +  "get_moodys_corporate_bond_yields",
      +  "get_excess_bond_premium",
      +  "get_eiopa_risk_free_rate",
      +  "get_bank_of_england_yield_curve",
      +  "get_corporate_borrowing_cost",
      +  "get_corporate_bond_yields",
      +  "get_rating_transition_matrix",
      +  "get_default_rates",
      +  "get_eiopa_symmetric_adjustment",
      +  "get_financial_stress_index",
      +  "get_mortgage_rate_30_year",
      +  "get_real_yield_curve",
      +  "get_breakeven_inflation_expectations",
      +  "get_inflation_expectations",
      +  "get_treasury_rates",
      +  "get_yield_curve_slope",
      +  "get_zero_coupon_curve",
      +  "get_nelson_siegel_svensson",
      +  "get_yield_curve_principal_components",
      +  "get_short_rate_model",
      +  "get_short_rate_simulation",
      +  "get_treasury_auctions"
      +]
    • changedInput schema / properties / maturities / description
      Previous value: -"Comma-separated bond maturity labels, e.g. '3month,2year,10year'."New value: +"Comma-separated maturities, e.g. '1M,3M,6M,1Y'."
    • addedInput schema / properties / model
      Added value: +{
      +  "default": "hull_white",
      +  "description": "\"hull_white\", \"vasicek\" or \"cir\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / paths
      Added value: +{
      +  "default": 10000,
      +  "description": "The number of simulated paths.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / scores
      Added value: +{
      +  "default": false,
      +  "description": "Whether to return the value of every component per date (the scores) instead of the loadings.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / security_term
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The term as the Treasury writes it, such as \"13-Week\", \"10-Year\" or \"30-Year\"."
      +}
    • addedInput schema / properties / security_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The kind of security: \"Bill\", \"Cash Management Bill\", \"Note\", \"Bond\", \"TIPS\" or \"FRN\", or several (a list or a comma-separated string)."
      +}
    • addedInput schema / properties / seed
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": 0,
      +  "description": "The random seed, None for a different simulation every time."
      +}
    • addedInput schema / properties / short_rate
      Added value: +{
      +  "default": "3M",
      +  "description": "The maturity of the yield used as the short rate, such as \"1M\", \"3M\" or \"6M\".",
      +  "type": "string"
      +}
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-10-15"New value: +"2021-10-28"
    • addedInput schema / properties / steps_per_year
      Added value: +{
      +  "default": 12,
      +  "description": "The steps per year.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / svensson
      Added value: +{
      +  "default": true,
      +  "description": "Whether to fit the Svensson model (True) or the Nelson-Siegel model (False).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / years
      Added value: +{
      +  "default": 10,
      +  "description": "The horizon in years.",
      +  "type": "number"
      +}
  2. Changed43 schema fields changedv2.2.3
    • addedInput schema / properties / agency
      Added value: +{
      +  "default": "S&P",
      +  "description": "The rating agency, e.g. \"S&P\", \"Moody's\", \"Fitch\", \"DBRS\", \"Scope\" or \"Kroll\", or the CEREP code of any registered agency.",
      +  "type": "string"
      +}
    • addedInput schema / properties / countries / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / countries / description
      Previous value: -"Comma-separated country names, e.g. 'United States,Germany,Japan'."New value: +"Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'."
    • removedInput schema / properties / countries / title
      Removed value: -"Countries"
    • removedInput schema / properties / countries / type
      Removed value: -"string"
    • addedInput schema / properties / curve
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "For get_eiopa_risk_free_rate: \"spot_no_va\", \"spot_with_va\", \"shock_up\" or \"shock_down\". For get_bank_of_england_yield_curve: \"nominal\" or \"ois\". Leave unset to use the default of the indicator you selected. Defaults are 'nominal' for get_bank_of_england_yield_curve; 'spot_no_va' for get_eiopa_risk_free_rate."
      +}
    • 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"
    • addedInput schema / properties / gmdb_forecasts
      Added value: +{
      +  "default": false,
      +  "description": "Set to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / gmdb_source / title
      Removed value: -"Gmdb Source"
    • removedInput schema / properties / growth / title
      Removed value: -"Growth"
    • addedInput schema / properties / horizon
      Added value: +{
      +  "default": 1,
      +  "description": "The length of the period in years, from 1 January of year.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / include_withdrawals
      Added value: +{
      +  "default": false,
      +  "description": "Whether to keep the ratings withdrawn during the period as a \"Withdrawals\" column.",
      +  "type": "boolean"
      +}
    • 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."
    • changedInput schema / properties / indicator / enum
      Previous value: -[
      -  "get_central_bank_policy_rate",
      -  "get_short_term_interest_rate",
      -  "get_long_term_interest_rate",
      -  "get_government_bond_yield",
      -  "get_euribor_rates",
      -  "get_european_central_bank_rates",
      -  "get_federal_reserve_rates",
      -  "get_ice_bofa_effective_yield",
      -  "get_ice_bofa_option_adjusted_spread",
      -  "get_ice_bofa_total_return",
      -  "get_ice_bofa_yield_to_worst",
      -  "get_mortgage_rate_30_year",
      -  "get_real_yield_curve",
      -  "get_breakeven_inflation_expectations",
      -  "get_treasury_rates",
      -  "get_yield_curve_slope"
      -]New value: +[
      +  "get_central_bank_policy_rate",
      +  "get_short_term_interest_rate",
      +  "get_long_term_interest_rate",
      +  "get_overnight_rate",
      +  "get_government_bond_yield",
      +  "get_government_bond_yield_curve",
      +  "get_euribor_rates",
      +  "get_european_central_bank_rates",
      +  "get_federal_reserve_rates",
      +  "get_ice_bofa_effective_yield",
      +  "get_ice_bofa_option_adjusted_spread",
      +  "get_ice_bofa_total_return",
      +  "get_ice_bofa_yield_to_worst",
      +  "get_hqm_corporate_bond_yield_curve",
      +  "get_hqm_corporate_bond_spread",
      +  "get_moodys_corporate_bond_yields",
      +  "get_excess_bond_premium",
      +  "get_eiopa_risk_free_rate",
      +  "get_bank_of_england_yield_curve",
      +  "get_corporate_borrowing_cost",
      +  "get_corporate_bond_yields",
      +  "get_rating_transition_matrix",
      +  "get_default_rates",
      +  "get_eiopa_symmetric_adjustment",
      +  "get_financial_stress_index",
      +  "get_mortgage_rate_30_year",
      +  "get_real_yield_curve",
      +  "get_breakeven_inflation_expectations",
      +  "get_inflation_expectations",
      +  "get_treasury_rates",
      +  "get_yield_curve_slope"
      +]
    • removedInput schema / properties / indicator / title
      Removed value: -"Indicator"
    • removedInput schema / properties / lag / title
      Removed value: -"Lag"
    • 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."
      +}
    • removedInput schema / properties / maturities / title
      Removed value: -"Maturities"
    • changedInput schema / properties / maturity / description
      Previous value: -"Value for maturity."New value: +"Whether to return the maturity total return or the rating total return."
    • removedInput schema / properties / maturity / title
      Removed value: -"Maturity"
    • addedInput schema / properties / maturity_years
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Comma-separated maturities in years to return, e.g. '1,2,5,10,20,30'. Leave unset to use the default of the indicator you selected. Defaults are [1, 2, 5, 10, 20, 30] for get_eiopa_risk_free_rate."
      +}
    • changedInput schema / properties / nominal / description
      Previous value: -"Value for nominal."New value: +"Whether to retrieve the nominal Euribor fixings or their real (inflation-adjusted) counterpart. The ECB only publishes a real Euribor for the 3-month maturity, so nominal=False returns that maturity alone and warns about any others that were requested rather than silently answering them with a..."
    • removedInput schema / properties / nominal / title
      Removed value: -"Nominal"
    • changedInput schema / properties / period / description
      Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). Leave unset to use the default of the indicator you selected. Defaults differ between indicators."
    • removedInput schema / properties / period / title
      Removed value: -"Period"
    • addedInput schema / properties / probabilities
      Added value: +{
      +  "default": true,
      +  "description": "Whether to return the share of ratings per row instead of the number.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / quarterly / title
      Removed value: -"Quarterly"
    • changedInput schema / properties / rate / description
      Previous value: -"Value for rate. Leave unset to use the default of the indicator you selected. Defaults are 'EFFR' for get_federal_reserve_rates; None for get_european_central_bank_rates."New value: +"For get_european_central_bank_rates: The rate to return. Choose between 'refinancing', 'lending' or 'deposit'. For get_federal_reserve_rates: The rate to return. For get_hqm_corporate_bond_yield_curve: \"spot\" for the spot rates or \"par\" for the par yields. Leave unset to use the default of the indicator you selected. Defaults are 'EFFR' for get_federal_reserve_rates; None for get_european_central_bank_rates; 'spot' for get_hqm_corporate_bond_yield_curve."
    • removedInput schema / properties / rate / title
      Removed value: -"Rate"
    • addedInput schema / properties / rating_type
      Added value: +{
      +  "default": "corporate",
      +  "description": "\"corporate\", \"sovereign\", \"structured_finance\" or \"covered_bonds\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / region
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The area of the rated entities: \"Africa\", \"America\", \"Asia\", \"Europe\", \"EU members\", \"International\" or \"Oceania\"."
      +}
    • removedInput schema / properties / rolling / title
      Removed value: -"Rolling"
    • changedInput schema / properties / short_term / description
      Previous value: -"Value for short_term."New value: +"Whether to return the short-term interest rate. This means that the long-term interest rate will be returned."
    • removedInput schema / properties / short_term / title
      Removed value: -"Short Term"
    • removedInput schema / properties / show_columns / title
      Removed value: -"Show Columns"
    • addedInput schema / properties / spread
      Added value: +{
      +  "default": false,
      +  "description": "For get_moodys_corporate_bond_yields: Whether to return the spreads over the 10-year Treasury yield instead of the yields. For get_corporate_bond_yields: Whether to return the spread over government bonds instead of the yield.",
      +  "type": "boolean"
      +}
    • 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"
    • removedInput schema / properties / trailing / title
      Removed value: -"Trailing"
    • addedInput schema / properties / year
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The first year of the period."
      +}
    • removedInput schema / title
      Removed value: -"ratesArguments"
  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. Changed5 schema fields changedv2.2.0
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-07-14"New value: +"2026-08-19"
    • changedInput schema / properties / gmdb_source / description
      Previous value: -"Use the OECD Global Macro Data Bank as the data source when True."New value: +"Use the Global Macro Database as the data source when True, rather than the OECD. The two are independent providers with different country and period coverage; both return rates and ratios as decimal fractions."
    • changedInput schema / properties / indicator / enum
      Previous value: -[
      -  "get_central_bank_policy_rate",
      -  "get_short_term_interest_rate",
      -  "get_long_term_interest_rate",
      -  "get_government_bond_yield",
      -  "get_euribor_rates",
      -  "get_european_central_bank_rates",
      -  "get_federal_reserve_rates",
      -  "get_ice_bofa_effective_yield",
      -  "get_ice_bofa_option_adjusted_spread",
      -  "get_ice_bofa_total_return",
      -  "get_ice_bofa_yield_to_worst"
      -]New value: +[
      +  "get_central_bank_policy_rate",
      +  "get_short_term_interest_rate",
      +  "get_long_term_interest_rate",
      +  "get_government_bond_yield",
      +  "get_euribor_rates",
      +  "get_european_central_bank_rates",
      +  "get_federal_reserve_rates",
      +  "get_ice_bofa_effective_yield",
      +  "get_ice_bofa_option_adjusted_spread",
      +  "get_ice_bofa_total_return",
      +  "get_ice_bofa_yield_to_worst",
      +  "get_mortgage_rate_30_year",
      +  "get_real_yield_curve",
      +  "get_breakeven_inflation_expectations",
      +  "get_treasury_rates",
      +  "get_yield_curve_slope"
      +]
    • changedInput schema / properties / rate / description
      Previous value: -"Value for rate."New value: +"Value for rate. Leave unset to use the default of the indicator you selected. Defaults are 'EFFR' for get_federal_reserve_rates; None for get_european_central_bank_rates."
    • changedInput schema / properties / start_date / default
      Previous value: -"2021-07-15"New value: +"2021-08-20"
  5. Changed5 schema fields changed
    • changedInput schema / properties / end_date / default
      Previous value: -"2026-07-09"New value: +"2026-07-14"
    • addedInput schema / properties / rolling
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Rolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.",
      +  "title": "Rolling"
      +}
    • 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"
    • addedInput schema / properties / trailing
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "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.",
      +  "title": "Trailing"
      +}
  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

A4.1/5.0
Behavior5/5

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

The description adds extensive behavior beyond the annotations: which indicators require a FRED API key, which work without one, default frequencies and fallbacks, slow first-time behavior for default rates, and warnings about short date ranges for daily or multi-maturity data. These disclosures are exactly the kind of operational context an agent needs and do not contradict the read-only, idempotent, open-world annotations.

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

Conciseness2/5

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

The description is a very dense, unstructured wall of text with many long run-on sentences covering dozens of indicators. Although much of the content is relevant, the lack of structure and the level of detail make it difficult to scan and consume efficiently.

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

Completeness5/5

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

Given the high complexity of 37 indicators and 43 parameters, the description is comprehensive: it covers indicator selection, country handling, date ranges, API-key requirements, frequency defaults, and special cases. An output schema exists, so return-value details are appropriately left to structured data.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents all 43 parameters. The description still adds meaningful indicator-specific semantics, such as which parameters apply to which indicator, default behaviors, period and frequency handling, and rolling/trailing behavior, though it does not add value for every individual parameter.

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 names a specific resource domain, interest rate data, and enumerates the covered series such as central bank policy rates, government bond yields, Treasury par yields, and ICE BofA corporate bond series. This makes the tool's scope clear, though it does not explicitly differentiate itself from sibling tools such as fixed_income or macroeconomics.

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

Usage Guidelines4/5

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

It gives concrete usage rules, including the country requirement, comma-separated country values, the explicit warning not to use tickers, date-range guidance, and many indicator-specific defaults. It does not, however, state when to choose this tool over sibling tools or name alternatives, which keeps it below a 5.

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