Finance Toolkit
The server exposes Finance Toolkit’s financial data and calculation methods through MCP, letting an AI client query markets, fundamentals, ratios, models, technicals, risk/performance, econometrics, options, macro data, and discovery tools.
Retrieve raw market and company data: historical/intraday prices, financial statements, profiles, quotes, analyst estimates, calendars, transcripts, ETF/fund holdings, treasury data, and CFTC reports.
Compute pre-built financial ratios: efficiency, liquidity, profitability, solvency, and valuation metrics.
Run financial models: WACC, DuPont analysis, DCF/intrinsic value, Altman Z-Score, Piotroski F-Score, Beneish M-Score, EVA, Graham Number, and more.
Calculate technical indicators: breadth, momentum, overlap, and volatility indicators such as RSI, MACD, Bollinger Bands, ATR, moving averages, and Ichimoku Cloud.
Analyze performance and risk: Sharpe/Sortino ratios, alpha/beta, CAPM, VaR/CVaR, drawdowns, volatility estimators, GARCH, copulas, and tail risk.
Perform econometric analysis: regressions, unit root/cointegration tests, Granger causality, ARIMA/VAR forecasts, panel models, causal inference, and diagnostics.
Price options and Greeks: Black-Scholes, binomial models, delta/gamma/theta/vega/rho, implied volatility, option chains, and strategy payoffs.
Explore macroeconomic, government, environmental, jobs, rates, and fixed-income data: GDP, inflation, unemployment, debt, ESG, central bank rates, yield curves, bond valuations, and credit spreads.
Discover instruments and market activity: stock screener, lists of stocks/ETFs/crypto/forex/commodities, gainers/losers, sector performance, calendars, filings, insider trades, M&A, and news.
Search and browse metrics via
search_metric_categories,search_by_category, andsearch_metrics.Use common parameters across many tools for tickers/countries, date ranges, quarterly data, growth, trailing windows, lag, rolling windows, standardization, and column filtering.
Allows GitHub Copilot to query financial statements, ratios, and market data using the FinanceToolkit MCP server.
While browsing a variety of websites, I repeatedly observed significant fluctuations in the same financial metric among different sources. Similarly, the reported financial statements often didn't line up, and there was limited information on the methodology used to calculate each metric.
For example, Microsoft's Price-to-Earnings (PE) ratio on the 6th of May, 2023 is reported to be 28.93 (Stockopedia), 32.05 (Morningstar), 32.66 (Macrotrends), 33.09 (Finance Charts), 33.66 (Y Charts), 33.67 (Wall Street Journal), 33.80 (Yahoo Finance) and 34.4 (Companies Market Cap). All of these calculations are correct, however the method of calculation varies leading to different results. Therefore, collecting data from multiple sources can lead to wrong interpretation of the results given that one source could apply a different definition than another. And that is, if that definition is even available as often the underlying methods are hidden behind a paid subscription.
This is why I designed the FinanceToolkit, this is an open-source toolkit in which all relevant financial methods (500+) are written down in the most simplistic way allowing for complete transparency of the method of calculation (proof). This enables you to avoid dependence on metrics from other providers that do not provide their methods. With a large selection of financial statements in hand, it facilitates streamlined calculations, promoting the adoption of a consistent and universally understood methods and formulas.
Beyond Equities, it supports Options, Currencies, Cryptocurrencies, ETFs, Mutual Funds, Indices, Money Markets, Commodities, Key Economic Indicators and more, allowing you to obtain historical data as well as important performance and risk measurements such as the Sharpe Ratio and Value at Risk.
Complementing this is the Finance Database 🌎, a database featuring 300.000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets. By utilising both, it is possible to do a fully-fledged competitive analysis with the tickers found from the FinanceDatabase inputted into the FinanceToolkit.
🔌 The Finance Toolkit is also available as an MCP Server
Query 500+ methods from Claude, Copilot, Cursor, Windsurf or any MCP-compatible client without writing code.
Hosted: connect to
https://financetoolkit.jeroenbouma.com/mcp— OAuth handles the rest on first use.Local:
uvx --from "financetoolkit[mcp]" financetoolkit-mcp-setup— sets up your client config and API key automatically. See MCP Server Documentation for manual setup.
Also on Smithery, Glama, MCP Servers and more.
Table of Contents
Installation
Before installation, consider starring the project on GitHub which helps others find the project as well.
To install the Finance Toolkit it simply requires the following:
pip install financetoolkit -UThen within Python use:
from financetoolkit import Toolkit
companies = Toolkit(
tickers=['AAPL', 'MSFT'],
api_key="FINANCIAL_MODELING_PREP_KEY", # replace with your actual API key
)To be able to get started, you need to obtain an API Key from FinancialModelingPrep. This is used to gain access to 30+ years of financial statement both annually and quarterly. Note that the Free plan is limited to 250 requests each day, 5 years of data and only features companies listed on US exchanges.
Obtain an API Key from FinancialModelingPrep here.
Through the link you are able to subscribe for the free plan and also premium plans at a 15% discount. This is an affiliate link and thus supports the project at the same time. I have chosen FinancialModelingPrep as a source as I find it to be the most transparent, reliable and at an affordable price. I have yet to find a platform offering such low prices for the amount of data offered. When you notice that the data is inaccurate or have any other issue related to the data, note that I simply provide the means to access this data and I am not responsible for the accuracy of the data itself. For this, use their contact form or provide the data yourself.
By default, the Finance Toolkit prioritizes Financial Modeling Prep for data retrieval. If data acquisition from Financial Modeling Prep is unsuccessful (e.g., due to plan restrictions or API key issues), the toolkit automatically switches to Yahoo Finance as a secondary source. To disable this fallback behavior and exclusively use Financial Modeling Prep, set enforce_source="FinancialModelingPrep" during Toolkit initialization. This configuration ensures that an error is raised if Financial Modeling Prep data cannot be accessed. Alternatively, you can set enforce_source="YahooFinance" to exclusively use Yahoo Finance as the data source.
The same enforce_source argument is also accepted per call on get_historical_data, get_treasury_data and the four statement functions (get_balance_sheet_statement, get_income_statement, get_cash_flow_statement and get_statistics_statement), where it overrides whatever the Toolkit was initialised with.
Functionality
This section is an introduction to the Finance Toolkit. Find with the link below fully-fledged code documentation as well as Getting Started guides with many examples ranging from basic examples to creating custom ratios to working with your own datasets.
Find a variety of How-To Guides including Code Documentation for the FinanceToolkit here.
A basic example of how to use the Finance Toolkit is shown below. Every code snippet in the sections that follow builds on this same companies instance.
from financetoolkit import Toolkit
# Initialize the Toolkit for Apple and Microsoft
companies = Toolkit(["AAPL", "MSFT"], api_key="FINANCIAL_MODELING_PREP_KEY", start_date="2017-12-31")Each ratio, indicator and metric has a corresponding function that can be called directly, for example ratios.get_return_on_equity or technicals.get_relative_strength_index. Every module also has one or more collect_ functions that return a whole category at once, e.g. ratios.collect_profitability_ratios, useful when you want everything in one call instead of assembling it metric by metric.
Three capabilities cut across nearly the whole toolkit:
rollingandtrailingwindows. Many metrics return one value per reporting period by default. Passrolling=<n>to compute the metric over a sliding window instead, ortrailing=<n>for a trailing sum/average (e.g. a trailing 4-quarter sum to annualize a quarterly flow) — turning a snapshot into a proper time series.growthandlag. Passgrowth=Trueon almost anyget_orcollect_function to return the period-over-period growth instead of the raw value.lag(anintor list ofints, default1) controls how many periods back that growth is measured against, e.g.lag=4for year-over-year growth on quarterly data. Combine withtrailing(e.g.trailing=4, growth=True) to get TTM growth.standardize(Z-Score). Mostget_*methods across Economics, Ratios, Technicals, Risk, Performance, Models, Options and Fixed Income acceptstandardize=True, converting raw values into standard deviations from their own historical mean/std. Useful for ranking, scoring, or spotting an unusual reading across metrics that otherwise live on incompatible scales.
Every module below also has a Getting Started guide and full code documentation (formulas, parameters, worked examples) linked in its own section, see the documentation hub for the complete index.
Discovering Instruments & News
Before analyzing a ticker you often need to find it. The Discovery module is standalone and covers among other things lists of companies, cryptocurrencies, forex, commodities, ETFs and indices.
from financetoolkit import Discovery
# Initialize the standalone Discovery module
discovery = Discovery(api_key="FINANCIAL_MODELING_PREP_KEY")
# Find US semiconductor companies worth more than $100 billion
semiconductors = discovery.get_stock_screener(
industry="Semiconductors",
country="US",
exchange="NASDAQ",
market_cap_higher=100_000_000_000,
is_etf=False,
)The screener returns twelve companies, of which the five largest are shown below:
Symbol | Name | Market Cap | Beta | Price | Dividend |
NVDA | NVIDIA Corporation | 5677886820000 | 2.217 | 234.42 | 0.28 |
AVGO | Broadcom Inc. | 1688566002696 | 1.457 | 354.92 | 2.60 |
MU | Micron Technology, Inc. | 1212744628950 | 2.222 | 1073.81 | 0.53 |
AMD | Advanced Micro Devices, Inc. | 1028957518000 | 2.476 | 631.03 | 0.00 |
INTC | Intel Corp. | 604977329655 | 2.231 | 119.94 | 0.00 |
And below all twelve are ranked by market cap.
Furthermore, you can find in this module stock screeners, sector/industry performance and news feeds and more. Find the Getting Started guide here and the full instrument discovery documentation here.
Obtaining Historical Data
Obtain historical data on a daily, weekly, monthly or yearly basis. This includes OHLC, volumes, dividends, returns and cumulative returns for each corresponding period.
# Obtain historical market data for all tickers
historical_data = companies.get_historical_data()
# Select the results for Apple
historical_data.xs('AAPL', axis=1, level=1)For example, a portion of the historical data for Apple is shown below.
date | Open | High | Low | Close | Adj Close | Volume | Dividends | Return | Cumulative Return |
2018-01-02 | 42.54 | 43.075 | 42.315 | 43.065 | 40.78 | 1.02224e+08 | 0 | 0 | 1 |
2018-01-03 | 43.1325 | 43.6375 | 42.99 | 43.0575 | 40.77 | 1.17982e+08 | 0 | -0.0002 | 0.9998 |
2018-01-04 | 43.135 | 43.3675 | 43.02 | 43.2575 | 40.96 | 8.97384e+07 | 0 | 0.0047 | 1.0044 |
2018-01-05 | 43.36 | 43.8425 | 43.2625 | 43.75 | 41.43 | 9.46401e+07 | 0 | 0.0115 | 1.0159 |
2018-01-08 | 43.5875 | 43.9025 | 43.4825 | 43.5875 | 41.27 | 8.22711e+07 | 0 | -0.0039 | 1.012 |
And below the cumulative returns are plotted which include the S&P 500 as benchmark:
Metrics such as Volatility, Excess Return and Excess Volatility are calculated as dedicated Risk and Performance methods rather than columns on this table to create more efficient and flexible functionalities. Find the Getting Started guide here and the full historical data documentation here.
Obtaining Financial Statements
Obtain an Income Statement on an annual or quarterly basis. This can also be a balance statement or cash flow statement.
# Obtain the Income Statement for all tickers
income_statement = companies.get_income_statement()
# Select the results for Apple
income_statement.loc['AAPL']For example, the first 5 rows of the Income Statement for Apple are shown below.
2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | |
Revenue | 2.29234e+11 | 2.65595e+11 | 2.60174e+11 | 2.74515e+11 | 3.65817e+11 | 3.94328e+11 | 3.83285e+11 |
Cost of Goods Sold | 1.41048e+11 | 1.63756e+11 | 1.61782e+11 | 1.69559e+11 | 2.12981e+11 | 2.23546e+11 | 2.14137e+11 |
Gross Profit | 8.8186e+10 | 1.01839e+11 | 9.8392e+10 | 1.04956e+11 | 1.52836e+11 | 1.70782e+11 | 1.69148e+11 |
Gross Profit Ratio | 0.3847 | 0.3834 | 0.3782 | 0.3823 | 0.4178 | 0.4331 | 0.4413 |
Research and Development Expenses | 1.1581e+10 | 1.4236e+10 | 1.6217e+10 | 1.8752e+10 | 2.1914e+10 | 2.6251e+10 | 2.9915e+10 |
And below the Earnings Before Interest, Taxes, Depreciation and Amortization (EBITDA) are plotted for Apple and Alphabet since 2017. Their fiscal years line up closely, so both show the same latest reported year. Find the Getting Started guide here and the full financial statement documentation here.
Obtaining Financial Ratios
Get Profitability Ratios based on the inputted balance sheet, income and cash flow statements. This can be any of the 80+ ratios within the ratios module.
# Collect all Profitability Ratios for all tickers
profitability_ratios = companies.ratios.collect_profitability_ratios()
# Select the results for Microsoft
profitability_ratios.loc['MSFT']For example, see some of the profitability ratios of Microsoft below.
2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | |
Gross Margin | 0.6452 | 0.6525 | 0.659 | 0.6778 | 0.6893 | 0.684 | 0.6892 |
Operating Margin | 0.3006 | 0.3177 | 0.3414 | 0.3703 | 0.4159 | 0.4206 | 0.4177 |
Net Profit Margin | 0.2639 | 0.1502 | 0.3118 | 0.3096 | 0.3645 | 0.3669 | 0.3415 |
Interest Coverage Ratio | 13.0626 | 12.8277 | 15.9937 | 20.4396 | 29.8022 | 40.4183 | 44.9812 |
Income Before Tax Profit Margin | 0.3096 | 0.3305 | 0.3472 | 0.3708 | 0.423 | 0.4222 | 0.4214 |
And below a few of the profitability ratios of Microsoft, each with its latest value, the change over the period and its trend.
The 80+ ratios are divided into five categories: Efficiency (asset/inventory/receivables turnover, cash conversion cycle, R&D/SG&A/SBC-to-revenue), Liquidity (current, quick and cash ratios, working capital), Profitability (margins, ROE/ROA/ROIC, cash vs. effective tax rate), Solvency (debt-to-equity, debt-to-capital, interest and dividend coverage) and Valuation (P/E, PEG, Forward P/E, EV multiples, buyback and shareholder yield). It's also possible to define fully custom ratios calculated automatically from the balance sheet, income and cash flow statements. Find the Getting Started guide here and the full ratio-by-ratio documentation here.
Obtaining Financial Models
Get an Extended DuPont Analysis based on the inputted balance sheet, income and cash flow statements.
# Get the Extended DuPont Analysis for all tickers
extended_dupont_analysis = companies.models.get_extended_dupont_analysis()
# Select the results for Apple
extended_dupont_analysis.loc['AAPL']For example, this shows the Extended DuPont Analysis for Apple:
2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | |
Interest Burden Ratio | 0.9572 | 0.9725 | 0.9725 | 0.988 | 0.9976 | 1.0028 | 1.005 |
Tax Burden Ratio | 0.7882 | 0.8397 | 0.8643 | 0.8661 | 0.869 | 0.8356 | 0.8486 |
Operating Profit Margin | 0.2796 | 0.2745 | 0.2527 | 0.2444 | 0.2985 | 0.302 | 0.2967 |
Asset Turnover | nan | 0.7168 | 0.7389 | 0.8288 | 1.0841 | 1.1206 | 1.0868 |
Equity Multiplier | nan | 3.0724 | 3.5633 | 4.2509 | 5.255 | 6.1862 | 6.252 |
Return on Equity | nan | 0.4936 | 0.5592 | 0.7369 | 1.4744 | 1.7546 | 1.7195 |
The five components of the Extended DuPont Analysis multiply into the Return on Equity (ROE): interest burden × tax burden × operating margin × asset turnover × equity multiplier. Below they are shown for each year, ending in the resulting ROE.
The models module covers 35+ models in total, from valuation (reverse DCF, Earnings Power Value, Monte Carlo DCF, peer comparison) and credit (Merton distance to default, synthetic credit rating) to quality and manipulation scores (Magic Formula, Mohanram G-Score, Dechow F-Score, Montier C-Score), for example DuPont Analysis, WACC, Economic Value Added (EVA), Altman Z-Score, Beneish M-Score and the Graham Number. Find the Getting Started guide here and the full model-by-model documentation here.
Obtaining Options and Greeks
Get the Black Scholes Model for both call and put options including the relevant Greeks, in this case Delta, Gamma, Theta and Vega. This can be any of the First, Second or Third Order Greeks.
# Get Delta for all tickers across strikes and expirations
delta = companies.options.get_delta(expiration_time_range=180)
# Select the results for Apple
delta.loc['AAPL']For example, see the delta of the Call options for Apple for multiple expiration times and strike prices below (Stock Price: 185.92, Volatility: 31.59%, Dividend Yield: 0.49% and Risk Free Rate: 3.95%):
1 Month | 2 Months | 3 Months | 4 Months | 5 Months | 6 Months | |
175 | 0.7686 | 0.7178 | 0.6967 | 0.6857 | 0.6794 | 0.6759 |
180 | 0.6659 | 0.64 | 0.6318 | 0.629 | 0.6285 | 0.6291 |
185 | 0.5522 | 0.5583 | 0.5648 | 0.571 | 0.5767 | 0.5816 |
190 | 0.4371 | 0.4762 | 0.4977 | 0.513 | 0.5249 | 0.5342 |
195 | 0.3298 | 0.3971 | 0.4324 | 0.4562 | 0.474 | 0.4875 |
Which can also be plotted together with Gamma, Theta and Vega as follows:
The options module is divided into four categories: Option Pricing (Black-Scholes, Binomial Model, Implied Volatility), First-Order Greeks (Delta, Vega, Theta, Rho), Second-Order Greeks (Gamma, Vanna, Charm, Vomma) and Third-Order Greeks (Speed, Zomma, Color, Ultima), next to option market metrics read from the live chains: put-call ratio, max pain, dealer gamma exposure, volatility skew and term structure, the implied (earnings) move, the volatility risk premium and a model-free implied volatility with the VIX method for any ticker. Find the Getting Started guide here and the full option pricing and Greeks documentation here.
Obtaining Performance Metrics
Get the correlations with the factors as defined by Fama-and-French. These include market, size, value, operating profitability and investment. The beauty of all functionality here is that it can be based on any period as the function accepts the period intraday, weekly, monthly, quarterly and yearly.
# Get the Fama-French factor correlations for all tickers, quarterly
factor_asset_correlations = companies.performance.get_factor_asset_correlations(period="quarterly")
# Select the results for Apple
factor_asset_correlations['AAPL']For example, this shows the quarterly correlations for Apple:
Mkt-RF | SMB | HML | RMW | CMA | |
2022Q2 | 0.9177 | -0.1248 | -0.5077 | -0.3202 | -0.2624 |
2022Q3 | 0.8092 | 0.1528 | -0.5046 | -0.1997 | -0.5231 |
2022Q4 | 0.8998 | 0.2309 | -0.5968 | -0.1868 | -0.5946 |
2023Q1 | 0.7737 | 0.1606 | -0.3775 | -0.228 | -0.5707 |
2023Q2 | 0.7416 | -0.1166 | -0.2722 | 0.0093 | -0.4745 |
And below the correlations with each factor are plotted over time for both Apple and Microsoft.
Beyond Beta, CAPM and the Fama-French factors, the performance module covers around 20+ metrics in total, for example Sharpe Ratio, Sortino Ratio, Calmar Ratio, Omega Ratio and the Correlation Matrix. Most of these also support rolling=<n> for a value that evolves through time instead of one number per period. Find the Getting Started guide here and the full performance metric documentation here. The factor models also take Ken French's regional factors (region="Europe", "Japan", "Developed" and more), and returns-based style analysis (get_style_analysis) finds the mix of style indices that tracks a fund best.
Obtaining Risk Metrics
Get the Value at Risk for each week. Here, the days within each week are considered for the Value at Risk. This makes it so that you can understand within each period what is the expected Value at Risk (VaR) which can again be any period but also based on distributions such as Historical, Gaussian, Student-t, Cornish-Fisher, or a Peak-over-Threshold Extreme Value Theory (distribution="evt") fit for the tail.
# Get the weekly Value at Risk for all tickers
companies.risk.get_value_at_risk(period="weekly", within_period=True)AAPL | MSFT | Benchmark | |
2023-09-25/2023-10-01 | -0.0205 | -0.0133 | -0.0122 |
2023-10-02/2023-10-08 | -0.0048 | -0.0206 | -0.0108 |
2023-10-09/2023-10-15 | -0.0089 | -0.0092 | -0.0059 |
2023-10-16/2023-10-22 | -0.0135 | -0.0124 | -0.0131 |
2023-10-23/2023-10-29 | -0.0224 | -0.0293 | -0.0139 |
And below the Value at Risk (VaR) for Apple, Microsoft and the benchmark (S&P 500) are plotted also demonstrating the impact of COVID-19.
Beyond VaR/CVaR/Entropic VaR, the risk module covers around 20+ metrics in total, for example Conditional Drawdown at Risk, Maximum Drawdown Duration, EWMA Volatility and the Hurst Exponent. Most of these support rolling=<n> for a value that evolves through time instead of one number per period. Find the Getting Started guide here and the full risk metric documentation here.
Obtaining Technical Indicators
Get the Ichimoku Cloud parameters based on the historical market data. This can be any of the 40+ technical indicators within the technicals module.
# Get the Ichimoku Cloud for all tickers
ichimoku_cloud = companies.technicals.get_ichimoku_cloud()
# Select the results for Apple
ichimoku_cloud.xs('AAPL', axis=1, level=1)For example, see some of the parameters for Apple below:
Date | Base Line | Conversion Line | Leading Span A | Leading Span B |
2023-10-30 | 174.005 | 171.755 | 176.245 | 178.8 |
2023-10-31 | 174.005 | 171.755 | 176.37 | 178.8 |
2023-11-01 | 174.005 | 170.545 | 176.775 | 178.8 |
2023-11-02 | 174.005 | 171.725 | 176.235 | 178.8 |
2023-11-03 | 174.005 | 171.725 | 175.558 | 178.8 |
And below the Ichimoku Cloud of the last twelve months is plotted for Apple and Microsoft, together with the closing price.
The 40+ indicators are divided into four categories: Breadth (McClellan Oscillator, Advancers/Decliners, OBV, ADL, Chaikin Oscillator, TRIN, New Highs - New Lows), Momentum (RSI, MACD, Stochastic, Williams %R, Aroon, CCI, ADX and more), Overlap (SMA, EMA, DEMA, TRIX, WMA, Hull MA, VWAP, Parabolic SAR, Pivot Points, Support/Resistance) and Volatility (ATR, Keltner Channels, Bollinger Bands, Donchian Channels, Volatility Cone). Find the Getting Started guide here and the full technical indicator documentation here. Market breadth across many tickers (get_market_breadth, for example from the constituents Discovery.get_index_constituents lists), seasonality per month or weekday and relative strength with a 1-99 rating complete the set.
Obtaining Fixed Income Metrics
Get access to the ICE BofA Corporate Bond benchmark indices and a variety of other bond and derivative related valuations within the fixedincome module.
# Get the ICE BofA Effective Yield for each Credit Rating
companies.fixedincome.get_ice_bofa_effective_yield(maturity=False)For example, see the Effective Yield for the ICE BofA Corporate Bond Index below for each Credit Rating:
Date | AAA | AA | A | BBB | BB | B | CCC |
2024-04-19 | 0.0518 | 0.0532 | 0.0561 | 0.0594 | 0.0678 | 0.0804 | 0.1385 |
2024-04-22 | 0.0517 | 0.0532 | 0.056 | 0.0593 | 0.0671 | 0.0793 | 0.1377 |
2024-04-23 | 0.0514 | 0.0528 | 0.0556 | 0.0589 | 0.066 | 0.0777 | 0.1364 |
2024-04-24 | 0.0518 | 0.0531 | 0.0559 | 0.0592 | 0.0664 | 0.0778 | 0.1361 |
2024-04-25 | 0.0524 | 0.0537 | 0.0564 | 0.0598 | 0.0673 | 0.079 | 0.1368 |
And below the effective yield for each credit rating is plotted over time.
Beyond ICE BofA benchmarks, the fixedincome module covers Bond Valuations (Present Value, Macaulay/Modified Duration, Convexity, Yield to Maturity), Derivative Valuations (Black and Bachelier models for Swaptions), Government Bonds (3-month and 10-year yields), Central Bank rates (Euribor, ECB and Federal Reserve rates incl. SOFR), Yield Curve Analytics (zero-coupon curves bootstrapped from government par yields, Nelson-Siegel-Svensson fits, principal components and the Vasicek, Cox-Ingersoll-Ross and Hull-White short-rate models), Credit (the option-adjusted spread of callable bonds and the default probabilities credit spreads imply) and US Treasury auction results (yields, bid-to-cover ratios and bidder shares from 1979). It can be called via companies.fixedincome or standalone through from financetoolkit import FixedIncome. Find the Getting Started guide here and the full fixed income documentation here.
Understanding Key Economic Indicators
Get insights for 60+ countries into key economic indicators such as the Consumer Price Index (CPI), Gross Domestic Product (GDP), Unemployment Rates and 3-month and 10-year Government Interest Rates. This is done through the economics module and can be used as a standalone module as well by using from financetoolkit import Economics.
# Get the Unemployment Rate for a selection of countries
companies.economics.get_unemployment_rate()For example see a selection of the countries below:
Colombia | United States | Sweden | Japan | Germany | |
2017 | 0.093 | 0.0435 | 0.0686 | 0.0281 | 0.0357 |
2018 | 0.0953 | 0.039 | 0.0648 | 0.0244 | 0.0321 |
2019 | 0.1037 | 0.0367 | 0.0691 | 0.0235 | 0.0298 |
2020 | 0.1586 | 0.0809 | 0.0848 | 0.0278 | 0.0362 |
2021 | 0.1381 | 0.0537 | 0.0889 | 0.0282 | 0.0358 |
2022 | 0.1122 | 0.0365 | 0.0748 | 0.026 | 0.0307 |
And below these Unemployment Rates are plotted over time:
The 40+ indicators are divided into five categories: Government (GDP, government debt/revenue/expenditure/deficit, trust in government), Economy (CPI, inflation, consumer/business confidence, house/rent/share prices), Finance (money supply, central bank policy rate, short/long-term interest rates), Environment (renewable energy, carbon footprint) and Jobs & Society (unemployment, labour productivity, income inequality, population, poverty rate). Find the Getting Started guide here and the full economic indicator documentation here.
Explore your own Portfolio
Through a custom XLSX, XLS or CSV file you are able to load in your own portfolio directly into the Finance Toolkit. This allows you to view your positions and performance (over time) versus a benchmark and other positions as well as your PnL development over time. Furthermore, the portfolio can be directly loaded in the core functionality of the Finance Toolkit as well making it possible to calculate all metrics and ratios for your portfolio (which is a time-weighted sum of all positions). The portfolio module is a standalone module and can be used as such by using from financetoolkit import Portfolio. Find the the full portfolio documentation here.
It is important to note that it requires a specific Excel template to work, see for further instructions the Getting Started guide here.
from financetoolkit import Portfolio
# Initialize the Portfolio module with your own dataset
portfolio = Portfolio(example=True, api_key="FINANCIAL_MODELING_PREP_KEY")
# Get an overview of all positions
portfolio.get_positions_overview()The table below shows one of the functionalities of the Portfolio module but is purposely shrunken down given the >30 assets.
Identifier | Volume | Costs | Price | Invested | Latest Price | Latest Value | Return | Return Value | Benchmark Return | Volatility | Benchmark Volatility | Alpha | Beta | Weight |
AAPL | 137 | -28 | 38.9692 | 5310.78 | 241.84 | 33132.1 | 5.2386 | 27821.3 | 2.2258 | 0.3858 | 0.1937 | 3.0128 | 1.2027 | 0.0405 |
ALGN | 81 | -34 | 117.365 | 9472.53 | 187.03 | 15149.4 | 0.5993 | 5676.9 | 2.1413 | 0.5985 | 0.1937 | -1.542 | 1.5501 | 0.0185 |
AMD | 78 | -30 | 11.9075 | 898.784 | 99.86 | 7789.08 | 7.6662 | 6890.3 | 3.7945 | 0.6159 | 0.1937 | 3.8718 | 1.6551 | 0.0095 |
AMZN | 116 | -28 | 41.5471 | 4791.46 | 212.28 | 24624.5 | 4.1392 | 19833 | 1.8274 | 0.4921 | 0.1937 | 2.3118 | 1.1594 | 0.0301 |
ASML | 129 | -25 | 33.3184 | 4273.07 | 709.08 | 91471.3 | 20.4065 | 87198.3 | 3.8005 | 0.4524 | 0.1937 | 16.606 | 1.4407 | 0.1119 |
VOO | 77 | -12 | 238.499 | 18352.5 | 546.33 | 42067.4 | 1.2922 | 23715 | 1.1179 | 0.1699 | 0.1937 | 0.1743 | 0.9973 | 0.0515 |
WMT | 92 | -18 | 17.8645 | 1625.53 | 98.61 | 9072.12 | 4.581 | 7446.59 | 2.4787 | 0.2334 | 0.1937 | 2.1024 | 0.4948 | 0.0111 |
Portfolio | 2142 | -532 | 59.8406 | 128710 | 381.689 | 817577 | 5.3521 | 688867 | 2.0773 | 0.4193 | 0.1937 | 3.2747 | 1.2909 | 1 |
In which the weights and returns can be depicted as follows:
Applying Econometric Techniques
The econometrics module provides regression, hypothesis testing, unit root and cointegration, Granger causality and panel data methods built on statsmodels and linearmodels. It requires the optional financetoolkit[econometrics] extra (pip install financetoolkit[econometrics]) and can be used via companies.econometrics, or standalone on any data (ratios, economic indicators, yield curves or a dataset of your own) through from financetoolkit import Econometrics and Econometrics(data=...).
# AAPL is the Toolkit's first ticker, so it's the default dependent ticker;
# every other ticker becomes the default independent set
companies.econometrics.get_ols(period="weekly")Regressing Apple's returns on a mix of its chip suppliers, megacap peers and two unrelated names (Benchmark excluded) gives:
Coefficient | Std. Error | t-Statistic | P-Value | |
Intercept | 0.0028 | 0.0017 | 1.6815 | 0.0943 |
TSM | -0.0054 | 0.0523 | -0.1028 | 0.9182 |
QCOM | 0.1432 | 0.0361 | 3.9717 | 0.0001 |
SWKS | 0.2141 | 0.0484 | 4.4221 | 0.0000 |
MSFT | 0.3036 | 0.0864 | 3.5144 | 0.0005 |
GOOGL | 0.1448 | 0.0689 | 2.1015 | 0.0369 |
AMZN | 0.0617 | 0.0529 | 1.1664 | 0.2448 |
META | -0.0132 | 0.0389 | -0.3398 | 0.7343 |
NVDA | -0.0024 | 0.0415 | -0.0575 | 0.9542 |
XOM | -0.0291 | 0.0373 | -0.7799 | 0.4364 |
PG | 0.2858 | 0.0707 | 4.0393 | 0.0001 |
And below each coefficient is shown with its 95% confidence interval, with stars marking how significant it is.
Only QCOM, SWKS, MSFT, GOOGL and PG come out statistically significant once every regressor is controlled for at once. The econometrics module covers 53 methods in total, including unit root tests (ADF, KPSS, Phillips-Perron), cointegration and Granger causality, panel data estimators (Fixed/Random Effects), causal inference (IV-2SLS, Difference-in-Differences, Regression Discontinuity, Propensity Score Matching, Synthetic Control), time-series forecasting (ARIMA, VAR, VECM), regimes and dynamics (Markov regime switching, Bai-Perron structural breaks, a Kalman filter time-varying beta and DCC-GARCH correlations) and pairs trading (hedge ratio, half-life and z-score signals). Find the Getting Started guide here and the full econometrics documentation here.
MCP Server
The Finance Toolkit MCP Server exposes 500+ financial methods directly to any AI assistant that supports the Model Context Protocol (MCP). Ask questions in plain English — the AI fetches live financial data on your behalf, backed by the transparent, open-source calculation methods of the Finance Toolkit.
See an example of the Finance Toolkit MCP server in action in Claude Desktop below:
https://github.com/user-attachments/assets/96ad5288-d83d-4497-a345-1841c48c29d5
Remote server
Connect directly to the hosted server at https://financetoolkit.jeroenbouma.com/mcp. Nothing needs to be installed locally. On first connection your client opens an OAuth consent page asking for your FMP API key; enter it once and the server handles authentication from there.
Client | Steps |
Claude Desktop | Customize → Connectors → Add custom connector → paste the URL |
Claude.ai | Customize → Connectors → Add custom connector → paste the URL |
Claude Code |
|
VS Code | Command Palette → MCP: Add Server → HTTP → paste the URL |
Cursor | Settings → Features → MCP Servers → Add new → http → paste the URL |
Windsurf | Settings → MCP Servers → Add Server → Remote/HTTP → paste the URL |
Local installation
Run the setup wizard — it locates your client's config file and writes the MCP entry automatically, including the API key:
uvx --from "financetoolkit[mcp]" financetoolkit-mcp-setupFor manual config, add the following to your client's MCP config file (e.g. claude_desktop_config.json, .cursor/mcp.json, .vscode/mcp.json):
{
"mcpServers": {
"finance-toolkit": {
"command": "uvx",
"args": ["--from", "financetoolkit[mcp]", "financetoolkit-mcp"],
"env": { "FINANCIAL_MODELING_PREP_API_KEY": "YOUR_API_KEY_HERE" }
}
}
}Alternatively, download the Finance Toolkit MCPB bundle and open it with Claude Desktop. An installation dialog will prompt for your FMP API key.
Questions & Answers
This section includes frequently asked questions and is meant to clear up confusion about certain results and/or deviations from other sources. If you have any questions that are not answered here, feel free to reach out to me via the contact details below.
How do you deal with companies that have different fiscal years?
For any financial statement, I make sure to line it up with the corresponding calendar period. For example, Apple's Q4 2023 relates to July to September of 2023. This corresponds to the calendar period Q3 which is why I normalize Apple's numbers to Q3 2023 instead. This is done to allow for comparison between companies that have different fiscal years.
Why do the numbers in the financial statements sometimes deviate from the data from FinancialModelingPrep?
When looking at a company such as Hyundai Motor Company (ticker: 005380.KS), you will notice that the financial statements are reported in KRW (South Korean won). As this specific ticker is listed on the Korean Exchange, the historical market data will also be reported in KRW. However, if you use the ticker HYMTF, which is listed on the American OTC market, the historical market data will be reported in USD. To deal with this discrepancy, the end of year or end of quarter exchange rate is retrieved which is used to convert the financial statements to USD. This is done to prevent ratio calculations such as the Free Cash Flow Yield (which is based on the market capitalization) or Price Earnings Ratio (which is based on the stock price) from being incorrect. This can be disabled by setting convert_currency=False in the Toolkit initialization. It is recommended to always use the ticker that is listed on the exchange where the company is based.
How can I get TTM (Trailing Twelve Months) and Growth metrics?
Most functions will have the option to define the trailing parameter. This lets you define the number of periods that you want to use to calculate the trailing metrics. For example, if you want to calculate the trailing 12-month (TTM) Price-to-Earnings Ratio, you can set trailing=4 when you have set quarterly=True in the Toolkit initialization. The same goes for growth metrics which can be calculated by setting growth=True. This will calculate the growth for each period based on the previous period. This also includes a lag parameter in which you can define lagged growth. Furthermore, you can also combine the trailing and growth parameters to get trailing growth. For example, set trailing=4 and growth=True for the Price-to-Earnings Ratio which will then calculate the TTM growth.
Does the Finance Toolkit retrieve the same data every time I run it?
No. Any data that comes from an external source (financial statements, historical prices, economic indicators, yield curves, news and so on) is cached automatically in a local SQLite database and reused on the next run, in the Toolkit as well as in the Economics, Fixed Income, Discovery and Portfolio modules. Anything the Finance Toolkit calculates itself, such as ratios, models and risk metrics, is never cached: it is always derived from that data on demand, so it reflects the latest version of the Finance Toolkit.
Cached data does not go stale. Each dataset is retrieved again once it may have changed: prices and financial statements after a day (prices only for the last week, since older bars no longer change), quotes after a minute, company profiles after a month and economic releases according to how often they are published. An answer that a source has no data, such as the ETF holdings of a company, is cached as well, while a failed request, such as a rate limit, is not.
The cache keeps track of what it already holds per ticker and per date range, which means changing a parameter does not throw the rest away:
Repeating the same request retrieves nothing at all.
Widening the period only retrieves the years that were missing.
Adding a ticker only retrieves that one ticker.
The database lives in your user configuration directory, which is the same one the MCP server uses, so both share a single cache. You can choose where it is stored, or switch caching off:
from financetoolkit import Economics, Toolkit
# Store the cache in a specific folder
toolkit = Toolkit(["AAPL", "MSFT"], use_cached_data="datasets")
# Retrieve everything every time
toolkit = Toolkit(["AAPL", "MSFT"], use_cached_data=False)
economics = Economics(use_cached_data=False)Setting the FINANCE_TOOLKIT_CACHE_ENABLED environment variable to 0 switches caching off by default everywhere, which suits environments where nothing should be written to disk, such as a continuous integration job. FINANCE_TOOLKIT_CACHE_DB moves the shared database to another file.
To see what is currently stored, use toolkit.get_cache_contents(). It reports the entries grouped by source and dataset:
source | dataset | entities | entries | oldest_write | newest_write |
FinancialModelingPrep | historical | 2 | 2 | 2025-01-14 09:12:03 | 2025-01-14 09:12:05 |
FinancialModelingPrep | statements | 2 | 2 | 2025-01-14 09:12:01 | 2025-01-14 09:12:02 |
The Finance Toolkit never clears the cache on its own, not even when its own internal structure changes. Removing data is always something you ask for explicitly with toolkit.clear_cache(), and it can be narrowed instead of wholesale:
# Remove only the price history of a single ticker
toolkit.clear_cache(source="FinancialModelingPrep", ticker="AAPL")
# Remove everything retrieved from the OECD
toolkit.clear_cache(source="OECD")
# Remove the entire cache, which has to be confirmed
toolkit.clear_cache(confirm=True)The source names match the ones used by the enforce_source parameter, so "FinancialModelingPrep" and "YahooFinance" mean the same thing in both places.
What is the "Benchmark" that is automatically obtained when acquiring historical data?
This is related to the benchmark_ticker parameter which is set to "SPY" (S&P 500) by default. This is important when calculating performance metrics such as the Sharpe Ratio or Treynor Ratio that require a market return. This can be disabled by setting benchmark_ticker=None in the Toolkit initialization.
Data collection seems to be slow, what could be the issue?
Generally, it should take less than 15 seconds to retrieve the historical data of 100 tickers. If it takes much longer, this could be due to reaching the API limit (the Starter plan has 250 requests per minute), due to a slow internet connection or due to unoptimized code. The Finance Toolkit collects data with a bounded pool of worker threads (10 by default, configurable through the FINANCETOOLKIT_MAX_WORKERS environment variable) over a shared connection, so it is recommended to initialize the Toolkit with all tickers you want to analyze at once rather than one at a time. If it is taking 10+ minutes consider having a look at this issue that managed to resolve the problem.
I work behind a corporate proxy and get "certificate verify failed" errors, how do I solve this?
Many corporate networks inspect encrypted traffic. The proxy opens every HTTPS connection on your behalf and presents a certificate signed by your company's own root certificate instead of the website's real one. Your browser trusts that root certificate because IT installed it on your computer, but Python does not: it checks certificates against its own list of public certificate authorities (the certifi package), which does not include your company's. The result is an error such as SSLError: certificate verify failed: self-signed certificate in certificate chain.
When a certificate cannot be verified, the Finance Toolkit first retries with your operating system's certificate file, where Python can find one (usually on Linux, not on Windows). If that fails as well, what happens next depends on whether the request carries an API key:
Requests without an API key, such as those to the ECB, Eurostat or the BIS, are retried without verifying the certificate. A warning is logged when this happens.
Requests with an API key, such as those to FinancialModelingPrep and FRED, are not retried without verification. The key is part of the web address, so anyone who can intercept an unverified connection could read it and use your subscription. The request fails with an error that explains the options below.
The recommended solution is to tell Python to trust your company's root certificate, so every connection stays verified:
Obtain the root certificate as a
.pem(or.crt) file. Your IT department can usually provide it. You can also export it from your browser by opening the certificate details of any HTTPS website and exporting the top certificate in the chain ("Base-64 encoded" on Windows).Combine it with Python's public certificates. The next step replaces Python's list rather than adding to it, so without the public certificates every connection that does not go through the proxy would fail:
# Prints the location of Python's public certificates python -c "import certifi; print(certifi.where())" # macOS and Linux: combine both into one file cat /path/printed/above/cacert.pem /path/to/company-root.pem > ~/combined-certificates.pemOn Windows you can open both files in a text editor and paste the company certificate at the end of a copy of
cacert.pem.Point
REQUESTS_CA_BUNDLEto the combined file before using the Finance Toolkit:# macOS and Linux, e.g. in ~/.bashrc or ~/.zshrc export REQUESTS_CA_BUNDLE=~/combined-certificates.pem # Windows (PowerShell), for every window opened afterwards setx REQUESTS_CA_BUNDLE "C:\Users\you\combined-certificates.pem"setxdoes not change the window it runs in, so open a new terminal (or restart your editor) afterwards.Or set it within Python, before the first request:
import os os.environ["REQUESTS_CA_BUNDLE"] = "/path/to/combined-certificates.pem" from financetoolkit import ToolkitWhen you use the MCP server, add the variable to the
envsection of the server in your AI assistant's configuration instead.
Alternatively, if your company's root certificate is already installed in your operating system (which is usually the case on managed Windows and macOS computers), the truststore package lets Python use the operating system's certificates directly. Install it with pip install truststore and run import truststore; truststore.inject_into_ssl() at the start of your script.
If none of this is possible, you can accept the risk and allow requests with an API key to be sent without verification by setting FINANCETOOLKIT_ALLOW_UNVERIFIED_SSL=1 in the same way as above. Only do so on a network you trust: the connection is then encrypted to whoever answers it, which may not be the website you think you are talking to, and your API key is readable to them.
Are you part of FinancialModelingPrep?
No, I am not. I've merely picked them as the primary data provider given that they have a generous free tier and fair pricing compared to other providers. Therefore, any questions related to the data should go through their contact form. When it comes to any type of ratios, performance metrics, risk metrics, technical indicators or economic indicators, feel free to reach out to me as this is my own work.
Contributing
First off all, thank you for taking the time to contribute (or at least read the Contributing Guidelines)! 🚀
Find the Contributing Guidelines here.
The goal of the Finance Toolkit is to make any type of financial calculation as transparent and efficient as possible. I want to make these type of calculations as accessible to anyone as possible and seeing how many websites exists that do the same thing (but instead you have to pay) gave me plenty of reasons to work on this.
Mentions
The Finance Toolkit has been mentioned in various blogposts, research papers, newsletters and social media. Below is a list of some of the mentions that I am aware of. If you have any other mentions, feel free to reach out to me so I can add them to this list.
Blogposts
Discovering the Best Integrated Platforms for Big Tech Quantitative Finance: 1. Finance Toolkit
Unlocking Financial Clarity: Introducing the Open-Source Finance Toolkit Powered by FMP
Research
Newsletters & Social Media
Contact
If you have any questions about the Finance Toolkit or would like to share with me what you have been working on, feel free to reach out to me via:
Website: https://jeroenbouma.com/
LinkedIn: https://www.linkedin.com/in/boumajeroen/
Email: jer.bouma@gmail.com
If you'd like to support my efforts, either help me out by contributing to the package or Sponsor Me.
Available Tools
25 toolsbreadthARead-onlyIdempotentInspect
Market breadth technical indicators (McClellan Oscillator, OBV, Advance/Decline Line, Chaikin, TRIN, new highs and lows). Applied to price data automatically — no need to fetch prices first. TRIN treats the given tickers as one market, so every column holds the same value; pass the market's constituents for a meaningful figure. Requires tickers='AAPL' — use comma-separated values for multiple tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | daily |
| window | No | The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults are 14 for get_ease_of_movement; 20 for get_chaikin_money_flow; 252 for get_new_highs_new_lows. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| long_window | No | Number of periods for the long-term moving average. | |
| standardize | No | 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. | |
| start_value | No | The index value to start the series at. | |
| close_column | No | For get_mcclellan_oscillator, get_advancers_decliners, get_trin, get_new_highs_new_lows: The name of the column containing the close prices. For get_on_balance_volume, get_accumulation_distribution_line, get_chaikin_oscillator, get_chaikin_money_flow, get_ease_of_movement, get_negative_volume_index, get_positive_volume_index: The column name for closing prices in the historical data. | Adj Close |
| short_window | No | Number of periods for the short-term moving average. | |
| show_columns | No | 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. | |
| volume_divisor | No | Scaling constant applied to volume so that the Box Ratio (and therefore EMV) stays in a readable range regardless of an asset's typical share volume. | |
| long_ema_window | No | The window size for the long-term EMA. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| short_ema_window | No | The window size for the short-term EMA. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/open-world safety, and the description adds genuinely non-obvious behavior: internal price fetching, and the TRIN quirk that every column holds the same value unless constituents are passed. That is real behavioral context beyond the annotations, though it omits response/pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the indicator list and then the caveats, and every sentence carries information. The 'Requires tickers=’AAPL’' sentence is awkwardly worded and slightly redundant with the schema, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-indicator, 20-parameter tool the description covers the key gotchas (auto price application, TRIN semantics) and the output schema handles return values. However, it does not help route which window/EMA/period parameters apply to which indicator, and the tickers contradiction leaves a gap an agent must resolve from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the 20 parameters are already documented; baseline is 3. The description adds one piece of semantics beyond the schema for tickers (pass market constituents for TRIN), but the odd 'Requires tickers=’AAPL’' phrasing conflicts with the schema's optional, default-empty tickers and adds little for the other 19 params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely (market breadth indicators) and enumerates concrete members (McClellan Oscillator, OBV, Advance/Decline Line, Chaikin, TRIN, new highs/lows), which makes it easy to separate from momentum/volatility siblings. It never uses a verb or explicitly names a sibling, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Two concrete usage conditions are given: price data is applied automatically so no separate fetch is needed, and for TRIN the caller must pass the market's constituents to get a meaningful value. There is no explicit when-not-to-use or named alternative, so it is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discoveryARead-onlyIdempotentInspect
Market discovery (lists of stocks, ETFs, indices, currencies, commodities and cryptocurrencies, stock screener, biggest gainers and losers, most active stocks, sector and industry performance and P/E, earnings, IPO and stock split calendars, latest 8-K filings, insider trades and mergers, market news and press releases). No tickers or countries needed. The calendars and filings take start_date/end_date; the market-wide earnings calendar covers the coming week unless a range is given. Sector and industry performance and P/E take date= for one day's snapshot or sector=/industry= for a history (the last year unless start_date/end_date say otherwise). The stock screener ranks by market cap in US dollars ('Market Cap (USD)'; 'Market Cap' is in the listing's own currency) and returns every listing of a company unless primary_only=true; to screen by classification, use the Finance Database server.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | For get_industry_pe, get_industry_performance, get_sector_pe, get_sector_performance: The date to retrieve a snapshot for, e.g. "2024-02-01". For get_insider_trading_latest: Only return the trades filed on this date. | |
| page | No | For get_delisted_stocks: The page of results to retrieve, starting at 0. For get_insider_trading_latest, get_mergers_acquisitions_latest, get_sec_filings_8k: The page number to retrieve. | |
| limit | No | 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. Leave unset to use the default of the indicator you selected. Defaults are 100 for get_crypto_news, get_delisted_stocks, get_forex_news, get_general_news, get_insider_trading_latest, get_mergers_acquisitions_latest, get_press_releases, get_sec_filings_8k, get_stock_news; 1000 for get_stock_screener. | |
| pages | No | The number of pages to collect, each page is a separate API call, e.g. pages=5 makes 5 calls. | |
| is_etf | No | Whether to restrict the screen to ETFs or to exclude them. | |
| sector | No | For get_sector_pe, get_sector_performance: The sector to retrieve the history for, e.g. "Energy". For get_stock_screener: The sector to restrict the screen to, e.g. "Energy". | |
| country | No | The two-letter country code to restrict the screen to, e.g. "US". | |
| end_date | No | End of the date range in YYYY-MM-DD format. | |
| exchange | No | The exchange code to restrict the screen to, e.g. "NASDAQ". | |
| industry | No | For get_industry_pe, get_industry_performance: The industry to retrieve the history for, e.g. "Biotechnology". For get_stock_screener: The industry to restrict the screen to, e.g. "Biotechnology". | |
| indicator | Yes | 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. | |
| beta_lower | No | The maximum beta of the stock. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | |
| beta_higher | No | The minimum beta of the stock. | |
| price_lower | No | The maximum price of the stock. | |
| price_higher | No | The minimum price of the stock. | |
| primary_only | No | Set to true to keep only the most traded listing of each company rather than every listing (e.g. ING in Amsterdam, New York, Toronto and Frankfurt). | |
| show_columns | No | 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. | |
| volume_lower | No | The maximum volume of the stock. | |
| volume_higher | No | The minimum volume of the stock, in shares traded. | |
| dividend_lower | No | The maximum dividend of the stock. | |
| dividend_higher | No | The minimum dividend of the stock, as an amount per share over the last annual period rather than as a yield. | |
| market_cap_lower | No | The maximum market capitalization of the stock. | |
| market_cap_higher | No | The minimum market capitalization of the stock, in the currency of the listing rather than in millions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and openWorld behavior. The description adds real context beyond them: the earnings calendar defaults to the coming week, sector/industry history defaults to the last year, calendars and filings need start_date/end_date, and the screener ranks by USD market cap while returning all listings unless primary_only=true. Return-format detail is not needed because an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the scope and then the parameter routing, with no filler or restated pleasantries. The opening enumeration partly duplicates the indicator enum in the schema, but it groups the 30 values into human-readable categories, so it earns most of its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 24-parameter mega-tool with full schema coverage and an output schema, the description supplies the missing pieces: indicator-to-parameter mapping, default time windows, and the screener's ranking/short-circuit semantics. It is close to complete, though it never addresses the near-duplicate 'get_sector_performance' vs 'get_sectors_performance' enum values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a 3 is the baseline; the description still adds value by tying parameters to specific indicators and by disclosing defaults not present in the schema (last-year sector/industry history, coming-week earnings window). It also clarifies the 'Market Cap (USD)' vs 'Market Cap' currency distinction and the primary_only=true behavior for the screener.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific domain ('Market discovery') and enumerates the concrete resources covered — stock/ETF/index/currency/commodity/crypto lists, screener, gainers/losers, sector and industry P/E, calendars, 8-K filings, insider trades, news — so an agent knows exactly what family of queries this tool serves. It does not, however, differentiate itself from any of the sibling tools (market_data, performance, valuation, search_metrics), which all plausibly overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is implied rather than stated: 'No tickers or countries needed' frames it against ticker-scoped siblings, and it routes classification screening to the Finance Database server. There is no explicit when-to-use/when-not against the listed siblings (e.g. market_data, performance), so an agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
econometricsBRead-onlyIdempotentInspect
Statistical and econometric analysis of price or return series: unit root tests (ADF, KPSS, Phillips-Perron, Zivot-Andrews), cointegration (Engle-Granger, Johansen, VECM), Granger causality, VAR forecasts, impulse responses and variance decomposition, ARIMA forecasts, regressions (OLS, WLS, GLS, quantile, logistic, probit, IV/2SLS, Fama-MacBeth, fixed and random effects panels), causal designs (difference-in-differences, event study, regression discontinuity, synthetic control, propensity score matching), diagnostics (ARCH-LM, Jarque-Bera, Ljung-Box, Durbin-Watson, Breusch-Pagan, White, Ramsey RESET, VIF, Chow, CUSUM, variance ratio) and forecast comparison (Diebold-Mariano, RMSE, MAE). No need to fetch price data first. Requires tickers='AAPL' — use comma-separated values for multiple tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| d | No | For get_arima_forecast: The number of times to difference the series. For get_out_of_sample_validation: The ARIMA differencing order (`model="arima"` only). | |
| p | No | For get_arima_forecast: The autoregressive order. For get_out_of_sample_validation: The ARIMA autoregressive order (`model="arima"` only). | |
| q | No | For get_arima_forecast: The moving-average order. For get_out_of_sample_validation: The ARIMA moving-average order (`model="arima"` only). For get_variance_ratio_test: The number of periods to compound returns over. Leave unset to use the default of the indicator you selected. Defaults are 1 for get_arima_forecast, get_out_of_sample_validation; 2 for get_variance_ratio_test. | |
| tau | No | The quantile to fit, in (0, 1). | |
| lags | No | The number of lags (past periods) the test or model uses, e.g. 1 or 5. Leave unset to use the default of the indicator you selected. Defaults are 1 for get_impulse_response_function, get_out_of_sample_validation, get_var_forecast, get_variance_decomposition; None for get_kpss_test, get_phillips_perron_test; 10 for get_ljung_box_test; 5 for get_arch_lm_test. | |
| loss | No | The loss function to compare forecast errors with, one of "squared" or "absolute". | squared |
| trim | No | The fraction of observations excluded from the candidate break date search at the start and end of the sample. Must be in [0, 1/3). | |
| limit | No | 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. | |
| model | No | Either "arima" or "var". | arima |
| omega | No | The (symmetric, positive-definite) error covariance structure, up to a scalar, shape `(n, n)`. Leave unset to use the default of the indicator you selected. Required by: get_gls. | |
| power | No | The highest power of the fitted values to add. | |
| column | No | The price column to use, e.g. 'Close' or 'Adj Close'. Leave unset to use the default of the indicator you selected. Defaults differ between indicators. | |
| cutoff | No | The threshold value of `running_variable_ticker` at which the discontinuity is estimated. Leave unset to use the default of the indicator you selected. Required by: get_regression_discontinuity. | |
| kernel | No | One of "uniform" or "triangular". | uniform |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | |
| caliper | No | The maximum allowed logit-propensity-score matching distance. | |
| lambda_ | No | The decay factor used by the "ewma" method. | |
| max_lag | No | The maximum number of lagged differences to consider. Leave unset to use the default of the indicator you selected. Defaults are None for get_augmented_dickey_fuller, get_engle_granger_cointegration, get_zivot_andrews_test; 5 for get_granger_causality. | |
| maxlags | No | For get_ols: The maximum lag to include when estimating the HAC (Newey-West) covariance matrix, required when `cov_type="HAC"`. A common rule of thumb is `floor(4 * (n / 100)^(2/9))` (Newey & West, 1994). For get_wls: The maximum lag to include when estimating the HAC (Newey-West) covariance matrix, required when `cov_type="HAC"`. See `get_ols`'s `maxlags` for the rule-of-thumb formula. | |
| periods | No | For get_impulse_response_function: The number of periods ahead to trace the response out to. For get_variance_decomposition: The forecast horizon to decompose out to. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| weights | No | The portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset. Leave unset to use the default of the indicator you selected. Required by: get_wls. | |
| clusters | No | For get_ols: The cluster label for each observation (e.g. a coarser time bucket derived from the return index, to correct for within-period correlation), required when `cov_type="cluster"`. Aligned to the regression's own index before use, so it may be indexed by the full period index even though the... For get_wls: The cluster label for each observation, required when `cov_type="cluster"`. | |
| cov_type | No | For get_ols: Which covariance estimator to use for the standard errors -- one of "nonrobust" (classical, assumes homoskedastic errors), "HC0"/"HC1"/"HC2"/"HC3" (heteroskedasticity-robust), "cluster" (cluster-robust, requires `clusters`) or "HAC" (Newey-West, heteroskedasticity-and-autocorrelation-consistent,... For get_wls: Which covariance estimator to use, applied to the weighted/ transformed problem -- see `get_ols`'s `cov_type` for the full list of options. | nonrobust |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| gap_days | No | Number of trading days between the end of the estimation window and the event date. | |
| method_a | No | The first volatility forecasting method, one of "ewma" or "rolling". | ewma |
| method_b | No | The second (competing) volatility forecasting method, one of "ewma" or "rolling". | rolling |
| bandwidth | No | The maximum distance from `cutoff` an observation may be to be included in either local regression. | |
| det_order | No | Which deterministic term to include: -1 (none), 0 (a constant, restricted to lie in the cointegrating relation) or 1 (a linear trend restricted to the cointegrating relation, alongside an unrestricted constant in the short-run dynamics). | |
| indicator | Yes | 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. | |
| k_ar_diff | No | The number of lagged first differences to include as short-run dynamics. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| break_date | No | The date (e.g. "2021-06-30") at which to split the sample -- all periods starting on or after this date form the "after" sub-sample, everything before it forms the "before" sub-sample. Leave unset to use the default of the indicator you selected. Required by: get_chow_test. | |
| event_date | No | The date of the event (e.g. "2023-05-04"). Must fall within the Toolkit instance's daily historical data. Leave unset to use the default of the indicator you selected. Required by: get_event_study. | |
| regression | No | Which deterministic terms to include, one of "n" (none), "c" (constant) or "ct" (constant and trend). | c |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| n_bootstrap | No | The number of bootstrap resamples used for coefficient standard errors, overriding `statsmodels`' default analytic (kernel density-based) standard errors. | |
| window_size | No | The rolling window size used by the "rolling" method. | |
| add_constant | No | Whether to include an intercept. | |
| show_columns | No | 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. | |
| significance | No | The significance level (one of 0.01, 0.05, 0.10) at which the Johansen trace test determines the cointegrating rank. | |
| time_effects | No | Whether to control for entity-invariant, time-specific shocks. | |
| asset_tickers | No | The ticker(s) forming the cross-section of test assets. | |
| donor_tickers | No | The ticker(s) forming the donor pool the synthetic control is built from. | |
| other_tickers | No | The other assets to include in the VAR system alongside the ticker being validated (`model="var"` only). | |
| within_period | No | Whether to calculate the test within the specified period or for the entire period. Thus whether to look at the test within a specific year (if period = 'yearly') or look at the entirety of all years. Note that this requires intraday data when period = 'daily', since a single day only nests... | |
| entity_effects | No | Whether to control for time-invariant entity-specific characteristics. | |
| equal_variance | No | Whether to assume the two samples share a common variance (Student's pooled t-test) instead of Welch's (unequal-variance) t-test. | |
| factor_tickers | No | The ticker(s) whose returns are used as the risk factor(s) (e.g. "Benchmark" for a single-factor/CAPM-style test). | |
| forecast_steps | No | The number of periods ahead to forecast. | |
| orthogonalized | No | Whether to orthogonalize the shocks via a Cholesky decomposition of the residual covariance matrix -- see `time_series_model.get_impulse_response_function`. | |
| pre_event_days | No | Number of trading days before the event date included in the event window. | |
| suspect_ticker | No | The (possibly endogenous) asset being tested. Leave unset to use the default of the indicator you selected. Required by: get_hausman_wu_test. | |
| train_fraction | No | The fraction of observations used for training; the remainder is the holdout. | |
| treated_ticker | No | The asset believed to be affected by an event/ intervention starting at `treatment_period`. Leave unset to use the default of the indicator you selected. Required by: get_synthetic_control. | |
| treatment_date | No | The date the event/treatment occurs, in the same format accepted by `pd.Timestamp`. Observations on or after this date are `Post = 1`. Leave unset to use the default of the indicator you selected. Required by: get_difference_in_differences. | |
| control_tickers | No | The untreated comparison asset(s). | |
| post_event_days | No | Number of trading days after the event date included in the event window. | |
| treated_tickers | No | The asset(s) subject to the event/treatment. Leave unset to use the default of the indicator you selected. Required by: get_difference_in_differences. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| dependent_ticker | No | The outcome asset. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_hausman_wu_test, get_iv_2sls, get_likelihood_ratio_test, get_propensity_score_matching, get_regression_discontinuity. Defaults are None for get_breusch_pagan_test, get_chow_test, get_durbin_watson_test, get_event_study, get_gls, get_logistic_regression, get_ols, get_probit_regression, get_quantile_regression, get_ramsey_reset_test, get_wald_test, get_white_test, get_wls. | |
| include_constant | No | For get_arima_forecast: Whether to estimate a free intercept. For get_out_of_sample_validation: Whether the ARIMA model estimates a free intercept (`model="arima"` only). | |
| treatment_period | No | The first post-treatment period -- periods at or after this value (within `period`'s index) are treated as post-treatment, everything before as pre-treatment (used to fit the synthetic control's weights). Leave unset to use the default of the indicator you selected. Required by: get_synthetic_control. | |
| treatment_ticker | No | The asset whose return, once it exceeds `treatment_threshold`, defines the treatment indicator. Leave unset to use the default of the indicator you selected. Required by: get_propensity_score_matching. | |
| covariate_tickers | No | The asset(s) used as covariates to estimate the propensity score -- should include asset(s) believed to drive selection into "treatment". Leave unset to use the default of the indicator you selected. Required by: get_propensity_score_matching. | |
| dependent_tickers | No | The panel of entity tickers to explain. | |
| endogenous_ticker | No | The endogenous regressor asset(s) -- suspected correlated with the error term. Leave unset to use the default of the indicator you selected. Required by: get_iv_2sls. | |
| estimation_window | No | Number of trading days used to estimate the market model. | |
| exogenous_tickers | No | Other, non-instrumented control asset(s) included as-is in both stages. | |
| include_benchmark | No | Whether to include "Benchmark" among the assets tested. | |
| independent_column | No | A different historical data column, taken per-entity from each of `dependent_tickers`' own data, to use as the regressor. Mutually exclusive with `independent_tickers`. | |
| instrument_tickers | No | For get_hausman_wu_test: One or more instrument asset(s) for `suspect_ticker` -- assets correlated with `suspect_ticker` but assumed uncorrelated with `dependent_ticker`'s error term. For get_iv_2sls: The excluded instrument asset(s), correlated with `endogenous_ticker` but assumed uncorrelated with the error term. Must supply at least as many instruments as endogenous regressors. Leave unset to use the default of the indicator you selected. Required by: get_hausman_wu_test, get_iv_2sls. | |
| restriction_matrix | No | The `(q, k)` restriction matrix `R`, one row per restriction, one column per coefficient in the same order as `add_constant` (if True, "Intercept" first) followed by the independent ticker(s). Leave unset to use the default of the indicator you selected. Required by: get_wald_test. | |
| restriction_values | No | The length-`q` vector of hypothesized values. | |
| independent_tickers | No | For get_breusch_pagan_test, get_chow_test, get_durbin_watson_test, get_gls, get_logistic_regression, get_ols, get_probit_regression, get_quantile_regression, get_ramsey_reset_test, get_white_test, get_wls: The independent (predictor) asset(s). For get_fixed_effects, get_hausman_test, get_random_effects: The factor ticker(s), whose `column` values are broadcast identically to every entity at each date. Mutually exclusive with `independent_column`. For get_wald_test: The independent (predictor) asset(s), in the order the restriction matrix's columns (after "Intercept", if `add_constant`) refer to them. | |
| treatment_threshold | No | The return threshold defining treatment. | |
| running_variable_ticker | No | The asset (or column) whose value determines which side of `cutoff` an observation falls on. Leave unset to use the default of the indicator you selected. Required by: get_regression_discontinuity. | |
| other_independent_tickers | No | Any other (assumed exogenous) independent asset(s) to include. | |
| restricted_independent_tickers | No | The independent asset(s) in the restricted (smaller) model. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_likelihood_ratio_test. | |
| unrestricted_independent_tickers | No | The independent asset(s) in the unrestricted (larger) model -- must be a superset of `restricted_independent_tickers`. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_likelihood_ratio_test. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that price data need not be fetched first and that tickers is required, which is useful behavioral context. It does not describe return format, pagination, or per-indicator requirements beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the general purpose and then enumerates method families. The long list is dense but earns its place by informing the agent of the tool's broad scope. It avoids unnecessary repetition, though the single run-on sentence could be structured more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (81 parameters, 47 indicators, output schema present) the description covers method scope and the tickers requirement. It omits guidance on how the required indicator parameter selects a specific method and how to discover indicators, though the schema's indicator description mentions search_metrics. Output schema existence means return values need not be explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 81 parameters are already documented in the schema. The description only adds the tickers format example, which is also present in the schema. Baseline 3 is appropriate because the description does not add meaning beyond the structured parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: statistical and econometric analysis of price or return series. It enumerates specific method families, making the scope concrete. However, it does not explicitly distinguish this tool from sibling tools such as volatility, models, or risk, which prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists supported methods but gives no explicit guidance on when to use this tool versus alternatives. It says 'No need to fetch price data first' and shows the tickers syntax, but offers no when-to-use or when-not-to-use conditions. The agent must infer usage entirely from the method list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
efficiencyARead-onlyIdempotentInspect
Pre-computed efficiency ratios (asset turnover, inventory turnover, days sales outstanding, days payable outstanding, cash conversion cycle). Requires tickers='AAPL' — use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| days | No | Number of calendar days used in day-count-based calculations. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| trailing | No | 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. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered structurally. The description adds that results are pre-computed (no client-side calculation) and that tickers is effectively required despite the empty default, but it says nothing about output shape, date defaults, or data recency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, purpose front-loaded, no filler. The ticker-format sentence partially repeats the schema's own tickers description, which is the only redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema and annotations exist, so return values and safety need not be explained. However, for a 13-parameter tool the description never mentions the required 'indicator' argument (one of 19 metrics) or routing via search_metrics/search_metric_categories, which is the single most important thing an agent must decide before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 13 parameters, so the baseline is 3. The description only restates tickers format plus quarterly and start_date/end_date, adding no meaning beyond the schema's own parameter docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific resource ('Pre-computed efficiency ratios') and enumerates five representative metrics (asset turnover, inventory turnover, DSO, DPO, cash conversion cycle), which lets an agent distinguish it from category siblings like profitability or solvency. It does not explicitly name a sibling, so it stops short of the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context: the tool is pre-computed, requires at least one ticker, accepts comma-separated multi-ticker input, and should be preferred over raw financial statements. No explicit 'when not to use' or pointer to sibling category tools, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environmentARead-onlyIdempotentInspect
Environmental and ESG data. For ESG scores (E, S, G ratings) use tickers='AAPL'. For carbon footprint and renewable energy data use countries='United States' (also supports rolling=N and trailing=N smoothing/summation). This is the only tool that accepts BOTH tickers= and countries= depending on the indicator. get_carbon_price returns the EU ETS carbon price (EEX primary auctions of EU emission allowances, euro per tonne of CO2, daily from 2020, no key and no countries needed), period='daily', 'weekly' or 'monthly'. get_climate_scenario returns NGFS climate scenario paths (Phase 5, yearly 2022-2050, around fifty countries and regions, no key): variable='gdp'|'inflation'|'long_term_interest_rate'|'long_term_real_interest_rate'|'policy_rate'|'unemployment_rate'|'equity_prices'|'effective_exchange_rate'|'oil_price'|'gas_price'|'coal_price'|'carbon_price' (carbon price per model region to 2100), scenario='Net Zero 2050'|'Below 2°C'|'Low demand'|'Delayed transition'|'Nationally Determined Contributions (NDCs)'|'Current Policies'|'Fragmented World'|'Baseline', model='REMIND-MAgPIE'|'GCAM'|'MESSAGEix-GLOBIOM', risk='combined'|'transition'|'physical', deviation=true for the deviation from the baseline; countries= optional.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| risk | No | "combined", "transition" or "physical". Current Policies has physical risk only, which is also its combined risk. | combined |
| limit | No | 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. | |
| model | No | The integrated assessment model behind the scenario: "REMIND-MAgPIE", "GCAM" or "MESSAGEix-GLOBIOM". | REMIND-MAgPIE |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | daily |
| rolling | No | 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. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| scenario | No | "Net Zero 2050", "Below 2°C", "Low demand", "Delayed transition", "Nationally Determined Contributions (NDCs)", "Current Policies", "Fragmented World" or "Baseline". | Net Zero 2050 |
| trailing | No | 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. | |
| variable | No | The variable: "gdp", "inflation", "long_term_interest_rate", "long_term_real_interest_rate", "policy_rate", "unemployment_rate", "equity_prices", "effective_exchange_rate", "domestic_demand", "exports", "imports", "oil_price", "gas_price", "coal_price" or "carbon_price" (units above). | long_term_interest_rate |
| countries | No | Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'. | |
| deviation | No | Whether to return the deviation from the baseline instead of the level. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly/idempotent/openWorld, and the description goes well beyond them: provenance for carbon price (EU ETS, EEX primary auctions), coverage windows (daily from 2020; NGFS Phase 5 yearly 2022-2050; ~50 countries and regions), units (euro per tonne CO2), and the fact that no API key is required. This is exactly the extra context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the domain sentence, then a dense but information-bearing run-on covering each indicator; almost every clause carries operational detail (defaults, units, coverage) rather than filler. It would read better as short per-indicator bullets, but nothing is wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter dispatcher with an output schema and full annotation coverage, the description supplies the indicator-specific parameter mapping, date coverage, and data provenance an agent needs to pick the right arguments. Return-format details are correctly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 100% the baseline is 3, but the description adds genuine routing semantics the schema lacks: which of the 20 parameters apply to which indicator, the accepted period values for carbon price, the full variable/scenario/model/risk/deviation vocabulary for get_climate_scenario, and the special meaning of carbon_price 'per model region to 2100'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource domain (environmental and ESG data) and then breaks it into the five concrete indicators it dispatches (carbon footprint, renewable energy, carbon price, climate scenario, ESG scores), each with a specific data source and unit. The line 'This is the only tool that accepts BOTH tickers= and countries= depending on the indicator' explicitly separates it from sibling category tools like macroeconomics or government.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete routing rules per indicator ('For ESG scores ... use tickers="AAPL"', 'For carbon footprint ... use countries="United States"') and notes get_carbon_price needs no key or countries. It does not name an alternative tool or state when NOT to use this tool, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fixed_incomeARead-onlyIdempotentInspect
Bond and derivative valuation calculations (bond duration, present value, yield to maturity, derivative pricing, par yield, forward rate, breakeven inflation rate, key rate duration, yield curve spread, Z-spread, bond-equivalent yield, Taylor-series price change estimate). No tickers or countries needed — pass the bond's terms directly, e.g. par_value=1000, coupon_rate=0.05, years_to_maturity=10 with bond_price or yield_to_maturity. A bond's price is get_present_value. The curve-based calculations (par yield, forward rate, yield curve spread, Z-spread, key rate duration, breakeven inflation) take the curve as spot_rates (nominal_rates and real_rates for breakeven inflation), the rate per maturity in years, e.g. {'1': 0.042, '2': 0.040, '5': 0.041, '10': 0.043}; without it they use a fixed sample curve for illustration. Take the current curve from the rates tool, e.g. get_treasury_rates.
| Name | Required | Description | Default |
|---|---|---|---|
| guess | No | For get_yield_to_maturity: The initial guess for the yield to maturity. For get_z_spread: The initial guess for the Z-spread. Leave unset to use the default of the indicator you selected. Defaults are 0.01 for get_z_spread; 0.05 for get_yield_to_maturity. | |
| limit | No | 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. | |
| model | No | The type of model to use for calculating the derivative price. | black |
| tenor | No | The tenor (length in years) of the underlying swap. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| maturity | No | The maturity (or maturities), in years, to calculate the breakeven inflation rate for. If not provided, a range of maturities will be used. | |
| notional | No | The notional amount of the derivative. | |
| countries | No | Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'. | |
| frequency | No | For get_duration, get_present_value: The frequency of coupon payments per year. For get_yield_to_maturity, get_par_yield, get_key_rate_duration, get_z_spread, get_taylor_price_change: The number of coupon payments per year. | |
| indicator | Yes | 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. | |
| par_value | No | For get_duration, get_present_value, get_key_rate_duration, get_z_spread, get_taylor_price_change: The par value (face value) of the bond. For get_yield_to_maturity: The par value (face value) of the bond. This is the original price when it was issued by the issuer. For get_par_yield: The face value of the bond. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| tolerance | No | The tolerance level for convergence. | |
| bond_price | No | Clean price of the bond per 100 face value. | |
| real_rates | No | The real (inflation-protected) yield curve, indexed by maturity in years (in decimal). | |
| spot_rates | No | The yield curve, indexed by maturity in years (in decimal). | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| volatility | No | The volatility of the underlying swap rate, quoted on the basis given by `volatility_type`. | |
| coupon_rate | No | Annual coupon rate as a decimal, e.g. 0.05 for 5 %. Leave unset to use the default of the indicator you selected. Defaults are 0.05 for get_key_rate_duration, get_yield_to_maturity, get_z_spread; None for get_duration, get_present_value, get_taylor_price_change. | |
| is_receiver | No | True if the holder is the receiver of the derivative, False if the holder is the payer. | |
| strike_rate | No | Option strike price. | |
| far_maturity | No | The further maturity (or maturities), in years. If not provided, a range of far maturities will be used. | |
| forward_rate | No | The forward rate as derived from the swap curve. | |
| show_columns | No | 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. | |
| yield_change | No | For get_key_rate_duration: The size of the shock applied to each key rate, up and down (in decimal). For get_taylor_price_change: The hypothetical change in yield to maturity, e.g. 0.01 for a 100 basis point increase. Leave unset to use the default of the indicator you selected. Defaults are 0.0001 for get_key_rate_duration; 0.01 for get_taylor_price_change. | |
| duration_type | No | The type of duration to calculate. | modified |
| long_maturity | No | The longer maturity (or maturities), in years. If not provided, a range of long maturities will be used. | |
| near_maturity | No | The nearer maturity (or maturities), in years. If not provided, a range of near maturities will be used. | |
| nominal_rates | No | The nominal (non-inflation-protected) yield curve, indexed by maturity in years (in decimal). | |
| discount_yield | No | The money-market discount yield of the instrument (in decimal). If not provided, a range of discount yields will be used. | |
| include_payoff | No | True to include the payoff in the output, False otherwise. | |
| max_iterations | No | The maximum number of iterations for convergence. | |
| risk_free_rate | No | The risk-free interest rate. | |
| short_maturity | No | The shorter maturity (or maturities), in years. If not provided, a range of short maturities will be used. | |
| show_input_info | No | For get_derivative_price: True to display input information, False otherwise. For get_duration, get_present_value, get_yield_to_maturity, get_par_yield, get_forward_rate, get_breakeven_inflation_rate, get_key_rate_duration, get_yield_curve_spread, get_z_spread, get_bond_equivalent_yield, get_taylor_price_change: Whether to display input information. | |
| volatility_type | No | The convention `volatility` is quoted on, either 'lognormal' (relative to the forward rate) or 'normal' (absolute, in rate units). | |
| days_to_maturity | No | The number of days until the instrument matures. If not provided, a range of typical T-bill maturities will be used. | |
| key_rate_maturity | No | The maturity (or maturities), in years, of the curve point(s) to shock. Must be present in the index of `spot_rates`. | |
| payment_frequency | No | Number of fixed-leg payments per year on the underlying swap (e.g. 1 for annual, 2 for semi-annual, 4 for quarterly). | |
| years_to_maturity | No | Years remaining until the bond matures. | |
| yield_to_maturity | No | For get_duration, get_present_value: The yield to maturity of the bond. For get_taylor_price_change: The current yield to maturity of the bond. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint), so the bar is lower. The description adds genuinely non-obvious behavior: without spot_rates the curve-based calculations silently fall back to a fixed sample curve 'for illustration' — a critical caveat an agent could not infer from annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then input conventions, then curve handling and the rates-tool pointer. The long parenthetical metric list slightly restates the enum, but it is compact and each subsequent sentence adds real information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 41-parameter, 12-mode tool with an output schema present (so return values need no explanation), the description covers the mandatory mental model: pick an indicator, pass bond terms, supply a curve for curve-based modes. It does not spell out required-vs-optional inputs per mode, but the schema descriptions already do that exhaustively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline would be 3; the description exceeds it by giving concrete input patterns (par_value=1000, coupon_rate=0.05, years_to_maturity=10 combined with bond_price or yield_to_maturity) and the exact shape of spot_rates as maturity-keyed decimals. It does not attempt per-indicator parameter mapping for all twelve modes, which is reasonable given the schema already carries that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Bond and derivative valuation calculations') and then enumerates the twelve calculations, which map one-to-one onto the indicator enum. It also disambiguates an easily confused case ('A bond's price is get_present_value') and points to the rates tool for curve input, so an agent can distinguish it from siblings like options or rates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the key usage condition clearly: no tickers or countries needed, pass bond terms directly, and the curve-based calculations require spot_rates (nominal_rates and real_rates for breakeven). It also routes the agent to get_treasury_rates for fresh curve data. It stops short of explicit when-not-to-use guidance relative to sibling tools such as options or rates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
governmentARead-onlyIdempotentInspect
Government fiscal metrics by country (debt, deficit, expenditure, revenue, tax revenue, trust in government). Requires countries='United States' — use comma-separated values for multiple countries. Do NOT use tickers= for this tool. Supports start_date/end_date. Most series are yearly: quarterly=true returns quarterly data only where a source has it (a note says when it does not). Supports rolling=N (moving-average smoothing) and trailing=N (trailing N-period sum, e.g. a trailing-4-quarter sum) on the raw series. level='consolidated' (default, longest history), 'general' (general government) or 'central' (central government) selects the level of government for debt, deficit, expenditure, revenue and tax revenue.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| level | No | Level of government: 'consolidated' (longest history), 'general' (central, state and local government and social security) or 'central'. | consolidated |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| rolling | No | 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. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| trailing | No | 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. | |
| countries | No | Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| gmdb_forecasts | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and openWorld, so the safety profile is settled. The description adds real behavioral context beyond that: series are yearly unless quarterly=true and a note appears when a source lacks quarterly data, and the 'consolidated' level is documented as having the longest history. Return-shape details are left to the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph that front-loads the resource and the required-country rule before the frequency and enum-level details. It is appropriately sized for a 14-parameter tool, though some sentences (rolling/trailing) largely mirror the schema and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter tool with an output schema, the description covers the essentials an agent needs to avoid common failure modes: the mandatory country argument, tickers exclusion, date range, frequency caveat and level selection. Secondary transform parameters are left to the schema, which is acceptable given 100% coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 14 parameters, setting the baseline at 3. The description restates and slightly enriches a few of them (level semantics, rolling as smoothing, trailing as a TTM-style sum) but adds little that the schema text does not already say, and omits lag, growth, standardize, limit, show_columns and gmdb_forecasts entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource pairing ('Government fiscal metrics by country') and enumerates the covered domains (debt, deficit, expenditure, revenue, tax revenue, trust in government), which matches the indicator enum well. It does not explicitly differentiate itself from the closest sibling, macroeconomics, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete invocation conditions: countries='United States' is required, comma-separated for multiples, and an explicit exclusion ('Do NOT use tickers= for this tool'). It also flags the frequency caveat (yearly by default; quarterly only where a source provides it). No alternative tool is named for non-government macro data, so usage guidance is good but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobsARead-onlyIdempotentInspect
Labour and social metrics by country (unemployment rate, labour productivity, population statistics, poverty rate, income inequality). Requires countries='United States' — use comma-separated values for multiple countries. Do NOT use tickers= for this tool. Supports start_date/end_date. Most series are yearly: quarterly=true returns quarterly data only where a source has it (a note says when it does not). get_life_table returns Eurostat life tables by age 0-95 for European countries, yearly from 1960 (measure='death_probability'|'survival_probability'|'death_rate'|'survivors'|'deaths'|'person_years'|'total_person_years'|'life_expectancy', sex='total'|'male'|'female'); keep countries to one or two, since each country has 96 ages. get_unemployment_rate accepts period='monthly' for the latest monthly figures without an API key (Eurostat, the ONS for the United Kingdom, the IBGE for Brazil, the BLS for the latest US months, the OECD for every other country). Supports rolling=N (moving-average smoothing) and trailing=N (trailing N-period sum) on the raw series. Also includes two US-only, FRED-backed labor indicators (get_nonfarm_payrolls, get_initial_jobless_claims) — these require a FRED API key and only return a 'United States' column regardless of the countries= argument.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| sex | No | "total", "male" or "female". | total |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | |
| measure | No | Sub-measure selector, e.g. 'M1', 'M2', or 'M3' for money supply. | death_probability |
| rolling | No | 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. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| trailing | No | 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. | |
| countries | No | Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| gmdb_source | No | 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. | |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| gmdb_forecasts | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, but the description adds substantive behavior: the two FRED-backed indicators require an API key and always return only a 'United States' column regardless of countries=, most series are yearly with quarterly available only where the source has it (and a note when it does not), and monthly unemployment comes from different providers per country. No error, rate-limit or caching behavior is described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and metric inventory, and given that eight distinct indicators are channelled through one tool, the length is largely earned. It is a single undifferentiated block, however, and one sentence ('Do NOT use tickers= for this tool') guards against a parameter this tool does not even expose, which is wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter, 8-indicator tool with an output schema, the description covers the essential per-indicator behaviors, data sources, key requirements and frequency caveats. The remaining gap is that several indicators (poverty rate, income inequality, population statistics) get no indicator-specific guidance beyond being listed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description genuinely adds meaning the schema lacks: it clarifies that 'measure' for this tool means life-table measures (death_probability, survival_probability, life_expectancy, etc.) and that 'sex' applies to life tables, whereas the schema's own 'measure' text references money supply. It also maps period='monthly' to get_unemployment_rate and explains rolling/trailing in an economics context. The odd phrase "Requires countries='United States'" sits awkwardly against a default of empty string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely (labour and social metrics by country) and enumerates the concrete series covered: unemployment rate, labour productivity, population statistics, poverty rate, income inequality. It also names the four specialist indicators (get_life_table, get_unemployment_rate, get_nonfarm_payrolls, get_initial_jobless_claims), which makes the tool's scope unambiguous. It does not, however, route the agent against siblings such as macroeconomics or government, which share topical overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real operational guidance: countries= accepts comma-separated values, 'Do NOT use tickers= for this tool', start_date/end_date are supported, quarterly=true is only honoured where a source provides it, and life-table calls should keep countries to one or two because each country has 96 ages. It also flags that the two FRED indicators need an API key. It stops short of stating when to prefer this tool over sibling category tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
liquidityARead-onlyIdempotentInspect
Pre-computed liquidity ratios (current ratio, quick ratio, cash ratio, working capital). Requires tickers='AAPL' — use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| days | No | Number of calendar days used in day-count-based calculations. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| trailing | No | 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. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds that results are pre-computed and that quarterly/date-range modifiers exist, but says nothing about response size, pagination, or cost. Notably it claims tickers is 'Required' when the schema marks only 'indicator' as required, which is a mild inaccuracy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with what is computed, then input format, then placement against raw statements, then supported modifiers. No filler, though the trailing 'supports quarterly=true and start_date/end_date' overlaps with schema-documented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter, output-schema-backed read tool, the description covers the essentials: what it returns, the required input style, and the raw-statement alternative. The omission of the search_metrics routing and the incorrect required-parameter statement are the only meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters including ticker format, quarterly, and date bounds; the description largely repeats these. It mentions only 3 of 13 parameters and lists 4 of the 8 enum indicators, and the false 'Requires tickers' claim slightly misleads, but the schema carries the load, holding this at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (pre-computed liquidity ratios) and enumerates the concrete metrics it returns, plus the ticker input format. It is clear what the tool does, but it never names or contrasts its metric-family siblings (profitability, solvency, efficiency), so the agent must infer the boundary from context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use instead of raw financial statements' gives one real routing cue, and the ticker format guidance is actionable. However there is no when-not guidance and no pointer to search_metrics for unknown indicator names (that hint lives only in the schema), so usage is only partially covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macroeconomicsARead-onlyIdempotentInspect
Macroeconomic indicators by country (GDP, real GDP, CPI, PPI, inflation rate, trade balance, imports, exports, investment, consumption, business/consumer confidence, house prices, rent prices, exchange rates, real effective exchange rate, money supply, household savings rate, household debt-to-income ratio, output gap, real interest rate, misery index, banking/currency/sovereign debt crisis indicators, commercial real estate prices, commodity forward curves). Requires countries='United States' — use comma-separated values for multiple countries. Do NOT use tickers= for this tool. Supports start_date/end_date. Most series are yearly: quarterly=true returns quarterly data only where a source has it (a note says when it does not). Supports rolling=N (moving-average smoothing) and trailing=N (trailing N-period sum, e.g. a trailing-4-quarter sum) on the raw series. get_gross_domestic_product_growth returns the latest quarterly real GDP growth (quarter on quarter, or year_over_year=true) without an API key. get_shiller_stock_market_data returns Robert Shiller's monthly US stock market data from 1871 (price, dividend, earnings, CPI, long rate, CAPE; no countries needed). get_exchange_rates accepts period='daily' or 'weekly' and end_of_period=true for month-, quarter- or year-end rates (BIS, no key). get_commercial_real_estate_prices covers around twenty economies (BIS, no key). get_inflation_rate and get_consumer_price_index default to annual data; pass period='monthly' for the latest monthly figures without an API key (Eurostat incl. the euro area flash estimate, the ONS for the United Kingdom, the Statistics Bureau of Japan, and the BIS for around sixty other countries incl. the United States, China, India and Brazil). get_consumer_price_index also accepts oecd_source=true for monthly/quarterly OECD data only. get_commodity_forward_curve requires a commodity= argument instead of countries= (e.g. 'Crude Oil', 'Gold') and returns dated futures contracts, not a country series. Also includes six US-only indicators that only return a 'United States' column regardless of the countries= argument: get_industrial_production_index (Federal Reserve G.17) and get_recession_indicator (NBER business cycle dates) work without an API key, while get_retail_sales, get_housing_starts, get_real_personal_income and get_commercial_real_estate_prices require a free FRED API key (optional; get one at https://fred.stlouisfed.org/docs/api/api_key.html). get_economic_calendar returns scheduled economic data releases (event, previous, estimate, actual, impact) rather than a country series. By default it returns only High impact releases from the past 23 days to the coming 7 days; narrow it with countries= (e.g. 'United States') and currencies= (e.g. 'USD,EUR'), filter on event names with events= (e.g. events='PMI' for the purchasing managers' indices with consensus, or 'CPI,Unemployment'), pass impact='Medium' or 'High,Medium' for more, impact='All' for every release, and start_date/end_date for another window (keep it to a few weeks: one month of every country is over 2,000 releases). Its Unit column gives each release's unit; releases quoted in percent and its Change % column are decimals like the rest. Every rate and ratio this tool returns is a decimal fraction, not a percentage: an inflation rate of 4.1% comes back as 0.0412 and a debt-to-GDP ratio of 131.7% as 1.3173. Multiply by 100 before presenting them as percentages. Global Macro Database options: usd=true returns GDP, GDP per capita, consumption, investment, fixed investment, exports, imports, trade balance and current account in millions of US dollars (comparable across countries); get_total_consumption and get_total_consumption_to_gdp_ratio accept component='total', 'household' or 'government'; get_house_prices with inflation_adjusted=true returns real house prices. Yearly GMDB series end at the last observation; pass gmdb_forecasts=true to include the IMF projections up to five years ahead. get_implied_volatility returns volatility indices by market and maturity as decimals, no countries needed (markets='US Equity' VIX 9D-1Y from 1990, 'Euro Area Equity' VSTOXX 1M-24M from 1999, 'Emerging Markets Equity', 'US Equity Volatility' VVIX, 'US Treasury Bonds' VXTLT, 'Crude Oil', 'Gold'; with an FMP key also 'US Treasury Rates' MOVE and 'Japan Government Bonds'), period='daily', 'weekly' or 'monthly'. get_stress_test_scenario returns regulators' stress test scenarios (authority='federal_reserve' quarterly US and international variables incl. Treasury and BBB yields, equity, house prices and VIX; authority='esrb' the EBA bank stress test, yearly, every EU country plus iTraxx spreads), scenario='baseline', 'adverse' or 'historic' (Fed history from 1976), countries= optional; the scenario path is not cut to start_date/end_date. Long-horizon data: get_long_run_asset_returns returns yearly total returns 1870-2020 for 18 advanced economies (Jordà-Schularick-Taylor; asset_class='equity'|'housing'|'bonds'|'bills'|'risky'|'safe'|'wealth', real=true for real returns; licensed for non-commercial use only, so it requires accept_licence=true; countries= optional). get_millennium_of_macroeconomic_data returns the Bank of England's annual UK series from as early as 1086 to 2016 (series= e.g. 'Bank Rate,Consols,Share prices'; set start_date far back, e.g. 1700-01-01). get_scenario_set returns De Nederlandsche Bank's pension scenario set (20,000 scenarios over 100 years, measure='real_world' or 'market_consistent'): quantiles per horizon year of nominal zero rates 1Y-30Y, the euro area 10Y real rate, equity returns and EU/NL inflation; the first call takes one to two minutes. get_asset_class_proxies returns monthly total returns of listed funds tracking private equity, infrastructure, hedge funds, merger arbitrage, private credit, real estate and investment grade and high yield credit (asset_classes=, period='daily'|'weekly'|'monthly').
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| usd | No | Return levels in millions of US dollars instead of national currency when True, which makes them comparable across countries (Global Macro Database). | |
| real | No | Whether to deflate the returns by consumer price inflation. | |
| year | No | The year of the Federal Reserve's stress test. | |
| limit | No | 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. | |
| events | No | Parts of event names to keep, matched without regard to case, e.g. "PMI" for every purchasing managers' index or ["CPI", "Unemployment"]. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| impact | No | The market impact to keep: "Low", "Medium" and/or "High", or "All" for every release. Leave unset to use the default of the indicator you selected. Defaults are 'High' for get_economic_calendar. | |
| period | No | 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 are None for get_consumer_price_index, get_exchange_rates, get_inflation_rate, get_producer_price_index, get_share_prices; 'daily' for get_implied_volatility; 'monthly' for get_asset_class_proxies. | |
| series | No | The series to include, matched on (part of) their name without regard to case, e.g. "Bank Rate" or ["consols", "share prices"]. | |
| markets | No | The markets to retrieve, from "US Equity", "Euro Area Equity", "Emerging Markets Equity", "US Equity Volatility", "US Treasury Bonds", "Crude Oil", "Gold", "US Treasury Rates" and "Japan Government Bonds". | |
| measure | No | Sub-measure selector, e.g. 'M1', 'M2', or 'M3' for money supply. Leave unset to use the default of the indicator you selected. Defaults are None for get_money_supply; 'real_world' for get_scenario_set. | |
| returns | No | Whether to return the total return per period instead of the dividend-adjusted price. | |
| rolling | No | 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. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| scenario | No | "baseline", "adverse" (the Federal Reserve's severely adverse scenario) or "historic". | adverse |
| trailing | No | 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. | |
| authority | No | For get_stress_test_scenario: "federal_reserve" or "esrb". For get_scenario_set: The regulator: "dnb". Leave unset to use the default of the indicator you selected. Defaults are 'dnb' for get_scenario_set; 'federal_reserve' for get_stress_test_scenario. | |
| commodity | No | The commodity to retrieve the curve for. One of "Crude Oil", "Natural Gas", "Gold", "Silver", "Copper", "Corn", "Wheat" or "Soybeans". Leave unset to use the default of the indicator you selected. Required by: get_commodity_forward_curve. | |
| component | No | Part of final consumption: 'total', 'household' or 'government'. | total |
| contracts | No | The number of sequential monthly contracts ahead of today to attempt to fetch. | |
| countries | No | Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'. | |
| indicator | Yes | 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. | |
| quantiles | No | The quantiles of the distribution per year. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| rate_type | No | Which nominal interest rate to use. Can be 'long_term' (10-year government bond yield) or 'short_term' (3-month money market rate). | long_term |
| scenarios | No | Whether to return every scenario instead of the distribution. | |
| variables | No | The variables to include, from "Nominal rate 1Y", "Nominal rate 5Y", "Nominal rate 10Y", "Nominal rate 20Y", "Nominal rate 30Y", "Real rate EU 10Y", "Equity return", "Inflation EU" and "Inflation NL". | |
| currencies | No | The currencies to keep, e.g. "USD" or ["USD", "EUR"]. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| asset_class | No | "equity", "housing", "bonds", "bills", "risky", "safe" or "wealth". | equity |
| gmdb_source | No | 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. | |
| oecd_source | No | Whether to get the data from the OECD instead of the Global Macro Database (GMDB). | |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| asset_classes | No | The asset classes to include, from "Private Equity", "Infrastructure", "Hedge Funds", "Merger Arbitrage", "Private Credit", "Real Estate", "Investment Grade Credit" and "High Yield Credit". | |
| end_of_period | No | Whether to return the rate at the end of each month, quarter or year instead of its average. | |
| accept_licence | No | Confirms that the data is used for non-commercial purposes, as its licence (CC BY-NC-SA 4.0) requires. | |
| gmdb_forecasts | No | 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. | |
| year_over_year | No | Whether to return the change on the same quarter a year earlier instead of on the previous quarter. | |
| inflation_adjusted | No | Adjust nominal values for inflation when True. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the read-only/idempotent/open-world profile, and the description adds substantial context beyond that: every rate/ratio is a decimal fraction (4.1% = 0.0412), which sources need a free FRED key vs no key, the JST non-commercial licence requirement, and that get_scenario_set's first call takes one to two minutes. These are exactly the operational traits an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The volume is defensible given 52 indicators and 41 parameters, and it is front-loaded with the key countries= constraint. But it is delivered as a single dense paragraph with no headings or bullets, mixing dozens of sub-method behaviors together, which makes it harder to parse than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a dispatcher this complex, the description covers the essentials an agent needs before calling: required indicator/countries pattern, unit conventions, key/licence requirements, frequency defaults, coverage caveats and latency. An output schema exists, so return-shape details are correctly left out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description still adds value by tying parameters to behavior (trailing=4 = TTM-style sum, rolling=N smoothing, usd=true for cross-country comparability, gmdb_forecasts for IMF projections, and the note that the stress-test scenario path is not cut to start_date/end_date). Most of this restates or lightly extends the schema, so it earns a 4 rather than a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Macroeconomic indicators by country') and then enumerates the covered series (GDP, CPI, PPI, exchange rates, crisis indicators, etc.), so an agent can tell what class of data this tool returns. It does not, however, distinguish itself from overlapping siblings such as rates, jobs, government or volatility, leaving that routing to the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage conditions are unusually explicit for sub-methods: 'Requires countries=United States', 'Do NOT use tickers= for this tool', commodity= instead of countries= for forward curves, period='monthly' for no-key CPI/inflation, impact='All' for the calendar, and accept_licence=true for the licensed long-run data. What is missing is cross-tool routing (when to use this instead of the sibling rates/jobs/volatility tools), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_dataARead-onlyIdempotentInspect
Raw financial data (historical prices, income statement, balance sheet, cash flow statement, company profile, quotes, analyst estimates, dividend/earnings calendars, statistics, market risk premium by country, CFTC Commitment of Traders report, executives and their compensation, company notes, employee count, share float, mergers and acquisitions, stock splits, insider trade statistics, analyst stock grades, ETF/fund holdings, information and country/sector weightings, earnings call transcripts). Use this ONLY for raw data needs — for pre-computed ratios, performance, risk, or model metrics use the dedicated tools instead. Requires tickers='AAPL' — use comma-separated values for multiple tickers. get_market_risk_premium (by country) and get_treasury_data (US Treasury rates) are market-wide and need no tickers. get_commitment_of_traders takes CFTC futures symbols, e.g. tickers='NG' (natural gas) or 'GC' (gold), not stocks. The ETF/fund methods return no data for tickers that are not an ETF or fund. get_earnings_call_transcripts returns the full, never shortened text (often 40,000 to 60,000 characters) of one call of one ticker: the most recent, or the one of fiscal_period (e.g. '2025Q4', the company's own fiscal quarter); call it once per ticker and period. A period without a transcript is answered with the most recent periods that have one. Currency and crypto pairs may be written either way: EURUSD or EURUSD=X, BTCUSD or BTC-USD. To find which instruments exist, use the Finance Database server. get_etf_holdings returns the 25 largest holdings of each fund by weight unless limit= asks for more; it holds no sector or country per holding, so use get_etf_sector_weightings and get_etf_country_weightings for those breakdowns, or the Finance Database server to classify the holdings.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. Leave unset to use the default of the indicator you selected. Defaults are 25 for get_etf_holdings. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| latest | No | Whether to only retrieve the most recent transcript. When False, every transcript between the start_date and end_date is retrieved. | |
| period | No | 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 are 'daily' for get_historical_data, get_treasury_data; '1hour' for get_intraday_data. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| fill_nan | No | For get_historical_data, get_treasury_data: Defines whether to forward fill NaN values. This defaults to True to prevent holes in the dataset. This is especially relevant for technical indicators. For get_intraday_data: Defines whether to forward fill NaN values. | |
| trailing | No | 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. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| show_errors | No | Whether to report retrieval errors. | |
| actual_dates | No | Defines whether to return the actual dates or the corresponding quarters. | |
| show_columns | No | 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. | |
| fiscal_period | No | The company's fiscal quarter, e.g. '2025Q4' (its own fiscal year, which differs from the calendar year for e.g. Apple and Microsoft). Leave unset for the most recent. | |
| return_column | No | The column to use for the return calculation. Leave unset to use the default of the indicator you selected. Defaults are 'Adj Close' for get_historical_data; 'Close' for get_intraday_data. | |
| divide_ohlc_by | No | A value to divide the yields by. Treasury yields are published in percent, so this defaults to 100 to return decimals. | |
| enforce_source | No | For get_balance_sheet_statement, get_cash_flow_statement, get_income_statement, get_statistics_statement: Forces this specific call to use a given source, either "FinancialModelingPrep" or "YahooFinance". This takes precedence over the source set on the Toolkit itself, so one instance can pull historical data from the free Yahoo Finance source while still using a FinancialModelingPrep key for the... For get_historical_data: A string containing the historical source you wish to enforce. This can be either FinancialModelingPrep or YahooFinance. For get_treasury_data: Forces this specific call to use a given source, either "FinancialModelingPrep" or "YahooFinance". This takes precedence over the source set on the Toolkit itself. | |
| risk_free_rate | No | The maturity to return as the risk free rate ('13w', '5y', '10y' or '30y'). | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| include_dividends | No | Defines whether to include dividends in the return calculation. | |
| show_ticker_seperation | No | A boolean representing whether to show which tickers acquired data from FinancialModelingPrep and which tickers acquired data from YahooFinance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/openWorld/idempotent), the description discloses non-obvious behavior: transcripts are returned full and never shortened (40k-60k characters), a missing fiscal period falls back to the most recent periods that have one, ETF/fund methods return no data for non-fund tickers, and get_etf_holdings returns the 25 largest holdings unless limit overrides. These are exactly the edge cases an agent would otherwise discover only by failing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then the exclusion rule, then per-indicator caveats, so the most decision-relevant content comes first. The long parenthetical enumeration of data types and the dense run-on sentences make it heavier than necessary, but nearly every clause carries routing or constraint information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 23-parameter, 32-indicator dispatcher with an output schema and full annotation coverage, the description covers the decision-relevant surface: scope, exclusions, alternatives, symbol conventions, and per-indicator quirks. It does not cover every parameter (e.g. enforce_source, divide_ohlc_by, risk_free_rate), but those are handled by the schema, so the remaining gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but the description adds cross-parameter meaning the schema cannot: which indicators ignore tickers entirely, that CFTC indicators take futures symbols ('NG', 'GC') rather than stocks, and that currency/crypto pairs accept either notation (EURUSD or EURUSD=X, BTCUSD or BTC-USD). It reinforces rather than replaces the already-strong schema docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Raw financial data') and explicitly enumerates the data families it covers, then draws a hard line against the sibling metric tools ('for pre-computed ratios, performance, risk, or model metrics use the dedicated tools instead'). An agent can distinguish this raw-data tool from volatility, profitability, valuation, etc. without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use it ('ONLY for raw data needs'), when not to, and names alternatives for specific cases: get_market_risk_premium and get_treasury_data are market-wide and need no tickers, get_commitment_of_traders takes CFTC symbols, and the Finance Database server should be used to discover instruments or classify ETF holdings. Routing conditions are explicit rather than left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modelsBRead-onlyIdempotentInspect
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). Requires tickers='AAPL' — use comma-separated values for multiple tickers. Supports quarterly=true and start_date/end_date.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| diluted | No | 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. | |
| periods | No | The number of periods to use for the cash flow projections. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| trailing | No | 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. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| growth_rate | No | 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. | |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| cash_flow_type | No | 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". | Free Cash Flow |
| rate_of_return | No | 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. | |
| calculate_daily | No | Whether to calculate the PVGO using daily historical data. | |
| project_periods | No | The number of periods to project the the stock price. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| high_growth_rate | No | 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. | |
| include_dividends | No | 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. | |
| show_full_results | No | Whether to show the full results or just the WACC values. | |
| stable_growth_rate | No | 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. | |
| high_growth_periods | No | The number of periods in the explicit high-growth phase. | |
| perpetual_growth_rate | No | Terminal (perpetual) growth rate used in DCF models. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation. | |
| weighted_average_cost_of_capital | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and openWorld, so safety/idempotency is covered structurally. The description adds that results are pre-computed models with a ticker requirement, but says nothing about cost, latency, permission needs, or what happens with an unrecognized ticker.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, which is good, but the middle clause is a 13-item enumeration that largely duplicates the indicator enum already present in the schema. The usage hints are packed into one trailing sentence rather than structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and annotations carry the safety profile. Still, for a 26-parameter tool the description omits the required `indicator` selector and the pointer to search_metrics, leaving the agent to discover the core dispatch mechanism from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 26 parameters thoroughly. The description only echoes tickers, quarterly and the date range, and it conspicuously never mentions the actually-required `indicator` parameter, so it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Pre-computed financial models') and enumerates the concrete model set (WACC, DuPont, Altman Z-Score, etc.), so an agent knows exactly what class of output it produces. However, it does not differentiate itself from close siblings such as valuation, profitability, solvency and efficiency, which plausibly overlap with these same metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives practical invocation context — tickers must be supplied, comma-separate for multiples, and quarterly/start_date/end_date are supported — but never states when to prefer this tool over the metric siblings or what conditions disqualify it. Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
momentumBRead-onlyIdempotentInspect
Momentum technical indicators (RSI, MACD, Stochastic Oscillator, Williams %R, Aroon, ADX, CCI, MFI, rate of change, Ichimoku Cloud, awesome, ultimate and Chande momentum oscillators, vortex, Know Sure Thing and more). Applied to price data automatically — no need to fetch prices first. Requires tickers='AAPL' — use comma-separated values for multiple tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | daily |
| window | No | The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults differ between indicators. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| weights | No | The portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset. | |
| constant | No | Constant multiplier used in the CCI calculation. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| window_1 | No | The number of periods for the first short-term window. | |
| window_2 | No | The number of periods for the second mid-term window. | |
| window_3 | No | The number of periods for the third long-term window. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| base_window | No | The number of periods to consider for the Base Line (Kijun-sen) calculation, also used as the forward displacement for both Leading Spans. | |
| long_window | No | For get_percentage_price_oscillator: The number of periods for the long-term moving average. For get_moving_average_convergence_divergence: The number of periods for the longer moving average. For get_awesome_oscillator: The number of periods for the long-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence; 28 for get_percentage_price_oscillator; 34 for get_awesome_oscillator. | |
| roc_windows | No | The four lookback periods used for the underlying Rate of Change calculations. | |
| sma_windows | No | The four Simple Moving Average smoothing periods applied to each Rate of Change series. | |
| standardize | No | 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. | |
| close_column | No | For get_money_flow_index, get_williams_percent_r: The name of the column containing the close prices. For get_aroon_indicator, get_ichimoku_cloud, get_stochastic_oscillator, get_moving_average_convergence_divergence, get_relative_strength_index, get_balance_of_power, get_awesome_oscillator, get_vortex_indicator, get_elder_ray_index, get_rate_of_change, get_choppiness_index, get_know_sure_thing: The column name for closing prices in the historical data. For get_commodity_channel_index, get_relative_vigor_index, get_force_index, get_ultimate_oscillator, get_percentage_price_oscillator, get_detrended_price_oscillator, get_average_directional_index, get_chande_momentum_oscillator: The column in the historical data that represents the closing prices. | Adj Close |
| short_window | No | For get_percentage_price_oscillator: The number of periods for the short-term moving average. For get_moving_average_convergence_divergence: The number of periods for the shorter moving average. For get_awesome_oscillator: The number of periods for the short-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence; 5 for get_awesome_oscillator; 7 for get_percentage_price_oscillator. | |
| show_columns | No | 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. | |
| signal_window | No | For get_moving_average_convergence_divergence: The number of periods for the signal line. For get_know_sure_thing: Number of periods for the Simple Moving Average of the KST used as the signal line. | |
| smooth_window | No | The number of periods used to smooth the %K line into the %D signal line. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| conversion_window | No | The number of periods to consider for the Conversion Line (Tenkan-sen) calculation. | |
| lead_span_b_window | No | The number of periods to consider for the Lead Span B (Senkou Span B) calculation. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and repeatability profile is covered structurally. The description adds one real behavioral fact — that price data is fetched/applied automatically, removing a prerequisite step — but says nothing about computation cost, rate limits, or failure behavior on bad tickers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the capability and followed by the two things an agent must know (automatic price handling, ticker format). The long parenthetical indicator list is dense but arguably earns its place as a coverage signal; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the safety profile is in annotations. But for a 28-parameter tool the description never mentions the required 'indicator' enum, the per-indicator window defaults (short_window, long_window, base_window, etc.), or the sibling search_metrics that helps pick an indicator — gaps an agent must close by reading the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 28 parameters, so the schema already carries the semantics and the baseline is 3. The description's only added nuance is that tickers, though not marked required and defaulted to "", must be supplied in practice — mildly useful, but it repeats the schema's own comma-separated example rather than explaining any of the many indicator-specific windows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely (momentum technical indicators) and even enumerates the covered indicators (RSI, MACD, Stochastic, ADX, CCI, Ichimoku, etc.), which clearly separates it from siblings like volatility or overlap. What it lacks is an explicit verb — it reads as a noun-phrase catalog rather than stating 'computes/calculates momentum indicators', so it stops short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one useful operational prerequisite (requires tickers='AAPL', comma-separated for multiples) and notes that price data is applied automatically so no separate fetch is needed. However, there is no guidance on when to pick momentum versus the sibling families (volatility, overlap, efficiency) or the search_metrics routing, leaving usage largely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optionsBRead-onlyIdempotentInspect
Option pricing and Greeks (Black-Scholes model, binomial tree, delta, gamma, theta, vega, rho, implied volatility). Requires tickers='AAPL' — use comma-separated values for multiple tickers. get_stock_price_simulation returns the unique price levels per time step; pass show_unique_combinations=false for every simulated path. get_binomial_model covers the strikes within 5% of the price unless strike_price_range= asks for more; strike_price_range also narrows the Greeks and get_option_chains. get_option_chains shows the nearest expiry (its Expiration Date column says which); show_expiration_dates=true lists the expiries and expiration_date= picks one. get_strategy_payoff takes legs as a list of objects, e.g. [{'strike_price': 340, 'position': 'long'}, {'strike_price': 360, 'position': 'short'}].
| Name | Required | Description | Default |
|---|---|---|---|
| legs | No | The strategy as a list of legs. An option leg: {'strike_price': 340, 'put_option': false, 'position': 'long' or 'short', 'premium': 4.2}; a stock leg: {'instrument': 'stock', 'position': 'long', 'premium': 336}. E.g. a bull call spread is a long call at a lower and a short call at a higher strike. Leave unset to use the default of the indicator you selected. Required by: get_strategy_payoff. | |
| seed | No | The seed used to initialize the random number generator, ensuring reproducible results. | |
| limit | No | 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. | |
| rebate | No | The fixed cash amount paid out if the option knocks out (or fails to knock in). | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| timesteps | No | The number of time steps to use for the binomial tree. This will be evenly distributed over the time to expiration. | |
| knock_type | No | Either "in" or "out". | out |
| put_option | No | Whether to calculate the put option rho. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| time_steps | No | The number of time steps used to build each simulated path. | |
| cash_payout | No | The fixed cash amount paid out by a cash-or-nothing option when it expires in-the-money. Ignored for asset-or-nothing options. | |
| option_type | No | Either "cash-or-nothing" or "asset-or-nothing". | cash-or-nothing |
| simulations | No | The number of simulated stock price paths. | |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| dividend_yield | No | The dividend yield to use for the calculation. | |
| risk_free_rate | No | For get_asian_option, get_barrier_option, get_binary_option, get_binomial_model, get_bjerksund_stensland, get_black_scholes_model, get_charm, get_color, get_delta, get_dual_delta, get_dual_gamma, get_epsilon, get_gamma, get_implied_volatility, get_lambda, get_monte_carlo_option_price, get_partial_derivative, get_put_call_parity, get_rho, get_risk_neutral_density, get_speed, get_stock_price_simulation, get_theta, get_ultima, get_vanna, get_vega, get_vera, get_veta, get_volatility_surface, get_vomma, get_zomma: The risk free rate to use for the calculation. For get_garman_kohlhagen: The domestic risk free rate to use for the calculation. | |
| american_option | No | Whether to value an American option, which can be exercised at every node, instead of a European option. | |
| expiration_date | No | For get_implied_volatility: The expiration date to use for the calculation. For get_option_chains, get_risk_neutral_density: The expiration date to use. | |
| show_input_info | No | Whether to show the input information. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| expiration_dates | No | The expiration dates to fit the surface over. | |
| strike_step_size | No | The step size to use for the strike prices. | |
| barrier_direction | No | Either "down" or "up". | down |
| number_of_strikes | No | The number of strikes in the evaluation grid. | |
| outlier_threshold | No | The number of median absolute deviations from the median implied volatility beyond which a quote is treated as an outlier and dropped before fitting. | |
| stock_price_range | No | The percentage range to use for the stock prices at expiration. | |
| barrier_percentage | No | The barrier level as a percentage of the current stock price. | |
| strike_price_range | No | Only strikes within this fraction of the current stock price, e.g. 0.05 for the strikes within 5% of it. Leave unset to use the default of the indicator you selected. Defaults differ between indicators. | |
| time_to_expiration | No | The number of year to use for the time to expiration. | |
| show_standard_error | No | Whether to also return the standard error of each Monte Carlo estimate as a second DataFrame. | |
| expiration_time_range | No | The number of days to use for the time to expiration. | |
| number_of_expirations | No | The number of near-term expiration dates to fit when `expiration_dates` is not given. | |
| show_expiration_dates | No | For get_implied_volatility: Whether to show the expiration dates. For get_option_chains: Whether to return the available expiration dates instead of the option chains. | |
| stock_price_step_size | No | The step size to use for the stock prices at expiration. | |
| foreign_risk_free_rate | No | The foreign risk free rate to use for the calculation, which plays the role of the dividend yield in the standard Black-Scholes model. | |
| show_unique_combinations | No | Whether to show the unique combinations of the stock prices. Leave unset to use the default of the indicator you selected. Defaults are True for get_stock_price_simulation. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description does add genuinely non-obvious default behavior (get_binomial_model clips strikes to ~5% of price, get_option_chains returns the nearest expiry), but is silent on dispatch mechanics, cost/latency, and error behavior across 36 indicators.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose clause is correctly front-loaded in the first sentence, but the remainder is a dense cluster of comma-spliced clauses switching between four unrelated sub-indicators, plus a nested JSON example. Several sentences document sibling tools' behavior rather than this tool's, blurring where the reader should look.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 40-parameter, 36-mode tool this is thin: it explains roughly five indicators and never tells the agent that selecting an `indicator` is the primary act, nor how parameters map to the chosen indicator. The 100% schema coverage and the presence of an output schema carry much of the remaining burden, which keeps this from being a hard failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 40 parameters, including per-indicator applicability, so baseline is 3. The description adds cross-parameter semantics the schema lacks (strike_price_range also narrows Greeks and chains; show_unique_combinations=false for every path), but leaves the central `indicator` enum essentially undiscussed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific domain and enumerates the concrete outputs (Black-Scholes, binomial tree, delta, gamma, theta, vega, rho, implied volatility), which separates it from category-level siblings like volatility or models. However, it never states that the tool is a dispatcher driven by the required `indicator` enum, and it instead claims "Requires tickers='AAPL'" even though `tickers` is optional (default "") and `indicator` is the only required field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives conditional guidance for a handful of sub-indicators — strike_price_range widening strikes/Greeks/chains, show_expiration_dates vs expiration_date on get_option_chains, show_unique_combinations=false for every simulated path. But it never says when to use this tool versus sibling category tools, nor how to choose among the 36 indicator values, and the guidance is scattered rather than framed as rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overlapARead-onlyIdempotentInspect
Overlap technical indicators drawn over the price (simple, exponential, double exponential, triangular, weighted, Hull and Kaufman adaptive moving averages, TRIX, VWAP, Parabolic SAR, pivot points, Fibonacci retracement levels, support and resistance levels). Applied to price data automatically — no need to fetch prices first. Bollinger Bands and Keltner Channels are in the volatility tool. Requires tickers='AAPL' — use comma-separated values for multiple tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. | |
| trend | No | Whether to compute retracement levels for an "uptrend" (levels measured down from the high — the conventional direction, used when a prior move was up and price is now pulling back) or a "downtrend" (levels measured up from the low, used when a prior move was down and price is now bouncing). | uptrend |
| af_max | No | Maximum value the acceleration factor can reach. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| levels | No | The Fibonacci ratios to calculate levels for. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | daily |
| window | No | The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults differ between indicators. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| af_start | No | Initial acceleration factor. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| fast_window | No | The number of periods that corresponds to the fastest EMA constant used when the Efficiency Ratio is at its maximum (1.0). | |
| sensitivity | No | The sensitivity parameter to determine the significance of the peaks and valleys. A higher sensitivity value will result in fewer support and resistance levels being identified. | |
| slow_window | No | The number of periods that corresponds to the slowest EMA constant used when the Efficiency Ratio is at its minimum (0.0). | |
| standardize | No | 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. | |
| af_increment | No | Amount by which the acceleration factor increases every time a new extreme point is reached. | |
| close_column | No | The column name for closing prices in the historical data. | Adj Close |
| show_columns | No | 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. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered. The description adds a genuine behavioral fact the annotations don't convey: price data is fetched/applied automatically, so no separate market_data call is needed. It does not discuss output shape, but an output schema exists so that burden is lifted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose followed by routing and the invocation example. The long parenthetical indicator list is information-dense rather than padding, though it makes the first sentence heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 22-parameter tool with full schema coverage, an output schema, and complete annotations, the description supplies exactly the missing pieces: the indicator scope, the volatility-tool boundary, and the auto-fetch behavior. Nothing an agent needs to select and invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 22 parameters are documented in the schema itself. The description only reinforces tickers formatting and that indicator is required, adding little beyond what the schema already states; the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Overlap technical indicators drawn over the price') and enumerates the exact indicator family it covers. It explicitly carves out what does NOT belong here (Bollinger Bands and Keltner Channels live in the volatility tool), so an agent can separate it from the volatility sibling without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operating context ('Applied to price data automatically — no need to fetch prices first') and a concrete invocation example ('Requires tickers=\'AAPL\' — use comma-separated values for multiple tickers'), plus routes Bollinger/Keltner users to the volatility tool. It stops short of saying when to prefer this over momentum/efficiency indicators, but the category boundary is well drawn.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
performanceARead-onlyIdempotentInspect
Pre-computed risk-adjusted performance metrics (Sharpe ratio incl. standard/adjusted/probabilistic/deflated methods, Sortino ratio, Alpha, Jensen's Alpha, Beta, CAPM, Treynor ratio, M2 ratio, Tracking Error, Information Ratio, Fama-French factors, period Returns, Excess Returns — Returns/Excess Returns support cumulative=true for a compounded growth index rebased to 1). Beta, CAPM, Alpha, Jensen's Alpha, Treynor, Sortino, M2, Tracking Error and Information Ratio support rolling=N for a rolling N-period value spanning the full history instead of one value per period (e.g. period='monthly', rolling=6 for a rolling 6-month figure). Sharpe ratios are per observation (e.g. per day within the period) unless annualize=true. Requires tickers='AAPL' — use comma-separated values for multiple tickers. Supports period='daily' only together with rolling=N (e.g. period='daily', rolling=60 for a rolling 60-day figure); per-period results use weekly, monthly, quarterly, or yearly.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| alpha | No | For get_rachev_ratio: The confidence level used for both tails (e.g. 0.05 for the best/worst 5% of outcomes). For get_starr_ratio: The confidence level used for the CVaR calculation (e.g. 0.05 for the worst 5% of outcomes). | |
| limit | No | 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. | |
| order | No | The order of the lower partial moment used in the denominator. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| method | No | For get_fama_and_french_model: The regression method to use for the calculation. For get_sharpe_ratio: Which Sharpe ratio to calculate, one of "standard", "adjusted", "probabilistic" or "deflated". Leave unset to use the default of the indicator you selected. Defaults are 'multi' for get_fama_and_french_model; 'standard' for get_sharpe_ratio. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | |
| rolling | No | 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. Leave unset to use the default of the indicator you selected. Defaults are None for get_alpha, get_appraisal_ratio, get_beta, get_capital_asset_pricing_model, get_fama_decomposition, get_information_ratio, get_jensens_alpha, get_m2_ratio, get_omega_ratio, get_sharpe_ratio, get_sortino_ratio, get_tracking_error, get_treynor_ratio; 14 for get_ulcer_performance_index. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| n_trials | No | The number of independent (or effectively independent) strategy variations, parameter combinations, or lookback windows tried before arriving at the reported Sharpe ratio. Only used when method="deflated". Pass this explicitly whenever the actual number of trials is known. | |
| annualize | No | Set to true to annualize a Sharpe ratio (by default it is per observation, e.g. per day, so roughly sqrt(252) smaller than the annualized figure). | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| adjustment | No | The fixed adjustment added to the Average Drawdown, conventionally 0.1 (10%). | |
| cumulative | No | Return the cumulative value compounded over time instead of the discrete value per period. Always rebased to start at 1 at the beginning of the selected date range. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| trials_window | No | The window size (in units of `period`) used for the auxiliary rolling Sharpe ratio series that approximates `Var[SR_trials]` and the default `n_trials`. Only used when method="deflated". | |
| within_period | No | Whether to calculate the CVaR within the specified period or for the entire period. Thus whether to look at the CVaR within a specific year (if period = 'yearly') or look at the entirety of all years. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| exclude_risk_free | No | Whether to exclude the risk-free rate from the results. | |
| show_full_results | No | Whether to show the actual and benchmark returns next to the Alpha. | |
| factors_to_calculate | No | Comma-separated factor names to include in the calculation. | |
| benchmark_sharpe_ratio | No | The hypothesized or benchmark Sharpe ratio (SR*) to test the observed Sharpe ratio against. Only used when method="probabilistic". | |
| include_daily_residuals | No | Whether to also return the pointwise (daily) regression residuals as a second DataFrame. | |
| minimum_acceptable_return | No | The minimum acceptable return (MAR) threshold below which returns are considered downside, e.g. 0.0 for downside relative to a zero return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the bar is lower, and the description still adds substantive behavioral context: Sharpe is per-observation unless annualize=true (roughly sqrt(252) smaller), cumulative returns are compounded and rebased to 1, and rolling=N spans the full history. These are non-obvious semantics that go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the metric inventory and the tickers requirement, and for a 28-parameter tool of this scope the length is largely justified. It is nonetheless a dense wall of parenthetical asides that could be broken into tighter sections or bullets, costing a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description covers the required indicator+search_metrics routing, the mandatory tickers argument, and the key period/rolling/annualize interactions. It omits guidance on several behavioral knobs (benchmark choice, deflated-Sharpe n_trials), but those are documented in the schema, leaving it nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3; the description adds value by stating cross-parameter constraints the schema does not encode, notably that period='daily' is only valid together with rolling=N and that rolling produces one rolling figure rather than one value per period. It does not document the many other parameters (benchmark_ticker, alpha, order, etc.), which the schema covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it computes 'pre-computed risk-adjusted performance metrics' and enumerates the concrete metric families (Sharpe variants, Sortino, Alpha, Beta, CAPM, Treynor, M2, Fama-French, etc.). An agent can tell it computes performance/risk-adjusted ratios rather than raw data. It does not explicitly contrast itself with the sibling 'volatility', 'momentum', or 'risk' tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real invocation guidance — 'Requires tickers=AAPL', period='daily' only with rolling=N, per-period results need weekly/monthly/quarterly/yearly — and points to search_metrics for finding the indicator. However, it never explicitly states when to choose this tool over a sibling like volatility or momentum, nor any when-not conditions, so usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profitabilityARead-onlyIdempotentInspect
Pre-computed profitability ratios (gross margin, operating margin, net margin, ROE, ROA, ROIC, ROCE). Requires tickers='AAPL' — use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| trailing | No | 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. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| dividend_adjusted | No | Whether to adjust the net operating profit after taxes with the dividends paid. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety and repeatability are covered. The description adds that values are pre-computed and that date range and quarterly mode are supported, but discloses nothing about auth needs, rate limits, or how the ticker set expands the request.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly four short sentences, front-loaded with the metric list and the tickers example before secondary options. Little waste; each clause carries information, though the parameter recaps at the end are partially redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format need not be described, and read-only annotations cover the safety profile. For a 13-parameter read tool the description is adequate, though it omits any explanation of the more exotic controls (lag, trailing, standardize, benchmark_ticker, dividend_adjusted) that the schema alone must carry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters in detail. The description only reiterates tickers syntax, quarterly, and start_date/end_date, adding no syntax or format meaning beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (pre-computed profitability ratios) and enumerates the concrete metrics (gross margin, ROE, ROA, ROIC, ROCE), so the agent knows exactly what comes back. It does not, however, differentiate itself from sibling ratio categories such as efficiency, solvency, or liquidity, which also compute ratios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers one clear when-to-use rule ('Use instead of raw financial statements') and states the tickers requirement. It gives no guidance on which sibling category to choose among the many ratio tools (solvency, efficiency, valuation), leaving that to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ratesARead-onlyIdempotentInspect
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. Most series are yearly: quarterly=true returns quarterly data only where a source has it (a note says when it does not). Recent data without an API key: get_central_bank_policy_rate accepts period='daily', 'weekly' or 'monthly' (BIS, around fifty central banks incl. 'Euro Area'); get_long_term_interest_rate accepts period='daily' or 'weekly' (10-year yields of the United States, United Kingdom, Japan and Euro Area); 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. 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).
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| rate | No | 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. | |
| year | No | The first year of the period. | |
| curve | No | 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. | |
| limit | No | 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. | |
| agency | No | The rating agency, e.g. "S&P", "Moody's", "Fitch", "DBRS", "Scope" or "Kroll", or the CEREP code of any registered agency. | S&P |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| period | No | 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. | |
| region | No | The area of the rated entities: "Africa", "America", "Asia", "Europe", "EU members", "International" or "Oceania". | |
| spread | No | 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. | |
| horizon | No | The length of the period in years, from 1 January of year. | |
| nominal | No | 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... | |
| rolling | No | 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. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| maturity | No | Whether to return the maturity total return or the rating total return. | |
| trailing | No | 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. | |
| countries | No | Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| maturities | No | Comma-separated bond maturity labels, e.g. '3month,2year,10year'. | |
| short_term | No | Whether to return the short-term interest rate. This means that the long-term interest rate will be returned. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| gmdb_source | No | 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. | |
| rating_type | No | "corporate", "sovereign", "structured_finance" or "covered_bonds". | corporate |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| probabilities | No | Whether to return the share of ratings per row instead of the number. | |
| gmdb_forecasts | No | 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. | |
| maturity_years | No | 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. | |
| include_withdrawals | No | Whether to keep the ratings withdrawn during the period as a "Withdrawals" column. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish a safe read-only, idempotent, open-world profile, and the description goes well beyond them: it names which indicators require a free FRED key and links to obtain one, warns that get_default_rates is 'slow the first time, about 30 seconds per year', and cautions to 'keep the date range short (a few weeks)' because one country produces up to 15 maturities per day. It also discloses the default frequency (most series yearly; quarterly=true returns quarterly only where a source has it, 'a note says when it does not'), which is exactly the behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The intended scope is front-loaded into the first sentence, and most sentences carry real routing information for a 31-indicator router, so the length is defensible. However, the remainder is an unbroken run-on paragraph with no grouping, headings, or bullets, forcing an agent to scan linearly through roughly 500 words to find the relevant indicator. Structure, not content, is the weak point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a highly complex multi-indicator tool with 31 enum values, 30 parameters, and an output schema that already documents return shapes, the description supplies source coverage, granularity, key requirements, and performance caveats for essentially every indicator. Nothing an agent needs to call it correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 30 parameters and the baseline is 3. The description adds genuine meaning on top: the country constraint for this tool, the key/no-key mapping per indicator, the frequency defaults per source, and the caution about response width when requesting yield curves. Some explanation (spread, curve, maturity_years) merely restates schema text, so it falls short of 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific resource ('Interest rate data') and enumerates the exact sub-domains covered (policy rates, bond yields, ICE BofA, EURIBOR, ECB/Fed, Treasury par curve, yield curve slope). An agent knows precisely what family of series this tool returns. It does not, however, differentiate itself from likely-overlapping siblings such as fixed_income, government, or macroeconomics, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description carries real selection context: it states 'stdin' prerequisite countries='United States' for this tool, explicitly excludes 'Do NOT use tickers= for this tool', and routes between sub-indicators by whether an API key is available (e.g. the no-key alternatives get_central_bank_policy_rate, get_overnight_rate, get_treasury_rates, get_excess_bond_premium). What is missing is any explicit comparison against sibling tools, so 'when to use this tool vs another tool' is only partially answered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
riskARead-onlyIdempotentInspect
Pre-computed risk metrics (VaR incl. historic/gaussian/cf/studentt/evt distributions, CVaR, EVaR, GARCH volatility, max drawdown, drawdown duration, drawdown recovery time, Conditional Drawdown at Risk (CDaR), Tail Ratio, skewness, kurtosis, downside deviation, Variance, Volatility incl. close_to_close/parkinson/garman_klass/rogers_satchell/yang_zhang estimators, Excess Volatility). VaR, CVaR, skewness, kurtosis, CDaR, Tail Ratio, downside deviation, Variance, Volatility and Excess Volatility support rolling=N for a rolling N-period value spanning the full history instead of one value per period (e.g. period='monthly', rolling=6 for a rolling 6-month figure). Requires tickers='AAPL' — use comma-separated values for multiple tickers. Supports period='daily' for whole-series calculations; rolling and per-period outputs use weekly, monthly, quarterly, or yearly. get_copula_simulation returns 100 simulated joint draws unless n_simulations= asks for more. get_amihud_illiquidity is the price impact per billion dollars traded (scale=1e9).
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | The number of upper order statistics to use. If a float in (0, 1) it is interpreted as the fraction of the strictly positive observations to use. | |
| q | No | The threshold quantile used for the "empirical" method, in (0.5, 1). | |
| dof | No | The degrees of freedom of the Student-T copula, only used when `method="student-t"`. | |
| lag | No | Number of periods to lag when computing growth rates. | |
| lags | No | The number of lags (past periods) the test or model uses, e.g. 1 or 5. | |
| tail | No | Which tail to estimate, one of "left" (the loss tail) or "right" (the gain tail). | left |
| test | No | Which test(s) to run, one of "kupiec", "christoffersen" or "both". | both |
| alpha | No | The confidence level (e.g., 0.05 for 95% confidence). | |
| limit | No | 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. | |
| scale | No | A multiplier applied to the resulting ratio purely for readability. Leave unset to use the default of the indicator you selected. Defaults are 1000000000 for get_amihud_illiquidity. | |
| column | No | The price column to use, e.g. 'Close' or 'Adj Close'. | Return |
| copula | No | For get_copula_parameters: The copula family to fit, one of "gaussian", "student-t", "clayton", "gumbel" or "frank". For get_copula_simulation: The copula family to fit and simulate from, one of "gaussian", "student-t", "clayton", "gumbel" or "frank". | gaussian |
| fisher | No | Whether to use Fisher's definition of kurtosis (kurtosis = 0.0 for a normal distribution). | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| method | No | For get_tail_dependence_coefficient: The estimation method, one of "empirical", "gaussian" or "student-t". For get_volatility: Which Volatility estimator to use, one of "close_to_close", "parkinson", "garman_klass", "rogers_satchell" or "yang_zhang". Leave unset to use the default of the indicator you selected. Defaults are 'close_to_close' for get_volatility; 'empirical' for get_tail_dependence_coefficient. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | |
| ticker | No | The asset whose conditional VaR is being measured. Leave unset to use the default of the indicator you selected. Required by: get_covar. | |
| horizon | No | The number of days ahead to forecast. | |
| lambda_ | No | The decay factor. Higher values weight the past more heavily (slower to react), lower values weight recent returns more heavily (faster to react). RiskMetrics uses 0.94 for daily data. | |
| max_lag | No | The maximum lag to use when estimating the exponent. | |
| rolling | No | 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. Leave unset to use the default of the indicator you selected. Defaults are None for get_conditional_drawdown_at_risk, get_conditional_value_at_risk, get_downside_deviation, get_excess_volatility, get_kurtosis, get_skewness, get_tail_ratio, get_value_at_risk, get_variance, get_volatility; 14 for get_ulcer_index. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| weights | No | The portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| ticker_a | No | The first asset. Leave unset to use the default of the indicator you selected. Required by: get_tail_dependence_coefficient. Defaults are None for get_best_fitting_copula, get_copula_parameters, get_copula_simulation. | |
| ticker_b | No | The second asset. Leave unset to use the default of the indicator you selected. Required by: get_tail_dependence_coefficient. Defaults are None for get_best_fitting_copula, get_copula_parameters, get_copula_simulation. | |
| estimator | No | How to construct the daily Realized Variance input, one of "squared_return", "parkinson", "garman_klass" or "rogers_satchell". | squared_return |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| time_steps | No | Time steps to calculate GARCH for. Leave unset to use the default of the indicator you selected. Defaults are 10 for get_garch_forecast, get_gjr_garch_forecast; None for get_garch, get_gjr_garch. | |
| n_bootstrap | No | The number of bootstrap resamples used to estimate the Standard Error of Z2. | |
| standardize | No | 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. | |
| window_size | No | For get_acerbi_szekely_test: The rolling window size (in number of return observations) used to estimate each VaR/CVaR value. For get_var_backtest: The rolling window size (in number of return observations) used to estimate each VaR value. | |
| distribution | No | The distribution to use for the rolling VaR estimates, one of "historic", "gaussian", "studentt" or "evt". | historic |
| random_state | No | For get_acerbi_szekely_test: The seed for the bootstrap random number generator. For get_copula_simulation: The seed for the random number generator. | |
| show_columns | No | 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. | |
| n_simulations | No | The number of joint draws to simulate. Leave unset to use the default of the indicator you selected. Defaults are 100 for get_copula_simulation. | |
| weekly_window | No | The trailing window (in trading days) for the weekly RV component. | |
| within_period | No | Whether to calculate GJR-GARCH within each specified period or all at once. | |
| monthly_window | No | The trailing window (in trading days) for the monthly RV component. | |
| optimization_t | No | For get_garch: Time steps to optimize GARCH for. It is only used if no weights are given. For get_garch_parameters, get_gjr_garch_parameters: Time steps of the returns series to use for the optimization. For get_gjr_garch: Time steps to optimize GJR-GARCH for. It is only used if no weights are given. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| empirical_margins | No | Whether to map the simulated pseudo-observations back to realistic returns via each asset's own empirical (historical) quantile function. When False, the raw pseudo-observations (each in (0, 1)) are returned instead. | |
| show_full_results | No | Only relevant when neither ticker is given. When False (the default), returns a square ticker-by-ticker grid of just the winning copula family per pair. When True, returns one row per pair instead, with the winning family's fitted parameter(s), Lower and Upper Tail Dependence, Log-Likelihood,... | |
| conditioning_ticker | No | The asset (or e.g. a benchmark/index) whose distress `ticker` is conditioned on. Leave unset to use the default of the indicator you selected. Required by: get_covar. | |
| threshold_percentile | No | Only used when distribution='evt'. The percentile of losses above which the Generalized Pareto Distribution is fitted, e.g. 0.95 fits on the worst 5% of losses. | |
| minimum_acceptable_return | No | The minimum acceptable return (MAR) threshold below which returns are considered downside, e.g. 0.0 for downside relative to a zero return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds genuine behavioral context beyond that: rolling=N yields one value spanning the full history rather than per-period values, get_copula_simulation returns 100 draws by default, and get_amihud_illiquidity is scaled per 1e9 traded. It omits auth/rate-limit/computation-limit behavior, but with annotations present the bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single dense run-on paragraph. The long parenthetical metric list largely duplicates the indicator enum already present in the schema, which costs tokens without adding selection value, while the genuinely useful behavioral notes (rolling, default draw count) are buried mid-paragraph rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool fronting 39 indicators and 48 parameters, with 100% schema coverage and an output schema present, the description is adequate on mechanics but thin on routing: it never explains how to choose among the indicators, nor how this tool relates to sibling categories like 'volatility' or 'models'. An agent gets the parameters but not the decision path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but the description adds cross-parameter meaning the schema does not: 'tickers' is functionally required even though only 'indicator' is marked required, and it clarifies the rolling/period interplay that spans multiple parameters. The scale and n_simulations defaults it restates are already in the schema, so the gain is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear resource — pre-computed risk metrics — and enumerates the metric families it covers (VaR variants, CVaR, EVaR, GARCH volatility, drawdown measures, tail ratio, etc.). It does not, however, differentiate this tool from siblings like 'volatility', 'models', or 'econometrics', several of which plausibly cover the same indicators (get_volatility, get_garch), so an agent cannot tell from the text alone which sibling to route to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete preconditions ('Requires tickers="AAPL"', comma-separated for multiple, period='daily' for whole-series) and explains how the rolling/period combination behaves. But there is no when-to-use vs. when-not guidance and no mention of the sibling tools, so the agent must infer which of the 39 indicators and which sibling category applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_categoryARead-onlyIdempotentInspect
Finance Toolkit: list every metric/tool within a category of prices, financial statements, ratios and other calculations.
Args:
category: One of the category names returned by ``search_metric_categories``,
e.g. ``ratios``, ``technicals``, ``economics``, ``discovery``.
Returns:
str: Markdown table of tool names and their descriptions for the
requested category, or an error message if the category is unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category name as returned by search.categories, e.g. 'ratios', 'technicals', 'economics', 'discovery'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds genuine behavioral detail beyond that: the output is a Markdown table and an error message is returned for an unknown category, which tells the agent how failures surface.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by a tidy Args/Returns block. The Returns explanation duplicates what the output schema already conveys, which is mild redundancy but not bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, full schema coverage, an output schema and strong annotations, the description covers purpose, the prerequisite for the category value, and error behavior. The only omission is explicit disambiguation from search_metrics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is fully documented in the schema with its own examples. The description's Args section largely restates the same examples (ratios, technicals, economics, discovery) without adding format or validation nuance, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (every metric/tool within a category), with scope limited to categories of prices, financial statements, ratios and other calculations. It names the sibling that produces valid category names (search_metric_categories), but does not contrast itself with search_metrics, the other plausibly overlapping sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear prerequisite: the category value must be one returned by search_metric_categories, with concrete examples. It lacks an explicit when-not or a direct comparison against search_metrics, so the routing guidance is useful but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_metric_categoriesARead-onlyIdempotentInspect
Finance Toolkit: list the categories of what this server calculates (prices, financial statements, ratios, models, risk, economics) and how many tools each has.
Use this first to understand what is available, then call
``search_by_category`` with a specific category name.
Returns:
str: Markdown table of categories, tool counts, and descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is fully covered. The description adds only that output is a Markdown table of categories, counts, and descriptions, which is largely restated by the output schema. No contradictions, but little behavioral value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then a one-line usage instruction, then a short Returns block. The Returns line is somewhat redundant given a declared output schema, but overall it is tight and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, and the description still confirms the shape. For a zero-parameter discovery entry point, an agent has everything needed to call it and act on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed, and there are no parameters left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: list the categories of what the server calculates, enumerating them (prices, financial statements, ratios, models, risk, economics) and noting it also returns per-category tool counts. This clearly distinguishes it from the many sibling tools that are themselves category names (volatility, momentum, rates) and from search_by_category/search_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit ordering guidance ('Use this first to understand what is available') and names the exact follow-up tool and its argument ('then call search_by_category with a specific category name'). No inference required about when to reach for this versus a category tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_metricsARead-onlyIdempotentInspect
Finance Toolkit: search the metrics this server calculates (prices, financial statements, ratios and more) by keyword, with typo tolerance.
Supports minor typos and common financial abbreviations. Tokens
shorter than four characters bypass fuzzy matching and require an
exact substring hit.
Args:
query: Free-text search string, e.g. ``'debt'``,
``'moving average'``, ``'sharpe'``, or ``'retun on equty'``.
Returns:
str: Markdown table of matching tools sorted by relevance score,
or a guidance message when no strong matches are found.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text keyword to search across all metric names and descriptions, e.g. 'sharpe', 'debt', or 'moving average'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, closed-world), so the bar is lowered, and the description still adds real behavioral detail: fuzzy matching on multi-character tokens, exact-substring requirement for tokens under four characters, and relevance-sorted output with a fallback guidance message. It does not disclose result limits or pagination, which would have earned a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded: the core capability and the typo-tolerance rule appear before the Args/Returns scaffolding. The 'Finance Toolkit:' prefix and docstring-style block add slight padding but nothing is genuinely wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter search tool with an output schema, the description covers input intent, matching semantics, and fallback behavior. The only meaningful omission is that it never distinguishes itself from the sibling category search tools an agent will see listed alongside it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes beyond the schema by supplying multiple worked examples including a deliberately misspelled 'retun on equty' that concretely demonstrates the typo-tolerance contract for the query parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('search the metrics this server calculates') and scopes the domain with concrete examples (prices, financial statements, ratios). It is clearly distinguishable from the category-oriented siblings, though it does not explicitly name search_metric_categories or search_by_category to reinforce the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (use when you want to find a metric by keyword, typos tolerated), but there is no explicit when-not or routing guidance against the very similar sibling tools search_metric_categories and search_by_category. An agent must infer which of the three search entry points to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solvencyARead-onlyIdempotentInspect
Pre-computed solvency ratios (debt-to-equity, interest coverage, debt-to-assets, net debt to EBITDA). Requires tickers='AAPL' — use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| diluted | No | Whether to use diluted shares for market capitalization. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| trailing | No | 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. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| show_daily | No | Whether to use daily data for the calculation. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent), so the remaining burden is behavioral context — and the description adds two useful facts: values are pre-computed (not derived on the fly), and tickers is effectively required. These supplement the schema rather than restate it, though there is no mention of cost, rate limits, or failure modes when a ticker lacks data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with no filler: what it returns, the hard requirement, and the key optional switches are all front-loaded. Every sentence earns its place and the highest-value constraint (tickers) appears early.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and the 14-param surface is largely self-documenting. The description covers the practical essentials for a ratio-series tool but never mentions that the indicator enum is the single required parameter or how indicator selection interacts with tickers and date range.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 14 parameters, including the indicator enum and the comma-separated ticker format, so the structured data already carries parameter meaning. The description's mentions of tickers, quarterly, and start_date/end_date only echo the schema without adding format or interaction semantics, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (pre-computed solvency ratios) and enumerates the concrete metrics it produces (debt-to-equity, interest coverage, debt-to-assets, net debt to EBITDA), which lets an agent separate it from the liquidity/profitability/efficiency ratio siblings. It does not name those siblings explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use instead of raw financial statements" names an alternative and the condition that selects this tool, and "Requires tickers='AAPL'" flags a practical precondition. No exclusions are given (e.g., when to prefer liquidity or profitability ratio tools, or when the raw statement tools are still needed), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuationARead-onlyIdempotentInspect
Pre-computed valuation ratios (P/E, EPS, EV/EBITDA, EV/EBIT, P/B, P/S, PEG, dividend yield, FCF yield, market cap, forward P/E, forward PEG). Requires tickers='AAPL' — use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date. get_forward_price_earnings_ratio and get_forward_price_earnings_growth_ratio additionally require a Premium FMP subscription and are fetched on first use only.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| diluted | No | For get_earnings_per_share: Whether to use diluted earnings per share. For get_revenue_per_share, get_price_to_earnings_ratio, get_price_to_earnings_growth_ratio, get_book_value_per_share, get_price_to_book_ratio, get_interest_debt_per_share, get_capex_per_share, get_earnings_yield, get_weighted_dividend_yield, get_price_to_cash_flow_ratio, get_price_to_free_cash_flow_ratio, get_market_cap, get_enterprise_value, get_ev_to_sales_ratio, get_ev_to_ebit, get_ev_to_ebitda_ratio, get_ev_to_operating_cashflow_ratio, get_ev_to_free_cash_flow_ratio, get_buyback_yield, get_shareholder_yield, get_price_to_sales_ratio: Whether to use diluted shares in the calculation. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| trailing | No | 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. | |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| show_daily | No | Whether to show daily data. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| standardize | No | 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. | |
| show_columns | No | 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. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
| include_dividends | No | For get_earnings_per_share: Whether to include dividends in the EPS calculation. For get_price_to_earnings_ratio, get_price_to_earnings_growth_ratio, get_earnings_yield: Whether to include dividends in the calculation. | |
| use_ebitda_growth_rate | No | Whether to use EBITDA growth rate for the calculation. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds genuinely new behavior: forward P/E and forward PEG require a Premium FMP subscription and are fetched only on first use, which affects reliability and cost expectations. Return format/pagination are not described, but a rich output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what the tool returns, then constraints, then the Premium caveat — a logical order in one compact paragraph with no filler sentences. The long metric enumeration partially duplicates the indicator enum, which is the only minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter read-only data tool with full schema coverage and an output schema, the description supplies the pieces an agent needs: ticker format, date/periodicity options, and the subscription caveat. Nothing essential is missing, though the terse listing leaves advanced params (lag, trailing, standardize, benchmark_ticker) entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema and the baseline is 3. The description adds a tickers example and reiterates quarterly/start_date/end_date support, but mostly repeats what is already in the schema, and its 'Requires tickers' framing sits awkwardly against the schema's required field being 'indicator'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('pre-computed valuation ratios') and enumerates the metric families returned (P/E, EV/EBITDA, P/B, etc.), so an agent knows exactly what comes back. It routes away from a sibling family with 'Use instead of raw financial statements', though it does not name a specific sibling tool. Clear but not a sharp sibling discriminator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete when-to-use rule ('use instead of raw financial statements') and enforces the tickers format with an example ('AAPL', comma-separated for multiple). It also flags that two indicators need a Premium FMP subscription, which is actionable selection context, but provides no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volatilityARead-onlyIdempotentInspect
Volatility technical indicators (Bollinger Bands, Keltner Channels, Donchian Channels, True Range, Average True Range, Supertrend, volatility cone). Applied to price data automatically — no need to fetch prices first. Requires tickers='AAPL' — use comma-separated values for multiple tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| lag | No | Number of periods to lag when computing growth rates. | |
| limit | No | 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. | |
| growth | No | Return period-over-period growth rates instead of absolute values. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | daily |
| window | No | The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults are 14 for get_average_true_range, get_bollinger_bands, get_keltner_channels; 10 for get_supertrend; 20 for get_donchian_channels. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| windows | No | The rolling windows (in periods) to calculate realized volatility for. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-14 |
| indicator | Yes | 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. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| atr_window | No | Number of periods for ATR calculation. | |
| multiplier | No | Multiplier applied to the Average True Range to determine how far the bands sit from the median price. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-15 |
| num_std_dev | No | Number of standard deviations for the bands. | |
| standardize | No | 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. | |
| close_column | No | The column name for closing prices in the historical data. | Adj Close |
| show_columns | No | 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. | |
| atr_multiplier | No | Multiplier for ATR to determine channel width. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered by structured data. The description adds one genuinely behavioral fact beyond the annotations — that price data is fetched automatically rather than requiring a prior market_data call. It says nothing about the auto-fetch's cost, per-indicator parameter applicability, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the capability and the indicator list, ending with the required-input constraint. The indicator enumeration is long but earns its place as the tool's scope definition; only the redundant tickers syntax guidance is minor waste since the schema already carries it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 19 parameters, an output schema present, and full annotation coverage, the description needn't enumerate returns or every knob. It is largely complete for selection, though it omits that the indicator enum maps to per-indicator parameters (window defaults, atr_window, multiplier, num_std_dev) which is left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 19 parameters, so the baseline is 3. The description's tickers guidance ('AAPL', comma-separated for multiple) merely restates what the schema's tickers description already says, adding no new syntactic or semantic detail for any of the other 18 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Volatility technical indicators') and enumerates the exact indicator family (Bollinger Bands, Keltner Channels, Donchian Channels, True Range, ATR, Supertrend, volatility cone). That enumeration cleanly distinguishes it from sibling category tools like momentum, risk, and performance without the agent needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies one useful usage note ('Applied to price data automatically — no need to fetch prices first') and a required-input reminder for tickers, so usage is implied rather than fully stated. It never says when to choose this tool over a sibling category tool, nor does it point to search_metrics as the discovery path — that routing hint lives only in the schema's indicator description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
25 tool updates
v2.2.3- Changed
breadth37 fields changed- removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / close_column / descriptionPrevious value: -"Value for close_column."New value: +"For get_mcclellan_oscillator, get_advancers_decliners, get_trin, get_new_highs_new_lows: The name of the column containing the close prices. For get_on_balance_volume, get_accumulation_distribution_line, get_chaikin_oscillator, get_chaikin_money_flow, get_ease_of_movement, get_negative_volume_index, get_positive_volume_index: The column name for closing prices in the historical data." - removed
Input schema / properties / close_column / titleRemoved value: -"Close Column" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / long_ema_window / descriptionPrevious value: -"Value for long_ema_window."New value: +"The window size for the long-term EMA." - removed
Input schema / properties / long_ema_window / titleRemoved value: -"Long Ema Window" - changed
Input schema / properties / long_window / descriptionPrevious value: -"Value for long_window."New value: +"Number of periods for the long-term moving average." - removed
Input schema / properties / long_window / titleRemoved value: -"Long Window" - changed
Input schema / properties / period / descriptionPrevious 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)." - removed
Input schema / properties / period / titleRemoved value: -"Period" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / short_ema_window / descriptionPrevious value: -"Value for short_ema_window."New value: +"The window size for the short-term EMA." - removed
Input schema / properties / short_ema_window / titleRemoved value: -"Short Ema Window" - changed
Input schema / properties / short_window / descriptionPrevious value: -"Value for short_window."New value: +"Number of periods for the short-term moving average." - removed
Input schema / properties / short_window / titleRemoved value: -"Short Window" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - changed
Input schema / properties / start_value / descriptionPrevious value: -"Value for start_value."New value: +"The index value to start the series at." - removed
Input schema / properties / start_value / titleRemoved value: -"Start Value" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - changed
Input schema / properties / volume_divisor / descriptionPrevious value: -"Value for volume_divisor."New value: +"Scaling constant applied to volume so that the Box Ratio (and therefore EMV) stays in a readable range regardless of an asset's typical share volume." - removed
Input schema / properties / volume_divisor / titleRemoved value: -"Volume Divisor" - changed
Input schema / properties / window / descriptionPrevious value: -"Value for window. Leave unset to use the default of the indicator you selected. Defaults are 14 for get_ease_of_movement; 20 for get_chaikin_money_flow; 252 for get_new_highs_new_lows."New value: +"The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults are 14 for get_ease_of_movement; 20 for get_chaikin_money_flow; 252 for get_new_highs_new_lows." - removed
Input schema / properties / window / titleRemoved value: -"Window" - removed
Input schema / titleRemoved value: -"breadthArguments"
- Changed
discovery46 fields changed- changed
Input schema / properties / beta_higher / descriptionPrevious value: -"Value for beta_higher."New value: +"The minimum beta of the stock." - removed
Input schema / properties / beta_higher / titleRemoved value: -"Beta Higher" - changed
Input schema / properties / beta_lower / descriptionPrevious value: -"Value for beta_lower."New value: +"The maximum beta of the stock." - removed
Input schema / properties / beta_lower / titleRemoved value: -"Beta Lower" - changed
Input schema / properties / country / descriptionPrevious value: -"Value for country."New value: +"The two-letter country code to restrict the screen to, e.g. \"US\"." - removed
Input schema / properties / country / titleRemoved value: -"Country" - changed
Input schema / properties / date / descriptionPrevious value: -"Value for date."New value: +"For get_industry_pe, get_industry_performance, get_sector_pe, get_sector_performance: The date to retrieve a snapshot for, e.g. \"2024-02-01\". For get_insider_trading_latest: Only return the trades filed on this date." - removed
Input schema / properties / date / titleRemoved value: -"Date" - changed
Input schema / properties / dividend_higher / descriptionPrevious value: -"Value for dividend_higher."New value: +"The minimum dividend of the stock, as an amount per share over the last annual period rather than as a yield." - removed
Input schema / properties / dividend_higher / titleRemoved value: -"Dividend Higher" - changed
Input schema / properties / dividend_lower / descriptionPrevious value: -"Value for dividend_lower."New value: +"The maximum dividend of the stock." - removed
Input schema / properties / dividend_lower / titleRemoved value: -"Dividend Lower" - added
Input schema / properties / end_dateAdded value: +{ + "default": "", + "description": "End of the date range in YYYY-MM-DD format.", + "type": "string" +} - changed
Input schema / properties / exchange / descriptionPrevious value: -"Value for exchange."New value: +"The exchange code to restrict the screen to, e.g. \"NASDAQ\"." - removed
Input schema / properties / exchange / titleRemoved value: -"Exchange" - changed
Input schema / properties / indicator / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_biggest_gainers", - "get_biggest_losers", - "get_commodity_list", - "get_crypto_list", - "get_crypto_news", - "get_delisted_stocks", - "get_etf_list", - "get_forex_list", - "get_forex_news", - "get_general_news", - "get_index_list", - "get_industry_pe", - "get_industry_performance", - "get_ipo_calendar", - "get_ipo_disclosures", - "get_ipo_prospectuses", - "get_mergers_acquisitions_latest", - "get_most_active_stocks", - "get_press_releases", - "get_sector_pe", - "get_sector_performance", - "get_sectors_performance", - "get_stock_list", - "get_stock_news", - "get_stock_screener", - "get_stock_shares_float", - "get_stock_splits_calendar" -]New value: +[ + "get_biggest_gainers", + "get_biggest_losers", + "get_commodity_list", + "get_crypto_list", + "get_crypto_news", + "get_delisted_stocks", + "get_earnings_calendar", + "get_etf_list", + "get_forex_list", + "get_forex_news", + "get_general_news", + "get_index_list", + "get_industry_pe", + "get_industry_performance", + "get_insider_trading_latest", + "get_ipo_calendar", + "get_ipo_disclosures", + "get_ipo_prospectuses", + "get_mergers_acquisitions_latest", + "get_most_active_stocks", + "get_press_releases", + "get_sec_filings_8k", + "get_sector_pe", + "get_sector_performance", + "get_sectors_performance", + "get_stock_list", + "get_stock_news", + "get_stock_screener", + "get_stock_shares_float", + "get_stock_splits_calendar" +] - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - changed
Input schema / properties / industry / descriptionPrevious value: -"Value for industry."New value: +"For get_industry_pe, get_industry_performance: The industry to retrieve the history for, e.g. \"Biotechnology\". For get_stock_screener: The industry to restrict the screen to, e.g. \"Biotechnology\"." - removed
Input schema / properties / industry / titleRemoved value: -"Industry" - changed
Input schema / properties / is_etf / descriptionPrevious value: -"Value for is_etf."New value: +"Whether to restrict the screen to ETFs or to exclude them." - removed
Input schema / properties / is_etf / titleRemoved value: -"Is Etf" - changed
Input schema / properties / limit / descriptionPrevious value: -"Value for limit. Leave unset to use the default of the indicator you selected. Defaults are 100 for get_crypto_news, get_delisted_stocks, get_forex_news, get_general_news, get_mergers_acquisitions_latest, get_press_releases, get_stock_news; 1000 for get_stock_screener."New value: +"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. Leave unset to use the default of the indicator you selected. Defaults are 100 for get_crypto_news, get_delisted_stocks, get_forex_news, get_general_news, get_insider_trading_latest, get_mergers_acquisitions_latest, get_press_releases, get_sec_filings_8k, get_stock_news; 1000 for get_stock_screener." - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - changed
Input schema / properties / market_cap_higher / descriptionPrevious value: -"Value for market_cap_higher."New value: +"The minimum market capitalization of the stock, in the currency of the listing rather than in millions." - removed
Input schema / properties / market_cap_higher / titleRemoved value: -"Market Cap Higher" - changed
Input schema / properties / market_cap_lower / descriptionPrevious value: -"Value for market_cap_lower."New value: +"The maximum market capitalization of the stock." - removed
Input schema / properties / market_cap_lower / titleRemoved value: -"Market Cap Lower" - changed
Input schema / properties / page / descriptionPrevious value: -"Value for page."New value: +"For get_delisted_stocks: The page of results to retrieve, starting at 0. For get_insider_trading_latest, get_mergers_acquisitions_latest, get_sec_filings_8k: The page number to retrieve." - removed
Input schema / properties / page / titleRemoved value: -"Page" - changed
Input schema / properties / pages / descriptionPrevious value: -"Value for pages."New value: +"The number of pages to collect, each page is a separate API call, e.g. pages=5 makes 5 calls." - removed
Input schema / properties / pages / titleRemoved value: -"Pages" - changed
Input schema / properties / price_higher / descriptionPrevious value: -"Value for price_higher."New value: +"The minimum price of the stock." - removed
Input schema / properties / price_higher / titleRemoved value: -"Price Higher" - changed
Input schema / properties / price_lower / descriptionPrevious value: -"Value for price_lower."New value: +"The maximum price of the stock." - removed
Input schema / properties / price_lower / titleRemoved value: -"Price Lower" - added
Input schema / properties / primary_onlyAdded value: +{ + "default": false, + "description": "Set to true to keep only the most traded listing of each company rather than every listing (e.g. ING in Amsterdam, New York, Toronto and Frankfurt).", + "type": "boolean" +} - changed
Input schema / properties / sector / descriptionPrevious value: -"Value for sector."New value: +"For get_sector_pe, get_sector_performance: The sector to retrieve the history for, e.g. \"Energy\". For get_stock_screener: The sector to restrict the screen to, e.g. \"Energy\"." - removed
Input schema / properties / sector / titleRemoved value: -"Sector" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - added
Input schema / properties / start_dateAdded value: +{ + "default": "", + "description": "Start of the date range in YYYY-MM-DD format.", + "type": "string" +} - changed
Input schema / properties / volume_higher / descriptionPrevious value: -"Value for volume_higher."New value: +"The minimum volume of the stock, in shares traded." - removed
Input schema / properties / volume_higher / titleRemoved value: -"Volume Higher" - changed
Input schema / properties / volume_lower / descriptionPrevious value: -"Value for volume_lower."New value: +"The maximum volume of the stock." - removed
Input schema / properties / volume_lower / titleRemoved value: -"Volume Lower" - removed
Input schema / titleRemoved value: -"discoveryArguments"
- Changed
econometrics160 fields changed- changed
Input schema / properties / add_constant / descriptionPrevious value: -"Value for add_constant."New value: +"Whether to include an intercept." - removed
Input schema / properties / add_constant / titleRemoved value: -"Add Constant" - changed
Input schema / properties / asset_tickers / descriptionPrevious value: -"Value for asset_tickers."New value: +"The ticker(s) forming the cross-section of test assets." - removed
Input schema / properties / asset_tickers / titleRemoved value: -"Asset Tickers" - changed
Input schema / properties / bandwidth / descriptionPrevious value: -"Value for bandwidth."New value: +"The maximum distance from `cutoff` an observation may be to be included in either local regression." - removed
Input schema / properties / bandwidth / titleRemoved value: -"Bandwidth" - removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / break_date / descriptionPrevious value: -"Value for break_date. Leave unset to use the default of the indicator you selected. Required by: get_chow_test."New value: +"The date (e.g. \"2021-06-30\") at which to split the sample -- all periods starting on or after this date form the \"after\" sub-sample, everything before it forms the \"before\" sub-sample. Leave unset to use the default of the indicator you selected. Required by: get_chow_test." - removed
Input schema / properties / break_date / titleRemoved value: -"Break Date" - changed
Input schema / properties / caliper / descriptionPrevious value: -"Value for caliper."New value: +"The maximum allowed logit-propensity-score matching distance." - removed
Input schema / properties / caliper / titleRemoved value: -"Caliper" - changed
Input schema / properties / clusters / descriptionPrevious value: -"Value for clusters."New value: +"For get_ols: The cluster label for each observation (e.g. a coarser time bucket derived from the return index, to correct for within-period correlation), required when `cov_type=\"cluster\"`. Aligned to the regression's own index before use, so it may be indexed by the full period index even though the... For get_wls: The cluster label for each observation, required when `cov_type=\"cluster\"`." - removed
Input schema / properties / clusters / titleRemoved value: -"Clusters" - changed
Input schema / properties / column / descriptionPrevious value: -"Value for column. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."New value: +"The price column to use, e.g. 'Close' or 'Adj Close'. Leave unset to use the default of the indicator you selected. Defaults differ between indicators." - removed
Input schema / properties / column / titleRemoved value: -"Column" - changed
Input schema / properties / control_tickers / descriptionPrevious value: -"Value for control_tickers."New value: +"The untreated comparison asset(s)." - removed
Input schema / properties / control_tickers / titleRemoved value: -"Control Tickers" - changed
Input schema / properties / cov_type / descriptionPrevious value: -"Value for cov_type."New value: +"For get_ols: Which covariance estimator to use for the standard errors -- one of \"nonrobust\" (classical, assumes homoskedastic errors), \"HC0\"/\"HC1\"/\"HC2\"/\"HC3\" (heteroskedasticity-robust), \"cluster\" (cluster-robust, requires `clusters`) or \"HAC\" (Newey-West, heteroskedasticity-and-autocorrelation-consistent,... For get_wls: Which covariance estimator to use, applied to the weighted/ transformed problem -- see `get_ols`'s `cov_type` for the full list of options." - removed
Input schema / properties / cov_type / titleRemoved value: -"Cov Type" - changed
Input schema / properties / covariate_tickers / descriptionPrevious value: -"Value for covariate_tickers. Leave unset to use the default of the indicator you selected. Required by: get_propensity_score_matching."New value: +"The asset(s) used as covariates to estimate the propensity score -- should include asset(s) believed to drive selection into \"treatment\". Leave unset to use the default of the indicator you selected. Required by: get_propensity_score_matching." - removed
Input schema / properties / covariate_tickers / titleRemoved value: -"Covariate Tickers" - changed
Input schema / properties / cutoff / descriptionPrevious value: -"Value for cutoff. Leave unset to use the default of the indicator you selected. Required by: get_regression_discontinuity."New value: +"The threshold value of `running_variable_ticker` at which the discontinuity is estimated. Leave unset to use the default of the indicator you selected. Required by: get_regression_discontinuity." - removed
Input schema / properties / cutoff / titleRemoved value: -"Cutoff" - changed
Input schema / properties / d / descriptionPrevious value: -"Value for d."New value: +"For get_arima_forecast: The number of times to difference the series. For get_out_of_sample_validation: The ARIMA differencing order (`model=\"arima\"` only)." - removed
Input schema / properties / d / titleRemoved value: -"D" - changed
Input schema / properties / dependent_ticker / descriptionPrevious value: -"Value for dependent_ticker. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_hausman_wu_test, get_iv_2sls, get_likelihood_ratio_test, get_propensity_score_matching, get_regression_discontinuity. Defaults are None for get_breusch_pagan_test, get_chow_test, get_durbin_watson_test, get_event_study, get_gls, get_logistic_regression, get_ols, get_probit_regression, get_quantile_regression, get_ramsey_reset_test, get_wald_test, get_white_test, get_wls."New value: +"The outcome asset. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_hausman_wu_test, get_iv_2sls, get_likelihood_ratio_test, get_propensity_score_matching, get_regression_discontinuity. Defaults are None for get_breusch_pagan_test, get_chow_test, get_durbin_watson_test, get_event_study, get_gls, get_logistic_regression, get_ols, get_probit_regression, get_quantile_regression, get_ramsey_reset_test, get_wald_test, get_white_test, get_wls." - removed
Input schema / properties / dependent_ticker / titleRemoved value: -"Dependent Ticker" - changed
Input schema / properties / dependent_tickers / descriptionPrevious value: -"Value for dependent_tickers."New value: +"The panel of entity tickers to explain." - removed
Input schema / properties / dependent_tickers / titleRemoved value: -"Dependent Tickers" - changed
Input schema / properties / det_order / descriptionPrevious value: -"Value for det_order."New value: +"Which deterministic term to include: -1 (none), 0 (a constant, restricted to lie in the cointegrating relation) or 1 (a linear trend restricted to the cointegrating relation, alongside an unrestricted constant in the short-run dynamics)." - removed
Input schema / properties / det_order / titleRemoved value: -"Det Order" - changed
Input schema / properties / donor_tickers / descriptionPrevious value: -"Value for donor_tickers."New value: +"The ticker(s) forming the donor pool the synthetic control is built from." - removed
Input schema / properties / donor_tickers / titleRemoved value: -"Donor Tickers" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - changed
Input schema / properties / endogenous_ticker / descriptionPrevious value: -"Value for endogenous_ticker. Leave unset to use the default of the indicator you selected. Required by: get_iv_2sls."New value: +"The endogenous regressor asset(s) -- suspected correlated with the error term. Leave unset to use the default of the indicator you selected. Required by: get_iv_2sls." - removed
Input schema / properties / endogenous_ticker / titleRemoved value: -"Endogenous Ticker" - changed
Input schema / properties / entity_effects / descriptionPrevious value: -"Value for entity_effects."New value: +"Whether to control for time-invariant entity-specific characteristics." - removed
Input schema / properties / entity_effects / titleRemoved value: -"Entity Effects" - changed
Input schema / properties / equal_variance / descriptionPrevious value: -"Value for equal_variance."New value: +"Whether to assume the two samples share a common variance (Student's pooled t-test) instead of Welch's (unequal-variance) t-test." - removed
Input schema / properties / equal_variance / titleRemoved value: -"Equal Variance" - changed
Input schema / properties / estimation_window / descriptionPrevious value: -"Value for estimation_window."New value: +"Number of trading days used to estimate the market model." - removed
Input schema / properties / estimation_window / titleRemoved value: -"Estimation Window" - changed
Input schema / properties / event_date / descriptionPrevious value: -"Value for event_date. Leave unset to use the default of the indicator you selected. Required by: get_event_study."New value: +"The date of the event (e.g. \"2023-05-04\"). Must fall within the Toolkit instance's daily historical data. Leave unset to use the default of the indicator you selected. Required by: get_event_study." - removed
Input schema / properties / event_date / titleRemoved value: -"Event Date" - changed
Input schema / properties / exogenous_tickers / descriptionPrevious value: -"Value for exogenous_tickers."New value: +"Other, non-instrumented control asset(s) included as-is in both stages." - removed
Input schema / properties / exogenous_tickers / titleRemoved value: -"Exogenous Tickers" - changed
Input schema / properties / factor_tickers / descriptionPrevious value: -"Value for factor_tickers."New value: +"The ticker(s) whose returns are used as the risk factor(s) (e.g. \"Benchmark\" for a single-factor/CAPM-style test)." - removed
Input schema / properties / factor_tickers / titleRemoved value: -"Factor Tickers" - changed
Input schema / properties / forecast_steps / descriptionPrevious value: -"Value for forecast_steps."New value: +"The number of periods ahead to forecast." - removed
Input schema / properties / forecast_steps / titleRemoved value: -"Forecast Steps" - changed
Input schema / properties / gap_days / descriptionPrevious value: -"Value for gap_days."New value: +"Number of trading days between the end of the estimation window and the event date." - removed
Input schema / properties / gap_days / titleRemoved value: -"Gap Days" - changed
Input schema / properties / include_benchmark / descriptionPrevious value: -"Value for include_benchmark."New value: +"Whether to include \"Benchmark\" among the assets tested." - removed
Input schema / properties / include_benchmark / titleRemoved value: -"Include Benchmark" - changed
Input schema / properties / include_constant / descriptionPrevious value: -"Value for include_constant."New value: +"For get_arima_forecast: Whether to estimate a free intercept. For get_out_of_sample_validation: Whether the ARIMA model estimates a free intercept (`model=\"arima\"` only)." - removed
Input schema / properties / include_constant / titleRemoved value: -"Include Constant" - changed
Input schema / properties / independent_column / descriptionPrevious value: -"Value for independent_column."New value: +"A different historical data column, taken per-entity from each of `dependent_tickers`' own data, to use as the regressor. Mutually exclusive with `independent_tickers`." - removed
Input schema / properties / independent_column / titleRemoved value: -"Independent Column" - changed
Input schema / properties / independent_tickers / descriptionPrevious value: -"Value for independent_tickers."New value: +"For get_breusch_pagan_test, get_chow_test, get_durbin_watson_test, get_gls, get_logistic_regression, get_ols, get_probit_regression, get_quantile_regression, get_ramsey_reset_test, get_white_test, get_wls: The independent (predictor) asset(s). For get_fixed_effects, get_hausman_test, get_random_effects: The factor ticker(s), whose `column` values are broadcast identically to every entity at each date. Mutually exclusive with `independent_column`. For get_wald_test: The independent (predictor) asset(s), in the order the restriction matrix's columns (after \"Intercept\", if `add_constant`) refer to them." - removed
Input schema / properties / independent_tickers / titleRemoved value: -"Independent Tickers" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - changed
Input schema / properties / instrument_tickers / descriptionPrevious value: -"Value for instrument_tickers. Leave unset to use the default of the indicator you selected. Required by: get_hausman_wu_test, get_iv_2sls."New value: +"For get_hausman_wu_test: One or more instrument asset(s) for `suspect_ticker` -- assets correlated with `suspect_ticker` but assumed uncorrelated with `dependent_ticker`'s error term. For get_iv_2sls: The excluded instrument asset(s), correlated with `endogenous_ticker` but assumed uncorrelated with the error term. Must supply at least as many instruments as endogenous regressors. Leave unset to use the default of the indicator you selected. Required by: get_hausman_wu_test, get_iv_2sls." - removed
Input schema / properties / instrument_tickers / titleRemoved value: -"Instrument Tickers" - changed
Input schema / properties / k_ar_diff / descriptionPrevious value: -"Value for k_ar_diff."New value: +"The number of lagged first differences to include as short-run dynamics." - removed
Input schema / properties / k_ar_diff / titleRemoved value: -"K Ar Diff" - changed
Input schema / properties / kernel / descriptionPrevious value: -"Value for kernel."New value: +"One of \"uniform\" or \"triangular\"." - removed
Input schema / properties / kernel / titleRemoved value: -"Kernel" - changed
Input schema / properties / lags / descriptionPrevious value: -"Value for lags. Leave unset to use the default of the indicator you selected. Defaults are 1 for get_impulse_response_function, get_out_of_sample_validation, get_var_forecast, get_variance_decomposition; None for get_kpss_test, get_phillips_perron_test; 10 for get_ljung_box_test; 5 for get_arch_lm_test."New value: +"The number of lags (past periods) the test or model uses, e.g. 1 or 5. Leave unset to use the default of the indicator you selected. Defaults are 1 for get_impulse_response_function, get_out_of_sample_validation, get_var_forecast, get_variance_decomposition; None for get_kpss_test, get_phillips_perron_test; 10 for get_ljung_box_test; 5 for get_arch_lm_test." - removed
Input schema / properties / lags / titleRemoved value: -"Lags" - changed
Input schema / properties / lambda_ / descriptionPrevious value: -"Value for lambda_."New value: +"The decay factor used by the \"ewma\" method." - removed
Input schema / properties / lambda_ / titleRemoved value: -"Lambda" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / loss / descriptionPrevious value: -"Value for loss."New value: +"The loss function to compare forecast errors with, one of \"squared\" or \"absolute\"." - removed
Input schema / properties / loss / titleRemoved value: -"Loss" - changed
Input schema / properties / max_lag / descriptionPrevious value: -"Value for max_lag. Leave unset to use the default of the indicator you selected. Defaults are None for get_augmented_dickey_fuller, get_engle_granger_cointegration, get_zivot_andrews_test; 5 for get_granger_causality."New value: +"The maximum number of lagged differences to consider. Leave unset to use the default of the indicator you selected. Defaults are None for get_augmented_dickey_fuller, get_engle_granger_cointegration, get_zivot_andrews_test; 5 for get_granger_causality." - removed
Input schema / properties / max_lag / titleRemoved value: -"Max Lag" - changed
Input schema / properties / maxlags / descriptionPrevious value: -"Value for maxlags."New value: +"For get_ols: The maximum lag to include when estimating the HAC (Newey-West) covariance matrix, required when `cov_type=\"HAC\"`. A common rule of thumb is `floor(4 * (n / 100)^(2/9))` (Newey & West, 1994). For get_wls: The maximum lag to include when estimating the HAC (Newey-West) covariance matrix, required when `cov_type=\"HAC\"`. See `get_ols`'s `maxlags` for the rule-of-thumb formula." - removed
Input schema / properties / maxlags / titleRemoved value: -"Maxlags" - changed
Input schema / properties / method_a / descriptionPrevious value: -"Value for method_a."New value: +"The first volatility forecasting method, one of \"ewma\" or \"rolling\"." - removed
Input schema / properties / method_a / titleRemoved value: -"Method A" - changed
Input schema / properties / method_b / descriptionPrevious value: -"Value for method_b."New value: +"The second (competing) volatility forecasting method, one of \"ewma\" or \"rolling\"." - removed
Input schema / properties / method_b / titleRemoved value: -"Method B" - changed
Input schema / properties / model / descriptionPrevious value: -"Value for model."New value: +"Either \"arima\" or \"var\"." - removed
Input schema / properties / model / titleRemoved value: -"Model" - changed
Input schema / properties / n_bootstrap / descriptionPrevious value: -"Value for n_bootstrap."New value: +"The number of bootstrap resamples used for coefficient standard errors, overriding `statsmodels`' default analytic (kernel density-based) standard errors." - removed
Input schema / properties / n_bootstrap / titleRemoved value: -"N Bootstrap" - changed
Input schema / properties / omega / descriptionPrevious value: -"Value for omega. Leave unset to use the default of the indicator you selected. Required by: get_gls."New value: +"The (symmetric, positive-definite) error covariance structure, up to a scalar, shape `(n, n)`. Leave unset to use the default of the indicator you selected. Required by: get_gls." - removed
Input schema / properties / omega / titleRemoved value: -"Omega" - changed
Input schema / properties / orthogonalized / descriptionPrevious value: -"Value for orthogonalized."New value: +"Whether to orthogonalize the shocks via a Cholesky decomposition of the residual covariance matrix -- see `time_series_model.get_impulse_response_function`." - removed
Input schema / properties / orthogonalized / titleRemoved value: -"Orthogonalized" - changed
Input schema / properties / other_independent_tickers / descriptionPrevious value: -"Value for other_independent_tickers."New value: +"Any other (assumed exogenous) independent asset(s) to include." - removed
Input schema / properties / other_independent_tickers / titleRemoved value: -"Other Independent Tickers" - changed
Input schema / properties / other_tickers / descriptionPrevious value: -"Value for other_tickers."New value: +"The other assets to include in the VAR system alongside the ticker being validated (`model=\"var\"` only)." - removed
Input schema / properties / other_tickers / titleRemoved value: -"Other Tickers" - changed
Input schema / properties / p / descriptionPrevious value: -"Value for p."New value: +"For get_arima_forecast: The autoregressive order. For get_out_of_sample_validation: The ARIMA autoregressive order (`model=\"arima\"` only)." - removed
Input schema / properties / p / titleRemoved value: -"P" - changed
Input schema / properties / period / descriptionPrevious 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)." - removed
Input schema / properties / period / titleRemoved value: -"Period" - changed
Input schema / properties / periods / descriptionPrevious value: -"Value for periods."New value: +"For get_impulse_response_function: The number of periods ahead to trace the response out to. For get_variance_decomposition: The forecast horizon to decompose out to." - removed
Input schema / properties / periods / titleRemoved value: -"Periods" - changed
Input schema / properties / post_event_days / descriptionPrevious value: -"Value for post_event_days."New value: +"Number of trading days after the event date included in the event window." - removed
Input schema / properties / post_event_days / titleRemoved value: -"Post Event Days" - changed
Input schema / properties / power / descriptionPrevious value: -"Value for power."New value: +"The highest power of the fitted values to add." - removed
Input schema / properties / power / titleRemoved value: -"Power" - changed
Input schema / properties / pre_event_days / descriptionPrevious value: -"Value for pre_event_days."New value: +"Number of trading days before the event date included in the event window." - removed
Input schema / properties / pre_event_days / titleRemoved value: -"Pre Event Days" - changed
Input schema / properties / q / descriptionPrevious value: -"Value for q. Leave unset to use the default of the indicator you selected. Defaults are 1 for get_arima_forecast, get_out_of_sample_validation; 2 for get_variance_ratio_test."New value: +"For get_arima_forecast: The moving-average order. For get_out_of_sample_validation: The ARIMA moving-average order (`model=\"arima\"` only). For get_variance_ratio_test: The number of periods to compound returns over. Leave unset to use the default of the indicator you selected. Defaults are 1 for get_arima_forecast, get_out_of_sample_validation; 2 for get_variance_ratio_test." - removed
Input schema / properties / q / titleRemoved value: -"Q" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / regression / descriptionPrevious value: -"Value for regression."New value: +"Which deterministic terms to include, one of \"n\" (none), \"c\" (constant) or \"ct\" (constant and trend)." - removed
Input schema / properties / regression / titleRemoved value: -"Regression" - changed
Input schema / properties / restricted_independent_tickers / descriptionPrevious value: -"Value for restricted_independent_tickers. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_likelihood_ratio_test."New value: +"The independent asset(s) in the restricted (smaller) model. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_likelihood_ratio_test." - removed
Input schema / properties / restricted_independent_tickers / titleRemoved value: -"Restricted Independent Tickers" - changed
Input schema / properties / restriction_matrix / descriptionPrevious value: -"Value for restriction_matrix. Leave unset to use the default of the indicator you selected. Required by: get_wald_test."New value: +"The `(q, k)` restriction matrix `R`, one row per restriction, one column per coefficient in the same order as `add_constant` (if True, \"Intercept\" first) followed by the independent ticker(s). Leave unset to use the default of the indicator you selected. Required by: get_wald_test." - removed
Input schema / properties / restriction_matrix / titleRemoved value: -"Restriction Matrix" - changed
Input schema / properties / restriction_values / descriptionPrevious value: -"Value for restriction_values."New value: +"The length-`q` vector of hypothesized values." - removed
Input schema / properties / restriction_values / titleRemoved value: -"Restriction Values" - changed
Input schema / properties / running_variable_ticker / descriptionPrevious value: -"Value for running_variable_ticker. Leave unset to use the default of the indicator you selected. Required by: get_regression_discontinuity."New value: +"The asset (or column) whose value determines which side of `cutoff` an observation falls on. Leave unset to use the default of the indicator you selected. Required by: get_regression_discontinuity." - removed
Input schema / properties / running_variable_ticker / titleRemoved value: -"Running Variable Ticker" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / significance / descriptionPrevious value: -"Value for significance."New value: +"The significance level (one of 0.01, 0.05, 0.10) at which the Johansen trace test determines the cointegrating rank." - removed
Input schema / properties / significance / titleRemoved value: -"Significance" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - changed
Input schema / properties / suspect_ticker / descriptionPrevious value: -"Value for suspect_ticker. Leave unset to use the default of the indicator you selected. Required by: get_hausman_wu_test."New value: +"The (possibly endogenous) asset being tested. Leave unset to use the default of the indicator you selected. Required by: get_hausman_wu_test." - removed
Input schema / properties / suspect_ticker / titleRemoved value: -"Suspect Ticker" - changed
Input schema / properties / tau / descriptionPrevious value: -"Value for tau."New value: +"The quantile to fit, in (0, 1)." - removed
Input schema / properties / tau / titleRemoved value: -"Tau" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - changed
Input schema / properties / time_effects / descriptionPrevious value: -"Value for time_effects."New value: +"Whether to control for entity-invariant, time-specific shocks." - removed
Input schema / properties / time_effects / titleRemoved value: -"Time Effects" - changed
Input schema / properties / train_fraction / descriptionPrevious value: -"Value for train_fraction."New value: +"The fraction of observations used for training; the remainder is the holdout." - removed
Input schema / properties / train_fraction / titleRemoved value: -"Train Fraction" - changed
Input schema / properties / treated_ticker / descriptionPrevious value: -"Value for treated_ticker. Leave unset to use the default of the indicator you selected. Required by: get_synthetic_control."New value: +"The asset believed to be affected by an event/ intervention starting at `treatment_period`. Leave unset to use the default of the indicator you selected. Required by: get_synthetic_control." - removed
Input schema / properties / treated_ticker / titleRemoved value: -"Treated Ticker" - changed
Input schema / properties / treated_tickers / descriptionPrevious value: -"Value for treated_tickers. Leave unset to use the default of the indicator you selected. Required by: get_difference_in_differences."New value: +"The asset(s) subject to the event/treatment. Leave unset to use the default of the indicator you selected. Required by: get_difference_in_differences." - removed
Input schema / properties / treated_tickers / titleRemoved value: -"Treated Tickers" - changed
Input schema / properties / treatment_date / descriptionPrevious value: -"Value for treatment_date. Leave unset to use the default of the indicator you selected. Required by: get_difference_in_differences."New value: +"The date the event/treatment occurs, in the same format accepted by `pd.Timestamp`. Observations on or after this date are `Post = 1`. Leave unset to use the default of the indicator you selected. Required by: get_difference_in_differences." - removed
Input schema / properties / treatment_date / titleRemoved value: -"Treatment Date" - changed
Input schema / properties / treatment_period / descriptionPrevious value: -"Value for treatment_period. Leave unset to use the default of the indicator you selected. Required by: get_synthetic_control."New value: +"The first post-treatment period -- periods at or after this value (within `period`'s index) are treated as post-treatment, everything before as pre-treatment (used to fit the synthetic control's weights). Leave unset to use the default of the indicator you selected. Required by: get_synthetic_control." - removed
Input schema / properties / treatment_period / titleRemoved value: -"Treatment Period" - changed
Input schema / properties / treatment_threshold / descriptionPrevious value: -"Value for treatment_threshold."New value: +"The return threshold defining treatment." - removed
Input schema / properties / treatment_threshold / titleRemoved value: -"Treatment Threshold" - changed
Input schema / properties / treatment_ticker / descriptionPrevious value: -"Value for treatment_ticker. Leave unset to use the default of the indicator you selected. Required by: get_propensity_score_matching."New value: +"The asset whose return, once it exceeds `treatment_threshold`, defines the treatment indicator. Leave unset to use the default of the indicator you selected. Required by: get_propensity_score_matching." - removed
Input schema / properties / treatment_ticker / titleRemoved value: -"Treatment Ticker" - changed
Input schema / properties / trim / descriptionPrevious value: -"Value for trim."New value: +"The fraction of observations excluded from the candidate break date search at the start and end of the sample. Must be in [0, 1/3)." - removed
Input schema / properties / trim / titleRemoved value: -"Trim" - changed
Input schema / properties / unrestricted_independent_tickers / descriptionPrevious value: -"Value for unrestricted_independent_tickers. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_likelihood_ratio_test."New value: +"The independent asset(s) in the unrestricted (larger) model -- must be a superset of `restricted_independent_tickers`. Leave unset to use the default of the indicator you selected. Required by: get_f_test, get_likelihood_ratio_test." - removed
Input schema / properties / unrestricted_independent_tickers / titleRemoved value: -"Unrestricted Independent Tickers" - changed
Input schema / properties / weights / descriptionPrevious value: -"Value for weights. Leave unset to use the default of the indicator you selected. Required by: get_wls."New value: +"The portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset. Leave unset to use the default of the indicator you selected. Required by: get_wls." - removed
Input schema / properties / weights / titleRemoved value: -"Weights" - changed
Input schema / properties / window_size / descriptionPrevious value: -"Value for window_size."New value: +"The rolling window size used by the \"rolling\" method." - removed
Input schema / properties / window_size / titleRemoved value: -"Window Size" - changed
Input schema / properties / within_period / descriptionPrevious value: -"Value for within_period."New value: +"Whether to calculate the test within the specified period or for the entire period. Thus whether to look at the test within a specific year (if period = 'yearly') or look at the entirety of all years. Note that this requires intraday data when period = 'daily', since a single day only nests..." - removed
Input schema / properties / within_period / titleRemoved value: -"Within Period" - removed
Input schema / titleRemoved value: -"econometricsArguments"
- Changed
efficiency21 fields changed- removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - removed
Input schema / properties / days / titleRemoved value: -"Days" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - removed
Input schema / titleRemoved value: -"efficiencyArguments"
- Changed
environment30 fields changed- removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - added
Input schema / properties / countries / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / countries / descriptionPrevious 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'." - removed
Input schema / properties / countries / titleRemoved value: -"Countries" - removed
Input schema / properties / countries / typeRemoved value: -"string" - added
Input schema / properties / deviationAdded value: +{ + "default": false, + "description": "Whether to return the deviation from the baseline instead of the level.", + "type": "boolean" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_carbon_footprint", - "get_renewable_energy", - "get_esg_scores" -]New value: +[ + "get_carbon_footprint", + "get_renewable_energy", + "get_carbon_price", + "get_climate_scenario", + "get_esg_scores" +] - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - added
Input schema / properties / limitAdded 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." +} - added
Input schema / properties / modelAdded value: +{ + "default": "REMIND-MAgPIE", + "description": "The integrated assessment model behind the scenario: \"REMIND-MAgPIE\", \"GCAM\" or \"MESSAGEix-GLOBIOM\".", + "type": "string" +} - added
Input schema / properties / periodAdded value: +{ + "default": "daily", + "description": "Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).", + "type": "string" +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - added
Input schema / properties / riskAdded value: +{ + "default": "combined", + "description": "\"combined\", \"transition\" or \"physical\". Current Policies has physical risk only, which is also its combined risk.", + "type": "string" +} - removed
Input schema / properties / rolling / titleRemoved value: -"Rolling" - added
Input schema / properties / scenarioAdded value: +{ + "default": "Net Zero 2050", + "description": "\"Net Zero 2050\", \"Below 2°C\", \"Low demand\", \"Delayed transition\", \"Nationally Determined Contributions (NDCs)\", \"Current Policies\", \"Fragmented World\" or \"Baseline\".", + "type": "string" +} - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - added
Input schema / properties / variableAdded value: +{ + "default": "long_term_interest_rate", + "description": "The variable: \"gdp\", \"inflation\", \"long_term_interest_rate\", \"long_term_real_interest_rate\", \"policy_rate\", \"unemployment_rate\", \"equity_prices\", \"effective_exchange_rate\", \"domestic_demand\", \"exports\", \"imports\", \"oil_price\", \"gas_price\", \"coal_price\" or \"carbon_price\" (units above).", + "type": "string" +} - removed
Input schema / titleRemoved value: -"environmentArguments"
- Changed
fixed_income93 fields changed- changed
Input schema / properties / bond_price / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Input schema / properties / bond_price / titleRemoved value: -"Bond Price" - added
Input schema / properties / countries / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / countries / descriptionPrevious 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'." - removed
Input schema / properties / countries / titleRemoved value: -"Countries" - removed
Input schema / properties / countries / typeRemoved value: -"string" - changed
Input schema / properties / coupon_rate / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Input schema / properties / coupon_rate / titleRemoved value: -"Coupon Rate" - changed
Input schema / properties / days_to_maturity / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / days_to_maturity / descriptionPrevious value: -"Value for days_to_maturity."New value: +"The number of days until the instrument matures. If not provided, a range of typical T-bill maturities will be used." - removed
Input schema / properties / days_to_maturity / titleRemoved value: -"Days To Maturity" - changed
Input schema / properties / discount_yield / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / discount_yield / descriptionPrevious value: -"Value for discount_yield."New value: +"The money-market discount yield of the instrument (in decimal). If not provided, a range of discount yields will be used." - removed
Input schema / properties / discount_yield / titleRemoved value: -"Discount Yield" - changed
Input schema / properties / duration_type / descriptionPrevious value: -"Value for duration_type."New value: +"The type of duration to calculate." - removed
Input schema / properties / duration_type / titleRemoved value: -"Duration Type" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - changed
Input schema / properties / far_maturity / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / far_maturity / descriptionPrevious value: -"Value for far_maturity."New value: +"The further maturity (or maturities), in years. If not provided, a range of far maturities will be used." - removed
Input schema / properties / far_maturity / titleRemoved value: -"Far Maturity" - changed
Input schema / properties / forward_rate / descriptionPrevious value: -"Value for forward_rate."New value: +"The forward rate as derived from the swap curve." - removed
Input schema / properties / forward_rate / titleRemoved value: -"Forward Rate" - changed
Input schema / properties / frequency / descriptionPrevious value: -"Value for frequency."New value: +"For get_duration, get_present_value: The frequency of coupon payments per year. For get_yield_to_maturity, get_par_yield, get_key_rate_duration, get_z_spread, get_taylor_price_change: The number of coupon payments per year." - removed
Input schema / properties / frequency / titleRemoved value: -"Frequency" - changed
Input schema / properties / guess / descriptionPrevious value: -"Value for guess. Leave unset to use the default of the indicator you selected. Defaults are 0.01 for get_z_spread; 0.05 for get_yield_to_maturity."New value: +"For get_yield_to_maturity: The initial guess for the yield to maturity. For get_z_spread: The initial guess for the Z-spread. Leave unset to use the default of the indicator you selected. Defaults are 0.01 for get_z_spread; 0.05 for get_yield_to_maturity." - removed
Input schema / properties / guess / titleRemoved value: -"Guess" - changed
Input schema / properties / include_payoff / descriptionPrevious value: -"Value for include_payoff."New value: +"True to include the payoff in the output, False otherwise." - removed
Input schema / properties / include_payoff / titleRemoved value: -"Include Payoff" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - changed
Input schema / properties / is_receiver / descriptionPrevious value: -"Value for is_receiver."New value: +"True if the holder is the receiver of the derivative, False if the holder is the payer." - removed
Input schema / properties / is_receiver / titleRemoved value: -"Is Receiver" - changed
Input schema / properties / key_rate_maturity / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / key_rate_maturity / descriptionPrevious value: -"Value for key_rate_maturity."New value: +"The maturity (or maturities), in years, of the curve point(s) to shock. Must be present in the index of `spot_rates`." - removed
Input schema / properties / key_rate_maturity / titleRemoved value: -"Key Rate Maturity" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / long_maturity / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / long_maturity / descriptionPrevious value: -"Value for long_maturity."New value: +"The longer maturity (or maturities), in years. If not provided, a range of long maturities will be used." - removed
Input schema / properties / long_maturity / titleRemoved value: -"Long Maturity" - changed
Input schema / properties / maturity / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / maturity / descriptionPrevious value: -"Value for maturity."New value: +"The maturity (or maturities), in years, to calculate the breakeven inflation rate for. If not provided, a range of maturities will be used." - removed
Input schema / properties / maturity / titleRemoved value: -"Maturity" - changed
Input schema / properties / max_iterations / descriptionPrevious value: -"Value for max_iterations."New value: +"The maximum number of iterations for convergence." - removed
Input schema / properties / max_iterations / titleRemoved value: -"Max Iterations" - changed
Input schema / properties / model / descriptionPrevious value: -"Value for model."New value: +"The type of model to use for calculating the derivative price." - removed
Input schema / properties / model / titleRemoved value: -"Model" - changed
Input schema / properties / near_maturity / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / near_maturity / descriptionPrevious value: -"Value for near_maturity."New value: +"The nearer maturity (or maturities), in years. If not provided, a range of near maturities will be used." - removed
Input schema / properties / near_maturity / titleRemoved value: -"Near Maturity" - changed
Input schema / properties / nominal_rates / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": { + "type": "number" + }, + "type": "object" + }, + { + "type": "null" + } +] - changed
Input schema / properties / nominal_rates / descriptionPrevious value: -"Value for nominal_rates."New value: +"The nominal (non-inflation-protected) yield curve, indexed by maturity in years (in decimal)." - removed
Input schema / properties / nominal_rates / titleRemoved value: -"Nominal Rates" - changed
Input schema / properties / notional / descriptionPrevious value: -"Value for notional."New value: +"The notional amount of the derivative." - removed
Input schema / properties / notional / titleRemoved value: -"Notional" - changed
Input schema / properties / par_value / descriptionPrevious value: -"Value for par_value."New value: +"For get_duration, get_present_value, get_key_rate_duration, get_z_spread, get_taylor_price_change: The par value (face value) of the bond. For get_yield_to_maturity: The par value (face value) of the bond. This is the original price when it was issued by the issuer. For get_par_yield: The face value of the bond." - removed
Input schema / properties / par_value / titleRemoved value: -"Par Value" - changed
Input schema / properties / payment_frequency / descriptionPrevious value: -"Value for payment_frequency."New value: +"Number of fixed-leg payments per year on the underlying swap (e.g. 1 for annual, 2 for semi-annual, 4 for quarterly)." - removed
Input schema / properties / payment_frequency / titleRemoved value: -"Payment Frequency" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / real_rates / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": { + "type": "number" + }, + "type": "object" + }, + { + "type": "null" + } +] - changed
Input schema / properties / real_rates / descriptionPrevious value: -"Value for real_rates."New value: +"The real (inflation-protected) yield curve, indexed by maturity in years (in decimal)." - removed
Input schema / properties / real_rates / titleRemoved value: -"Real Rates" - changed
Input schema / properties / risk_free_rate / descriptionPrevious value: -"Value for risk_free_rate."New value: +"The risk-free interest rate." - removed
Input schema / properties / risk_free_rate / titleRemoved value: -"Risk Free Rate" - changed
Input schema / properties / short_maturity / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / short_maturity / descriptionPrevious value: -"Value for short_maturity."New value: +"The shorter maturity (or maturities), in years. If not provided, a range of short maturities will be used." - removed
Input schema / properties / short_maturity / titleRemoved value: -"Short Maturity" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / show_input_info / descriptionPrevious value: -"Value for show_input_info."New value: +"For get_derivative_price: True to display input information, False otherwise. For get_duration, get_present_value, get_yield_to_maturity, get_par_yield, get_forward_rate, get_breakeven_inflation_rate, get_key_rate_duration, get_yield_curve_spread, get_z_spread, get_bond_equivalent_yield, get_taylor_price_change: Whether to display input information." - removed
Input schema / properties / show_input_info / titleRemoved value: -"Show Input Info" - changed
Input schema / properties / spot_rates / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": { + "type": "number" + }, + "type": "object" + }, + { + "type": "null" + } +] - changed
Input schema / properties / spot_rates / descriptionPrevious value: -"Value for spot_rates."New value: +"The yield curve, indexed by maturity in years (in decimal)." - removed
Input schema / properties / spot_rates / titleRemoved value: -"Spot Rates" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - changed
Input schema / properties / strike_rate / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Input schema / properties / strike_rate / titleRemoved value: -"Strike Rate" - changed
Input schema / properties / tenor / descriptionPrevious value: -"Value for tenor."New value: +"The tenor (length in years) of the underlying swap." - removed
Input schema / properties / tenor / titleRemoved value: -"Tenor" - changed
Input schema / properties / tolerance / descriptionPrevious value: -"Value for tolerance."New value: +"The tolerance level for convergence." - removed
Input schema / properties / tolerance / titleRemoved value: -"Tolerance" - changed
Input schema / properties / volatility / descriptionPrevious value: -"Value for volatility."New value: +"The volatility of the underlying swap rate, quoted on the basis given by `volatility_type`." - removed
Input schema / properties / volatility / titleRemoved value: -"Volatility" - changed
Input schema / properties / volatility_type / descriptionPrevious value: -"Value for volatility_type."New value: +"The convention `volatility` is quoted on, either 'lognormal' (relative to the forward rate) or 'normal' (absolute, in rate units)." - removed
Input schema / properties / volatility_type / titleRemoved value: -"Volatility Type" - changed
Input schema / properties / years_to_maturity / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Input schema / properties / years_to_maturity / titleRemoved value: -"Years To Maturity" - changed
Input schema / properties / yield_change / descriptionPrevious value: -"Value for yield_change. Leave unset to use the default of the indicator you selected. Defaults are 0.0001 for get_key_rate_duration; 0.01 for get_taylor_price_change."New value: +"For get_key_rate_duration: The size of the shock applied to each key rate, up and down (in decimal). For get_taylor_price_change: The hypothetical change in yield to maturity, e.g. 0.01 for a 100 basis point increase. Leave unset to use the default of the indicator you selected. Defaults are 0.0001 for get_key_rate_duration; 0.01 for get_taylor_price_change." - removed
Input schema / properties / yield_change / titleRemoved value: -"Yield Change" - changed
Input schema / properties / yield_to_maturity / descriptionPrevious value: -"Value for yield_to_maturity."New value: +"For get_duration, get_present_value: The yield to maturity of the bond. For get_taylor_price_change: The current yield to maturity of the bond." - removed
Input schema / properties / yield_to_maturity / titleRemoved value: -"Yield To Maturity" - removed
Input schema / titleRemoved value: -"fixed_incomeArguments"
- Changed
government21 fields changed- added
Input schema / properties / countries / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / countries / descriptionPrevious 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'." - removed
Input schema / properties / countries / titleRemoved value: -"Countries" - removed
Input schema / properties / countries / typeRemoved value: -"string" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - added
Input schema / properties / gmdb_forecastsAdded 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" +} - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - added
Input schema / properties / levelAdded value: +{ + "default": "consolidated", + "description": "Level of government: 'consolidated' (longest history), 'general' (central, state and local government and social security) or 'central'.", + "type": "string" +} - added
Input schema / properties / limitAdded 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." +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / rolling / titleRemoved value: -"Rolling" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - removed
Input schema / titleRemoved value: -"governmentArguments"
- Changed
jobs26 fields changed- added
Input schema / properties / countries / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / countries / descriptionPrevious 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'." - removed
Input schema / properties / countries / titleRemoved value: -"Countries" - removed
Input schema / properties / countries / typeRemoved value: -"string" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - added
Input schema / properties / gmdb_forecastsAdded 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" +} - removed
Input schema / properties / gmdb_source / titleRemoved value: -"Gmdb Source" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_income_inequality", - "get_labour_productivity", - "get_population_statistics", - "get_poverty_rate", - "get_unemployment_rate", - "get_nonfarm_payrolls", - "get_initial_jobless_claims" -]New value: +[ + "get_income_inequality", + "get_labour_productivity", + "get_population_statistics", + "get_poverty_rate", + "get_unemployment_rate", + "get_life_table", + "get_nonfarm_payrolls", + "get_initial_jobless_claims" +] - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - added
Input schema / properties / limitAdded 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." +} - added
Input schema / properties / measureAdded value: +{ + "default": "death_probability", + "description": "Sub-measure selector, e.g. 'M1', 'M2', or 'M3' for money supply.", + "type": "string" +} - changed
Input schema / properties / period / descriptionPrevious 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)." - removed
Input schema / properties / period / titleRemoved value: -"Period" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / rolling / titleRemoved value: -"Rolling" - added
Input schema / properties / sexAdded value: +{ + "default": "total", + "description": "\"total\", \"male\" or \"female\".", + "type": "string" +} - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - removed
Input schema / titleRemoved value: -"jobsArguments"
- Changed
liquidity21 fields changed- removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - removed
Input schema / properties / days / titleRemoved value: -"Days" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - removed
Input schema / titleRemoved value: -"liquidityArguments"
- Changed
macroeconomics55 fields changed- added
Input schema / properties / accept_licenceAdded value: +{ + "default": false, + "description": "Confirms that the data is used for non-commercial purposes, as its licence (CC BY-NC-SA 4.0) requires.", + "type": "boolean" +} - added
Input schema / properties / asset_classAdded value: +{ + "default": "equity", + "description": "\"equity\", \"housing\", \"bonds\", \"bills\", \"risky\", \"safe\" or \"wealth\".", + "type": "string" +} - added
Input schema / properties / asset_classesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The asset classes to include, from \"Private Equity\", \"Infrastructure\", \"Hedge Funds\", \"Merger Arbitrage\", \"Private Credit\", \"Real Estate\", \"Investment Grade Credit\" and \"High Yield Credit\"." +} - added
Input schema / properties / authorityAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "For get_stress_test_scenario: \"federal_reserve\" or \"esrb\". For get_scenario_set: The regulator: \"dnb\". Leave unset to use the default of the indicator you selected. Defaults are 'dnb' for get_scenario_set; 'federal_reserve' for get_stress_test_scenario." +} - changed
Input schema / properties / commodity / descriptionPrevious value: -"Value for commodity. Leave unset to use the default of the indicator you selected. Required by: get_commodity_forward_curve."New value: +"The commodity to retrieve the curve for. One of \"Crude Oil\", \"Natural Gas\", \"Gold\", \"Silver\", \"Copper\", \"Corn\", \"Wheat\" or \"Soybeans\". Leave unset to use the default of the indicator you selected. Required by: get_commodity_forward_curve." - removed
Input schema / properties / commodity / titleRemoved value: -"Commodity" - added
Input schema / properties / componentAdded value: +{ + "default": "total", + "description": "Part of final consumption: 'total', 'household' or 'government'.", + "type": "string" +} - changed
Input schema / properties / contracts / descriptionPrevious value: -"Value for contracts."New value: +"The number of sequential monthly contracts ahead of today to attempt to fetch." - removed
Input schema / properties / contracts / titleRemoved value: -"Contracts" - added
Input schema / properties / countries / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / countries / descriptionPrevious 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'." - removed
Input schema / properties / countries / titleRemoved value: -"Countries" - removed
Input schema / properties / countries / typeRemoved value: -"string" - added
Input schema / properties / currenciesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The currencies to keep, e.g. \"USD\" or [\"USD\", \"EUR\"]." +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - added
Input schema / properties / end_of_periodAdded value: +{ + "default": false, + "description": "Whether to return the rate at the end of each month, quarter or year instead of its average.", + "type": "boolean" +} - added
Input schema / properties / eventsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Parts of event names to keep, matched without regard to case, e.g. \"PMI\" for every purchasing managers' index or [\"CPI\", \"Unemployment\"]." +} - added
Input schema / properties / gmdb_forecastsAdded 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" +} - removed
Input schema / properties / gmdb_source / titleRemoved value: -"Gmdb Source" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - added
Input schema / properties / impactAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The market impact to keep: \"Low\", \"Medium\" and/or \"High\", or \"All\" for every release. Leave unset to use the default of the indicator you selected. Defaults are 'High' for get_economic_calendar." +} - changed
Input schema / properties / indicator / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_business_confidence_index", - "get_composite_leading_indicator", - "get_consumer_confidence_index", - "get_consumer_price_index", - "get_current_account_balance", - "get_current_account_balance_to_gdp_ratio", - "get_exchange_rates", - "get_exports", - "get_exports_to_gdp_ratio", - "get_fixed_investment", - "get_fixed_investment_to_gdp_ratio", - "get_gross_domestic_product", - "get_gross_domestic_product_deflator", - "get_house_prices", - "get_imports", - "get_imports_to_gdp_ratio", - "get_inflation_rate", - "get_investment", - "get_investment_to_gdp_ratio", - "get_money_supply", - "get_producer_price_index", - "get_rent_prices", - "get_share_prices", - "get_total_consumption", - "get_total_consumption_to_gdp_ratio", - "get_household_savings_rate", - "get_household_debt_to_income_ratio", - "get_retail_sales", - "get_industrial_production_index", - "get_housing_starts", - "get_real_personal_income", - "get_recession_indicator", - "get_commercial_real_estate_prices", - "get_commodity_forward_curve", - "get_output_gap", - "get_real_interest_rate", - "get_real_effective_exchange_rate", - "get_misery_index", - "get_banking_crisis", - "get_currency_crisis", - "get_sovereign_debt_crisis", - "get_real_gross_domestic_product_usd", - "get_real_gross_domestic_product_per_capita", - "get_trade_balance" -]New value: +[ + "get_business_confidence_index", + "get_composite_leading_indicator", + "get_consumer_confidence_index", + "get_consumer_price_index", + "get_current_account_balance", + "get_current_account_balance_to_gdp_ratio", + "get_exchange_rates", + "get_exports", + "get_exports_to_gdp_ratio", + "get_fixed_investment", + "get_fixed_investment_to_gdp_ratio", + "get_gross_domestic_product", + "get_gross_domestic_product_deflator", + "get_gross_domestic_product_growth", + "get_shiller_stock_market_data", + "get_house_prices", + "get_imports", + "get_imports_to_gdp_ratio", + "get_inflation_rate", + "get_investment", + "get_investment_to_gdp_ratio", + "get_money_supply", + "get_producer_price_index", + "get_rent_prices", + "get_share_prices", + "get_total_consumption", + "get_total_consumption_to_gdp_ratio", + "get_household_savings_rate", + "get_household_debt_to_income_ratio", + "get_retail_sales", + "get_industrial_production_index", + "get_housing_starts", + "get_real_personal_income", + "get_recession_indicator", + "get_commercial_real_estate_prices", + "get_commodity_forward_curve", + "get_output_gap", + "get_real_interest_rate", + "get_real_effective_exchange_rate", + "get_misery_index", + "get_banking_crisis", + "get_currency_crisis", + "get_sovereign_debt_crisis", + "get_real_gross_domestic_product_usd", + "get_real_gross_domestic_product_per_capita", + "get_trade_balance", + "get_implied_volatility", + "get_stress_test_scenario", + "get_long_run_asset_returns", + "get_millennium_of_macroeconomic_data", + "get_scenario_set", + "get_asset_class_proxies", + "get_economic_calendar" +] - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - removed
Input schema / properties / inflation_adjusted / titleRemoved value: -"Inflation Adjusted" - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - added
Input schema / properties / limitAdded 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." +} - added
Input schema / properties / marketsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The markets to retrieve, from \"US Equity\", \"Euro Area Equity\", \"Emerging Markets Equity\", \"US Equity Volatility\", \"US Treasury Bonds\", \"Crude Oil\", \"Gold\", \"US Treasury Rates\" and \"Japan Government Bonds\"." +} - changed
Input schema / properties / measure / descriptionPrevious value: -"Sub-measure selector, e.g. 'M1', 'M2', or 'M3' for money supply."New value: +"Sub-measure selector, e.g. 'M1', 'M2', or 'M3' for money supply. Leave unset to use the default of the indicator you selected. Defaults are None for get_money_supply; 'real_world' for get_scenario_set." - removed
Input schema / properties / measure / titleRemoved value: -"Measure" - changed
Input schema / properties / oecd_source / descriptionPrevious value: -"Value for oecd_source."New value: +"Whether to get the data from the OECD instead of the Global Macro Database (GMDB)." - removed
Input schema / properties / oecd_source / titleRemoved value: -"Oecd Source" - changed
Input schema / properties / period / descriptionPrevious 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 are None for get_consumer_price_index, get_exchange_rates, get_inflation_rate, get_producer_price_index, get_share_prices; 'daily' for get_implied_volatility; 'monthly' for get_asset_class_proxies." - removed
Input schema / properties / period / titleRemoved value: -"Period" - added
Input schema / properties / quantilesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The quantiles of the distribution per year." +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / rate_type / descriptionPrevious value: -"Value for rate_type."New value: +"Which nominal interest rate to use. Can be 'long_term' (10-year government bond yield) or 'short_term' (3-month money market rate)." - removed
Input schema / properties / rate_type / titleRemoved value: -"Rate Type" - added
Input schema / properties / realAdded value: +{ + "default": false, + "description": "Whether to deflate the returns by consumer price inflation.", + "type": "boolean" +} - added
Input schema / properties / returnsAdded value: +{ + "default": true, + "description": "Whether to return the total return per period instead of the dividend-adjusted price.", + "type": "boolean" +} - removed
Input schema / properties / rolling / titleRemoved value: -"Rolling" - added
Input schema / properties / scenarioAdded value: +{ + "default": "adverse", + "description": "\"baseline\", \"adverse\" (the Federal Reserve's severely adverse scenario) or \"historic\".", + "type": "string" +} - added
Input schema / properties / scenariosAdded value: +{ + "default": false, + "description": "Whether to return every scenario instead of the distribution.", + "type": "boolean" +} - added
Input schema / properties / seriesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The series to include, matched on (part of) their name without regard to case, e.g. \"Bank Rate\" or [\"consols\", \"share prices\"]." +} - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - added
Input schema / properties / usdAdded value: +{ + "default": false, + "description": "Return levels in millions of US dollars instead of national currency when True, which makes them comparable across countries (Global Macro Database).", + "type": "boolean" +} - added
Input schema / properties / variablesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The variables to include, from \"Nominal rate 1Y\", \"Nominal rate 5Y\", \"Nominal rate 10Y\", \"Nominal rate 20Y\", \"Nominal rate 30Y\", \"Real rate EU 10Y\", \"Equity return\", \"Inflation EU\" and \"Inflation NL\"." +} - added
Input schema / properties / yearAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The year of the Federal Reserve's stress test." +} - added
Input schema / properties / year_over_yearAdded value: +{ + "default": false, + "description": "Whether to return the change on the same quarter a year earlier instead of on the previous quarter.", + "type": "boolean" +} - removed
Input schema / titleRemoved value: -"macroeconomicsArguments"
- Changed
market_data42 fields changed- changed
Input schema / properties / actual_dates / descriptionPrevious value: -"Value for actual_dates."New value: +"Defines whether to return the actual dates or the corresponding quarters." - removed
Input schema / properties / actual_dates / titleRemoved value: -"Actual Dates" - removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / divide_ohlc_by / descriptionPrevious value: -"Value for divide_ohlc_by."New value: +"A value to divide the yields by. Treasury yields are published in percent, so this defaults to 100 to return decimals." - removed
Input schema / properties / divide_ohlc_by / titleRemoved value: -"Divide Ohlc By" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - changed
Input schema / properties / enforce_source / descriptionPrevious value: -"Value for enforce_source."New value: +"For get_balance_sheet_statement, get_cash_flow_statement, get_income_statement, get_statistics_statement: Forces this specific call to use a given source, either \"FinancialModelingPrep\" or \"YahooFinance\". This takes precedence over the source set on the Toolkit itself, so one instance can pull historical data from the free Yahoo Finance source while still using a FinancialModelingPrep key for the... For get_historical_data: A string containing the historical source you wish to enforce. This can be either FinancialModelingPrep or YahooFinance. For get_treasury_data: Forces this specific call to use a given source, either \"FinancialModelingPrep\" or \"YahooFinance\". This takes precedence over the source set on the Toolkit itself." - removed
Input schema / properties / enforce_source / titleRemoved value: -"Enforce Source" - changed
Input schema / properties / fill_nan / descriptionPrevious value: -"Value for fill_nan."New value: +"For get_historical_data, get_treasury_data: Defines whether to forward fill NaN values. This defaults to True to prevent holes in the dataset. This is especially relevant for technical indicators. For get_intraday_data: Defines whether to forward fill NaN values." - removed
Input schema / properties / fill_nan / titleRemoved value: -"Fill Nan" - added
Input schema / properties / fiscal_periodAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The company's fiscal quarter, e.g. '2025Q4' (its own fiscal year, which differs from the calendar year for e.g. Apple and Microsoft). Leave unset for the most recent." +} - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / include_dividends / descriptionPrevious value: -"Value for include_dividends."New value: +"Defines whether to include dividends in the return calculation." - removed
Input schema / properties / include_dividends / titleRemoved value: -"Include Dividends" - changed
Input schema / properties / indicator / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_analyst_estimates", - "get_balance_sheet_statement", - "get_cash_flow_statement", - "get_commitment_of_traders", - "get_dividend_calendar", - "get_earnings_calendar", - "get_historical_data", - "get_historical_statistics", - "get_income_statement", - "get_intraday_data", - "get_market_risk_premium", - "get_profile", - "get_quote", - "get_rating", - "get_revenue_geographic_segmentation", - "get_revenue_product_segmentation", - "get_statistics_statement", - "get_treasury_data" -]New value: +[ + "get_analyst_estimates", + "get_balance_sheet_statement", + "get_cash_flow_statement", + "get_commitment_of_traders", + "get_company_notes", + "get_dividend_calendar", + "get_earnings_calendar", + "get_earnings_call_transcripts", + "get_employee_count", + "get_etf_country_weightings", + "get_etf_holdings", + "get_etf_information", + "get_etf_sector_weightings", + "get_executive_compensation", + "get_executives", + "get_historical_data", + "get_historical_statistics", + "get_income_statement", + "get_insider_trade_statistics", + "get_intraday_data", + "get_market_risk_premium", + "get_mergers_acquisitions", + "get_profile", + "get_quote", + "get_rating", + "get_revenue_geographic_segmentation", + "get_revenue_product_segmentation", + "get_shares_float", + "get_statistics_statement", + "get_stock_grades", + "get_stock_splits", + "get_treasury_data" +] - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / latestAdded value: +{ + "default": true, + "description": "Whether to only retrieve the most recent transcript. When False, every transcript between the start_date and end_date is retrieved.", + "type": "boolean" +} - added
Input schema / properties / limitAdded 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. Leave unset to use the default of the indicator you selected. Defaults are 25 for get_etf_holdings." +} - changed
Input schema / properties / period / descriptionPrevious value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'. Leave unset to use the default of the indicator you selected. Defaults are 'daily' for get_historical_data, get_treasury_data; '1hour' for get_intraday_data."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 are 'daily' for get_historical_data, get_treasury_data; '1hour' for get_intraday_data." - removed
Input schema / properties / period / titleRemoved value: -"Period" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / return_column / descriptionPrevious value: -"Value for return_column. Leave unset to use the default of the indicator you selected. Defaults are 'Adj Close' for get_historical_data; 'Close' for get_intraday_data."New value: +"The column to use for the return calculation. Leave unset to use the default of the indicator you selected. Defaults are 'Adj Close' for get_historical_data; 'Close' for get_intraday_data." - removed
Input schema / properties / return_column / titleRemoved value: -"Return Column" - changed
Input schema / properties / risk_free_rate / descriptionPrevious value: -"Value for risk_free_rate."New value: +"The maturity to return as the risk free rate ('13w', '5y', '10y' or '30y')." - removed
Input schema / properties / risk_free_rate / titleRemoved value: -"Risk Free Rate" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / show_errors / descriptionPrevious value: -"Value for show_errors."New value: +"Whether to report retrieval errors." - removed
Input schema / properties / show_errors / titleRemoved value: -"Show Errors" - changed
Input schema / properties / show_ticker_seperation / descriptionPrevious value: -"Value for show_ticker_seperation."New value: +"A boolean representing whether to show which tickers acquired data from FinancialModelingPrep and which tickers acquired data from YahooFinance." - removed
Input schema / properties / show_ticker_seperation / titleRemoved value: -"Show Ticker Seperation" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - removed
Input schema / titleRemoved value: -"market_dataArguments"
- Changed
models51 fields changed- removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / calculate_daily / descriptionPrevious value: -"Value for calculate_daily."New value: +"Whether to calculate the PVGO using daily historical data." - removed
Input schema / properties / calculate_daily / titleRemoved value: -"Calculate Daily" - changed
Input schema / properties / cash_flow_type / descriptionPrevious 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\"." - removed
Input schema / properties / cash_flow_type / titleRemoved value: -"Cash Flow Type" - changed
Input schema / properties / diluted / descriptionPrevious 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." - removed
Input schema / properties / diluted / titleRemoved value: -"Diluted" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / growth_rate / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Input schema / properties / growth_rate / titleRemoved value: -"Growth Rate" - changed
Input schema / properties / high_growth_periods / descriptionPrevious value: -"Value for high_growth_periods."New value: +"The number of periods in the explicit high-growth phase." - removed
Input schema / properties / high_growth_periods / titleRemoved value: -"High Growth Periods" - changed
Input schema / properties / high_growth_rate / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / high_growth_rate / descriptionPrevious 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." - removed
Input schema / properties / high_growth_rate / titleRemoved value: -"High Growth Rate" - changed
Input schema / properties / include_dividends / descriptionPrevious 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." - removed
Input schema / properties / include_dividends / titleRemoved value: -"Include Dividends" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / periods / descriptionPrevious value: -"Value for periods."New value: +"The number of periods to use for the cash flow projections." - removed
Input schema / properties / periods / titleRemoved value: -"Periods" - changed
Input schema / properties / perpetual_growth_rate / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Input schema / properties / perpetual_growth_rate / titleRemoved value: -"Perpetual Growth Rate" - changed
Input schema / properties / project_periods / descriptionPrevious value: -"Value for project_periods."New value: +"The number of periods to project the the stock price." - removed
Input schema / properties / project_periods / titleRemoved value: -"Project Periods" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / rate_of_return / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / rate_of_return / descriptionPrevious 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." - removed
Input schema / properties / rate_of_return / titleRemoved value: -"Rate Of Return" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / show_full_results / descriptionPrevious value: -"Value for show_full_results."New value: +"Whether to show the full results or just the WACC values." - removed
Input schema / properties / show_full_results / titleRemoved value: -"Show Full Results" - changed
Input schema / properties / stable_growth_rate / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / stable_growth_rate / descriptionPrevious 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." - removed
Input schema / properties / stable_growth_rate / titleRemoved value: -"Stable Growth Rate" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - changed
Input schema / properties / weighted_average_cost_of_capital / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "number" + }, + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Input schema / properties / weighted_average_cost_of_capital / titleRemoved value: -"Weighted Average Cost Of Capital" - removed
Input schema / titleRemoved value: -"modelsArguments"
- Changed
momentum53 fields changed- changed
Input schema / properties / base_window / descriptionPrevious value: -"Value for base_window."New value: +"The number of periods to consider for the Base Line (Kijun-sen) calculation, also used as the forward displacement for both Leading Spans." - removed
Input schema / properties / base_window / titleRemoved value: -"Base Window" - removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / close_column / descriptionPrevious value: -"Value for close_column."New value: +"For get_money_flow_index, get_williams_percent_r: The name of the column containing the close prices. For get_aroon_indicator, get_ichimoku_cloud, get_stochastic_oscillator, get_moving_average_convergence_divergence, get_relative_strength_index, get_balance_of_power, get_awesome_oscillator, get_vortex_indicator, get_elder_ray_index, get_rate_of_change, get_choppiness_index, get_know_sure_thing: The column name for closing prices in the historical data. For get_commodity_channel_index, get_relative_vigor_index, get_force_index, get_ultimate_oscillator, get_percentage_price_oscillator, get_detrended_price_oscillator, get_average_directional_index, get_chande_momentum_oscillator: The column in the historical data that represents the closing prices." - removed
Input schema / properties / close_column / titleRemoved value: -"Close Column" - changed
Input schema / properties / constant / descriptionPrevious value: -"Value for constant."New value: +"Constant multiplier used in the CCI calculation." - removed
Input schema / properties / constant / titleRemoved value: -"Constant" - changed
Input schema / properties / conversion_window / descriptionPrevious value: -"Value for conversion_window."New value: +"The number of periods to consider for the Conversion Line (Tenkan-sen) calculation." - removed
Input schema / properties / conversion_window / titleRemoved value: -"Conversion Window" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - changed
Input schema / properties / lead_span_b_window / descriptionPrevious value: -"Value for lead_span_b_window."New value: +"The number of periods to consider for the Lead Span B (Senkou Span B) calculation." - removed
Input schema / properties / lead_span_b_window / titleRemoved value: -"Lead Span B Window" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / long_window / descriptionPrevious value: -"Value for long_window. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence; 28 for get_percentage_price_oscillator; 34 for get_awesome_oscillator."New value: +"For get_percentage_price_oscillator: The number of periods for the long-term moving average. For get_moving_average_convergence_divergence: The number of periods for the longer moving average. For get_awesome_oscillator: The number of periods for the long-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence; 28 for get_percentage_price_oscillator; 34 for get_awesome_oscillator." - removed
Input schema / properties / long_window / titleRemoved value: -"Long Window" - changed
Input schema / properties / period / descriptionPrevious 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)." - removed
Input schema / properties / period / titleRemoved value: -"Period" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / roc_windows / descriptionPrevious value: -"Value for roc_windows."New value: +"The four lookback periods used for the underlying Rate of Change calculations." - removed
Input schema / properties / roc_windows / titleRemoved value: -"Roc Windows" - changed
Input schema / properties / short_window / descriptionPrevious value: -"Value for short_window. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence; 5 for get_awesome_oscillator; 7 for get_percentage_price_oscillator."New value: +"For get_percentage_price_oscillator: The number of periods for the short-term moving average. For get_moving_average_convergence_divergence: The number of periods for the shorter moving average. For get_awesome_oscillator: The number of periods for the short-term SMA of the median price. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence; 5 for get_awesome_oscillator; 7 for get_percentage_price_oscillator." - removed
Input schema / properties / short_window / titleRemoved value: -"Short Window" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / signal_window / descriptionPrevious value: -"Value for signal_window."New value: +"For get_moving_average_convergence_divergence: The number of periods for the signal line. For get_know_sure_thing: Number of periods for the Simple Moving Average of the KST used as the signal line." - removed
Input schema / properties / signal_window / titleRemoved value: -"Signal Window" - changed
Input schema / properties / sma_windows / descriptionPrevious value: -"Value for sma_windows."New value: +"The four Simple Moving Average smoothing periods applied to each Rate of Change series." - removed
Input schema / properties / sma_windows / titleRemoved value: -"Sma Windows" - changed
Input schema / properties / smooth_window / descriptionPrevious value: -"Value for smooth_window."New value: +"The number of periods used to smooth the %K line into the %D signal line." - removed
Input schema / properties / smooth_window / titleRemoved value: -"Smooth Window" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - changed
Input schema / properties / weights / descriptionPrevious value: -"Value for weights."New value: +"The portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset." - removed
Input schema / properties / weights / titleRemoved value: -"Weights" - changed
Input schema / properties / window / descriptionPrevious value: -"Value for window. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."New value: +"The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults differ between indicators." - removed
Input schema / properties / window / titleRemoved value: -"Window" - changed
Input schema / properties / window_1 / descriptionPrevious value: -"Value for window_1."New value: +"The number of periods for the first short-term window." - removed
Input schema / properties / window_1 / titleRemoved value: -"Window 1" - changed
Input schema / properties / window_2 / descriptionPrevious value: -"Value for window_2."New value: +"The number of periods for the second mid-term window." - removed
Input schema / properties / window_2 / titleRemoved value: -"Window 2" - changed
Input schema / properties / window_3 / descriptionPrevious value: -"Value for window_3."New value: +"The number of periods for the third long-term window." - removed
Input schema / properties / window_3 / titleRemoved value: -"Window 3" - removed
Input schema / titleRemoved value: -"momentumArguments"
- Changed
options81 fields changed- changed
Input schema / properties / american_option / descriptionPrevious value: -"Value for american_option."New value: +"Whether to value an American option, which can be exercised at every node, instead of a European option." - removed
Input schema / properties / american_option / titleRemoved value: -"American Option" - changed
Input schema / properties / barrier_direction / descriptionPrevious value: -"Value for barrier_direction."New value: +"Either \"down\" or \"up\"." - removed
Input schema / properties / barrier_direction / titleRemoved value: -"Barrier Direction" - changed
Input schema / properties / barrier_percentage / descriptionPrevious value: -"Value for barrier_percentage."New value: +"The barrier level as a percentage of the current stock price." - removed
Input schema / properties / barrier_percentage / titleRemoved value: -"Barrier Percentage" - removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / cash_payout / descriptionPrevious value: -"Value for cash_payout."New value: +"The fixed cash amount paid out by a cash-or-nothing option when it expires in-the-money. Ignored for asset-or-nothing options." - removed
Input schema / properties / cash_payout / titleRemoved value: -"Cash Payout" - changed
Input schema / properties / dividend_yield / descriptionPrevious value: -"Value for dividend_yield."New value: +"The dividend yield to use for the calculation." - removed
Input schema / properties / dividend_yield / titleRemoved value: -"Dividend Yield" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - changed
Input schema / properties / expiration_date / descriptionPrevious value: -"Value for expiration_date."New value: +"For get_implied_volatility: The expiration date to use for the calculation. For get_option_chains, get_risk_neutral_density: The expiration date to use." - removed
Input schema / properties / expiration_date / titleRemoved value: -"Expiration Date" - changed
Input schema / properties / expiration_dates / descriptionPrevious value: -"Value for expiration_dates."New value: +"The expiration dates to fit the surface over." - removed
Input schema / properties / expiration_dates / titleRemoved value: -"Expiration Dates" - changed
Input schema / properties / expiration_time_range / descriptionPrevious value: -"Value for expiration_time_range."New value: +"The number of days to use for the time to expiration." - removed
Input schema / properties / expiration_time_range / titleRemoved value: -"Expiration Time Range" - changed
Input schema / properties / foreign_risk_free_rate / descriptionPrevious value: -"Value for foreign_risk_free_rate."New value: +"The foreign risk free rate to use for the calculation, which plays the role of the dividend yield in the standard Black-Scholes model." - removed
Input schema / properties / foreign_risk_free_rate / titleRemoved value: -"Foreign Risk Free Rate" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - changed
Input schema / properties / knock_type / descriptionPrevious value: -"Value for knock_type."New value: +"Either \"in\" or \"out\"." - removed
Input schema / properties / knock_type / titleRemoved value: -"Knock Type" - changed
Input schema / properties / legs / anyOfPrevious value: -[ - { - "additionalProperties": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "string" - } - ] - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + } + ] + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / legs / descriptionPrevious value: -"Value for legs. Leave unset to use the default of the indicator you selected. Required by: get_strategy_payoff."New value: +"The strategy as a list of legs. An option leg: {'strike_price': 340, 'put_option': false, 'position': 'long' or 'short', 'premium': 4.2}; a stock leg: {'instrument': 'stock', 'position': 'long', 'premium': 336}. E.g. a bull call spread is a long call at a lower and a short call at a higher strike. Leave unset to use the default of the indicator you selected. Required by: get_strategy_payoff." - removed
Input schema / properties / legs / titleRemoved value: -"Legs" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / number_of_expirations / descriptionPrevious value: -"Value for number_of_expirations."New value: +"The number of near-term expiration dates to fit when `expiration_dates` is not given." - removed
Input schema / properties / number_of_expirations / titleRemoved value: -"Number Of Expirations" - changed
Input schema / properties / number_of_strikes / descriptionPrevious value: -"Value for number_of_strikes."New value: +"The number of strikes in the evaluation grid." - removed
Input schema / properties / number_of_strikes / titleRemoved value: -"Number Of Strikes" - changed
Input schema / properties / option_type / descriptionPrevious value: -"Value for option_type."New value: +"Either \"cash-or-nothing\" or \"asset-or-nothing\"." - removed
Input schema / properties / option_type / titleRemoved value: -"Option Type" - changed
Input schema / properties / outlier_threshold / descriptionPrevious value: -"Value for outlier_threshold."New value: +"The number of median absolute deviations from the median implied volatility beyond which a quote is treated as an outlier and dropped before fitting." - removed
Input schema / properties / outlier_threshold / titleRemoved value: -"Outlier Threshold" - changed
Input schema / properties / put_option / descriptionPrevious value: -"Value for put_option."New value: +"Whether to calculate the put option rho." - removed
Input schema / properties / put_option / titleRemoved value: -"Put Option" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / rebate / descriptionPrevious value: -"Value for rebate."New value: +"The fixed cash amount paid out if the option knocks out (or fails to knock in)." - removed
Input schema / properties / rebate / titleRemoved value: -"Rebate" - changed
Input schema / properties / risk_free_rate / descriptionPrevious value: -"Value for risk_free_rate."New value: +"For get_asian_option, get_barrier_option, get_binary_option, get_binomial_model, get_bjerksund_stensland, get_black_scholes_model, get_charm, get_color, get_delta, get_dual_delta, get_dual_gamma, get_epsilon, get_gamma, get_implied_volatility, get_lambda, get_monte_carlo_option_price, get_partial_derivative, get_put_call_parity, get_rho, get_risk_neutral_density, get_speed, get_stock_price_simulation, get_theta, get_ultima, get_vanna, get_vega, get_vera, get_veta, get_volatility_surface, get_vomma, get_zomma: The risk free rate to use for the calculation. For get_garman_kohlhagen: The domestic risk free rate to use for the calculation." - removed
Input schema / properties / risk_free_rate / titleRemoved value: -"Risk Free Rate" - changed
Input schema / properties / seed / descriptionPrevious value: -"Value for seed."New value: +"The seed used to initialize the random number generator, ensuring reproducible results." - removed
Input schema / properties / seed / titleRemoved value: -"Seed" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / show_expiration_dates / descriptionPrevious value: -"Value for show_expiration_dates."New value: +"For get_implied_volatility: Whether to show the expiration dates. For get_option_chains: Whether to return the available expiration dates instead of the option chains." - removed
Input schema / properties / show_expiration_dates / titleRemoved value: -"Show Expiration Dates" - changed
Input schema / properties / show_input_info / descriptionPrevious value: -"Value for show_input_info."New value: +"Whether to show the input information." - removed
Input schema / properties / show_input_info / titleRemoved value: -"Show Input Info" - changed
Input schema / properties / show_standard_error / descriptionPrevious value: -"Value for show_standard_error."New value: +"Whether to also return the standard error of each Monte Carlo estimate as a second DataFrame." - removed
Input schema / properties / show_standard_error / titleRemoved value: -"Show Standard Error" - added
Input schema / properties / show_unique_combinations / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - changed
Input schema / properties / show_unique_combinations / defaultPrevious value: -falseNew value: +null - changed
Input schema / properties / show_unique_combinations / descriptionPrevious value: -"Value for show_unique_combinations."New value: +"Whether to show the unique combinations of the stock prices. Leave unset to use the default of the indicator you selected. Defaults are True for get_stock_price_simulation." - removed
Input schema / properties / show_unique_combinations / titleRemoved value: -"Show Unique Combinations" - removed
Input schema / properties / show_unique_combinations / typeRemoved value: -"boolean" - changed
Input schema / properties / simulations / descriptionPrevious value: -"Value for simulations."New value: +"The number of simulated stock price paths." - removed
Input schema / properties / simulations / titleRemoved value: -"Simulations" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - changed
Input schema / properties / stock_price_range / descriptionPrevious value: -"Value for stock_price_range."New value: +"The percentage range to use for the stock prices at expiration." - removed
Input schema / properties / stock_price_range / titleRemoved value: -"Stock Price Range" - changed
Input schema / properties / stock_price_step_size / descriptionPrevious value: -"Value for stock_price_step_size."New value: +"The step size to use for the stock prices at expiration." - removed
Input schema / properties / stock_price_step_size / titleRemoved value: -"Stock Price Step Size" - changed
Input schema / properties / strike_price_range / descriptionPrevious value: -"Value for strike_price_range. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."New value: +"Only strikes within this fraction of the current stock price, e.g. 0.05 for the strikes within 5% of it. Leave unset to use the default of the indicator you selected. Defaults differ between indicators." - removed
Input schema / properties / strike_price_range / titleRemoved value: -"Strike Price Range" - changed
Input schema / properties / strike_step_size / descriptionPrevious value: -"Value for strike_step_size."New value: +"The step size to use for the strike prices." - removed
Input schema / properties / strike_step_size / titleRemoved value: -"Strike Step Size" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - changed
Input schema / properties / time_steps / descriptionPrevious value: -"Value for time_steps."New value: +"The number of time steps used to build each simulated path." - removed
Input schema / properties / time_steps / titleRemoved value: -"Time Steps" - changed
Input schema / properties / time_to_expiration / descriptionPrevious value: -"Value for time_to_expiration."New value: +"The number of year to use for the time to expiration." - removed
Input schema / properties / time_to_expiration / titleRemoved value: -"Time To Expiration" - changed
Input schema / properties / timesteps / descriptionPrevious value: -"Value for timesteps."New value: +"The number of time steps to use for the binomial tree. This will be evenly distributed over the time to expiration." - removed
Input schema / properties / timesteps / titleRemoved value: -"Timesteps" - removed
Input schema / titleRemoved value: -"optionsArguments"
- Changed
overlap41 fields changed- changed
Input schema / properties / af_increment / descriptionPrevious value: -"Value for af_increment."New value: +"Amount by which the acceleration factor increases every time a new extreme point is reached." - removed
Input schema / properties / af_increment / titleRemoved value: -"Af Increment" - changed
Input schema / properties / af_max / descriptionPrevious value: -"Value for af_max."New value: +"Maximum value the acceleration factor can reach." - removed
Input schema / properties / af_max / titleRemoved value: -"Af Max" - changed
Input schema / properties / af_start / descriptionPrevious value: -"Value for af_start."New value: +"Initial acceleration factor." - removed
Input schema / properties / af_start / titleRemoved value: -"Af Start" - removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / close_column / descriptionPrevious value: -"Value for close_column."New value: +"The column name for closing prices in the historical data." - removed
Input schema / properties / close_column / titleRemoved value: -"Close Column" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - changed
Input schema / properties / fast_window / descriptionPrevious value: -"Value for fast_window."New value: +"The number of periods that corresponds to the fastest EMA constant used when the Efficiency Ratio is at its maximum (1.0)." - removed
Input schema / properties / fast_window / titleRemoved value: -"Fast Window" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - changed
Input schema / properties / levels / descriptionPrevious value: -"Value for levels."New value: +"The Fibonacci ratios to calculate levels for." - removed
Input schema / properties / levels / titleRemoved value: -"Levels" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / period / descriptionPrevious 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)." - removed
Input schema / properties / period / titleRemoved value: -"Period" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / sensitivity / descriptionPrevious value: -"Value for sensitivity."New value: +"The sensitivity parameter to determine the significance of the peaks and valleys. A higher sensitivity value will result in fewer support and resistance levels being identified." - removed
Input schema / properties / sensitivity / titleRemoved value: -"Sensitivity" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / slow_window / descriptionPrevious value: -"Value for slow_window."New value: +"The number of periods that corresponds to the slowest EMA constant used when the Efficiency Ratio is at its minimum (0.0)." - removed
Input schema / properties / slow_window / titleRemoved value: -"Slow Window" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - changed
Input schema / properties / trend / descriptionPrevious value: -"Value for trend."New value: +"Whether to compute retracement levels for an \"uptrend\" (levels measured down from the high — the conventional direction, used when a prior move was up and price is now pulling back) or a \"downtrend\" (levels measured up from the low, used when a prior move was down and price is now bouncing)." - removed
Input schema / properties / trend / titleRemoved value: -"Trend" - changed
Input schema / properties / window / descriptionPrevious value: -"Value for window. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."New value: +"The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults differ between indicators." - removed
Input schema / properties / window / titleRemoved value: -"Window" - removed
Input schema / titleRemoved value: -"overlapArguments"
- Changed
performance48 fields changed- changed
Input schema / properties / adjustment / descriptionPrevious value: -"Value for adjustment."New value: +"The fixed adjustment added to the Average Drawdown, conventionally 0.1 (10%)." - removed
Input schema / properties / adjustment / titleRemoved value: -"Adjustment" - changed
Input schema / properties / alpha / descriptionPrevious value: -"Value for alpha."New value: +"For get_rachev_ratio: The confidence level used for both tails (e.g. 0.05 for the best/worst 5% of outcomes). For get_starr_ratio: The confidence level used for the CVaR calculation (e.g. 0.05 for the worst 5% of outcomes)." - removed
Input schema / properties / alpha / titleRemoved value: -"Alpha" - added
Input schema / properties / annualizeAdded value: +{ + "default": false, + "description": "Set to true to annualize a Sharpe ratio (by default it is per observation, e.g. per day, so roughly sqrt(252) smaller than the annualized figure).", + "type": "boolean" +} - changed
Input schema / properties / benchmark_sharpe_ratio / descriptionPrevious value: -"Value for benchmark_sharpe_ratio."New value: +"The hypothesized or benchmark Sharpe ratio (SR*) to test the observed Sharpe ratio against. Only used when method=\"probabilistic\"." - removed
Input schema / properties / benchmark_sharpe_ratio / titleRemoved value: -"Benchmark Sharpe Ratio" - removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - removed
Input schema / properties / cumulative / titleRemoved value: -"Cumulative" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - changed
Input schema / properties / exclude_risk_free / descriptionPrevious value: -"Value for exclude_risk_free."New value: +"Whether to exclude the risk-free rate from the results." - removed
Input schema / properties / exclude_risk_free / titleRemoved value: -"Exclude Risk Free" - removed
Input schema / properties / factors_to_calculate / titleRemoved value: -"Factors To Calculate" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / include_daily_residuals / descriptionPrevious value: -"Value for include_daily_residuals."New value: +"Whether to also return the pointwise (daily) regression residuals as a second DataFrame." - removed
Input schema / properties / include_daily_residuals / titleRemoved value: -"Include Daily Residuals" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / method / descriptionPrevious value: -"Value for method. Leave unset to use the default of the indicator you selected. Defaults are 'multi' for get_fama_and_french_model; 'standard' for get_sharpe_ratio."New value: +"For get_fama_and_french_model: The regression method to use for the calculation. For get_sharpe_ratio: Which Sharpe ratio to calculate, one of \"standard\", \"adjusted\", \"probabilistic\" or \"deflated\". Leave unset to use the default of the indicator you selected. Defaults are 'multi' for get_fama_and_french_model; 'standard' for get_sharpe_ratio." - removed
Input schema / properties / method / titleRemoved value: -"Method" - removed
Input schema / properties / minimum_acceptable_return / titleRemoved value: -"Minimum Acceptable Return" - changed
Input schema / properties / n_trials / descriptionPrevious value: -"Value for n_trials."New value: +"The number of independent (or effectively independent) strategy variations, parameter combinations, or lookback windows tried before arriving at the reported Sharpe ratio. Only used when method=\"deflated\". Pass this explicitly whenever the actual number of trials is known." - removed
Input schema / properties / n_trials / titleRemoved value: -"N Trials" - changed
Input schema / properties / order / descriptionPrevious value: -"Value for order."New value: +"The order of the lower partial moment used in the denominator." - removed
Input schema / properties / order / titleRemoved value: -"Order" - changed
Input schema / properties / period / descriptionPrevious 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)." - removed
Input schema / properties / period / titleRemoved value: -"Period" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / rolling / titleRemoved value: -"Rolling" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / show_full_results / descriptionPrevious value: -"Value for show_full_results."New value: +"Whether to show the actual and benchmark returns next to the Alpha." - removed
Input schema / properties / show_full_results / titleRemoved value: -"Show Full Results" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - changed
Input schema / properties / trials_window / descriptionPrevious value: -"Value for trials_window."New value: +"The window size (in units of `period`) used for the auxiliary rolling Sharpe ratio series that approximates `Var[SR_trials]` and the default `n_trials`. Only used when method=\"deflated\"." - removed
Input schema / properties / trials_window / titleRemoved value: -"Trials Window" - changed
Input schema / properties / within_period / descriptionPrevious value: -"Value for within_period."New value: +"Whether to calculate the CVaR within the specified period or for the entire period. Thus whether to look at the CVaR within a specific year (if period = 'yearly') or look at the entirety of all years." - removed
Input schema / properties / within_period / titleRemoved value: -"Within Period" - removed
Input schema / titleRemoved value: -"performanceArguments"
- Changed
profitability22 fields changed- removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / dividend_adjusted / descriptionPrevious value: -"Value for dividend_adjusted."New value: +"Whether to adjust the net operating profit after taxes with the dividends paid." - removed
Input schema / properties / dividend_adjusted / titleRemoved value: -"Dividend Adjusted" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - removed
Input schema / titleRemoved value: -"profitabilityArguments"
- Changed
rates43 fields changed- added
Input schema / properties / agencyAdded 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" +} - added
Input schema / properties / countries / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / countries / descriptionPrevious 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'." - removed
Input schema / properties / countries / titleRemoved value: -"Countries" - removed
Input schema / properties / countries / typeRemoved value: -"string" - added
Input schema / properties / curveAdded 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." +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - added
Input schema / properties / gmdb_forecastsAdded 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" +} - removed
Input schema / properties / gmdb_source / titleRemoved value: -"Gmdb Source" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - added
Input schema / properties / horizonAdded value: +{ + "default": 1, + "description": "The length of the period in years, from 1 January of year.", + "type": "integer" +} - added
Input schema / properties / include_withdrawalsAdded value: +{ + "default": false, + "description": "Whether to keep the ratings withdrawn during the period as a \"Withdrawals\" column.", + "type": "boolean" +} - changed
Input schema / properties / indicator / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious 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" +] - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - added
Input schema / properties / limitAdded 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." +} - removed
Input schema / properties / maturities / titleRemoved value: -"Maturities" - changed
Input schema / properties / maturity / descriptionPrevious value: -"Value for maturity."New value: +"Whether to return the maturity total return or the rating total return." - removed
Input schema / properties / maturity / titleRemoved value: -"Maturity" - added
Input schema / properties / maturity_yearsAdded 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." +} - changed
Input schema / properties / nominal / descriptionPrevious 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..." - removed
Input schema / properties / nominal / titleRemoved value: -"Nominal" - changed
Input schema / properties / period / descriptionPrevious 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." - removed
Input schema / properties / period / titleRemoved value: -"Period" - added
Input schema / properties / probabilitiesAdded value: +{ + "default": true, + "description": "Whether to return the share of ratings per row instead of the number.", + "type": "boolean" +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / rate / descriptionPrevious 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." - removed
Input schema / properties / rate / titleRemoved value: -"Rate" - added
Input schema / properties / rating_typeAdded value: +{ + "default": "corporate", + "description": "\"corporate\", \"sovereign\", \"structured_finance\" or \"covered_bonds\".", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The area of the rated entities: \"Africa\", \"America\", \"Asia\", \"Europe\", \"EU members\", \"International\" or \"Oceania\"." +} - removed
Input schema / properties / rolling / titleRemoved value: -"Rolling" - changed
Input schema / properties / short_term / descriptionPrevious 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." - removed
Input schema / properties / short_term / titleRemoved value: -"Short Term" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - added
Input schema / properties / spreadAdded 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" +} - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - added
Input schema / properties / yearAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The first year of the period." +} - removed
Input schema / titleRemoved value: -"ratesArguments"
- Changed
risk98 fields changed- changed
Input schema / properties / alpha / descriptionPrevious value: -"Value for alpha."New value: +"The confidence level (e.g., 0.05 for 95% confidence)." - removed
Input schema / properties / alpha / titleRemoved value: -"Alpha" - removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / column / descriptionPrevious value: -"Value for column."New value: +"The price column to use, e.g. 'Close' or 'Adj Close'." - removed
Input schema / properties / column / titleRemoved value: -"Column" - changed
Input schema / properties / conditioning_ticker / descriptionPrevious value: -"Value for conditioning_ticker. Leave unset to use the default of the indicator you selected. Required by: get_covar."New value: +"The asset (or e.g. a benchmark/index) whose distress `ticker` is conditioned on. Leave unset to use the default of the indicator you selected. Required by: get_covar." - removed
Input schema / properties / conditioning_ticker / titleRemoved value: -"Conditioning Ticker" - changed
Input schema / properties / copula / descriptionPrevious value: -"Value for copula."New value: +"For get_copula_parameters: The copula family to fit, one of \"gaussian\", \"student-t\", \"clayton\", \"gumbel\" or \"frank\". For get_copula_simulation: The copula family to fit and simulate from, one of \"gaussian\", \"student-t\", \"clayton\", \"gumbel\" or \"frank\"." - removed
Input schema / properties / copula / titleRemoved value: -"Copula" - changed
Input schema / properties / distribution / descriptionPrevious value: -"Value for distribution."New value: +"The distribution to use for the rolling VaR estimates, one of \"historic\", \"gaussian\", \"studentt\" or \"evt\"." - removed
Input schema / properties / distribution / titleRemoved value: -"Distribution" - changed
Input schema / properties / dof / descriptionPrevious value: -"Value for dof."New value: +"The degrees of freedom of the Student-T copula, only used when `method=\"student-t\"`." - removed
Input schema / properties / dof / titleRemoved value: -"Dof" - changed
Input schema / properties / empirical_margins / descriptionPrevious value: -"Value for empirical_margins."New value: +"Whether to map the simulated pseudo-observations back to realistic returns via each asset's own empirical (historical) quantile function. When False, the raw pseudo-observations (each in (0, 1)) are returned instead." - removed
Input schema / properties / empirical_margins / titleRemoved value: -"Empirical Margins" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - changed
Input schema / properties / estimator / descriptionPrevious value: -"Value for estimator."New value: +"How to construct the daily Realized Variance input, one of \"squared_return\", \"parkinson\", \"garman_klass\" or \"rogers_satchell\"." - removed
Input schema / properties / estimator / titleRemoved value: -"Estimator" - changed
Input schema / properties / fisher / descriptionPrevious value: -"Value for fisher."New value: +"Whether to use Fisher's definition of kurtosis (kurtosis = 0.0 for a normal distribution)." - removed
Input schema / properties / fisher / titleRemoved value: -"Fisher" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / horizon / descriptionPrevious value: -"Value for horizon."New value: +"The number of days ahead to forecast." - removed
Input schema / properties / horizon / titleRemoved value: -"Horizon" - changed
Input schema / properties / indicator / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_acerbi_szekely_test", - "get_amihud_illiquidity", - "get_autocorrelation", - "get_best_fitting_copula", - "get_coefficient_of_variation", - "get_component_value_at_risk", - "get_conditional_drawdown_at_risk", - "get_conditional_value_at_risk", - "get_copula_parameters", - "get_copula_simulation", - "get_covar", - "get_downside_deviation", - "get_egarch", - "get_egarch_forecast", - "get_egarch_parameters", - "get_entropic_value_at_risk", - "get_ewma_volatility", - "get_excess_volatility", - "get_garch", - "get_garch_forecast", - "get_garch_parameters", - "get_gjr_garch", - "get_gjr_garch_forecast", - "get_gjr_garch_parameters", - "get_har_rv_forecast", - "get_hill_estimator", - "get_hurst_exponent", - "get_kurtosis", - "get_marginal_value_at_risk", - "get_maximum_drawdown", - "get_maximum_drawdown_duration", - "get_maximum_drawdown_recovery_time", - "get_mean_absolute_deviation", - "get_roll_spread", - "get_skewness", - "get_tail_dependence_coefficient", - "get_tail_ratio", - "get_ulcer_index", - "get_value_at_risk", - "get_var_backtest", - "get_variance", - "get_volatility" -]New value: +[ + "get_acerbi_szekely_test", + "get_amihud_illiquidity", + "get_autocorrelation", + "get_best_fitting_copula", + "get_coefficient_of_variation", + "get_component_value_at_risk", + "get_conditional_drawdown_at_risk", + "get_conditional_value_at_risk", + "get_copula_parameters", + "get_copula_simulation", + "get_covar", + "get_downside_deviation", + "get_entropic_value_at_risk", + "get_ewma_volatility", + "get_excess_volatility", + "get_garch", + "get_garch_forecast", + "get_garch_parameters", + "get_gjr_garch", + "get_gjr_garch_forecast", + "get_gjr_garch_parameters", + "get_har_rv_forecast", + "get_hill_estimator", + "get_hurst_exponent", + "get_kurtosis", + "get_marginal_value_at_risk", + "get_maximum_drawdown", + "get_maximum_drawdown_duration", + "get_maximum_drawdown_recovery_time", + "get_mean_absolute_deviation", + "get_roll_spread", + "get_skewness", + "get_tail_dependence_coefficient", + "get_tail_ratio", + "get_ulcer_index", + "get_value_at_risk", + "get_var_backtest", + "get_variance", + "get_volatility" +] - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - changed
Input schema / properties / k / descriptionPrevious value: -"Value for k."New value: +"The number of upper order statistics to use. If a float in (0, 1) it is interpreted as the fraction of the strictly positive observations to use." - removed
Input schema / properties / k / titleRemoved value: -"K" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - changed
Input schema / properties / lags / descriptionPrevious value: -"Value for lags."New value: +"The number of lags (past periods) the test or model uses, e.g. 1 or 5." - removed
Input schema / properties / lags / titleRemoved value: -"Lags" - changed
Input schema / properties / lambda_ / descriptionPrevious value: -"Value for lambda_."New value: +"The decay factor. Higher values weight the past more heavily (slower to react), lower values weight recent returns more heavily (faster to react). RiskMetrics uses 0.94 for daily data." - removed
Input schema / properties / lambda_ / titleRemoved value: -"Lambda" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / max_lag / descriptionPrevious value: -"Value for max_lag."New value: +"The maximum lag to use when estimating the exponent." - removed
Input schema / properties / max_lag / titleRemoved value: -"Max Lag" - changed
Input schema / properties / method / descriptionPrevious value: -"Value for method. Leave unset to use the default of the indicator you selected. Defaults are 'close_to_close' for get_volatility; 'empirical' for get_tail_dependence_coefficient."New value: +"For get_tail_dependence_coefficient: The estimation method, one of \"empirical\", \"gaussian\" or \"student-t\". For get_volatility: Which Volatility estimator to use, one of \"close_to_close\", \"parkinson\", \"garman_klass\", \"rogers_satchell\" or \"yang_zhang\". Leave unset to use the default of the indicator you selected. Defaults are 'close_to_close' for get_volatility; 'empirical' for get_tail_dependence_coefficient." - removed
Input schema / properties / method / titleRemoved value: -"Method" - removed
Input schema / properties / minimum_acceptable_return / titleRemoved value: -"Minimum Acceptable Return" - changed
Input schema / properties / monthly_window / descriptionPrevious value: -"Value for monthly_window."New value: +"The trailing window (in trading days) for the monthly RV component." - removed
Input schema / properties / monthly_window / titleRemoved value: -"Monthly Window" - changed
Input schema / properties / n_bootstrap / descriptionPrevious value: -"Value for n_bootstrap."New value: +"The number of bootstrap resamples used to estimate the Standard Error of Z2." - removed
Input schema / properties / n_bootstrap / titleRemoved value: -"N Bootstrap" - added
Input schema / properties / n_simulations / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / n_simulations / defaultPrevious value: -10000New value: +null - changed
Input schema / properties / n_simulations / descriptionPrevious value: -"Value for n_simulations."New value: +"The number of joint draws to simulate. Leave unset to use the default of the indicator you selected. Defaults are 100 for get_copula_simulation." - removed
Input schema / properties / n_simulations / titleRemoved value: -"N Simulations" - removed
Input schema / properties / n_simulations / typeRemoved value: -"integer" - changed
Input schema / properties / optimization_t / descriptionPrevious value: -"Value for optimization_t."New value: +"For get_garch: Time steps to optimize GARCH for. It is only used if no weights are given. For get_garch_parameters, get_gjr_garch_parameters: Time steps of the returns series to use for the optimization. For get_gjr_garch: Time steps to optimize GJR-GARCH for. It is only used if no weights are given." - removed
Input schema / properties / optimization_t / titleRemoved value: -"Optimization T" - changed
Input schema / properties / period / descriptionPrevious 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)." - removed
Input schema / properties / period / titleRemoved value: -"Period" - changed
Input schema / properties / q / descriptionPrevious value: -"Value for q."New value: +"The threshold quantile used for the \"empirical\" method, in (0.5, 1)." - removed
Input schema / properties / q / titleRemoved value: -"Q" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - changed
Input schema / properties / random_state / descriptionPrevious value: -"Value for random_state."New value: +"For get_acerbi_szekely_test: The seed for the bootstrap random number generator. For get_copula_simulation: The seed for the random number generator." - removed
Input schema / properties / random_state / titleRemoved value: -"Random State" - removed
Input schema / properties / rolling / titleRemoved value: -"Rolling" - added
Input schema / properties / scale / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / scale / defaultPrevious value: -1000000New value: +null - changed
Input schema / properties / scale / descriptionPrevious value: -"Value for scale."New value: +"A multiplier applied to the resulting ratio purely for readability. Leave unset to use the default of the indicator you selected. Defaults are 1000000000 for get_amihud_illiquidity." - removed
Input schema / properties / scale / titleRemoved value: -"Scale" - removed
Input schema / properties / scale / typeRemoved value: -"number" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / show_full_results / descriptionPrevious value: -"Value for show_full_results."New value: +"Only relevant when neither ticker is given. When False (the default), returns a square ticker-by-ticker grid of just the winning copula family per pair. When True, returns one row per pair instead, with the winning family's fitted parameter(s), Lower and Upper Tail Dependence, Log-Likelihood,..." - removed
Input schema / properties / show_full_results / titleRemoved value: -"Show Full Results" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - changed
Input schema / properties / tail / descriptionPrevious value: -"Value for tail."New value: +"Which tail to estimate, one of \"left\" (the loss tail) or \"right\" (the gain tail)." - removed
Input schema / properties / tail / titleRemoved value: -"Tail" - changed
Input schema / properties / test / descriptionPrevious value: -"Value for test."New value: +"Which test(s) to run, one of \"kupiec\", \"christoffersen\" or \"both\"." - removed
Input schema / properties / test / titleRemoved value: -"Test" - removed
Input schema / properties / threshold_percentile / titleRemoved value: -"Threshold Percentile" - changed
Input schema / properties / ticker / descriptionPrevious value: -"Value for ticker. Leave unset to use the default of the indicator you selected. Required by: get_covar."New value: +"The asset whose conditional VaR is being measured. Leave unset to use the default of the indicator you selected. Required by: get_covar." - removed
Input schema / properties / ticker / titleRemoved value: -"Ticker" - changed
Input schema / properties / ticker_a / descriptionPrevious value: -"Value for ticker_a. Leave unset to use the default of the indicator you selected. Required by: get_tail_dependence_coefficient. Defaults are None for get_best_fitting_copula, get_copula_parameters, get_copula_simulation."New value: +"The first asset. Leave unset to use the default of the indicator you selected. Required by: get_tail_dependence_coefficient. Defaults are None for get_best_fitting_copula, get_copula_parameters, get_copula_simulation." - removed
Input schema / properties / ticker_a / titleRemoved value: -"Ticker A" - changed
Input schema / properties / ticker_b / descriptionPrevious value: -"Value for ticker_b. Leave unset to use the default of the indicator you selected. Required by: get_tail_dependence_coefficient. Defaults are None for get_best_fitting_copula, get_copula_parameters, get_copula_simulation."New value: +"The second asset. Leave unset to use the default of the indicator you selected. Required by: get_tail_dependence_coefficient. Defaults are None for get_best_fitting_copula, get_copula_parameters, get_copula_simulation." - removed
Input schema / properties / ticker_b / titleRemoved value: -"Ticker B" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - changed
Input schema / properties / time_steps / descriptionPrevious value: -"Value for time_steps. Leave unset to use the default of the indicator you selected. Defaults are 10 for get_egarch_forecast, get_garch_forecast, get_gjr_garch_forecast; None for get_egarch, get_garch, get_gjr_garch."New value: +"Time steps to calculate GARCH for. Leave unset to use the default of the indicator you selected. Defaults are 10 for get_garch_forecast, get_gjr_garch_forecast; None for get_garch, get_gjr_garch." - removed
Input schema / properties / time_steps / titleRemoved value: -"Time Steps" - changed
Input schema / properties / weekly_window / descriptionPrevious value: -"Value for weekly_window."New value: +"The trailing window (in trading days) for the weekly RV component." - removed
Input schema / properties / weekly_window / titleRemoved value: -"Weekly Window" - changed
Input schema / properties / weights / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": { + "type": "number" + }, + "type": "object" + }, + { + "type": "null" + } +] - changed
Input schema / properties / weights / descriptionPrevious value: -"Value for weights."New value: +"The portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset." - removed
Input schema / properties / weights / titleRemoved value: -"Weights" - changed
Input schema / properties / window_size / descriptionPrevious value: -"Value for window_size."New value: +"For get_acerbi_szekely_test: The rolling window size (in number of return observations) used to estimate each VaR/CVaR value. For get_var_backtest: The rolling window size (in number of return observations) used to estimate each VaR value." - removed
Input schema / properties / window_size / titleRemoved value: -"Window Size" - changed
Input schema / properties / within_period / descriptionPrevious value: -"Value for within_period."New value: +"Whether to calculate GJR-GARCH within each specified period or all at once." - removed
Input schema / properties / within_period / titleRemoved value: -"Within Period" - removed
Input schema / titleRemoved value: -"riskArguments"
- Removed
search_categories - Removed
search_instruments - Added
search_metric_categories - Changed
solvency24 fields changed- removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / diluted / descriptionPrevious value: -"Value for diluted."New value: +"Whether to use diluted shares for market capitalization." - removed
Input schema / properties / diluted / titleRemoved value: -"Diluted" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / show_daily / descriptionPrevious value: -"Value for show_daily."New value: +"Whether to use daily data for the calculation." - removed
Input schema / properties / show_daily / titleRemoved value: -"Show Daily" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - removed
Input schema / titleRemoved value: -"solvencyArguments"
- Changed
valuation28 fields changed- removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / diluted / descriptionPrevious value: -"Value for diluted."New value: +"For get_earnings_per_share: Whether to use diluted earnings per share. For get_revenue_per_share, get_price_to_earnings_ratio, get_price_to_earnings_growth_ratio, get_book_value_per_share, get_price_to_book_ratio, get_interest_debt_per_share, get_capex_per_share, get_earnings_yield, get_weighted_dividend_yield, get_price_to_cash_flow_ratio, get_price_to_free_cash_flow_ratio, get_market_cap, get_enterprise_value, get_ev_to_sales_ratio, get_ev_to_ebit, get_ev_to_ebitda_ratio, get_ev_to_operating_cashflow_ratio, get_ev_to_free_cash_flow_ratio, get_buyback_yield, get_shareholder_yield, get_price_to_sales_ratio: Whether to use diluted shares in the calculation." - removed
Input schema / properties / diluted / titleRemoved value: -"Diluted" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / include_dividends / descriptionPrevious value: -"Value for include_dividends."New value: +"For get_earnings_per_share: Whether to include dividends in the EPS calculation. For get_price_to_earnings_ratio, get_price_to_earnings_growth_ratio, get_earnings_yield: Whether to include dividends in the calculation." - removed
Input schema / properties / include_dividends / titleRemoved value: -"Include Dividends" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - changed
Input schema / properties / show_daily / descriptionPrevious value: -"Value for show_daily."New value: +"Whether to show daily data." - removed
Input schema / properties / show_daily / titleRemoved value: -"Show Daily" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - removed
Input schema / properties / trailing / titleRemoved value: -"Trailing" - changed
Input schema / properties / use_ebitda_growth_rate / descriptionPrevious value: -"Value for use_ebitda_growth_rate."New value: +"Whether to use EBITDA growth rate for the calculation." - removed
Input schema / properties / use_ebitda_growth_rate / titleRemoved value: -"Use Ebitda Growth Rate" - removed
Input schema / titleRemoved value: -"valuationArguments"
- Changed
volatility35 fields changed- changed
Input schema / properties / atr_multiplier / descriptionPrevious value: -"Value for atr_multiplier."New value: +"Multiplier for ATR to determine channel width." - removed
Input schema / properties / atr_multiplier / titleRemoved value: -"Atr Multiplier" - changed
Input schema / properties / atr_window / descriptionPrevious value: -"Value for atr_window."New value: +"Number of periods for ATR calculation." - removed
Input schema / properties / atr_window / titleRemoved value: -"Atr Window" - removed
Input schema / properties / benchmark_ticker / titleRemoved value: -"Benchmark Ticker" - changed
Input schema / properties / close_column / descriptionPrevious value: -"Value for close_column."New value: +"The column name for closing prices in the historical data." - removed
Input schema / properties / close_column / titleRemoved value: -"Close Column" - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-10-02"New value: +"2026-10-14" - removed
Input schema / properties / end_date / titleRemoved value: -"End Date" - removed
Input schema / properties / growth / titleRemoved value: -"Growth" - changed
Input schema / properties / indicator / descriptionPrevious 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." - removed
Input schema / properties / indicator / titleRemoved value: -"Indicator" - added
Input schema / properties / lag / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "items": { + "type": "integer" + }, + "type": "array" + } +] - removed
Input schema / properties / lag / titleRemoved value: -"Lag" - removed
Input schema / properties / lag / typeRemoved value: -"integer" - added
Input schema / properties / limitAdded 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." +} - changed
Input schema / properties / multiplier / descriptionPrevious value: -"Value for multiplier."New value: +"Multiplier applied to the Average True Range to determine how far the bands sit from the median price." - removed
Input schema / properties / multiplier / titleRemoved value: -"Multiplier" - changed
Input schema / properties / num_std_dev / descriptionPrevious value: -"Value for num_std_dev."New value: +"Number of standard deviations for the bands." - removed
Input schema / properties / num_std_dev / titleRemoved value: -"Num Std Dev" - changed
Input schema / properties / period / descriptionPrevious 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)." - removed
Input schema / properties / period / titleRemoved value: -"Period" - removed
Input schema / properties / quarterly / titleRemoved value: -"Quarterly" - removed
Input schema / properties / show_columns / titleRemoved value: -"Show Columns" - removed
Input schema / properties / standardize / titleRemoved value: -"Standardize" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-10-03"New value: +"2021-10-15" - removed
Input schema / properties / start_date / titleRemoved value: -"Start Date" - added
Input schema / properties / tickers / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / tickers / titleRemoved value: -"Tickers" - removed
Input schema / properties / tickers / typeRemoved value: -"string" - changed
Input schema / properties / window / descriptionPrevious value: -"Value for window. Leave unset to use the default of the indicator you selected. Defaults are 14 for get_average_true_range, get_bollinger_bands, get_keltner_channels; 10 for get_supertrend; 20 for get_donchian_channels."New value: +"The number of periods the indicator looks back over, e.g. 14 or 20. Leave unset to use the default of the indicator you selected. Defaults are 14 for get_average_true_range, get_bollinger_bands, get_keltner_channels; 10 for get_supertrend; 20 for get_donchian_channels." - removed
Input schema / properties / window / titleRemoved value: -"Window" - changed
Input schema / properties / windows / descriptionPrevious value: -"Value for windows."New value: +"The rolling windows (in periods) to calculate realized volatility for." - removed
Input schema / properties / windows / titleRemoved value: -"Windows" - removed
Input schema / titleRemoved value: -"volatilityArguments"
21 tool updates
v2.2.1- Changed
breadth2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
econometrics3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03" - changed
Input schema / properties / within_period / defaultPrevious value: -trueNew value: +false
- Changed
efficiency2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
environment2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
fixed_income2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
government2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
jobs2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
liquidity2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
macroeconomics2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
market_data2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
models2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
momentum2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
options3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03" - changed
Input schema / properties / stock_price_step_size / typePrevious value: -"number"New value: +"integer"
- Changed
overlap2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
performance2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
profitability2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
rates2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
risk6 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03" - removed
Input schema / properties / within_period / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - changed
Input schema / properties / within_period / defaultPrevious value: -nullNew value: +false - changed
Input schema / properties / within_period / descriptionPrevious value: -"Value for within_period. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."New value: +"Value for within_period." - added
Input schema / properties / within_period / typeAdded value: +"boolean"
- Changed
solvency2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
valuation2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
- Changed
volatility2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-08-19"New value: +"2026-10-02" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-08-20"New value: +"2021-10-03"
22 tool updates
v2.2.0- Changed
breadth9 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_mcclellan_oscillator", - "get_advancers_decliners", - "get_on_balance_volume", - "get_accumulation_distribution_line", - "get_chaikin_oscillator", - "get_trin", - "get_new_highs_new_lows" -]New value: +[ + "get_mcclellan_oscillator", + "get_advancers_decliners", + "get_on_balance_volume", + "get_accumulation_distribution_line", + "get_chaikin_oscillator", + "get_trin", + "get_new_highs_new_lows", + "get_chaikin_money_flow", + "get_ease_of_movement", + "get_negative_volume_index", + "get_positive_volume_index" +] - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / start_valueAdded value: +{ + "default": 1000, + "description": "Value for start_value.", + "title": "Start Value", + "type": "number" +} - added
Input schema / properties / volume_divisorAdded value: +{ + "default": 100000000, + "description": "Value for volume_divisor.", + "title": "Volume Divisor", + "type": "number" +} - added
Input schema / properties / window / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / window / defaultPrevious value: -252New value: +null - changed
Input schema / properties / window / descriptionPrevious value: -"Value for window."New value: +"Value for window. Leave unset to use the default of the indicator you selected. Defaults are 14 for get_ease_of_movement; 20 for get_chaikin_money_flow; 252 for get_new_highs_new_lows." - removed
Input schema / properties / window / typeRemoved value: -"integer"
- Changed
discovery6 fields changed- added
Input schema / properties / countryAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for country.", + "title": "Country" +} - added
Input schema / properties / exchangeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for exchange.", + "title": "Exchange" +} - added
Input schema / properties / limit / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / limit / defaultPrevious value: -100New value: +null - changed
Input schema / properties / limit / descriptionPrevious value: -"Value for limit."New value: +"Value for limit. Leave unset to use the default of the indicator you selected. Defaults are 100 for get_crypto_news, get_delisted_stocks, get_forex_news, get_general_news, get_mergers_acquisitions_latest, get_press_releases, get_stock_news; 1000 for get_stock_screener." - removed
Input schema / properties / limit / typeRemoved value: -"integer"
- Added
econometrics - Changed
efficiency3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_days_of_inventory_outstanding", - "get_days_of_sales_outstanding", - "get_operating_cycle", - "get_days_of_accounts_payable_outstanding", - "get_cash_conversion_cycle", - "get_cash_conversion_efficiency", - "get_receivables_turnover", - "get_inventory_turnover_ratio", - "get_accounts_payables_turnover_ratio", - "get_sga_to_revenue_ratio", - "get_fixed_asset_turnover", - "get_asset_turnover_ratio", - "get_operating_ratio", - "get_research_and_development_ratio", - "get_selling_and_marketing_ratio", - "get_general_and_administrative_ratio", - "get_stock_based_compensation_ratio", - "get_deferred_revenue_ratio" -]New value: +[ + "get_days_of_inventory_outstanding", + "get_days_of_sales_outstanding", + "get_operating_cycle", + "get_days_of_accounts_payable_outstanding", + "get_cash_conversion_cycle", + "get_cash_conversion_efficiency", + "get_receivables_turnover", + "get_inventory_turnover_ratio", + "get_accounts_payables_turnover_ratio", + "get_sga_to_revenue_ratio", + "get_fixed_asset_turnover", + "get_asset_turnover_ratio", + "get_operating_ratio", + "get_research_and_development_ratio", + "get_selling_and_marketing_ratio", + "get_general_and_administrative_ratio", + "get_stock_based_compensation_ratio", + "get_deferred_revenue_ratio", + "get_working_capital_turnover_ratio" +] - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
environment2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
fixed_income21 fields changed- changed
Input schema / properties / coupon_rate / descriptionPrevious value: -"Annual coupon rate as a decimal, e.g. 0.05 for 5 %."New value: +"Annual coupon rate as a decimal, e.g. 0.05 for 5 %. Leave unset to use the default of the indicator you selected. Defaults are 0.05 for get_key_rate_duration, get_yield_to_maturity, get_z_spread; None for get_duration, get_present_value, get_taylor_price_change." - added
Input schema / properties / days_to_maturityAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for days_to_maturity.", + "title": "Days To Maturity" +} - added
Input schema / properties / discount_yieldAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for discount_yield.", + "title": "Discount Yield" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - added
Input schema / properties / far_maturityAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for far_maturity.", + "title": "Far Maturity" +} - added
Input schema / properties / guess / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / guess / defaultPrevious value: -0.05New value: +null - changed
Input schema / properties / guess / descriptionPrevious value: -"Value for guess."New value: +"Value for guess. Leave unset to use the default of the indicator you selected. Defaults are 0.01 for get_z_spread; 0.05 for get_yield_to_maturity." - removed
Input schema / properties / guess / typeRemoved value: -"number" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_derivative_price", - "get_duration", - "get_present_value", - "get_yield_to_maturity" -]New value: +[ + "get_derivative_price", + "get_duration", + "get_present_value", + "get_yield_to_maturity", + "get_par_yield", + "get_forward_rate", + "get_breakeven_inflation_rate", + "get_key_rate_duration", + "get_yield_curve_spread", + "get_z_spread", + "get_bond_equivalent_yield", + "get_taylor_price_change" +] - added
Input schema / properties / key_rate_maturityAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for key_rate_maturity.", + "title": "Key Rate Maturity" +} - added
Input schema / properties / long_maturityAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for long_maturity.", + "title": "Long Maturity" +} - added
Input schema / properties / maturityAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for maturity.", + "title": "Maturity" +} - added
Input schema / properties / near_maturityAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for near_maturity.", + "title": "Near Maturity" +} - added
Input schema / properties / nominal_ratesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for nominal_rates.", + "title": "Nominal Rates" +} - added
Input schema / properties / real_ratesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for real_rates.", + "title": "Real Rates" +} - added
Input schema / properties / short_maturityAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for short_maturity.", + "title": "Short Maturity" +} - added
Input schema / properties / spot_ratesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for spot_rates.", + "title": "Spot Rates" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / volatility_typeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for volatility_type.", + "title": "Volatility Type" +} - added
Input schema / properties / yield_changeAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for yield_change. Leave unset to use the default of the indicator you selected. Defaults are 0.0001 for get_key_rate_duration; 0.01 for get_taylor_price_change.", + "title": "Yield Change" +}
- Changed
government2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
jobs4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / gmdb_source / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_income_inequality", - "get_labour_productivity", - "get_population_statistics", - "get_poverty_rate", - "get_unemployment_rate" -]New value: +[ + "get_income_inequality", + "get_labour_productivity", + "get_population_statistics", + "get_poverty_rate", + "get_unemployment_rate", + "get_nonfarm_payrolls", + "get_initial_jobless_claims" +] - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
liquidity4 fields changed- added
Input schema / properties / daysAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Number of calendar days used in day-count-based calculations.", + "title": "Days" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_current_ratio", - "get_quick_ratio", - "get_cash_ratio", - "get_working_capital", - "get_operating_cash_flow_ratio", - "get_operating_cash_flow_sales_ratio", - "get_short_term_coverage_ratio" -]New value: +[ + "get_current_ratio", + "get_quick_ratio", + "get_cash_ratio", + "get_working_capital", + "get_operating_cash_flow_ratio", + "get_operating_cash_flow_sales_ratio", + "get_short_term_coverage_ratio", + "get_defensive_interval_ratio" +] - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
macroeconomics8 fields changed- added
Input schema / properties / commodityAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for commodity. Leave unset to use the default of the indicator you selected. Required by: get_commodity_forward_curve.", + "title": "Commodity" +} - added
Input schema / properties / contractsAdded value: +{ + "default": 12, + "description": "Value for contracts.", + "title": "Contracts", + "type": "integer" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / gmdb_source / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_business_confidence_index", - "get_composite_leading_indicator", - "get_consumer_confidence_index", - "get_consumer_price_index", - "get_current_account_balance", - "get_current_account_balance_to_gdp_ratio", - "get_exchange_rates", - "get_exports", - "get_exports_to_gdp_ratio", - "get_fixed_investment", - "get_fixed_investment_to_gdp_ratio", - "get_gross_domestic_product", - "get_gross_domestic_product_deflator", - "get_house_prices", - "get_imports", - "get_imports_to_gdp_ratio", - "get_inflation_rate", - "get_investment", - "get_investment_to_gdp_ratio", - "get_money_supply", - "get_rent_prices", - "get_share_prices", - "get_total_consumption", - "get_total_consumption_to_gdp_ratio" -]New value: +[ + "get_business_confidence_index", + "get_composite_leading_indicator", + "get_consumer_confidence_index", + "get_consumer_price_index", + "get_current_account_balance", + "get_current_account_balance_to_gdp_ratio", + "get_exchange_rates", + "get_exports", + "get_exports_to_gdp_ratio", + "get_fixed_investment", + "get_fixed_investment_to_gdp_ratio", + "get_gross_domestic_product", + "get_gross_domestic_product_deflator", + "get_house_prices", + "get_imports", + "get_imports_to_gdp_ratio", + "get_inflation_rate", + "get_investment", + "get_investment_to_gdp_ratio", + "get_money_supply", + "get_producer_price_index", + "get_rent_prices", + "get_share_prices", + "get_total_consumption", + "get_total_consumption_to_gdp_ratio", + "get_household_savings_rate", + "get_household_debt_to_income_ratio", + "get_retail_sales", + "get_industrial_production_index", + "get_housing_starts", + "get_real_personal_income", + "get_recession_indicator", + "get_commercial_real_estate_prices", + "get_commodity_forward_curve", + "get_output_gap", + "get_real_interest_rate", + "get_real_effective_exchange_rate", + "get_misery_index", + "get_banking_crisis", + "get_currency_crisis", + "get_sovereign_debt_crisis", + "get_real_gross_domestic_product_usd", + "get_real_gross_domestic_product_per_capita", + "get_trade_balance" +] - added
Input schema / properties / oecd_sourceAdded value: +{ + "default": false, + "description": "Value for oecd_source.", + "title": "Oecd Source", + "type": "boolean" +} - added
Input schema / properties / rate_typeAdded value: +{ + "default": "long_term", + "description": "Value for rate_type.", + "title": "Rate Type", + "type": "string" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
market_data11 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_analyst_estimates", - "get_balance_sheet_statement", - "get_cash_flow_statement", - "get_dividend_calendar", - "get_earnings_calendar", - "get_historical_data", - "get_historical_statistics", - "get_income_statement", - "get_intraday_data", - "get_profile", - "get_quote", - "get_rating", - "get_revenue_geographic_segmentation", - "get_revenue_product_segmentation", - "get_statistics_statement", - "get_treasury_data" -]New value: +[ + "get_analyst_estimates", + "get_balance_sheet_statement", + "get_cash_flow_statement", + "get_commitment_of_traders", + "get_dividend_calendar", + "get_earnings_calendar", + "get_historical_data", + "get_historical_statistics", + "get_income_statement", + "get_intraday_data", + "get_market_risk_premium", + "get_profile", + "get_quote", + "get_rating", + "get_revenue_geographic_segmentation", + "get_revenue_product_segmentation", + "get_statistics_statement", + "get_treasury_data" +] - added
Input schema / properties / period / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / period / defaultPrevious value: -"daily"New value: +null - changed
Input schema / properties / period / descriptionPrevious value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'. Leave unset to use the default of the indicator you selected. Defaults are 'daily' for get_historical_data, get_treasury_data; '1hour' for get_intraday_data." - removed
Input schema / properties / period / typeRemoved value: -"string" - added
Input schema / properties / return_column / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / return_column / defaultPrevious value: -"Adj Close"New value: +null - changed
Input schema / properties / return_column / descriptionPrevious value: -"Value for return_column."New value: +"Value for return_column. Leave unset to use the default of the indicator you selected. Defaults are 'Adj Close' for get_historical_data; 'Close' for get_intraday_data." - removed
Input schema / properties / return_column / typeRemoved value: -"string" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
models22 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - added
Input schema / properties / growth_rate / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / growth_rate / defaultPrevious value: -""New value: +null - changed
Input schema / properties / growth_rate / descriptionPrevious 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." - removed
Input schema / properties / growth_rate / typeRemoved value: -"number" - added
Input schema / properties / high_growth_periodsAdded value: +{ + "default": 5, + "description": "Value for high_growth_periods.", + "title": "High Growth Periods", + "type": "integer" +} - added
Input schema / properties / high_growth_rateAdded 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" +} - changed
Input schema / properties / indicator / enumPrevious 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" +] - added
Input schema / properties / perpetual_growth_rate / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / perpetual_growth_rate / defaultPrevious value: -""New value: +null - changed
Input schema / properties / perpetual_growth_rate / descriptionPrevious 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." - removed
Input schema / properties / perpetual_growth_rate / typeRemoved value: -"number" - added
Input schema / properties / rate_of_return / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / rate_of_return / defaultPrevious value: -""New value: +null - changed
Input schema / properties / rate_of_return / descriptionPrevious 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." - removed
Input schema / properties / rate_of_return / typeRemoved value: -"number" - added
Input schema / properties / stable_growth_rateAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / weighted_average_cost_of_capital / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / weighted_average_cost_of_capital / defaultPrevious value: -""New value: +null - changed
Input schema / properties / weighted_average_cost_of_capital / descriptionPrevious 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." - removed
Input schema / properties / weighted_average_cost_of_capital / typeRemoved value: -"number"
- Changed
momentum22 fields changed- changed
Input schema / properties / base_window / defaultPrevious value: -20New value: +26 - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_money_flow_index", - "get_williams_percent_r", - "get_aroon_indicator", - "get_commodity_channel_index", - "get_relative_vigor_index", - "get_force_index", - "get_ultimate_oscillator", - "get_percentage_price_oscillator", - "get_detrended_price_oscillator", - "get_average_directional_index", - "get_chande_momentum_oscillator", - "get_ichimoku_cloud", - "get_stochastic_oscillator", - "get_moving_average_convergence_divergence", - "get_relative_strength_index", - "get_balance_of_power" -]New value: +[ + "get_money_flow_index", + "get_williams_percent_r", + "get_aroon_indicator", + "get_commodity_channel_index", + "get_relative_vigor_index", + "get_force_index", + "get_ultimate_oscillator", + "get_percentage_price_oscillator", + "get_detrended_price_oscillator", + "get_average_directional_index", + "get_chande_momentum_oscillator", + "get_ichimoku_cloud", + "get_stochastic_oscillator", + "get_moving_average_convergence_divergence", + "get_relative_strength_index", + "get_balance_of_power", + "get_awesome_oscillator", + "get_vortex_indicator", + "get_elder_ray_index", + "get_rate_of_change", + "get_choppiness_index", + "get_know_sure_thing" +] - changed
Input schema / properties / lead_span_b_window / defaultPrevious value: -40New value: +52 - added
Input schema / properties / long_window / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / long_window / defaultPrevious value: -28New value: +null - changed
Input schema / properties / long_window / descriptionPrevious value: -"Value for long_window."New value: +"Value for long_window. Leave unset to use the default of the indicator you selected. Defaults are 26 for get_moving_average_convergence_divergence; 28 for get_percentage_price_oscillator; 34 for get_awesome_oscillator." - removed
Input schema / properties / long_window / typeRemoved value: -"integer" - added
Input schema / properties / roc_windowsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for roc_windows.", + "title": "Roc Windows" +} - added
Input schema / properties / short_window / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / short_window / defaultPrevious value: -7New value: +null - changed
Input schema / properties / short_window / descriptionPrevious value: -"Value for short_window."New value: +"Value for short_window. Leave unset to use the default of the indicator you selected. Defaults are 12 for get_moving_average_convergence_divergence; 5 for get_awesome_oscillator; 7 for get_percentage_price_oscillator." - removed
Input schema / properties / short_window / typeRemoved value: -"integer" - added
Input schema / properties / sma_windowsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for sma_windows.", + "title": "Sma Windows" +} - removed
Input schema / properties / smooth_widowRemoved value: -{ - "default": 3, - "description": "Value for smooth_widow.", - "title": "Smooth Widow", - "type": "integer" -} - added
Input schema / properties / smooth_windowAdded value: +{ + "default": 3, + "description": "Value for smooth_window.", + "title": "Smooth Window", + "type": "integer" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / weightsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for weights.", + "title": "Weights" +} - added
Input schema / properties / window / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / window / defaultPrevious value: -14New value: +null - changed
Input schema / properties / window / descriptionPrevious value: -"Value for window."New value: +"Value for window. Leave unset to use the default of the indicator you selected. Defaults differ between indicators." - removed
Input schema / properties / window / typeRemoved value: -"integer"
- Changed
options25 fields changed- added
Input schema / properties / barrier_directionAdded value: +{ + "default": "down", + "description": "Value for barrier_direction.", + "title": "Barrier Direction", + "type": "string" +} - added
Input schema / properties / barrier_percentageAdded value: +{ + "default": 0.9, + "description": "Value for barrier_percentage.", + "title": "Barrier Percentage", + "type": "number" +} - added
Input schema / properties / cash_payoutAdded value: +{ + "default": 1, + "description": "Value for cash_payout.", + "title": "Cash Payout", + "type": "number" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - added
Input schema / properties / expiration_datesAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for expiration_dates.", + "title": "Expiration Dates" +} - added
Input schema / properties / foreign_risk_free_rateAdded value: +{ + "default": 0, + "description": "Value for foreign_risk_free_rate.", + "title": "Foreign Risk Free Rate", + "type": "number" +} - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_binomial_model", - "get_black_scholes_model", - "get_charm", - "get_color", - "get_delta", - "get_dual_delta", - "get_dual_gamma", - "get_epsilon", - "get_gamma", - "get_implied_volatility", - "get_lambda", - "get_option_chains", - "get_partial_derivative", - "get_rho", - "get_speed", - "get_stock_price_simulation", - "get_theta", - "get_ultima", - "get_vanna", - "get_vega", - "get_vera", - "get_veta", - "get_vomma", - "get_zomma" -]New value: +[ + "get_asian_option", + "get_barrier_option", + "get_binary_option", + "get_binomial_model", + "get_bjerksund_stensland", + "get_black_scholes_model", + "get_charm", + "get_color", + "get_delta", + "get_dual_delta", + "get_dual_gamma", + "get_epsilon", + "get_gamma", + "get_garman_kohlhagen", + "get_implied_volatility", + "get_lambda", + "get_monte_carlo_option_price", + "get_option_chains", + "get_partial_derivative", + "get_put_call_parity", + "get_rho", + "get_risk_neutral_density", + "get_speed", + "get_stock_price_simulation", + "get_strategy_payoff", + "get_theta", + "get_ultima", + "get_vanna", + "get_vega", + "get_vera", + "get_veta", + "get_volatility_surface", + "get_vomma", + "get_zomma" +] - added
Input schema / properties / knock_typeAdded value: +{ + "default": "out", + "description": "Value for knock_type.", + "title": "Knock Type", + "type": "string" +} - added
Input schema / properties / legsAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + } + ] + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for legs. Leave unset to use the default of the indicator you selected. Required by: get_strategy_payoff.", + "title": "Legs" +} - added
Input schema / properties / number_of_expirationsAdded value: +{ + "default": 6, + "description": "Value for number_of_expirations.", + "title": "Number Of Expirations", + "type": "integer" +} - added
Input schema / properties / number_of_strikesAdded value: +{ + "default": 200, + "description": "Value for number_of_strikes.", + "title": "Number Of Strikes", + "type": "integer" +} - added
Input schema / properties / option_typeAdded value: +{ + "default": "cash-or-nothing", + "description": "Value for option_type.", + "title": "Option Type", + "type": "string" +} - added
Input schema / properties / outlier_thresholdAdded value: +{ + "default": 5, + "description": "Value for outlier_threshold.", + "title": "Outlier Threshold", + "type": "number" +} - added
Input schema / properties / rebateAdded value: +{ + "default": 0, + "description": "Value for rebate.", + "title": "Rebate", + "type": "number" +} - added
Input schema / properties / seedAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for seed.", + "title": "Seed" +} - added
Input schema / properties / show_standard_errorAdded value: +{ + "default": false, + "description": "Value for show_standard_error.", + "title": "Show Standard Error", + "type": "boolean" +} - added
Input schema / properties / simulationsAdded value: +{ + "default": 10000, + "description": "Value for simulations.", + "title": "Simulations", + "type": "integer" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / stock_price_rangeAdded value: +{ + "default": 0.5, + "description": "Value for stock_price_range.", + "title": "Stock Price Range", + "type": "number" +} - added
Input schema / properties / stock_price_step_sizeAdded value: +{ + "default": 1, + "description": "Value for stock_price_step_size.", + "title": "Stock Price Step Size", + "type": "number" +} - added
Input schema / properties / strike_price_range / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / strike_price_range / defaultPrevious value: -0.25New value: +null - changed
Input schema / properties / strike_price_range / descriptionPrevious value: -"Value for strike_price_range."New value: +"Value for strike_price_range. Leave unset to use the default of the indicator you selected. Defaults differ between indicators." - removed
Input schema / properties / strike_price_range / typeRemoved value: -"number" - added
Input schema / properties / time_stepsAdded value: +{ + "default": 100, + "description": "Value for time_steps.", + "title": "Time Steps", + "type": "integer" +}
- Changed
overlap12 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - added
Input schema / properties / fast_windowAdded value: +{ + "default": 2, + "description": "Value for fast_window.", + "title": "Fast Window", + "type": "integer" +} - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_moving_average", - "get_exponential_moving_average", - "get_double_exponential_moving_average", - "get_trix", - "get_triangular_moving_average", - "get_weighted_moving_average", - "get_hull_moving_average", - "get_volume_weighted_average_price", - "get_parabolic_sar", - "get_pivot_points" -]New value: +[ + "get_moving_average", + "get_exponential_moving_average", + "get_double_exponential_moving_average", + "get_trix", + "get_triangular_moving_average", + "get_weighted_moving_average", + "get_hull_moving_average", + "get_kaufman_adaptive_moving_average", + "get_volume_weighted_average_price", + "get_parabolic_sar", + "get_pivot_points", + "get_fibonacci_retracement_levels", + "get_support_resistance_levels" +] - added
Input schema / properties / levelsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for levels.", + "title": "Levels" +} - added
Input schema / properties / sensitivityAdded value: +{ + "default": 0.05, + "description": "Value for sensitivity.", + "title": "Sensitivity", + "type": "number" +} - added
Input schema / properties / slow_windowAdded value: +{ + "default": 30, + "description": "Value for slow_window.", + "title": "Slow Window", + "type": "integer" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / trendAdded value: +{ + "default": "uptrend", + "description": "Value for trend.", + "title": "Trend", + "type": "string" +} - added
Input schema / properties / window / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / window / defaultPrevious value: -14New value: +null - changed
Input schema / properties / window / descriptionPrevious value: -"Value for window."New value: +"Value for window. Leave unset to use the default of the indicator you selected. Defaults differ between indicators." - removed
Input schema / properties / window / typeRemoved value: -"integer"
- Changed
performance12 fields changed- added
Input schema / properties / alphaAdded value: +{ + "default": 0.05, + "description": "Value for alpha.", + "title": "Alpha", + "type": "number" +} - added
Input schema / properties / benchmark_sharpe_ratioAdded value: +{ + "default": 0, + "description": "Value for benchmark_sharpe_ratio.", + "title": "Benchmark Sharpe Ratio", + "type": "number" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_alpha", - "get_beta", - "get_burke_ratio", - "get_calmar_ratio", - "get_capital_asset_pricing_model", - "get_compound_growth_rate", - "get_correlation_matrix", - "get_covariance_matrix", - "get_downside_capture_ratio", - "get_excess_return", - "get_factor_asset_correlations", - "get_factor_correlations", - "get_fama_and_french_model", - "get_gain_to_pain_ratio", - "get_information_ratio", - "get_jensens_alpha", - "get_kappa_ratio", - "get_m2_ratio", - "get_omega_ratio", - "get_returns", - "get_sharpe_ratio", - "get_sortino_ratio", - "get_sterling_ratio", - "get_tracking_error", - "get_treynor_ratio", - "get_ulcer_performance_index", - "get_upside_capture_ratio", - "get_win_rate" -]New value: +[ + "get_alpha", + "get_appraisal_ratio", + "get_beta", + "get_burke_ratio", + "get_calmar_ratio", + "get_capital_asset_pricing_model", + "get_carhart_four_factor_model", + "get_compound_growth_rate", + "get_correlation_matrix", + "get_covariance_matrix", + "get_downside_capture_ratio", + "get_excess_return", + "get_factor_asset_correlations", + "get_factor_correlations", + "get_fama_and_french_model", + "get_fama_decomposition", + "get_gain_to_pain_ratio", + "get_henriksson_merton_model", + "get_information_ratio", + "get_jensens_alpha", + "get_kappa_ratio", + "get_m2_ratio", + "get_omega_ratio", + "get_rachev_ratio", + "get_returns", + "get_sharpe_ratio", + "get_sortino_ratio", + "get_starr_ratio", + "get_sterling_ratio", + "get_tracking_error", + "get_treynor_mazuy_model", + "get_treynor_ratio", + "get_ulcer_performance_index", + "get_upside_capture_ratio", + "get_win_rate" +] - added
Input schema / properties / method / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / method / defaultPrevious value: -"multi"New value: +null - changed
Input schema / properties / method / descriptionPrevious value: -"Value for method."New value: +"Value for method. Leave unset to use the default of the indicator you selected. Defaults are 'multi' for get_fama_and_french_model; 'standard' for get_sharpe_ratio." - removed
Input schema / properties / method / typeRemoved value: -"string" - added
Input schema / properties / n_trialsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for n_trials.", + "title": "N Trials" +} - changed
Input schema / properties / rolling / descriptionPrevious value: -"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."New value: +"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. Leave unset to use the default of the indicator you selected. Defaults are None for get_alpha, get_appraisal_ratio, get_beta, get_capital_asset_pricing_model, get_fama_decomposition, get_information_ratio, get_jensens_alpha, get_m2_ratio, get_omega_ratio, get_sharpe_ratio, get_sortino_ratio, get_tracking_error, get_treynor_ratio; 14 for get_ulcer_performance_index." - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / trials_windowAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for trials_window.", + "title": "Trials Window" +}
- Changed
profitability3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_gross_margin", - "get_operating_margin", - "get_net_profit_margin", - "get_interest_coverage_ratio", - "get_income_before_tax_profit_margin", - "get_effective_tax_rate", - "get_return_on_assets", - "get_return_on_equity", - "get_return_on_invested_capital", - "get_return_on_capital_employed", - "get_return_on_tangible_assets", - "get_income_quality_ratio", - "get_net_income_per_ebt", - "get_free_cash_flow_operating_cash_flow_ratio", - "get_EBT_to_EBIT", - "get_EBIT_to_revenue", - "get_cash_tax_rate", - "get_tax_rate_divergence" -]New value: +[ + "get_gross_margin", + "get_operating_margin", + "get_net_profit_margin", + "get_ebitda_margin", + "get_free_cash_flow_margin", + "get_interest_coverage_ratio", + "get_income_before_tax_profit_margin", + "get_effective_tax_rate", + "get_return_on_assets", + "get_cash_return_on_assets", + "get_return_on_equity", + "get_return_on_invested_capital", + "get_return_on_capital_employed", + "get_return_on_tangible_assets", + "get_income_quality_ratio", + "get_net_income_per_ebt", + "get_free_cash_flow_operating_cash_flow_ratio", + "get_EBT_to_EBIT", + "get_EBIT_to_revenue", + "get_cash_tax_rate", + "get_tax_rate_divergence", + "get_interest_burden_ratio", + "get_tax_burden_ratio" +] - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
rates5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / gmdb_source / descriptionPrevious 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." - changed
Input schema / properties / indicator / enumPrevious 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" +] - changed
Input schema / properties / rate / descriptionPrevious 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." - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
risk33 fields changed- added
Input schema / properties / columnAdded value: +{ + "default": "Return", + "description": "Value for column.", + "title": "Column", + "type": "string" +} - added
Input schema / properties / conditioning_tickerAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for conditioning_ticker. Leave unset to use the default of the indicator you selected. Required by: get_covar.", + "title": "Conditioning Ticker" +} - added
Input schema / properties / copulaAdded value: +{ + "default": "gaussian", + "description": "Value for copula.", + "title": "Copula", + "type": "string" +} - added
Input schema / properties / dofAdded value: +{ + "default": 4, + "description": "Value for dof.", + "title": "Dof", + "type": "number" +} - added
Input schema / properties / empirical_marginsAdded value: +{ + "default": true, + "description": "Value for empirical_margins.", + "title": "Empirical Margins", + "type": "boolean" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - added
Input schema / properties / estimatorAdded value: +{ + "default": "squared_return", + "description": "Value for estimator.", + "title": "Estimator", + "type": "string" +} - added
Input schema / properties / horizonAdded value: +{ + "default": 1, + "description": "Value for horizon.", + "title": "Horizon", + "type": "integer" +} - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_autocorrelation", - "get_coefficient_of_variation", - "get_conditional_drawdown_at_risk", - "get_conditional_value_at_risk", - "get_downside_deviation", - "get_entropic_value_at_risk", - "get_ewma_volatility", - "get_excess_volatility", - "get_garch", - "get_garch_forecast", - "get_hurst_exponent", - "get_kurtosis", - "get_maximum_drawdown", - "get_maximum_drawdown_duration", - "get_maximum_drawdown_recovery_time", - "get_mean_absolute_deviation", - "get_skewness", - "get_tail_ratio", - "get_ulcer_index", - "get_value_at_risk", - "get_variance", - "get_volatility" -]New value: +[ + "get_acerbi_szekely_test", + "get_amihud_illiquidity", + "get_autocorrelation", + "get_best_fitting_copula", + "get_coefficient_of_variation", + "get_component_value_at_risk", + "get_conditional_drawdown_at_risk", + "get_conditional_value_at_risk", + "get_copula_parameters", + "get_copula_simulation", + "get_covar", + "get_downside_deviation", + "get_egarch", + "get_egarch_forecast", + "get_egarch_parameters", + "get_entropic_value_at_risk", + "get_ewma_volatility", + "get_excess_volatility", + "get_garch", + "get_garch_forecast", + "get_garch_parameters", + "get_gjr_garch", + "get_gjr_garch_forecast", + "get_gjr_garch_parameters", + "get_har_rv_forecast", + "get_hill_estimator", + "get_hurst_exponent", + "get_kurtosis", + "get_marginal_value_at_risk", + "get_maximum_drawdown", + "get_maximum_drawdown_duration", + "get_maximum_drawdown_recovery_time", + "get_mean_absolute_deviation", + "get_roll_spread", + "get_skewness", + "get_tail_dependence_coefficient", + "get_tail_ratio", + "get_ulcer_index", + "get_value_at_risk", + "get_var_backtest", + "get_variance", + "get_volatility" +] - added
Input schema / properties / kAdded value: +{ + "default": 0.1, + "description": "Value for k.", + "title": "K", + "type": "number" +} - added
Input schema / properties / methodAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for method. Leave unset to use the default of the indicator you selected. Defaults are 'close_to_close' for get_volatility; 'empirical' for get_tail_dependence_coefficient.", + "title": "Method" +} - added
Input schema / properties / monthly_windowAdded value: +{ + "default": 22, + "description": "Value for monthly_window.", + "title": "Monthly Window", + "type": "integer" +} - added
Input schema / properties / n_bootstrapAdded value: +{ + "default": 1000, + "description": "Value for n_bootstrap.", + "title": "N Bootstrap", + "type": "integer" +} - added
Input schema / properties / n_simulationsAdded value: +{ + "default": 10000, + "description": "Value for n_simulations.", + "title": "N Simulations", + "type": "integer" +} - added
Input schema / properties / qAdded value: +{ + "default": 0.95, + "description": "Value for q.", + "title": "Q", + "type": "number" +} - added
Input schema / properties / random_stateAdded value: +{ + "default": 42, + "description": "Value for random_state.", + "title": "Random State", + "type": "integer" +} - changed
Input schema / properties / rolling / descriptionPrevious value: -"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."New value: +"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. Leave unset to use the default of the indicator you selected. Defaults are None for get_conditional_drawdown_at_risk, get_conditional_value_at_risk, get_downside_deviation, get_excess_volatility, get_kurtosis, get_skewness, get_tail_ratio, get_value_at_risk, get_variance, get_volatility; 14 for get_ulcer_index." - added
Input schema / properties / scaleAdded value: +{ + "default": 1000000, + "description": "Value for scale.", + "title": "Scale", + "type": "number" +} - added
Input schema / properties / show_full_resultsAdded value: +{ + "default": false, + "description": "Value for show_full_results.", + "title": "Show Full Results", + "type": "boolean" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / tailAdded value: +{ + "default": "left", + "description": "Value for tail.", + "title": "Tail", + "type": "string" +} - added
Input schema / properties / testAdded value: +{ + "default": "both", + "description": "Value for test.", + "title": "Test", + "type": "string" +} - added
Input schema / properties / tickerAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for ticker. Leave unset to use the default of the indicator you selected. Required by: get_covar.", + "title": "Ticker" +} - added
Input schema / properties / ticker_aAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for ticker_a. Leave unset to use the default of the indicator you selected. Required by: get_tail_dependence_coefficient. Defaults are None for get_best_fitting_copula, get_copula_parameters, get_copula_simulation.", + "title": "Ticker A" +} - added
Input schema / properties / ticker_bAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for ticker_b. Leave unset to use the default of the indicator you selected. Required by: get_tail_dependence_coefficient. Defaults are None for get_best_fitting_copula, get_copula_parameters, get_copula_simulation.", + "title": "Ticker B" +} - changed
Input schema / properties / time_steps / descriptionPrevious value: -"Value for time_steps."New value: +"Value for time_steps. Leave unset to use the default of the indicator you selected. Defaults are 10 for get_egarch_forecast, get_garch_forecast, get_gjr_garch_forecast; None for get_egarch, get_garch, get_gjr_garch." - added
Input schema / properties / weekly_windowAdded value: +{ + "default": 5, + "description": "Value for weekly_window.", + "title": "Weekly Window", + "type": "integer" +} - added
Input schema / properties / weightsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for weights.", + "title": "Weights" +} - added
Input schema / properties / window_sizeAdded value: +{ + "default": 252, + "description": "Value for window_size.", + "title": "Window Size", + "type": "integer" +} - added
Input schema / properties / within_period / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - changed
Input schema / properties / within_period / defaultPrevious value: -trueNew value: +null - changed
Input schema / properties / within_period / descriptionPrevious value: -"Value for within_period."New value: +"Value for within_period. Leave unset to use the default of the indicator you selected. Defaults differ between indicators." - removed
Input schema / properties / within_period / typeRemoved value: -"boolean"
- Changed
solvency3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_debt_to_assets_ratio", - "get_debt_to_equity_ratio", - "get_debt_service_coverage_ratio", - "get_equity_multiplier", - "get_free_cash_flow_yield", - "get_net_debt_to_ebitda_ratio", - "get_cash_flow_coverage_ratio", - "get_capex_coverage_ratio", - "get_capex_dividend_coverage_ratio", - "get_debt_to_capital_ratio", - "get_preferred_dividend_coverage_ratio", - "get_interest_paid_to_expense_ratio" -]New value: +[ + "get_debt_to_assets_ratio", + "get_asset_coverage_ratio", + "get_debt_to_equity_ratio", + "get_debt_service_coverage_ratio", + "get_equity_multiplier", + "get_free_cash_flow_yield", + "get_net_debt_to_ebitda_ratio", + "get_gross_debt_to_ebitda_ratio", + "get_cash_flow_coverage_ratio", + "get_capex_coverage_ratio", + "get_capex_dividend_coverage_ratio", + "get_debt_to_capital_ratio", + "get_preferred_dividend_coverage_ratio", + "get_interest_paid_to_expense_ratio" +] - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
valuation3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_earnings_per_share", - "get_revenue_per_share", - "get_price_to_earnings_ratio", - "get_price_to_earnings_growth_ratio", - "get_forward_price_earnings_ratio", - "get_forward_price_earnings_growth_ratio", - "get_book_value_per_share", - "get_price_to_book_ratio", - "get_interest_debt_per_share", - "get_capex_per_share", - "get_earnings_yield", - "get_dividend_payout_ratio", - "get_dividend_yield", - "get_weighted_dividend_yield", - "get_price_to_cash_flow_ratio", - "get_price_to_free_cash_flow_ratio", - "get_market_cap", - "get_enterprise_value", - "get_ev_to_sales_ratio", - "get_ev_to_ebit", - "get_ev_to_ebitda_ratio", - "get_ev_to_operating_cashflow_ratio", - "get_tangible_asset_value", - "get_net_current_asset_value", - "get_ev_to_free_cash_flow_ratio", - "get_buyback_yield", - "get_shareholder_yield", - "get_sbc_adjusted_free_cash_flow" -]New value: +[ + "get_earnings_per_share", + "get_revenue_per_share", + "get_price_to_earnings_ratio", + "get_price_to_earnings_growth_ratio", + "get_forward_price_earnings_ratio", + "get_forward_price_earnings_growth_ratio", + "get_book_value_per_share", + "get_price_to_book_ratio", + "get_interest_debt_per_share", + "get_capex_per_share", + "get_earnings_yield", + "get_dividend_payout_ratio", + "get_dividend_yield", + "get_weighted_dividend_yield", + "get_price_to_cash_flow_ratio", + "get_price_to_free_cash_flow_ratio", + "get_market_cap", + "get_enterprise_value", + "get_ev_to_sales_ratio", + "get_ev_to_ebit", + "get_ev_to_ebitda_ratio", + "get_ev_to_operating_cashflow_ratio", + "get_tangible_asset_value", + "get_net_current_asset_value", + "get_ev_to_free_cash_flow_ratio", + "get_buyback_yield", + "get_shareholder_yield", + "get_sbc_adjusted_free_cash_flow", + "get_price_to_sales_ratio", + "get_reinvestment_rate" +] - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20"
- Changed
volatility9 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-14"New value: +"2026-08-19" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_bollinger_bands", - "get_true_range", - "get_average_true_range", - "get_keltner_channels", - "get_donchian_channels" -]New value: +[ + "get_bollinger_bands", + "get_true_range", + "get_average_true_range", + "get_supertrend", + "get_keltner_channels", + "get_donchian_channels", + "get_volatility_cone" +] - added
Input schema / properties / multiplierAdded value: +{ + "default": 3, + "description": "Value for multiplier.", + "title": "Multiplier", + "type": "number" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-15"New value: +"2021-08-20" - added
Input schema / properties / window / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / window / defaultPrevious value: -14New value: +null - changed
Input schema / properties / window / descriptionPrevious value: -"Value for window."New value: +"Value for window. Leave unset to use the default of the indicator you selected. Defaults are 14 for get_average_true_range, get_bollinger_bands, get_keltner_channels; 10 for get_supertrend; 20 for get_donchian_channels." - removed
Input schema / properties / window / typeRemoved value: -"integer" - added
Input schema / properties / windowsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for windows.", + "title": "Windows" +}
21 tool updates
- Changed
breadth5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_mcclellan_oscillator", - "get_advancers_decliners", - "get_on_balance_volume", - "get_accumulation_distribution_line", - "get_chaikin_oscillator" -]New value: +[ + "get_mcclellan_oscillator", + "get_advancers_decliners", + "get_on_balance_volume", + "get_accumulation_distribution_line", + "get_chaikin_oscillator", + "get_trin", + "get_new_highs_new_lows" +] - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / windowAdded value: +{ + "default": 252, + "description": "Value for window.", + "title": "Window", + "type": "integer" +}
- Changed
discovery7 fields changed- added
Input schema / properties / dateAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for date.", + "title": "Date" +} - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_biggest_gainers", - "get_biggest_losers", - "get_commodity_list", - "get_crypto_list", - "get_delisted_stocks", - "get_etf_list", - "get_forex_list", - "get_index_list", - "get_most_active_stocks", - "get_sectors_performance", - "get_stock_list", - "get_stock_screener", - "get_stock_shares_float" -]New value: +[ + "get_biggest_gainers", + "get_biggest_losers", + "get_commodity_list", + "get_crypto_list", + "get_crypto_news", + "get_delisted_stocks", + "get_etf_list", + "get_forex_list", + "get_forex_news", + "get_general_news", + "get_index_list", + "get_industry_pe", + "get_industry_performance", + "get_ipo_calendar", + "get_ipo_disclosures", + "get_ipo_prospectuses", + "get_mergers_acquisitions_latest", + "get_most_active_stocks", + "get_press_releases", + "get_sector_pe", + "get_sector_performance", + "get_sectors_performance", + "get_stock_list", + "get_stock_news", + "get_stock_screener", + "get_stock_shares_float", + "get_stock_splits_calendar" +] - added
Input schema / properties / industryAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for industry.", + "title": "Industry" +} - added
Input schema / properties / limitAdded value: +{ + "default": 100, + "description": "Value for limit.", + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / pageAdded value: +{ + "default": 0, + "description": "Value for page.", + "title": "Page", + "type": "integer" +} - added
Input schema / properties / pagesAdded value: +{ + "default": 1, + "description": "Value for pages.", + "title": "Pages", + "type": "integer" +} - added
Input schema / properties / sectorAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for sector.", + "title": "Sector" +}
- Changed
efficiency5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_days_of_inventory_outstanding", - "get_days_of_sales_outstanding", - "get_operating_cycle", - "get_days_of_accounts_payable_outstanding", - "get_cash_conversion_cycle", - "get_cash_conversion_efficiency", - "get_receivables_turnover", - "get_inventory_turnover_ratio", - "get_accounts_payables_turnover_ratio", - "get_sga_to_revenue_ratio", - "get_fixed_asset_turnover", - "get_asset_turnover_ratio", - "get_operating_ratio" -]New value: +[ + "get_days_of_inventory_outstanding", + "get_days_of_sales_outstanding", + "get_operating_cycle", + "get_days_of_accounts_payable_outstanding", + "get_cash_conversion_cycle", + "get_cash_conversion_efficiency", + "get_receivables_turnover", + "get_inventory_turnover_ratio", + "get_accounts_payables_turnover_ratio", + "get_sga_to_revenue_ratio", + "get_fixed_asset_turnover", + "get_asset_turnover_ratio", + "get_operating_ratio", + "get_research_and_development_ratio", + "get_selling_and_marketing_ratio", + "get_general_and_administrative_ratio", + "get_stock_based_compensation_ratio", + "get_deferred_revenue_ratio" +] - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - changed
Input schema / properties / trailing / descriptionPrevious 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."
- Changed
environment5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / rollingAdded 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" +} - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / trailingAdded 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" +}
- Changed
fixed_income4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / payment_frequencyAdded value: +{ + "default": 2, + "description": "Value for payment_frequency.", + "title": "Payment Frequency", + "type": "integer" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / tenorAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Value for tenor.", + "title": "Tenor" +}
- Changed
government5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / rollingAdded 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" +} - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / trailingAdded 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" +}
- Changed
jobs5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / rollingAdded 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" +} - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / trailingAdded 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" +}
- Changed
liquidity4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - changed
Input schema / properties / trailing / descriptionPrevious 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."
- Changed
macroeconomics5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / rollingAdded 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" +} - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / trailingAdded 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" +}
- Changed
market_data3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - changed
Input schema / properties / trailing / descriptionPrevious 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."
- Changed
models5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious 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" +] - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - changed
Input schema / properties / trailing / descriptionPrevious 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."
- Changed
momentum3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15"
- Changed
options3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15"
- Changed
overlap7 fields changed- added
Input schema / properties / af_incrementAdded value: +{ + "default": 0.02, + "description": "Value for af_increment.", + "title": "Af Increment", + "type": "number" +} - added
Input schema / properties / af_maxAdded value: +{ + "default": 0.2, + "description": "Value for af_max.", + "title": "Af Max", + "type": "number" +} - added
Input schema / properties / af_startAdded value: +{ + "default": 0.02, + "description": "Value for af_start.", + "title": "Af Start", + "type": "number" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_moving_average", - "get_exponential_moving_average", - "get_double_exponential_moving_average", - "get_trix", - "get_triangular_moving_average" -]New value: +[ + "get_moving_average", + "get_exponential_moving_average", + "get_double_exponential_moving_average", + "get_trix", + "get_triangular_moving_average", + "get_weighted_moving_average", + "get_hull_moving_average", + "get_volume_weighted_average_price", + "get_parabolic_sar", + "get_pivot_points" +] - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15"
- Changed
performance10 fields changed- added
Input schema / properties / adjustmentAdded value: +{ + "default": 0.1, + "description": "Value for adjustment.", + "title": "Adjustment", + "type": "number" +} - added
Input schema / properties / cumulativeAdded value: +{ + "default": false, + "description": "Return the cumulative value compounded over time instead of the discrete value per period. Always rebased to start at 1 at the beginning of the selected date range.", + "title": "Cumulative", + "type": "boolean" +} - changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_alpha", - "get_beta", - "get_capital_asset_pricing_model", - "get_compound_growth_rate", - "get_factor_asset_correlations", - "get_factor_correlations", - "get_fama_and_french_model", - "get_information_ratio", - "get_jensens_alpha", - "get_m2_ratio", - "get_sharpe_ratio", - "get_sortino_ratio", - "get_tracking_error", - "get_treynor_ratio", - "get_ulcer_performance_index" -]New value: +[ + "get_alpha", + "get_beta", + "get_burke_ratio", + "get_calmar_ratio", + "get_capital_asset_pricing_model", + "get_compound_growth_rate", + "get_correlation_matrix", + "get_covariance_matrix", + "get_downside_capture_ratio", + "get_excess_return", + "get_factor_asset_correlations", + "get_factor_correlations", + "get_fama_and_french_model", + "get_gain_to_pain_ratio", + "get_information_ratio", + "get_jensens_alpha", + "get_kappa_ratio", + "get_m2_ratio", + "get_omega_ratio", + "get_returns", + "get_sharpe_ratio", + "get_sortino_ratio", + "get_sterling_ratio", + "get_tracking_error", + "get_treynor_ratio", + "get_ulcer_performance_index", + "get_upside_capture_ratio", + "get_win_rate" +] - added
Input schema / properties / minimum_acceptable_returnAdded value: +{ + "default": 0, + "description": "The minimum acceptable return (MAR) threshold below which returns are considered downside, e.g. 0.0 for downside relative to a zero return.", + "title": "Minimum Acceptable Return", + "type": "number" +} - added
Input schema / properties / orderAdded value: +{ + "default": 3, + "description": "Value for order.", + "title": "Order", + "type": "integer" +} - changed
Input schema / properties / rolling / descriptionPrevious value: -"Value for rolling."New value: +"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." - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / within_periodAdded value: +{ + "default": true, + "description": "Value for within_period.", + "title": "Within Period", + "type": "boolean" +}
- Changed
profitability5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_gross_margin", - "get_operating_margin", - "get_net_profit_margin", - "get_interest_coverage_ratio", - "get_income_before_tax_profit_margin", - "get_effective_tax_rate", - "get_return_on_assets", - "get_return_on_equity", - "get_return_on_invested_capital", - "get_return_on_capital_employed", - "get_return_on_tangible_assets", - "get_income_quality_ratio", - "get_net_income_per_ebt", - "get_free_cash_flow_operating_cash_flow_ratio", - "get_EBT_to_EBIT", - "get_EBIT_to_revenue" -]New value: +[ + "get_gross_margin", + "get_operating_margin", + "get_net_profit_margin", + "get_interest_coverage_ratio", + "get_income_before_tax_profit_margin", + "get_effective_tax_rate", + "get_return_on_assets", + "get_return_on_equity", + "get_return_on_invested_capital", + "get_return_on_capital_employed", + "get_return_on_tangible_assets", + "get_income_quality_ratio", + "get_net_income_per_ebt", + "get_free_cash_flow_operating_cash_flow_ratio", + "get_EBT_to_EBIT", + "get_EBIT_to_revenue", + "get_cash_tax_rate", + "get_tax_rate_divergence" +] - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - changed
Input schema / properties / trailing / descriptionPrevious 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."
- Changed
rates5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - added
Input schema / properties / rollingAdded 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" +} - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / trailingAdded 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" +}
- Changed
risk13 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_conditional_value_at_risk", - "get_entropic_value_at_risk", - "get_garch", - "get_garch_forecast", - "get_kurtosis", - "get_maximum_drawdown", - "get_skewness", - "get_ulcer_index", - "get_value_at_risk" -]New value: +[ + "get_autocorrelation", + "get_coefficient_of_variation", + "get_conditional_drawdown_at_risk", + "get_conditional_value_at_risk", + "get_downside_deviation", + "get_entropic_value_at_risk", + "get_ewma_volatility", + "get_excess_volatility", + "get_garch", + "get_garch_forecast", + "get_hurst_exponent", + "get_kurtosis", + "get_maximum_drawdown", + "get_maximum_drawdown_duration", + "get_maximum_drawdown_recovery_time", + "get_mean_absolute_deviation", + "get_skewness", + "get_tail_ratio", + "get_ulcer_index", + "get_value_at_risk", + "get_variance", + "get_volatility" +] - added
Input schema / properties / lagsAdded value: +{ + "default": 10, + "description": "Value for lags.", + "title": "Lags", + "type": "integer" +} - added
Input schema / properties / lambda_Added value: +{ + "default": 0.94, + "description": "Value for lambda_.", + "title": "Lambda", + "type": "number" +} - added
Input schema / properties / max_lagAdded value: +{ + "default": 20, + "description": "Value for max_lag.", + "title": "Max Lag", + "type": "integer" +} - added
Input schema / properties / minimum_acceptable_returnAdded value: +{ + "default": 0, + "description": "The minimum acceptable return (MAR) threshold below which returns are considered downside, e.g. 0.0 for downside relative to a zero return.", + "title": "Minimum Acceptable Return", + "type": "number" +} - added
Input schema / properties / rolling / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / rolling / defaultPrevious value: -14New value: +null - changed
Input schema / properties / rolling / descriptionPrevious value: -"Value for rolling."New value: +"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." - removed
Input schema / properties / rolling / typeRemoved value: -"integer" - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - added
Input schema / properties / threshold_percentileAdded value: +{ + "default": 0.95, + "description": "Only used when distribution='evt'. The percentile of losses above which the Generalized Pareto Distribution is fitted, e.g. 0.95 fits on the worst 5% of losses.", + "title": "Threshold Percentile", + "type": "number" +}
- Changed
solvency5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_debt_to_assets_ratio", - "get_debt_to_equity_ratio", - "get_debt_service_coverage_ratio", - "get_equity_multiplier", - "get_free_cash_flow_yield", - "get_net_debt_to_ebitda_ratio", - "get_cash_flow_coverage_ratio", - "get_capex_coverage_ratio", - "get_capex_dividend_coverage_ratio" -]New value: +[ + "get_debt_to_assets_ratio", + "get_debt_to_equity_ratio", + "get_debt_service_coverage_ratio", + "get_equity_multiplier", + "get_free_cash_flow_yield", + "get_net_debt_to_ebitda_ratio", + "get_cash_flow_coverage_ratio", + "get_capex_coverage_ratio", + "get_capex_dividend_coverage_ratio", + "get_debt_to_capital_ratio", + "get_preferred_dividend_coverage_ratio", + "get_interest_paid_to_expense_ratio" +] - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - changed
Input schema / properties / trailing / descriptionPrevious 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."
- Changed
valuation5 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_earnings_per_share", - "get_revenue_per_share", - "get_price_to_earnings_ratio", - "get_price_to_earnings_growth_ratio", - "get_book_value_per_share", - "get_price_to_book_ratio", - "get_interest_debt_per_share", - "get_capex_per_share", - "get_earnings_yield", - "get_dividend_payout_ratio", - "get_dividend_yield", - "get_weighted_dividend_yield", - "get_price_to_cash_flow_ratio", - "get_price_to_free_cash_flow_ratio", - "get_market_cap", - "get_enterprise_value", - "get_ev_to_sales_ratio", - "get_ev_to_ebit", - "get_ev_to_ebitda_ratio", - "get_ev_to_operating_cashflow_ratio", - "get_tangible_asset_value", - "get_net_current_asset_value" -]New value: +[ + "get_earnings_per_share", + "get_revenue_per_share", + "get_price_to_earnings_ratio", + "get_price_to_earnings_growth_ratio", + "get_forward_price_earnings_ratio", + "get_forward_price_earnings_growth_ratio", + "get_book_value_per_share", + "get_price_to_book_ratio", + "get_interest_debt_per_share", + "get_capex_per_share", + "get_earnings_yield", + "get_dividend_payout_ratio", + "get_dividend_yield", + "get_weighted_dividend_yield", + "get_price_to_cash_flow_ratio", + "get_price_to_free_cash_flow_ratio", + "get_market_cap", + "get_enterprise_value", + "get_ev_to_sales_ratio", + "get_ev_to_ebit", + "get_ev_to_ebitda_ratio", + "get_ev_to_operating_cashflow_ratio", + "get_tangible_asset_value", + "get_net_current_asset_value", + "get_ev_to_free_cash_flow_ratio", + "get_buyback_yield", + "get_shareholder_yield", + "get_sbc_adjusted_free_cash_flow" +] - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15" - changed
Input schema / properties / trailing / descriptionPrevious 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."
- Changed
volatility4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-07-09"New value: +"2026-07-14" - changed
Input schema / properties / indicator / enumPrevious value: -[ - "get_bollinger_bands", - "get_true_range", - "get_average_true_range", - "get_keltner_channels" -]New value: +[ + "get_bollinger_bands", + "get_true_range", + "get_average_true_range", + "get_keltner_channels", + "get_donchian_channels" +] - added
Input schema / properties / standardizeAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-07-10"New value: +"2021-07-15"
20 tool updates
v2.1.4- Changed
breadth2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
efficiency2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
environment2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
fixed_income2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
government2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
jobs2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
liquidity2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
macroeconomics2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
market_data2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
models2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
momentum2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
options2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
overlap2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
performance2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
profitability2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
rates2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
risk2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
solvency2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
valuation2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
- Changed
volatility2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-27"New value: +"2026-07-09" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-28"New value: +"2021-07-10"
20 tool updates
v2.1.3- Changed
breadth2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
efficiency2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
environment2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
fixed_income2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
government2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
jobs2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
liquidity2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
macroeconomics2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
market_data2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
models2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
momentum2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
options2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
overlap2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
performance2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
profitability2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
rates2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
risk2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
solvency2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
valuation2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
- Changed
volatility2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-23"New value: +"2026-06-27" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-24"New value: +"2021-06-28"
21 tool updates
v0.1.2- Changed
breadth4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
discovery1 field changed- added
Input schema / properties / show_columnsAdded 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" +}
- Changed
efficiency4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
environment4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
fixed_income3 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
government4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
jobs4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
liquidity4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
macroeconomics4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
market_data4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
models4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
momentum4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
options4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
overlap4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
performance4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
profitability4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
rates4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
risk4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
solvency4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
valuation4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
- Changed
volatility4 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-22"New value: +"2026-06-23" - removed
Input schema / properties / roundingRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of decimal places to round results to.", - "title": "Rounding" -} - added
Input schema / properties / show_columnsAdded 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" +} - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-23"New value: +"2021-06-24"
41 tool updates
v0.1.1- Added
breadth - Added
discovery - Removed
economics_environment - Removed
economics_fixed_income - Removed
economics_general - Removed
economics_government - Removed
economics_jobs - Removed
economics_rates - Added
efficiency - Added
environment - Added
fixed_income - Added
government - Added
jobs - Added
liquidity - Added
macroeconomics - Changed
market_data2 fields changed- changed
Input schema / properties / end_date / defaultPrevious value: -"2026-06-21"New value: +"2026-06-22" - changed
Input schema / properties / start_date / defaultPrevious value: -"2021-06-22"New value: +"2021-06-23"
- Removed
market_discovery - Added
models - Added
momentum - Added
options - Added
overlap - Added
performance - Added
profitability - Removed
quant_models - Removed
quant_options - Removed
quant_performance - Removed
quant_risk - Added
rates - Removed
ratios_efficiency - Removed
ratios_liquidity - Removed
ratios_profitability - Removed
ratios_solvency - Removed
ratios_valuation - Added
risk - Added
solvency - Removed
technicals_breadth - Removed
technicals_momentum - Removed
technicals_overlap - Removed
technicals_volatility - Added
valuation - Added
volatility
25 tool updates
v0.1.0- First observed
economics_environment - First observed
economics_fixed_income - First observed
economics_general - First observed
economics_government - First observed
economics_jobs - First observed
economics_rates - First observed
market_data - First observed
market_discovery - First observed
quant_models - First observed
quant_options - First observed
quant_performance - First observed
quant_risk - First observed
ratios_efficiency - First observed
ratios_liquidity - First observed
ratios_profitability - First observed
ratios_solvency - First observed
ratios_valuation - First observed
search_by_category - First observed
search_categories - First observed
search_instruments - First observed
search_metrics - First observed
technicals_breadth - First observed
technicals_momentum - First observed
technicals_overlap - First observed
technicals_volatility
TDQS
Scored across 25 tools
Each tool targets a distinct domain (technicals, ratio families, risk, performance, econometrics, options, fixed income, economics, discovery), and descriptions explicitly cross-reference boundaries (e.g. 'Bollinger Bands and Keltner Channels are in the volatility tool'). The ratio family (efficiency/liquidity/profitability/solvency/valuation) and the risk/performance/econometrics trio are adjacent but the descriptions clearly separate them. Only minor residual overlap risk remains.
Tools use a consistent lowercase snake_case convention built on domain nouns (volatility, momentum, valuation, fixed_income, market_data), which is predictable and readable. The three meta-tools (search_metric_categories, search_by_category, search_metrics) deviate into a verb-prefix style, a minor inconsistency but not confusing.
25 tools sits at the heavy end, but each one aggregates a large, well-defined metric family (hundreds of metrics total) rather than a single operation, so the count is justified by the enormous domain surface. No tool appears redundant or trivially thin.
Coverage spans raw market data, financial statements, ratio families, models, technicals, risk/performance/econometrics, derivatives and fixed income, plus macro/government/jobs/rates/environment economics and discovery, with meta-tools to locate metrics. Lifecycle and cross-domain needs are well addressed with no obvious dead ends for the stated purpose.
Maintenance
Related MCP Connectors
SEC filings and financial data for AI agents: 59 tools for statements, valuation and supply chains.
SEC financials for AI agents: statements for 8,000+ public companies. 5 tools, free, no key.
SEC-filed company financials with filing citations, plus market data, for AI agents
- mcpOAuthsh.opencapital
Give your AI deep fundamentals on US public companies — metrics, segments, peers. Free.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with access to comprehensive financial data including real-time stock quotes, company fundamentals, financial statements, market analysis, SEC filings, and economic indicators through 253+ tools across 24 categories.436 npmApache 2.0
- AlicenseAqualityBmaintenanceAI-native quantitative trading signal engine for crypto and TradFi perpetuals. Multi-factor composite BUY/SELL/HOLD signals, cross-venue funding rate arbitrage scanning, and market regime detection powered by Hyperliquid data.9305 npm10MIT
- AlicenseAqualityCmaintenanceSEC EDGAR filing MCP for equity research agents: search 10-K/10-Q/8-K with CompanyFacts metrics, preview a free sample, and purchase full structured JSON via x402 USDC on Polygon. Public endpoint on xpay.tools.32MIT
- AlicenseAqualityBmaintenanceMCP server for the SEC-registered Savvly Longevity Benefit Fund: product info, Savvly-vs-alternative comparisons, eligibility checks, an audience-tagged Q\&A library, and retirement / lump-sum / monthly projections that render inline MCP Apps chart widgets. Hosted remote plus npm/PyPI/NuGet/OCI/MCPB.83Apache 2.0