Skip to main content
Glama
JerBouma

Finance Toolkit

FinanceToolkit

GitHub Sponsors Buy Me a Coffee LinkedIn MCP Server Download MCP Bundle Smithery Glama Documentation Supported Python Versions PYPI Version PYPI Downloads

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

  1. Installation

  2. Functionality

  3. MCP Server

  4. Questions & Answers

  5. Contributing

  6. Mentions

  7. Contact

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 -U

Then 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:

  • rolling and trailing windows. Many metrics return one value per reporting period by default. Pass rolling=<n> to compute the metric over a sliding window instead, or trailing=<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.

  • growth and lag. Pass growth=True on almost any get_ or collect_ function to return the period-over-period growth instead of the raw value. lag (an int or list of ints, default 1) controls how many periods back that growth is measured against, e.g. lag=4 for year-over-year growth on quarterly data. Combine with trailing (e.g. trailing=4, growth=True) to get TTM growth.

  • standardize (Z-Score). Most get_* methods across Economics, Ratios, Technicals, Risk, Performance, Models, Options and Fixed Income accept standardize=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

claude mcp add --transport http finance-toolkit https://financetoolkit.jeroenbouma.com/mcp

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-setup

For 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:

  1. 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).

  2. 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.pem

    On Windows you can open both files in a text editor and paste the company certificate at the end of a copy of cacert.pem.

  3. Point REQUESTS_CA_BUNDLE to 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"

    setx does 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 Toolkit

    When you use the MCP server, add the variable to the env section 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

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:

If you'd like to support my efforts, either help me out by contributing to the package or Sponsor Me.

Available Tools

25 tools
breadthA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).daily
windowNoThe 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.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
long_windowNoNumber of periods for the long-term moving average.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
start_valueNoThe index value to start the series at.
close_columnNoFor 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_windowNoNumber of periods for the short-term moving average.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
volume_divisorNoScaling 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_windowNoThe window size for the long-term EMA.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
short_ema_windowNoThe window size for the short-term EMA.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

discoveryA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
dateNoFor 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.
pageNoFor 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.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length. 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.
pagesNoThe number of pages to collect, each page is a separate API call, e.g. pages=5 makes 5 calls.
is_etfNoWhether to restrict the screen to ETFs or to exclude them.
sectorNoFor 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".
countryNoThe two-letter country code to restrict the screen to, e.g. "US".
end_dateNoEnd of the date range in YYYY-MM-DD format.
exchangeNoThe exchange code to restrict the screen to, e.g. "NASDAQ".
industryNoFor 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".
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
beta_lowerNoThe maximum beta of the stock.
start_dateNoStart of the date range in YYYY-MM-DD format.
beta_higherNoThe minimum beta of the stock.
price_lowerNoThe maximum price of the stock.
price_higherNoThe minimum price of the stock.
primary_onlyNoSet 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_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
volume_lowerNoThe maximum volume of the stock.
volume_higherNoThe minimum volume of the stock, in shares traded.
dividend_lowerNoThe maximum dividend of the stock.
dividend_higherNoThe minimum dividend of the stock, as an amount per share over the last annual period rather than as a yield.
market_cap_lowerNoThe maximum market capitalization of the stock.
market_cap_higherNoThe minimum market capitalization of the stock, in the currency of the listing rather than in millions.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

econometricsB
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
dNoFor get_arima_forecast: The number of times to difference the series. For get_out_of_sample_validation: The ARIMA differencing order (`model="arima"` only).
pNoFor get_arima_forecast: The autoregressive order. For get_out_of_sample_validation: The ARIMA autoregressive order (`model="arima"` only).
qNoFor 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.
tauNoThe quantile to fit, in (0, 1).
lagsNoThe 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.
lossNoThe loss function to compare forecast errors with, one of "squared" or "absolute".squared
trimNoThe fraction of observations excluded from the candidate break date search at the start and end of the sample. Must be in [0, 1/3).
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
modelNoEither "arima" or "var".arima
omegaNoThe (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.
powerNoThe highest power of the fitted values to add.
columnNoThe 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.
cutoffNoThe 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.
kernelNoOne of "uniform" or "triangular".uniform
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).
caliperNoThe maximum allowed logit-propensity-score matching distance.
lambda_NoThe decay factor used by the "ewma" method.
max_lagNoThe 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.
maxlagsNoFor 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.
periodsNoFor 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.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
weightsNoThe 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.
clustersNoFor 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_typeNoFor 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_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
gap_daysNoNumber of trading days between the end of the estimation window and the event date.
method_aNoThe first volatility forecasting method, one of "ewma" or "rolling".ewma
method_bNoThe second (competing) volatility forecasting method, one of "ewma" or "rolling".rolling
bandwidthNoThe maximum distance from `cutoff` an observation may be to be included in either local regression.
det_orderNoWhich 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).
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
k_ar_diffNoThe number of lagged first differences to include as short-run dynamics.
quarterlyNoReturn quarterly data instead of annual when True.
break_dateNoThe 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_dateNoThe 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.
regressionNoWhich deterministic terms to include, one of "n" (none), "c" (constant) or "ct" (constant and trend).c
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
n_bootstrapNoThe number of bootstrap resamples used for coefficient standard errors, overriding `statsmodels`' default analytic (kernel density-based) standard errors.
window_sizeNoThe rolling window size used by the "rolling" method.
add_constantNoWhether to include an intercept.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
significanceNoThe significance level (one of 0.01, 0.05, 0.10) at which the Johansen trace test determines the cointegrating rank.
time_effectsNoWhether to control for entity-invariant, time-specific shocks.
asset_tickersNoThe ticker(s) forming the cross-section of test assets.
donor_tickersNoThe ticker(s) forming the donor pool the synthetic control is built from.
other_tickersNoThe other assets to include in the VAR system alongside the ticker being validated (`model="var"` only).
within_periodNoWhether 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_effectsNoWhether to control for time-invariant entity-specific characteristics.
equal_varianceNoWhether to assume the two samples share a common variance (Student's pooled t-test) instead of Welch's (unequal-variance) t-test.
factor_tickersNoThe ticker(s) whose returns are used as the risk factor(s) (e.g. "Benchmark" for a single-factor/CAPM-style test).
forecast_stepsNoThe number of periods ahead to forecast.
orthogonalizedNoWhether to orthogonalize the shocks via a Cholesky decomposition of the residual covariance matrix -- see `time_series_model.get_impulse_response_function`.
pre_event_daysNoNumber of trading days before the event date included in the event window.
suspect_tickerNoThe (possibly endogenous) asset being tested. Leave unset to use the default of the indicator you selected. Required by: get_hausman_wu_test.
train_fractionNoThe fraction of observations used for training; the remainder is the holdout.
treated_tickerNoThe 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_dateNoThe 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_tickersNoThe untreated comparison asset(s).
post_event_daysNoNumber of trading days after the event date included in the event window.
treated_tickersNoThe 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_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
dependent_tickerNoThe 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_constantNoFor 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_periodNoThe 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_tickerNoThe 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_tickersNoThe 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_tickersNoThe panel of entity tickers to explain.
endogenous_tickerNoThe 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_windowNoNumber of trading days used to estimate the market model.
exogenous_tickersNoOther, non-instrumented control asset(s) included as-is in both stages.
include_benchmarkNoWhether to include "Benchmark" among the assets tested.
independent_columnNoA 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_tickersNoFor 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_matrixNoThe `(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_valuesNoThe length-`q` vector of hypothesized values.
independent_tickersNoFor 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_thresholdNoThe return threshold defining treatment.
running_variable_tickerNoThe 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_tickersNoAny other (assumed exogenous) independent asset(s) to include.
restricted_independent_tickersNoThe 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_tickersNoThe 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

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

efficiencyA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
daysNoNumber of calendar days used in day-count-based calculations.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

environmentA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
riskNo"combined", "transition" or "physical". Current Policies has physical risk only, which is also its combined risk.combined
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
modelNoThe integrated assessment model behind the scenario: "REMIND-MAgPIE", "GCAM" or "MESSAGEix-GLOBIOM".REMIND-MAgPIE
growthNoReturn period-over-period growth rates instead of absolute values.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).daily
rollingNoRolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
scenarioNo"Net Zero 2050", "Below 2°C", "Low demand", "Delayed transition", "Nationally Determined Contributions (NDCs)", "Current Policies", "Fragmented World" or "Baseline".Net Zero 2050
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
variableNoThe 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
countriesNoCountry names, comma-separated or as a list, e.g. 'United States,Germany,Japan'.
deviationNoWhether to return the deviation from the baseline instead of the level.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_incomeA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
guessNoFor 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.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
modelNoThe type of model to use for calculating the derivative price.black
tenorNoThe tenor (length in years) of the underlying swap.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
maturityNoThe maturity (or maturities), in years, to calculate the breakeven inflation rate for. If not provided, a range of maturities will be used.
notionalNoThe notional amount of the derivative.
countriesNoCountry names, comma-separated or as a list, e.g. 'United States,Germany,Japan'.
frequencyNoFor 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.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
par_valueNoFor 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.
quarterlyNoReturn quarterly data instead of annual when True.
toleranceNoThe tolerance level for convergence.
bond_priceNoClean price of the bond per 100 face value.
real_ratesNoThe real (inflation-protected) yield curve, indexed by maturity in years (in decimal).
spot_ratesNoThe yield curve, indexed by maturity in years (in decimal).
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
volatilityNoThe volatility of the underlying swap rate, quoted on the basis given by `volatility_type`.
coupon_rateNoAnnual 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_receiverNoTrue if the holder is the receiver of the derivative, False if the holder is the payer.
strike_rateNoOption strike price.
far_maturityNoThe further maturity (or maturities), in years. If not provided, a range of far maturities will be used.
forward_rateNoThe forward rate as derived from the swap curve.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
yield_changeNoFor 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_typeNoThe type of duration to calculate.modified
long_maturityNoThe longer maturity (or maturities), in years. If not provided, a range of long maturities will be used.
near_maturityNoThe nearer maturity (or maturities), in years. If not provided, a range of near maturities will be used.
nominal_ratesNoThe nominal (non-inflation-protected) yield curve, indexed by maturity in years (in decimal).
discount_yieldNoThe money-market discount yield of the instrument (in decimal). If not provided, a range of discount yields will be used.
include_payoffNoTrue to include the payoff in the output, False otherwise.
max_iterationsNoThe maximum number of iterations for convergence.
risk_free_rateNoThe risk-free interest rate.
short_maturityNoThe shorter maturity (or maturities), in years. If not provided, a range of short maturities will be used.
show_input_infoNoFor 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_typeNoThe convention `volatility` is quoted on, either 'lognormal' (relative to the forward rate) or 'normal' (absolute, in rate units).
days_to_maturityNoThe number of days until the instrument matures. If not provided, a range of typical T-bill maturities will be used.
key_rate_maturityNoThe maturity (or maturities), in years, of the curve point(s) to shock. Must be present in the index of `spot_rates`.
payment_frequencyNoNumber of fixed-leg payments per year on the underlying swap (e.g. 1 for annual, 2 for semi-annual, 4 for quarterly).
years_to_maturityNoYears remaining until the bond matures.
yield_to_maturityNoFor 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

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

governmentA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
levelNoLevel of government: 'consolidated' (longest history), 'general' (central, state and local government and social security) or 'central'.consolidated
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
rollingNoRolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
countriesNoCountry names, comma-separated or as a list, e.g. 'United States,Germany,Japan'.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
gmdb_forecastsNoSet to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

jobsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
sexNo"total", "male" or "female".total
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).
measureNoSub-measure selector, e.g. 'M1', 'M2', or 'M3' for money supply.death_probability
rollingNoRolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
countriesNoCountry names, comma-separated or as a list, e.g. 'United States,Germany,Japan'.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
gmdb_sourceNoUse the Global Macro Database as the data source when True, rather than the OECD. The two are independent providers with different country and period coverage; both return rates and ratios as decimal fractions.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
gmdb_forecastsNoSet to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

liquidityA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
daysNoNumber of calendar days used in day-count-based calculations.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

macroeconomicsA
Read-onlyIdempotent
Inspect

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').

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
usdNoReturn levels in millions of US dollars instead of national currency when True, which makes them comparable across countries (Global Macro Database).
realNoWhether to deflate the returns by consumer price inflation.
yearNoThe year of the Federal Reserve's stress test.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
eventsNoParts of event names to keep, matched without regard to case, e.g. "PMI" for every purchasing managers' index or ["CPI", "Unemployment"].
growthNoReturn period-over-period growth rates instead of absolute values.
impactNoThe 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.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). Leave unset to use the default of the indicator you selected. Defaults 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.
seriesNoThe series to include, matched on (part of) their name without regard to case, e.g. "Bank Rate" or ["consols", "share prices"].
marketsNoThe 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".
measureNoSub-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.
returnsNoWhether to return the total return per period instead of the dividend-adjusted price.
rollingNoRolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
scenarioNo"baseline", "adverse" (the Federal Reserve's severely adverse scenario) or "historic".adverse
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
authorityNoFor 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.
commodityNoThe 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.
componentNoPart of final consumption: 'total', 'household' or 'government'.total
contractsNoThe number of sequential monthly contracts ahead of today to attempt to fetch.
countriesNoCountry names, comma-separated or as a list, e.g. 'United States,Germany,Japan'.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quantilesNoThe quantiles of the distribution per year.
quarterlyNoReturn quarterly data instead of annual when True.
rate_typeNoWhich nominal interest rate to use. Can be 'long_term' (10-year government bond yield) or 'short_term' (3-month money market rate).long_term
scenariosNoWhether to return every scenario instead of the distribution.
variablesNoThe 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".
currenciesNoThe currencies to keep, e.g. "USD" or ["USD", "EUR"].
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
asset_classNo"equity", "housing", "bonds", "bills", "risky", "safe" or "wealth".equity
gmdb_sourceNoUse the Global Macro Database as the data source when True, rather than the OECD. The two are independent providers with different country and period coverage; both return rates and ratios as decimal fractions.
oecd_sourceNoWhether to get the data from the OECD instead of the Global Macro Database (GMDB).
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
asset_classesNoThe 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_periodNoWhether to return the rate at the end of each month, quarter or year instead of its average.
accept_licenceNoConfirms that the data is used for non-commercial purposes, as its licence (CC BY-NC-SA 4.0) requires.
gmdb_forecastsNoSet to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.
year_over_yearNoWhether to return the change on the same quarter a year earlier instead of on the previous quarter.
inflation_adjustedNoAdjust nominal values for inflation when True.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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.

Conciseness3/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_dataA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length. Leave unset to use the default of the indicator you selected. Defaults are 25 for get_etf_holdings.
growthNoReturn period-over-period growth rates instead of absolute values.
latestNoWhether to only retrieve the most recent transcript. When False, every transcript between the start_date and end_date is retrieved.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). Leave unset to use the default of the indicator you selected. Defaults are 'daily' for get_historical_data, get_treasury_data; '1hour' for get_intraday_data.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
fill_nanNoFor 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.
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
show_errorsNoWhether to report retrieval errors.
actual_datesNoDefines whether to return the actual dates or the corresponding quarters.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
fiscal_periodNoThe 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_columnNoThe 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_byNoA value to divide the yields by. Treasury yields are published in percent, so this defaults to 100 to return decimals.
enforce_sourceNoFor 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_rateNoThe maturity to return as the risk free rate ('13w', '5y', '10y' or '30y').
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
include_dividendsNoDefines whether to include dividends in the return calculation.
show_ticker_seperationNoA boolean representing whether to show which tickers acquired data from FinancialModelingPrep and which tickers acquired data from YahooFinance.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, 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.

Purpose5/5

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.

Usage Guidelines5/5

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.

modelsB
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
dilutedNoFor get_altman_z_score: Whether to use diluted shares outstanding in the calculation. For get_enterprise_value_breakdown, get_graham_number, get_market_value_added, get_present_value_of_growth_opportunities, get_tobins_q_ratio, get_weighted_average_cost_of_capital: Whether to use diluted shares in the calculation.
periodsNoThe number of periods to use for the cash flow projections.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
growth_rateNoAssumed constant growth rate as a decimal. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_intrinsic_valuation.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
cash_flow_typeNoThe 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_returnNoFor get_gorden_growth_model: The required rate of return. For get_two_stage_dividend_discount_model: The required rate of return (discount rate) used to discount both phases. Can be one number to use for all tickers, or a list or dict that contains a rate of return for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_two_stage_dividend_discount_model.
calculate_dailyNoWhether to calculate the PVGO using daily historical data.
project_periodsNoThe number of periods to project the the stock price.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
high_growth_rateNoThe constant growth rate applied to dividends during the explicit high-growth phase. Can be one number to use for all tickers, or a list or dict that contains a high growth rate for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model.
include_dividendsNoWhether to deduct Preferred Dividends Paid from Net Income when calculating the Earnings per Share, so that the earnings figure reflects what is attributable to common shareholders only.
show_full_resultsNoWhether to show the full results or just the WACC values.
stable_growth_rateNoThe perpetual (terminal) growth rate applied to dividends from the end of the high-growth phase onward. Can be one number to use for all tickers, or a list or dict that contains a stable growth rate for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model.
high_growth_periodsNoThe number of periods in the explicit high-growth phase.
perpetual_growth_rateNoTerminal (perpetual) growth rate used in DCF models. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation.
weighted_average_cost_of_capitalNoWACC as a decimal, e.g. 0.09 for 9 %. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

momentumB
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).daily
windowNoThe 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.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
weightsNoThe portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset.
constantNoConstant multiplier used in the CCI calculation.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
window_1NoThe number of periods for the first short-term window.
window_2NoThe number of periods for the second mid-term window.
window_3NoThe number of periods for the third long-term window.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
base_windowNoThe number of periods to consider for the Base Line (Kijun-sen) calculation, also used as the forward displacement for both Leading Spans.
long_windowNoFor 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_windowsNoThe four lookback periods used for the underlying Rate of Change calculations.
sma_windowsNoThe four Simple Moving Average smoothing periods applied to each Rate of Change series.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
close_columnNoFor 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_windowNoFor 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_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
signal_windowNoFor 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_windowNoThe number of periods used to smooth the %K line into the %D signal line.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
conversion_windowNoThe number of periods to consider for the Conversion Line (Tenkan-sen) calculation.
lead_span_b_windowNoThe number of periods to consider for the Lead Span B (Senkou Span B) calculation.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

optionsB
Read-onlyIdempotent
Inspect

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'}].

NameRequiredDescriptionDefault
legsNoThe 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.
seedNoThe seed used to initialize the random number generator, ensuring reproducible results.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
rebateNoThe fixed cash amount paid out if the option knocks out (or fails to knock in).
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
timestepsNoThe number of time steps to use for the binomial tree. This will be evenly distributed over the time to expiration.
knock_typeNoEither "in" or "out".out
put_optionNoWhether to calculate the put option rho.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
time_stepsNoThe number of time steps used to build each simulated path.
cash_payoutNoThe fixed cash amount paid out by a cash-or-nothing option when it expires in-the-money. Ignored for asset-or-nothing options.
option_typeNoEither "cash-or-nothing" or "asset-or-nothing".cash-or-nothing
simulationsNoThe number of simulated stock price paths.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
dividend_yieldNoThe dividend yield to use for the calculation.
risk_free_rateNoFor 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_optionNoWhether to value an American option, which can be exercised at every node, instead of a European option.
expiration_dateNoFor 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_infoNoWhether to show the input information.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
expiration_datesNoThe expiration dates to fit the surface over.
strike_step_sizeNoThe step size to use for the strike prices.
barrier_directionNoEither "down" or "up".down
number_of_strikesNoThe number of strikes in the evaluation grid.
outlier_thresholdNoThe 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_rangeNoThe percentage range to use for the stock prices at expiration.
barrier_percentageNoThe barrier level as a percentage of the current stock price.
strike_price_rangeNoOnly 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_expirationNoThe number of year to use for the time to expiration.
show_standard_errorNoWhether to also return the standard error of each Monte Carlo estimate as a second DataFrame.
expiration_time_rangeNoThe number of days to use for the time to expiration.
number_of_expirationsNoThe number of near-term expiration dates to fit when `expiration_dates` is not given.
show_expiration_datesNoFor 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_sizeNoThe step size to use for the stock prices at expiration.
foreign_risk_free_rateNoThe 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_combinationsNoWhether 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

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

overlapA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
trendNoWhether 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_maxNoMaximum value the acceleration factor can reach.
growthNoReturn period-over-period growth rates instead of absolute values.
levelsNoThe Fibonacci ratios to calculate levels for.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).daily
windowNoThe 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.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
af_startNoInitial acceleration factor.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
fast_windowNoThe number of periods that corresponds to the fastest EMA constant used when the Efficiency Ratio is at its maximum (1.0).
sensitivityNoThe 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_windowNoThe number of periods that corresponds to the slowest EMA constant used when the Efficiency Ratio is at its minimum (0.0).
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
af_incrementNoAmount by which the acceleration factor increases every time a new extreme point is reached.
close_columnNoThe column name for closing prices in the historical data.Adj Close
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

performanceA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
alphaNoFor 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).
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
orderNoThe order of the lower partial moment used in the denominator.
growthNoReturn period-over-period growth rates instead of absolute values.
methodNoFor 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.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).
rollingNoRolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series. 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.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
n_trialsNoThe 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.
annualizeNoSet 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).
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
adjustmentNoThe fixed adjustment added to the Average Drawdown, conventionally 0.1 (10%).
cumulativeNoReturn 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_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
trials_windowNoThe 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_periodNoWhether 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_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
exclude_risk_freeNoWhether to exclude the risk-free rate from the results.
show_full_resultsNoWhether to show the actual and benchmark returns next to the Alpha.
factors_to_calculateNoComma-separated factor names to include in the calculation.
benchmark_sharpe_ratioNoThe hypothesized or benchmark Sharpe ratio (SR*) to test the observed Sharpe ratio against. Only used when method="probabilistic".
include_daily_residualsNoWhether to also return the pointwise (daily) regression residuals as a second DataFrame.
minimum_acceptable_returnNoThe minimum acceptable return (MAR) threshold below which returns are considered downside, e.g. 0.0 for downside relative to a zero return.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

profitabilityA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
dividend_adjustedNoWhether to adjust the net operating profit after taxes with the dividends paid.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ratesA
Read-onlyIdempotent
Inspect

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).

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
rateNoFor get_european_central_bank_rates: The rate to return. Choose between 'refinancing', 'lending' or 'deposit'. For get_federal_reserve_rates: The rate to return. For get_hqm_corporate_bond_yield_curve: "spot" for the spot rates or "par" for the par yields. Leave unset to use the default of the indicator you selected. Defaults are 'EFFR' for get_federal_reserve_rates; None for get_european_central_bank_rates; 'spot' for get_hqm_corporate_bond_yield_curve.
yearNoThe first year of the period.
curveNoFor get_eiopa_risk_free_rate: "spot_no_va", "spot_with_va", "shock_up" or "shock_down". For get_bank_of_england_yield_curve: "nominal" or "ois". Leave unset to use the default of the indicator you selected. Defaults are 'nominal' for get_bank_of_england_yield_curve; 'spot_no_va' for get_eiopa_risk_free_rate.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
agencyNoThe rating agency, e.g. "S&P", "Moody's", "Fitch", "DBRS", "Scope" or "Kroll", or the CEREP code of any registered agency.S&P
growthNoReturn period-over-period growth rates instead of absolute values.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). Leave unset to use the default of the indicator you selected. Defaults differ between indicators.
regionNoThe area of the rated entities: "Africa", "America", "Asia", "Europe", "EU members", "International" or "Oceania".
spreadNoFor get_moodys_corporate_bond_yields: Whether to return the spreads over the 10-year Treasury yield instead of the yields. For get_corporate_bond_yields: Whether to return the spread over government bonds instead of the yield.
horizonNoThe length of the period in years, from 1 January of year.
nominalNoWhether to retrieve the nominal Euribor fixings or their real (inflation-adjusted) counterpart. The ECB only publishes a real Euribor for the 3-month maturity, so nominal=False returns that maturity alone and warns about any others that were requested rather than silently answering them with a...
rollingNoRolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
maturityNoWhether to return the maturity total return or the rating total return.
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
countriesNoCountry names, comma-separated or as a list, e.g. 'United States,Germany,Japan'.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
maturitiesNoComma-separated bond maturity labels, e.g. '3month,2year,10year'.
short_termNoWhether to return the short-term interest rate. This means that the long-term interest rate will be returned.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
gmdb_sourceNoUse the Global Macro Database as the data source when True, rather than the OECD. The two are independent providers with different country and period coverage; both return rates and ratios as decimal fractions.
rating_typeNo"corporate", "sovereign", "structured_finance" or "covered_bonds".corporate
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
probabilitiesNoWhether to return the share of ratings per row instead of the number.
gmdb_forecastsNoSet to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.
maturity_yearsNoComma-separated maturities in years to return, e.g. '1,2,5,10,20,30'. Leave unset to use the default of the indicator you selected. Defaults are [1, 2, 5, 10, 20, 30] for get_eiopa_risk_free_rate.
include_withdrawalsNoWhether to keep the ratings withdrawn during the period as a "Withdrawals" column.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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.

Conciseness3/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

riskA
Read-onlyIdempotent
Inspect

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).

NameRequiredDescriptionDefault
kNoThe 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.
qNoThe threshold quantile used for the "empirical" method, in (0.5, 1).
dofNoThe degrees of freedom of the Student-T copula, only used when `method="student-t"`.
lagNoNumber of periods to lag when computing growth rates.
lagsNoThe number of lags (past periods) the test or model uses, e.g. 1 or 5.
tailNoWhich tail to estimate, one of "left" (the loss tail) or "right" (the gain tail).left
testNoWhich test(s) to run, one of "kupiec", "christoffersen" or "both".both
alphaNoThe confidence level (e.g., 0.05 for 95% confidence).
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
scaleNoA 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.
columnNoThe price column to use, e.g. 'Close' or 'Adj Close'.Return
copulaNoFor 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
fisherNoWhether to use Fisher's definition of kurtosis (kurtosis = 0.0 for a normal distribution).
growthNoReturn period-over-period growth rates instead of absolute values.
methodNoFor 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.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).
tickerNoThe asset whose conditional VaR is being measured. Leave unset to use the default of the indicator you selected. Required by: get_covar.
horizonNoThe number of days ahead to forecast.
lambda_NoThe 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_lagNoThe maximum lag to use when estimating the exponent.
rollingNoRolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series. 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.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
weightsNoThe portfolio weight per ticker as an object, e.g. {'AAPL': 0.6, 'MSFT': 0.4}; equal weights when left unset.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
ticker_aNoThe 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_bNoThe 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.
estimatorNoHow to construct the daily Realized Variance input, one of "squared_return", "parkinson", "garman_klass" or "rogers_satchell".squared_return
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
time_stepsNoTime 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_bootstrapNoThe number of bootstrap resamples used to estimate the Standard Error of Z2.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
window_sizeNoFor 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.
distributionNoThe distribution to use for the rolling VaR estimates, one of "historic", "gaussian", "studentt" or "evt".historic
random_stateNoFor get_acerbi_szekely_test: The seed for the bootstrap random number generator. For get_copula_simulation: The seed for the random number generator.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
n_simulationsNoThe 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_windowNoThe trailing window (in trading days) for the weekly RV component.
within_periodNoWhether to calculate GJR-GARCH within each specified period or all at once.
monthly_windowNoThe trailing window (in trading days) for the monthly RV component.
optimization_tNoFor 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_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
empirical_marginsNoWhether 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_resultsNoOnly 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_tickerNoThe 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_percentileNoOnly 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_returnNoThe minimum acceptable return (MAR) threshold below which returns are considered downside, e.g. 0.0 for downside relative to a zero return.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, 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.

Purpose4/5

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.

Usage Guidelines3/5

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_categoryA
Read-onlyIdempotent
Inspect

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.
    
NameRequiredDescriptionDefault
categoryYesCategory name as returned by search.categories, e.g. 'ratios', 'technicals', 'economics', 'discovery'.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_categoriesA
Read-onlyIdempotent
Inspect

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.
    
NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_metricsA
Read-onlyIdempotent
Inspect

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.
    
NameRequiredDescriptionDefault
queryYesFree-text keyword to search across all metric names and descriptions, e.g. 'sharpe', 'debt', or 'moving average'.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

solvencyA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
dilutedNoWhether to use diluted shares for market capitalization.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
show_dailyNoWhether to use daily data for the calculation.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

valuationA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
dilutedNoFor 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.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
trailingNoTrailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
show_dailyNoWhether to show daily data.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY
include_dividendsNoFor 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_rateNoWhether to use EBITDA growth rate for the calculation.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

volatilityA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lagNoNumber of periods to lag when computing growth rates.
limitNoThe rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length.
growthNoReturn period-over-period growth rates instead of absolute values.
periodNoObservation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).daily
windowNoThe 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.
tickersNoComma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'.
windowsNoThe rolling windows (in periods) to calculate realized volatility for.
end_dateNoEnd of the date range in YYYY-MM-DD format.2026-10-14
indicatorYesName of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name.
quarterlyNoReturn quarterly data instead of annual when True.
atr_windowNoNumber of periods for ATR calculation.
multiplierNoMultiplier applied to the Average True Range to determine how far the bands sit from the median price.
start_dateNoStart of the date range in YYYY-MM-DD format.2021-10-15
num_std_devNoNumber of standard deviations for the bands.
standardizeNoReturn the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.
close_columnNoThe column name for closing prices in the historical data.Adj Close
show_columnsNoComma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.
atr_multiplierNoMultiplier for ATR to determine channel width.
benchmark_tickerNoTicker used as the market benchmark, e.g. 'SPY' or '^GSPC'.SPY

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 25 tool updatesv2.2.3
    • Changedbreadth37 fields changed
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / close_column / description
        Previous 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."
      • removedInput schema / properties / close_column / title
        Removed value: -"Close Column"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / long_ema_window / description
        Previous value: -"Value for long_ema_window."New value: +"The window size for the long-term EMA."
      • removedInput schema / properties / long_ema_window / title
        Removed value: -"Long Ema Window"
      • changedInput schema / properties / long_window / description
        Previous value: -"Value for long_window."New value: +"Number of periods for the long-term moving average."
      • removedInput schema / properties / long_window / title
        Removed value: -"Long Window"
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / short_ema_window / description
        Previous value: -"Value for short_ema_window."New value: +"The window size for the short-term EMA."
      • removedInput schema / properties / short_ema_window / title
        Removed value: -"Short Ema Window"
      • changedInput schema / properties / short_window / description
        Previous value: -"Value for short_window."New value: +"Number of periods for the short-term moving average."
      • removedInput schema / properties / short_window / title
        Removed value: -"Short Window"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • changedInput schema / properties / start_value / description
        Previous value: -"Value for start_value."New value: +"The index value to start the series at."
      • removedInput schema / properties / start_value / title
        Removed value: -"Start Value"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • changedInput schema / properties / volume_divisor / description
        Previous 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."
      • removedInput schema / properties / volume_divisor / title
        Removed value: -"Volume Divisor"
      • changedInput schema / properties / window / description
        Previous 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."
      • removedInput schema / properties / window / title
        Removed value: -"Window"
      • removedInput schema / title
        Removed value: -"breadthArguments"
    • Changeddiscovery46 fields changed
      • changedInput schema / properties / beta_higher / description
        Previous value: -"Value for beta_higher."New value: +"The minimum beta of the stock."
      • removedInput schema / properties / beta_higher / title
        Removed value: -"Beta Higher"
      • changedInput schema / properties / beta_lower / description
        Previous value: -"Value for beta_lower."New value: +"The maximum beta of the stock."
      • removedInput schema / properties / beta_lower / title
        Removed value: -"Beta Lower"
      • changedInput schema / properties / country / description
        Previous value: -"Value for country."New value: +"The two-letter country code to restrict the screen to, e.g. \"US\"."
      • removedInput schema / properties / country / title
        Removed value: -"Country"
      • changedInput schema / properties / date / description
        Previous 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."
      • removedInput schema / properties / date / title
        Removed value: -"Date"
      • changedInput schema / properties / dividend_higher / description
        Previous 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."
      • removedInput schema / properties / dividend_higher / title
        Removed value: -"Dividend Higher"
      • changedInput schema / properties / dividend_lower / description
        Previous value: -"Value for dividend_lower."New value: +"The maximum dividend of the stock."
      • removedInput schema / properties / dividend_lower / title
        Removed value: -"Dividend Lower"
      • addedInput schema / properties / end_date
        Added value: +{
        +  "default": "",
        +  "description": "End of the date range in YYYY-MM-DD format.",
        +  "type": "string"
        +}
      • changedInput schema / properties / exchange / description
        Previous value: -"Value for exchange."New value: +"The exchange code to restrict the screen to, e.g. \"NASDAQ\"."
      • removedInput schema / properties / exchange / title
        Removed value: -"Exchange"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • changedInput schema / properties / industry / description
        Previous 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\"."
      • removedInput schema / properties / industry / title
        Removed value: -"Industry"
      • changedInput schema / properties / is_etf / description
        Previous value: -"Value for is_etf."New value: +"Whether to restrict the screen to ETFs or to exclude them."
      • removedInput schema / properties / is_etf / title
        Removed value: -"Is Etf"
      • changedInput schema / properties / limit / description
        Previous 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."
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • changedInput schema / properties / market_cap_higher / description
        Previous 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."
      • removedInput schema / properties / market_cap_higher / title
        Removed value: -"Market Cap Higher"
      • changedInput schema / properties / market_cap_lower / description
        Previous value: -"Value for market_cap_lower."New value: +"The maximum market capitalization of the stock."
      • removedInput schema / properties / market_cap_lower / title
        Removed value: -"Market Cap Lower"
      • changedInput schema / properties / page / description
        Previous 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."
      • removedInput schema / properties / page / title
        Removed value: -"Page"
      • changedInput schema / properties / pages / description
        Previous 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."
      • removedInput schema / properties / pages / title
        Removed value: -"Pages"
      • changedInput schema / properties / price_higher / description
        Previous value: -"Value for price_higher."New value: +"The minimum price of the stock."
      • removedInput schema / properties / price_higher / title
        Removed value: -"Price Higher"
      • changedInput schema / properties / price_lower / description
        Previous value: -"Value for price_lower."New value: +"The maximum price of the stock."
      • removedInput schema / properties / price_lower / title
        Removed value: -"Price Lower"
      • addedInput schema / properties / primary_only
        Added 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"
        +}
      • changedInput schema / properties / sector / description
        Previous 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\"."
      • removedInput schema / properties / sector / title
        Removed value: -"Sector"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • addedInput schema / properties / start_date
        Added value: +{
        +  "default": "",
        +  "description": "Start of the date range in YYYY-MM-DD format.",
        +  "type": "string"
        +}
      • changedInput schema / properties / volume_higher / description
        Previous value: -"Value for volume_higher."New value: +"The minimum volume of the stock, in shares traded."
      • removedInput schema / properties / volume_higher / title
        Removed value: -"Volume Higher"
      • changedInput schema / properties / volume_lower / description
        Previous value: -"Value for volume_lower."New value: +"The maximum volume of the stock."
      • removedInput schema / properties / volume_lower / title
        Removed value: -"Volume Lower"
      • removedInput schema / title
        Removed value: -"discoveryArguments"
    • Changedeconometrics160 fields changed
      • changedInput schema / properties / add_constant / description
        Previous value: -"Value for add_constant."New value: +"Whether to include an intercept."
      • removedInput schema / properties / add_constant / title
        Removed value: -"Add Constant"
      • changedInput schema / properties / asset_tickers / description
        Previous value: -"Value for asset_tickers."New value: +"The ticker(s) forming the cross-section of test assets."
      • removedInput schema / properties / asset_tickers / title
        Removed value: -"Asset Tickers"
      • changedInput schema / properties / bandwidth / description
        Previous value: -"Value for bandwidth."New value: +"The maximum distance from `cutoff` an observation may be to be included in either local regression."
      • removedInput schema / properties / bandwidth / title
        Removed value: -"Bandwidth"
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / break_date / description
        Previous 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."
      • removedInput schema / properties / break_date / title
        Removed value: -"Break Date"
      • changedInput schema / properties / caliper / description
        Previous value: -"Value for caliper."New value: +"The maximum allowed logit-propensity-score matching distance."
      • removedInput schema / properties / caliper / title
        Removed value: -"Caliper"
      • changedInput schema / properties / clusters / description
        Previous 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\"`."
      • removedInput schema / properties / clusters / title
        Removed value: -"Clusters"
      • changedInput schema / properties / column / description
        Previous 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."
      • removedInput schema / properties / column / title
        Removed value: -"Column"
      • changedInput schema / properties / control_tickers / description
        Previous value: -"Value for control_tickers."New value: +"The untreated comparison asset(s)."
      • removedInput schema / properties / control_tickers / title
        Removed value: -"Control Tickers"
      • changedInput schema / properties / cov_type / description
        Previous 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."
      • removedInput schema / properties / cov_type / title
        Removed value: -"Cov Type"
      • changedInput schema / properties / covariate_tickers / description
        Previous 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."
      • removedInput schema / properties / covariate_tickers / title
        Removed value: -"Covariate Tickers"
      • changedInput schema / properties / cutoff / description
        Previous 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."
      • removedInput schema / properties / cutoff / title
        Removed value: -"Cutoff"
      • changedInput schema / properties / d / description
        Previous 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)."
      • removedInput schema / properties / d / title
        Removed value: -"D"
      • changedInput schema / properties / dependent_ticker / description
        Previous 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."
      • removedInput schema / properties / dependent_ticker / title
        Removed value: -"Dependent Ticker"
      • changedInput schema / properties / dependent_tickers / description
        Previous value: -"Value for dependent_tickers."New value: +"The panel of entity tickers to explain."
      • removedInput schema / properties / dependent_tickers / title
        Removed value: -"Dependent Tickers"
      • changedInput schema / properties / det_order / description
        Previous 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)."
      • removedInput schema / properties / det_order / title
        Removed value: -"Det Order"
      • changedInput schema / properties / donor_tickers / description
        Previous value: -"Value for donor_tickers."New value: +"The ticker(s) forming the donor pool the synthetic control is built from."
      • removedInput schema / properties / donor_tickers / title
        Removed value: -"Donor Tickers"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • changedInput schema / properties / endogenous_ticker / description
        Previous 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."
      • removedInput schema / properties / endogenous_ticker / title
        Removed value: -"Endogenous Ticker"
      • changedInput schema / properties / entity_effects / description
        Previous value: -"Value for entity_effects."New value: +"Whether to control for time-invariant entity-specific characteristics."
      • removedInput schema / properties / entity_effects / title
        Removed value: -"Entity Effects"
      • changedInput schema / properties / equal_variance / description
        Previous 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."
      • removedInput schema / properties / equal_variance / title
        Removed value: -"Equal Variance"
      • changedInput schema / properties / estimation_window / description
        Previous value: -"Value for estimation_window."New value: +"Number of trading days used to estimate the market model."
      • removedInput schema / properties / estimation_window / title
        Removed value: -"Estimation Window"
      • changedInput schema / properties / event_date / description
        Previous 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."
      • removedInput schema / properties / event_date / title
        Removed value: -"Event Date"
      • changedInput schema / properties / exogenous_tickers / description
        Previous value: -"Value for exogenous_tickers."New value: +"Other, non-instrumented control asset(s) included as-is in both stages."
      • removedInput schema / properties / exogenous_tickers / title
        Removed value: -"Exogenous Tickers"
      • changedInput schema / properties / factor_tickers / description
        Previous 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)."
      • removedInput schema / properties / factor_tickers / title
        Removed value: -"Factor Tickers"
      • changedInput schema / properties / forecast_steps / description
        Previous value: -"Value for forecast_steps."New value: +"The number of periods ahead to forecast."
      • removedInput schema / properties / forecast_steps / title
        Removed value: -"Forecast Steps"
      • changedInput schema / properties / gap_days / description
        Previous value: -"Value for gap_days."New value: +"Number of trading days between the end of the estimation window and the event date."
      • removedInput schema / properties / gap_days / title
        Removed value: -"Gap Days"
      • changedInput schema / properties / include_benchmark / description
        Previous value: -"Value for include_benchmark."New value: +"Whether to include \"Benchmark\" among the assets tested."
      • removedInput schema / properties / include_benchmark / title
        Removed value: -"Include Benchmark"
      • changedInput schema / properties / include_constant / description
        Previous 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)."
      • removedInput schema / properties / include_constant / title
        Removed value: -"Include Constant"
      • changedInput schema / properties / independent_column / description
        Previous 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`."
      • removedInput schema / properties / independent_column / title
        Removed value: -"Independent Column"
      • changedInput schema / properties / independent_tickers / description
        Previous 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."
      • removedInput schema / properties / independent_tickers / title
        Removed value: -"Independent Tickers"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • changedInput schema / properties / instrument_tickers / description
        Previous 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."
      • removedInput schema / properties / instrument_tickers / title
        Removed value: -"Instrument Tickers"
      • changedInput schema / properties / k_ar_diff / description
        Previous value: -"Value for k_ar_diff."New value: +"The number of lagged first differences to include as short-run dynamics."
      • removedInput schema / properties / k_ar_diff / title
        Removed value: -"K Ar Diff"
      • changedInput schema / properties / kernel / description
        Previous value: -"Value for kernel."New value: +"One of \"uniform\" or \"triangular\"."
      • removedInput schema / properties / kernel / title
        Removed value: -"Kernel"
      • changedInput schema / properties / lags / description
        Previous 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."
      • removedInput schema / properties / lags / title
        Removed value: -"Lags"
      • changedInput schema / properties / lambda_ / description
        Previous value: -"Value for lambda_."New value: +"The decay factor used by the \"ewma\" method."
      • removedInput schema / properties / lambda_ / title
        Removed value: -"Lambda"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / loss / description
        Previous value: -"Value for loss."New value: +"The loss function to compare forecast errors with, one of \"squared\" or \"absolute\"."
      • removedInput schema / properties / loss / title
        Removed value: -"Loss"
      • changedInput schema / properties / max_lag / description
        Previous 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."
      • removedInput schema / properties / max_lag / title
        Removed value: -"Max Lag"
      • changedInput schema / properties / maxlags / description
        Previous 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."
      • removedInput schema / properties / maxlags / title
        Removed value: -"Maxlags"
      • changedInput schema / properties / method_a / description
        Previous value: -"Value for method_a."New value: +"The first volatility forecasting method, one of \"ewma\" or \"rolling\"."
      • removedInput schema / properties / method_a / title
        Removed value: -"Method A"
      • changedInput schema / properties / method_b / description
        Previous value: -"Value for method_b."New value: +"The second (competing) volatility forecasting method, one of \"ewma\" or \"rolling\"."
      • removedInput schema / properties / method_b / title
        Removed value: -"Method B"
      • changedInput schema / properties / model / description
        Previous value: -"Value for model."New value: +"Either \"arima\" or \"var\"."
      • removedInput schema / properties / model / title
        Removed value: -"Model"
      • changedInput schema / properties / n_bootstrap / description
        Previous 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."
      • removedInput schema / properties / n_bootstrap / title
        Removed value: -"N Bootstrap"
      • changedInput schema / properties / omega / description
        Previous 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."
      • removedInput schema / properties / omega / title
        Removed value: -"Omega"
      • changedInput schema / properties / orthogonalized / description
        Previous 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`."
      • removedInput schema / properties / orthogonalized / title
        Removed value: -"Orthogonalized"
      • changedInput schema / properties / other_independent_tickers / description
        Previous value: -"Value for other_independent_tickers."New value: +"Any other (assumed exogenous) independent asset(s) to include."
      • removedInput schema / properties / other_independent_tickers / title
        Removed value: -"Other Independent Tickers"
      • changedInput schema / properties / other_tickers / description
        Previous value: -"Value for other_tickers."New value: +"The other assets to include in the VAR system alongside the ticker being validated (`model=\"var\"` only)."
      • removedInput schema / properties / other_tickers / title
        Removed value: -"Other Tickers"
      • changedInput schema / properties / p / description
        Previous 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)."
      • removedInput schema / properties / p / title
        Removed value: -"P"
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • changedInput schema / properties / periods / description
        Previous 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."
      • removedInput schema / properties / periods / title
        Removed value: -"Periods"
      • changedInput schema / properties / post_event_days / description
        Previous value: -"Value for post_event_days."New value: +"Number of trading days after the event date included in the event window."
      • removedInput schema / properties / post_event_days / title
        Removed value: -"Post Event Days"
      • changedInput schema / properties / power / description
        Previous value: -"Value for power."New value: +"The highest power of the fitted values to add."
      • removedInput schema / properties / power / title
        Removed value: -"Power"
      • changedInput schema / properties / pre_event_days / description
        Previous value: -"Value for pre_event_days."New value: +"Number of trading days before the event date included in the event window."
      • removedInput schema / properties / pre_event_days / title
        Removed value: -"Pre Event Days"
      • changedInput schema / properties / q / description
        Previous 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."
      • removedInput schema / properties / q / title
        Removed value: -"Q"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / regression / description
        Previous value: -"Value for regression."New value: +"Which deterministic terms to include, one of \"n\" (none), \"c\" (constant) or \"ct\" (constant and trend)."
      • removedInput schema / properties / regression / title
        Removed value: -"Regression"
      • changedInput schema / properties / restricted_independent_tickers / description
        Previous 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."
      • removedInput schema / properties / restricted_independent_tickers / title
        Removed value: -"Restricted Independent Tickers"
      • changedInput schema / properties / restriction_matrix / description
        Previous 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."
      • removedInput schema / properties / restriction_matrix / title
        Removed value: -"Restriction Matrix"
      • changedInput schema / properties / restriction_values / description
        Previous value: -"Value for restriction_values."New value: +"The length-`q` vector of hypothesized values."
      • removedInput schema / properties / restriction_values / title
        Removed value: -"Restriction Values"
      • changedInput schema / properties / running_variable_ticker / description
        Previous 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."
      • removedInput schema / properties / running_variable_ticker / title
        Removed value: -"Running Variable Ticker"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / significance / description
        Previous 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."
      • removedInput schema / properties / significance / title
        Removed value: -"Significance"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • changedInput schema / properties / suspect_ticker / description
        Previous 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."
      • removedInput schema / properties / suspect_ticker / title
        Removed value: -"Suspect Ticker"
      • changedInput schema / properties / tau / description
        Previous value: -"Value for tau."New value: +"The quantile to fit, in (0, 1)."
      • removedInput schema / properties / tau / title
        Removed value: -"Tau"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • changedInput schema / properties / time_effects / description
        Previous value: -"Value for time_effects."New value: +"Whether to control for entity-invariant, time-specific shocks."
      • removedInput schema / properties / time_effects / title
        Removed value: -"Time Effects"
      • changedInput schema / properties / train_fraction / description
        Previous value: -"Value for train_fraction."New value: +"The fraction of observations used for training; the remainder is the holdout."
      • removedInput schema / properties / train_fraction / title
        Removed value: -"Train Fraction"
      • changedInput schema / properties / treated_ticker / description
        Previous 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."
      • removedInput schema / properties / treated_ticker / title
        Removed value: -"Treated Ticker"
      • changedInput schema / properties / treated_tickers / description
        Previous 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."
      • removedInput schema / properties / treated_tickers / title
        Removed value: -"Treated Tickers"
      • changedInput schema / properties / treatment_date / description
        Previous 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."
      • removedInput schema / properties / treatment_date / title
        Removed value: -"Treatment Date"
      • changedInput schema / properties / treatment_period / description
        Previous 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."
      • removedInput schema / properties / treatment_period / title
        Removed value: -"Treatment Period"
      • changedInput schema / properties / treatment_threshold / description
        Previous value: -"Value for treatment_threshold."New value: +"The return threshold defining treatment."
      • removedInput schema / properties / treatment_threshold / title
        Removed value: -"Treatment Threshold"
      • changedInput schema / properties / treatment_ticker / description
        Previous 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."
      • removedInput schema / properties / treatment_ticker / title
        Removed value: -"Treatment Ticker"
      • changedInput schema / properties / trim / description
        Previous 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)."
      • removedInput schema / properties / trim / title
        Removed value: -"Trim"
      • changedInput schema / properties / unrestricted_independent_tickers / description
        Previous 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."
      • removedInput schema / properties / unrestricted_independent_tickers / title
        Removed value: -"Unrestricted Independent Tickers"
      • changedInput schema / properties / weights / description
        Previous 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."
      • removedInput schema / properties / weights / title
        Removed value: -"Weights"
      • changedInput schema / properties / window_size / description
        Previous value: -"Value for window_size."New value: +"The rolling window size used by the \"rolling\" method."
      • removedInput schema / properties / window_size / title
        Removed value: -"Window Size"
      • changedInput schema / properties / within_period / description
        Previous 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..."
      • removedInput schema / properties / within_period / title
        Removed value: -"Within Period"
      • removedInput schema / title
        Removed value: -"econometricsArguments"
    • Changedefficiency21 fields changed
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • removedInput schema / title
        Removed value: -"efficiencyArguments"
    • Changedenvironment30 fields changed
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • addedInput schema / properties / countries / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / countries / description
        Previous value: -"Comma-separated country names, e.g. 'United States,Germany,Japan'."New value: +"Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'."
      • removedInput schema / properties / countries / title
        Removed value: -"Countries"
      • removedInput schema / properties / countries / type
        Removed value: -"string"
      • addedInput schema / properties / deviation
        Added value: +{
        +  "default": false,
        +  "description": "Whether to return the deviation from the baseline instead of the level.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • addedInput schema / properties / model
        Added value: +{
        +  "default": "REMIND-MAgPIE",
        +  "description": "The integrated assessment model behind the scenario: \"REMIND-MAgPIE\", \"GCAM\" or \"MESSAGEix-GLOBIOM\".",
        +  "type": "string"
        +}
      • addedInput schema / properties / period
        Added value: +{
        +  "default": "daily",
        +  "description": "Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method).",
        +  "type": "string"
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • addedInput schema / properties / risk
        Added value: +{
        +  "default": "combined",
        +  "description": "\"combined\", \"transition\" or \"physical\". Current Policies has physical risk only, which is also its combined risk.",
        +  "type": "string"
        +}
      • removedInput schema / properties / rolling / title
        Removed value: -"Rolling"
      • addedInput schema / properties / scenario
        Added 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"
        +}
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • addedInput schema / properties / variable
        Added 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"
        +}
      • removedInput schema / title
        Removed value: -"environmentArguments"
    • Changedfixed_income93 fields changed
      • changedInput schema / properties / bond_price / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / bond_price / title
        Removed value: -"Bond Price"
      • addedInput schema / properties / countries / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / countries / description
        Previous value: -"Comma-separated country names, e.g. 'United States,Germany,Japan'."New value: +"Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'."
      • removedInput schema / properties / countries / title
        Removed value: -"Countries"
      • removedInput schema / properties / countries / type
        Removed value: -"string"
      • changedInput schema / properties / coupon_rate / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / coupon_rate / title
        Removed value: -"Coupon Rate"
      • changedInput schema / properties / days_to_maturity / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / days_to_maturity / description
        Previous 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."
      • removedInput schema / properties / days_to_maturity / title
        Removed value: -"Days To Maturity"
      • changedInput schema / properties / discount_yield / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / discount_yield / description
        Previous 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."
      • removedInput schema / properties / discount_yield / title
        Removed value: -"Discount Yield"
      • changedInput schema / properties / duration_type / description
        Previous value: -"Value for duration_type."New value: +"The type of duration to calculate."
      • removedInput schema / properties / duration_type / title
        Removed value: -"Duration Type"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • changedInput schema / properties / far_maturity / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / far_maturity / description
        Previous 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."
      • removedInput schema / properties / far_maturity / title
        Removed value: -"Far Maturity"
      • changedInput schema / properties / forward_rate / description
        Previous value: -"Value for forward_rate."New value: +"The forward rate as derived from the swap curve."
      • removedInput schema / properties / forward_rate / title
        Removed value: -"Forward Rate"
      • changedInput schema / properties / frequency / description
        Previous 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."
      • removedInput schema / properties / frequency / title
        Removed value: -"Frequency"
      • changedInput schema / properties / guess / description
        Previous 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."
      • removedInput schema / properties / guess / title
        Removed value: -"Guess"
      • changedInput schema / properties / include_payoff / description
        Previous value: -"Value for include_payoff."New value: +"True to include the payoff in the output, False otherwise."
      • removedInput schema / properties / include_payoff / title
        Removed value: -"Include Payoff"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • changedInput schema / properties / is_receiver / description
        Previous value: -"Value for is_receiver."New value: +"True if the holder is the receiver of the derivative, False if the holder is the payer."
      • removedInput schema / properties / is_receiver / title
        Removed value: -"Is Receiver"
      • changedInput schema / properties / key_rate_maturity / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / key_rate_maturity / description
        Previous 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`."
      • removedInput schema / properties / key_rate_maturity / title
        Removed value: -"Key Rate Maturity"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / long_maturity / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / long_maturity / description
        Previous 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."
      • removedInput schema / properties / long_maturity / title
        Removed value: -"Long Maturity"
      • changedInput schema / properties / maturity / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / maturity / description
        Previous 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."
      • removedInput schema / properties / maturity / title
        Removed value: -"Maturity"
      • changedInput schema / properties / max_iterations / description
        Previous value: -"Value for max_iterations."New value: +"The maximum number of iterations for convergence."
      • removedInput schema / properties / max_iterations / title
        Removed value: -"Max Iterations"
      • changedInput schema / properties / model / description
        Previous value: -"Value for model."New value: +"The type of model to use for calculating the derivative price."
      • removedInput schema / properties / model / title
        Removed value: -"Model"
      • changedInput schema / properties / near_maturity / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / near_maturity / description
        Previous 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."
      • removedInput schema / properties / near_maturity / title
        Removed value: -"Near Maturity"
      • changedInput schema / properties / nominal_rates / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "type": "number"
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / nominal_rates / description
        Previous value: -"Value for nominal_rates."New value: +"The nominal (non-inflation-protected) yield curve, indexed by maturity in years (in decimal)."
      • removedInput schema / properties / nominal_rates / title
        Removed value: -"Nominal Rates"
      • changedInput schema / properties / notional / description
        Previous value: -"Value for notional."New value: +"The notional amount of the derivative."
      • removedInput schema / properties / notional / title
        Removed value: -"Notional"
      • changedInput schema / properties / par_value / description
        Previous 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."
      • removedInput schema / properties / par_value / title
        Removed value: -"Par Value"
      • changedInput schema / properties / payment_frequency / description
        Previous 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)."
      • removedInput schema / properties / payment_frequency / title
        Removed value: -"Payment Frequency"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / real_rates / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "type": "number"
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / real_rates / description
        Previous value: -"Value for real_rates."New value: +"The real (inflation-protected) yield curve, indexed by maturity in years (in decimal)."
      • removedInput schema / properties / real_rates / title
        Removed value: -"Real Rates"
      • changedInput schema / properties / risk_free_rate / description
        Previous value: -"Value for risk_free_rate."New value: +"The risk-free interest rate."
      • removedInput schema / properties / risk_free_rate / title
        Removed value: -"Risk Free Rate"
      • changedInput schema / properties / short_maturity / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / short_maturity / description
        Previous 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."
      • removedInput schema / properties / short_maturity / title
        Removed value: -"Short Maturity"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / show_input_info / description
        Previous 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."
      • removedInput schema / properties / show_input_info / title
        Removed value: -"Show Input Info"
      • changedInput schema / properties / spot_rates / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "type": "number"
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / spot_rates / description
        Previous value: -"Value for spot_rates."New value: +"The yield curve, indexed by maturity in years (in decimal)."
      • removedInput schema / properties / spot_rates / title
        Removed value: -"Spot Rates"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • changedInput schema / properties / strike_rate / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / strike_rate / title
        Removed value: -"Strike Rate"
      • changedInput schema / properties / tenor / description
        Previous value: -"Value for tenor."New value: +"The tenor (length in years) of the underlying swap."
      • removedInput schema / properties / tenor / title
        Removed value: -"Tenor"
      • changedInput schema / properties / tolerance / description
        Previous value: -"Value for tolerance."New value: +"The tolerance level for convergence."
      • removedInput schema / properties / tolerance / title
        Removed value: -"Tolerance"
      • changedInput schema / properties / volatility / description
        Previous value: -"Value for volatility."New value: +"The volatility of the underlying swap rate, quoted on the basis given by `volatility_type`."
      • removedInput schema / properties / volatility / title
        Removed value: -"Volatility"
      • changedInput schema / properties / volatility_type / description
        Previous 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)."
      • removedInput schema / properties / volatility_type / title
        Removed value: -"Volatility Type"
      • changedInput schema / properties / years_to_maturity / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / years_to_maturity / title
        Removed value: -"Years To Maturity"
      • changedInput schema / properties / yield_change / description
        Previous 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."
      • removedInput schema / properties / yield_change / title
        Removed value: -"Yield Change"
      • changedInput schema / properties / yield_to_maturity / description
        Previous 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."
      • removedInput schema / properties / yield_to_maturity / title
        Removed value: -"Yield To Maturity"
      • removedInput schema / title
        Removed value: -"fixed_incomeArguments"
    • Changedgovernment21 fields changed
      • addedInput schema / properties / countries / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / countries / description
        Previous value: -"Comma-separated country names, e.g. 'United States,Germany,Japan'."New value: +"Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'."
      • removedInput schema / properties / countries / title
        Removed value: -"Countries"
      • removedInput schema / properties / countries / type
        Removed value: -"string"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • addedInput schema / properties / gmdb_forecasts
        Added value: +{
        +  "default": false,
        +  "description": "Set to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • addedInput schema / properties / level
        Added value: +{
        +  "default": "consolidated",
        +  "description": "Level of government: 'consolidated' (longest history), 'general' (central, state and local government and social security) or 'central'.",
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / rolling / title
        Removed value: -"Rolling"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • removedInput schema / title
        Removed value: -"governmentArguments"
    • Changedjobs26 fields changed
      • addedInput schema / properties / countries / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / countries / description
        Previous value: -"Comma-separated country names, e.g. 'United States,Germany,Japan'."New value: +"Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'."
      • removedInput schema / properties / countries / title
        Removed value: -"Countries"
      • removedInput schema / properties / countries / type
        Removed value: -"string"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • addedInput schema / properties / gmdb_forecasts
        Added value: +{
        +  "default": false,
        +  "description": "Set to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / gmdb_source / title
        Removed value: -"Gmdb Source"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • addedInput schema / properties / measure
        Added value: +{
        +  "default": "death_probability",
        +  "description": "Sub-measure selector, e.g. 'M1', 'M2', or 'M3' for money supply.",
        +  "type": "string"
        +}
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / rolling / title
        Removed value: -"Rolling"
      • addedInput schema / properties / sex
        Added value: +{
        +  "default": "total",
        +  "description": "\"total\", \"male\" or \"female\".",
        +  "type": "string"
        +}
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • removedInput schema / title
        Removed value: -"jobsArguments"
    • Changedliquidity21 fields changed
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • removedInput schema / title
        Removed value: -"liquidityArguments"
    • Changedmacroeconomics55 fields changed
      • addedInput schema / properties / accept_licence
        Added 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"
        +}
      • addedInput schema / properties / asset_class
        Added value: +{
        +  "default": "equity",
        +  "description": "\"equity\", \"housing\", \"bonds\", \"bills\", \"risky\", \"safe\" or \"wealth\".",
        +  "type": "string"
        +}
      • addedInput schema / properties / asset_classes
        Added 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\"."
        +}
      • addedInput schema / properties / authority
        Added 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."
        +}
      • changedInput schema / properties / commodity / description
        Previous 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."
      • removedInput schema / properties / commodity / title
        Removed value: -"Commodity"
      • addedInput schema / properties / component
        Added value: +{
        +  "default": "total",
        +  "description": "Part of final consumption: 'total', 'household' or 'government'.",
        +  "type": "string"
        +}
      • changedInput schema / properties / contracts / description
        Previous value: -"Value for contracts."New value: +"The number of sequential monthly contracts ahead of today to attempt to fetch."
      • removedInput schema / properties / contracts / title
        Removed value: -"Contracts"
      • addedInput schema / properties / countries / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / countries / description
        Previous value: -"Comma-separated country names, e.g. 'United States,Germany,Japan'."New value: +"Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'."
      • removedInput schema / properties / countries / title
        Removed value: -"Countries"
      • removedInput schema / properties / countries / type
        Removed value: -"string"
      • addedInput schema / properties / currencies
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The currencies to keep, e.g. \"USD\" or [\"USD\", \"EUR\"]."
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • addedInput schema / properties / end_of_period
        Added value: +{
        +  "default": false,
        +  "description": "Whether to return the rate at the end of each month, quarter or year instead of its average.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / events
        Added 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\"]."
        +}
      • addedInput schema / properties / gmdb_forecasts
        Added value: +{
        +  "default": false,
        +  "description": "Set to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / gmdb_source / title
        Removed value: -"Gmdb Source"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • addedInput schema / properties / impact
        Added 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."
        +}
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • removedInput schema / properties / inflation_adjusted / title
        Removed value: -"Inflation Adjusted"
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • addedInput schema / properties / markets
        Added 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\"."
        +}
      • changedInput schema / properties / measure / description
        Previous 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."
      • removedInput schema / properties / measure / title
        Removed value: -"Measure"
      • changedInput schema / properties / oecd_source / description
        Previous value: -"Value for oecd_source."New value: +"Whether to get the data from the OECD instead of the Global Macro Database (GMDB)."
      • removedInput schema / properties / oecd_source / title
        Removed value: -"Oecd Source"
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). Leave unset to use the default of the indicator you selected. Defaults 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."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • addedInput schema / properties / quantiles
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The quantiles of the distribution per year."
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / rate_type / description
        Previous 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)."
      • removedInput schema / properties / rate_type / title
        Removed value: -"Rate Type"
      • addedInput schema / properties / real
        Added value: +{
        +  "default": false,
        +  "description": "Whether to deflate the returns by consumer price inflation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / returns
        Added value: +{
        +  "default": true,
        +  "description": "Whether to return the total return per period instead of the dividend-adjusted price.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / rolling / title
        Removed value: -"Rolling"
      • addedInput schema / properties / scenario
        Added value: +{
        +  "default": "adverse",
        +  "description": "\"baseline\", \"adverse\" (the Federal Reserve's severely adverse scenario) or \"historic\".",
        +  "type": "string"
        +}
      • addedInput schema / properties / scenarios
        Added value: +{
        +  "default": false,
        +  "description": "Whether to return every scenario instead of the distribution.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / series
        Added 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\"]."
        +}
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • addedInput schema / properties / usd
        Added 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"
        +}
      • addedInput schema / properties / variables
        Added 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\"."
        +}
      • addedInput schema / properties / year
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The year of the Federal Reserve's stress test."
        +}
      • addedInput schema / properties / year_over_year
        Added value: +{
        +  "default": false,
        +  "description": "Whether to return the change on the same quarter a year earlier instead of on the previous quarter.",
        +  "type": "boolean"
        +}
      • removedInput schema / title
        Removed value: -"macroeconomicsArguments"
    • Changedmarket_data42 fields changed
      • changedInput schema / properties / actual_dates / description
        Previous value: -"Value for actual_dates."New value: +"Defines whether to return the actual dates or the corresponding quarters."
      • removedInput schema / properties / actual_dates / title
        Removed value: -"Actual Dates"
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / divide_ohlc_by / description
        Previous 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."
      • removedInput schema / properties / divide_ohlc_by / title
        Removed value: -"Divide Ohlc By"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • changedInput schema / properties / enforce_source / description
        Previous 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."
      • removedInput schema / properties / enforce_source / title
        Removed value: -"Enforce Source"
      • changedInput schema / properties / fill_nan / description
        Previous 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."
      • removedInput schema / properties / fill_nan / title
        Removed value: -"Fill Nan"
      • addedInput schema / properties / fiscal_period
        Added 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."
        +}
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / include_dividends / description
        Previous value: -"Value for include_dividends."New value: +"Defines whether to include dividends in the return calculation."
      • removedInput schema / properties / include_dividends / title
        Removed value: -"Include Dividends"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / latest
        Added 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"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length. Leave unset to use the default of the indicator you selected. Defaults are 25 for get_etf_holdings."
        +}
      • changedInput schema / properties / period / description
        Previous 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."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / return_column / description
        Previous 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."
      • removedInput schema / properties / return_column / title
        Removed value: -"Return Column"
      • changedInput schema / properties / risk_free_rate / description
        Previous value: -"Value for risk_free_rate."New value: +"The maturity to return as the risk free rate ('13w', '5y', '10y' or '30y')."
      • removedInput schema / properties / risk_free_rate / title
        Removed value: -"Risk Free Rate"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / show_errors / description
        Previous value: -"Value for show_errors."New value: +"Whether to report retrieval errors."
      • removedInput schema / properties / show_errors / title
        Removed value: -"Show Errors"
      • changedInput schema / properties / show_ticker_seperation / description
        Previous 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."
      • removedInput schema / properties / show_ticker_seperation / title
        Removed value: -"Show Ticker Seperation"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • removedInput schema / title
        Removed value: -"market_dataArguments"
    • Changedmodels51 fields changed
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / calculate_daily / description
        Previous value: -"Value for calculate_daily."New value: +"Whether to calculate the PVGO using daily historical data."
      • removedInput schema / properties / calculate_daily / title
        Removed value: -"Calculate Daily"
      • changedInput schema / properties / cash_flow_type / description
        Previous value: -"Value for cash_flow_type."New value: +"The type of cash flow to use for the cash flow projections. Other options are \"Operating Cash Flow\", \"Change in Working Capital\", and \"Capital Expenditure\"."
      • removedInput schema / properties / cash_flow_type / title
        Removed value: -"Cash Flow Type"
      • changedInput schema / properties / diluted / description
        Previous value: -"Value for diluted."New value: +"For get_altman_z_score: Whether to use diluted shares outstanding in the calculation. For get_enterprise_value_breakdown, get_graham_number, get_market_value_added, get_present_value_of_growth_opportunities, get_tobins_q_ratio, get_weighted_average_cost_of_capital: Whether to use diluted shares in the calculation."
      • removedInput schema / properties / diluted / title
        Removed value: -"Diluted"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / growth_rate / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / growth_rate / title
        Removed value: -"Growth Rate"
      • changedInput schema / properties / high_growth_periods / description
        Previous value: -"Value for high_growth_periods."New value: +"The number of periods in the explicit high-growth phase."
      • removedInput schema / properties / high_growth_periods / title
        Removed value: -"High Growth Periods"
      • changedInput schema / properties / high_growth_rate / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / high_growth_rate / description
        Previous value: -"Value for high_growth_rate. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model."New value: +"The constant growth rate applied to dividends during the explicit high-growth phase. Can be one number to use for all tickers, or a list or dict that contains a high growth rate for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model."
      • removedInput schema / properties / high_growth_rate / title
        Removed value: -"High Growth Rate"
      • changedInput schema / properties / include_dividends / description
        Previous value: -"Value for include_dividends."New value: +"Whether to deduct Preferred Dividends Paid from Net Income when calculating the Earnings per Share, so that the earnings figure reflects what is attributable to common shareholders only."
      • removedInput schema / properties / include_dividends / title
        Removed value: -"Include Dividends"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / periods / description
        Previous value: -"Value for periods."New value: +"The number of periods to use for the cash flow projections."
      • removedInput schema / properties / periods / title
        Removed value: -"Periods"
      • changedInput schema / properties / perpetual_growth_rate / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / perpetual_growth_rate / title
        Removed value: -"Perpetual Growth Rate"
      • changedInput schema / properties / project_periods / description
        Previous value: -"Value for project_periods."New value: +"The number of periods to project the the stock price."
      • removedInput schema / properties / project_periods / title
        Removed value: -"Project Periods"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / rate_of_return / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / rate_of_return / description
        Previous value: -"Value for rate_of_return. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_two_stage_dividend_discount_model."New value: +"For get_gorden_growth_model: The required rate of return. For get_two_stage_dividend_discount_model: The required rate of return (discount rate) used to discount both phases. Can be one number to use for all tickers, or a list or dict that contains a rate of return for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_two_stage_dividend_discount_model."
      • removedInput schema / properties / rate_of_return / title
        Removed value: -"Rate Of Return"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / show_full_results / description
        Previous value: -"Value for show_full_results."New value: +"Whether to show the full results or just the WACC values."
      • removedInput schema / properties / show_full_results / title
        Removed value: -"Show Full Results"
      • changedInput schema / properties / stable_growth_rate / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / stable_growth_rate / description
        Previous value: -"Value for stable_growth_rate. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model."New value: +"The perpetual (terminal) growth rate applied to dividends from the end of the high-growth phase onward. Can be one number to use for all tickers, or a list or dict that contains a stable growth rate for each ticker. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model."
      • removedInput schema / properties / stable_growth_rate / title
        Removed value: -"Stable Growth Rate"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • changedInput schema / properties / weighted_average_cost_of_capital / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "items": {
        +      "type": "number"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / weighted_average_cost_of_capital / title
        Removed value: -"Weighted Average Cost Of Capital"
      • removedInput schema / title
        Removed value: -"modelsArguments"
    • Changedmomentum53 fields changed
      • changedInput schema / properties / base_window / description
        Previous 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."
      • removedInput schema / properties / base_window / title
        Removed value: -"Base Window"
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / close_column / description
        Previous 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."
      • removedInput schema / properties / close_column / title
        Removed value: -"Close Column"
      • changedInput schema / properties / constant / description
        Previous value: -"Value for constant."New value: +"Constant multiplier used in the CCI calculation."
      • removedInput schema / properties / constant / title
        Removed value: -"Constant"
      • changedInput schema / properties / conversion_window / description
        Previous value: -"Value for conversion_window."New value: +"The number of periods to consider for the Conversion Line (Tenkan-sen) calculation."
      • removedInput schema / properties / conversion_window / title
        Removed value: -"Conversion Window"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • changedInput schema / properties / lead_span_b_window / description
        Previous value: -"Value for lead_span_b_window."New value: +"The number of periods to consider for the Lead Span B (Senkou Span B) calculation."
      • removedInput schema / properties / lead_span_b_window / title
        Removed value: -"Lead Span B Window"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / long_window / description
        Previous 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."
      • removedInput schema / properties / long_window / title
        Removed value: -"Long Window"
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / roc_windows / description
        Previous value: -"Value for roc_windows."New value: +"The four lookback periods used for the underlying Rate of Change calculations."
      • removedInput schema / properties / roc_windows / title
        Removed value: -"Roc Windows"
      • changedInput schema / properties / short_window / description
        Previous 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."
      • removedInput schema / properties / short_window / title
        Removed value: -"Short Window"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / signal_window / description
        Previous 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."
      • removedInput schema / properties / signal_window / title
        Removed value: -"Signal Window"
      • changedInput schema / properties / sma_windows / description
        Previous value: -"Value for sma_windows."New value: +"The four Simple Moving Average smoothing periods applied to each Rate of Change series."
      • removedInput schema / properties / sma_windows / title
        Removed value: -"Sma Windows"
      • changedInput schema / properties / smooth_window / description
        Previous value: -"Value for smooth_window."New value: +"The number of periods used to smooth the %K line into the %D signal line."
      • removedInput schema / properties / smooth_window / title
        Removed value: -"Smooth Window"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • changedInput schema / properties / weights / description
        Previous 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."
      • removedInput schema / properties / weights / title
        Removed value: -"Weights"
      • changedInput schema / properties / window / description
        Previous 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."
      • removedInput schema / properties / window / title
        Removed value: -"Window"
      • changedInput schema / properties / window_1 / description
        Previous value: -"Value for window_1."New value: +"The number of periods for the first short-term window."
      • removedInput schema / properties / window_1 / title
        Removed value: -"Window 1"
      • changedInput schema / properties / window_2 / description
        Previous value: -"Value for window_2."New value: +"The number of periods for the second mid-term window."
      • removedInput schema / properties / window_2 / title
        Removed value: -"Window 2"
      • changedInput schema / properties / window_3 / description
        Previous value: -"Value for window_3."New value: +"The number of periods for the third long-term window."
      • removedInput schema / properties / window_3 / title
        Removed value: -"Window 3"
      • removedInput schema / title
        Removed value: -"momentumArguments"
    • Changedoptions81 fields changed
      • changedInput schema / properties / american_option / description
        Previous 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."
      • removedInput schema / properties / american_option / title
        Removed value: -"American Option"
      • changedInput schema / properties / barrier_direction / description
        Previous value: -"Value for barrier_direction."New value: +"Either \"down\" or \"up\"."
      • removedInput schema / properties / barrier_direction / title
        Removed value: -"Barrier Direction"
      • changedInput schema / properties / barrier_percentage / description
        Previous value: -"Value for barrier_percentage."New value: +"The barrier level as a percentage of the current stock price."
      • removedInput schema / properties / barrier_percentage / title
        Removed value: -"Barrier Percentage"
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / cash_payout / description
        Previous 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."
      • removedInput schema / properties / cash_payout / title
        Removed value: -"Cash Payout"
      • changedInput schema / properties / dividend_yield / description
        Previous value: -"Value for dividend_yield."New value: +"The dividend yield to use for the calculation."
      • removedInput schema / properties / dividend_yield / title
        Removed value: -"Dividend Yield"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • changedInput schema / properties / expiration_date / description
        Previous 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."
      • removedInput schema / properties / expiration_date / title
        Removed value: -"Expiration Date"
      • changedInput schema / properties / expiration_dates / description
        Previous value: -"Value for expiration_dates."New value: +"The expiration dates to fit the surface over."
      • removedInput schema / properties / expiration_dates / title
        Removed value: -"Expiration Dates"
      • changedInput schema / properties / expiration_time_range / description
        Previous value: -"Value for expiration_time_range."New value: +"The number of days to use for the time to expiration."
      • removedInput schema / properties / expiration_time_range / title
        Removed value: -"Expiration Time Range"
      • changedInput schema / properties / foreign_risk_free_rate / description
        Previous 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."
      • removedInput schema / properties / foreign_risk_free_rate / title
        Removed value: -"Foreign Risk Free Rate"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • changedInput schema / properties / knock_type / description
        Previous value: -"Value for knock_type."New value: +"Either \"in\" or \"out\"."
      • removedInput schema / properties / knock_type / title
        Removed value: -"Knock Type"
      • changedInput schema / properties / legs / anyOf
        Previous 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"
        +  }
        +]
      • changedInput schema / properties / legs / description
        Previous 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."
      • removedInput schema / properties / legs / title
        Removed value: -"Legs"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / number_of_expirations / description
        Previous value: -"Value for number_of_expirations."New value: +"The number of near-term expiration dates to fit when `expiration_dates` is not given."
      • removedInput schema / properties / number_of_expirations / title
        Removed value: -"Number Of Expirations"
      • changedInput schema / properties / number_of_strikes / description
        Previous value: -"Value for number_of_strikes."New value: +"The number of strikes in the evaluation grid."
      • removedInput schema / properties / number_of_strikes / title
        Removed value: -"Number Of Strikes"
      • changedInput schema / properties / option_type / description
        Previous value: -"Value for option_type."New value: +"Either \"cash-or-nothing\" or \"asset-or-nothing\"."
      • removedInput schema / properties / option_type / title
        Removed value: -"Option Type"
      • changedInput schema / properties / outlier_threshold / description
        Previous 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."
      • removedInput schema / properties / outlier_threshold / title
        Removed value: -"Outlier Threshold"
      • changedInput schema / properties / put_option / description
        Previous value: -"Value for put_option."New value: +"Whether to calculate the put option rho."
      • removedInput schema / properties / put_option / title
        Removed value: -"Put Option"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / rebate / description
        Previous value: -"Value for rebate."New value: +"The fixed cash amount paid out if the option knocks out (or fails to knock in)."
      • removedInput schema / properties / rebate / title
        Removed value: -"Rebate"
      • changedInput schema / properties / risk_free_rate / description
        Previous 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."
      • removedInput schema / properties / risk_free_rate / title
        Removed value: -"Risk Free Rate"
      • changedInput schema / properties / seed / description
        Previous value: -"Value for seed."New value: +"The seed used to initialize the random number generator, ensuring reproducible results."
      • removedInput schema / properties / seed / title
        Removed value: -"Seed"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / show_expiration_dates / description
        Previous 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."
      • removedInput schema / properties / show_expiration_dates / title
        Removed value: -"Show Expiration Dates"
      • changedInput schema / properties / show_input_info / description
        Previous value: -"Value for show_input_info."New value: +"Whether to show the input information."
      • removedInput schema / properties / show_input_info / title
        Removed value: -"Show Input Info"
      • changedInput schema / properties / show_standard_error / description
        Previous value: -"Value for show_standard_error."New value: +"Whether to also return the standard error of each Monte Carlo estimate as a second DataFrame."
      • removedInput schema / properties / show_standard_error / title
        Removed value: -"Show Standard Error"
      • addedInput schema / properties / show_unique_combinations / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / show_unique_combinations / default
        Previous value: -falseNew value: +null
      • changedInput schema / properties / show_unique_combinations / description
        Previous 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."
      • removedInput schema / properties / show_unique_combinations / title
        Removed value: -"Show Unique Combinations"
      • removedInput schema / properties / show_unique_combinations / type
        Removed value: -"boolean"
      • changedInput schema / properties / simulations / description
        Previous value: -"Value for simulations."New value: +"The number of simulated stock price paths."
      • removedInput schema / properties / simulations / title
        Removed value: -"Simulations"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • changedInput schema / properties / stock_price_range / description
        Previous value: -"Value for stock_price_range."New value: +"The percentage range to use for the stock prices at expiration."
      • removedInput schema / properties / stock_price_range / title
        Removed value: -"Stock Price Range"
      • changedInput schema / properties / stock_price_step_size / description
        Previous value: -"Value for stock_price_step_size."New value: +"The step size to use for the stock prices at expiration."
      • removedInput schema / properties / stock_price_step_size / title
        Removed value: -"Stock Price Step Size"
      • changedInput schema / properties / strike_price_range / description
        Previous 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."
      • removedInput schema / properties / strike_price_range / title
        Removed value: -"Strike Price Range"
      • changedInput schema / properties / strike_step_size / description
        Previous value: -"Value for strike_step_size."New value: +"The step size to use for the strike prices."
      • removedInput schema / properties / strike_step_size / title
        Removed value: -"Strike Step Size"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • changedInput schema / properties / time_steps / description
        Previous value: -"Value for time_steps."New value: +"The number of time steps used to build each simulated path."
      • removedInput schema / properties / time_steps / title
        Removed value: -"Time Steps"
      • changedInput schema / properties / time_to_expiration / description
        Previous value: -"Value for time_to_expiration."New value: +"The number of year to use for the time to expiration."
      • removedInput schema / properties / time_to_expiration / title
        Removed value: -"Time To Expiration"
      • changedInput schema / properties / timesteps / description
        Previous 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."
      • removedInput schema / properties / timesteps / title
        Removed value: -"Timesteps"
      • removedInput schema / title
        Removed value: -"optionsArguments"
    • Changedoverlap41 fields changed
      • changedInput schema / properties / af_increment / description
        Previous value: -"Value for af_increment."New value: +"Amount by which the acceleration factor increases every time a new extreme point is reached."
      • removedInput schema / properties / af_increment / title
        Removed value: -"Af Increment"
      • changedInput schema / properties / af_max / description
        Previous value: -"Value for af_max."New value: +"Maximum value the acceleration factor can reach."
      • removedInput schema / properties / af_max / title
        Removed value: -"Af Max"
      • changedInput schema / properties / af_start / description
        Previous value: -"Value for af_start."New value: +"Initial acceleration factor."
      • removedInput schema / properties / af_start / title
        Removed value: -"Af Start"
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / close_column / description
        Previous value: -"Value for close_column."New value: +"The column name for closing prices in the historical data."
      • removedInput schema / properties / close_column / title
        Removed value: -"Close Column"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • changedInput schema / properties / fast_window / description
        Previous 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)."
      • removedInput schema / properties / fast_window / title
        Removed value: -"Fast Window"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • changedInput schema / properties / levels / description
        Previous value: -"Value for levels."New value: +"The Fibonacci ratios to calculate levels for."
      • removedInput schema / properties / levels / title
        Removed value: -"Levels"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / sensitivity / description
        Previous 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."
      • removedInput schema / properties / sensitivity / title
        Removed value: -"Sensitivity"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / slow_window / description
        Previous 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)."
      • removedInput schema / properties / slow_window / title
        Removed value: -"Slow Window"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • changedInput schema / properties / trend / description
        Previous 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)."
      • removedInput schema / properties / trend / title
        Removed value: -"Trend"
      • changedInput schema / properties / window / description
        Previous 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."
      • removedInput schema / properties / window / title
        Removed value: -"Window"
      • removedInput schema / title
        Removed value: -"overlapArguments"
    • Changedperformance48 fields changed
      • changedInput schema / properties / adjustment / description
        Previous value: -"Value for adjustment."New value: +"The fixed adjustment added to the Average Drawdown, conventionally 0.1 (10%)."
      • removedInput schema / properties / adjustment / title
        Removed value: -"Adjustment"
      • changedInput schema / properties / alpha / description
        Previous 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)."
      • removedInput schema / properties / alpha / title
        Removed value: -"Alpha"
      • addedInput schema / properties / annualize
        Added 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"
        +}
      • changedInput schema / properties / benchmark_sharpe_ratio / description
        Previous 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\"."
      • removedInput schema / properties / benchmark_sharpe_ratio / title
        Removed value: -"Benchmark Sharpe Ratio"
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • removedInput schema / properties / cumulative / title
        Removed value: -"Cumulative"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • changedInput schema / properties / exclude_risk_free / description
        Previous value: -"Value for exclude_risk_free."New value: +"Whether to exclude the risk-free rate from the results."
      • removedInput schema / properties / exclude_risk_free / title
        Removed value: -"Exclude Risk Free"
      • removedInput schema / properties / factors_to_calculate / title
        Removed value: -"Factors To Calculate"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / include_daily_residuals / description
        Previous value: -"Value for include_daily_residuals."New value: +"Whether to also return the pointwise (daily) regression residuals as a second DataFrame."
      • removedInput schema / properties / include_daily_residuals / title
        Removed value: -"Include Daily Residuals"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / method / description
        Previous 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."
      • removedInput schema / properties / method / title
        Removed value: -"Method"
      • removedInput schema / properties / minimum_acceptable_return / title
        Removed value: -"Minimum Acceptable Return"
      • changedInput schema / properties / n_trials / description
        Previous 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."
      • removedInput schema / properties / n_trials / title
        Removed value: -"N Trials"
      • changedInput schema / properties / order / description
        Previous value: -"Value for order."New value: +"The order of the lower partial moment used in the denominator."
      • removedInput schema / properties / order / title
        Removed value: -"Order"
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / rolling / title
        Removed value: -"Rolling"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / show_full_results / description
        Previous value: -"Value for show_full_results."New value: +"Whether to show the actual and benchmark returns next to the Alpha."
      • removedInput schema / properties / show_full_results / title
        Removed value: -"Show Full Results"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • changedInput schema / properties / trials_window / description
        Previous 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\"."
      • removedInput schema / properties / trials_window / title
        Removed value: -"Trials Window"
      • changedInput schema / properties / within_period / description
        Previous 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."
      • removedInput schema / properties / within_period / title
        Removed value: -"Within Period"
      • removedInput schema / title
        Removed value: -"performanceArguments"
    • Changedprofitability22 fields changed
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / dividend_adjusted / description
        Previous value: -"Value for dividend_adjusted."New value: +"Whether to adjust the net operating profit after taxes with the dividends paid."
      • removedInput schema / properties / dividend_adjusted / title
        Removed value: -"Dividend Adjusted"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • removedInput schema / title
        Removed value: -"profitabilityArguments"
    • Changedrates43 fields changed
      • addedInput schema / properties / agency
        Added value: +{
        +  "default": "S&P",
        +  "description": "The rating agency, e.g. \"S&P\", \"Moody's\", \"Fitch\", \"DBRS\", \"Scope\" or \"Kroll\", or the CEREP code of any registered agency.",
        +  "type": "string"
        +}
      • addedInput schema / properties / countries / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / countries / description
        Previous value: -"Comma-separated country names, e.g. 'United States,Germany,Japan'."New value: +"Country names, comma-separated or as a list, e.g. 'United States,Germany,Japan'."
      • removedInput schema / properties / countries / title
        Removed value: -"Countries"
      • removedInput schema / properties / countries / type
        Removed value: -"string"
      • addedInput schema / properties / curve
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "For get_eiopa_risk_free_rate: \"spot_no_va\", \"spot_with_va\", \"shock_up\" or \"shock_down\". For get_bank_of_england_yield_curve: \"nominal\" or \"ois\". Leave unset to use the default of the indicator you selected. Defaults are 'nominal' for get_bank_of_england_yield_curve; 'spot_no_va' for get_eiopa_risk_free_rate."
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • addedInput schema / properties / gmdb_forecasts
        Added value: +{
        +  "default": false,
        +  "description": "Set to true to include the years the Global Macro Database projects (IMF World Economic Outlook, up to five years ahead); by default a yearly series ends with its last observation.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / gmdb_source / title
        Removed value: -"Gmdb Source"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • addedInput schema / properties / horizon
        Added value: +{
        +  "default": 1,
        +  "description": "The length of the period in years, from 1 January of year.",
        +  "type": "integer"
        +}
      • addedInput schema / properties / include_withdrawals
        Added value: +{
        +  "default": false,
        +  "description": "Whether to keep the ratings withdrawn during the period as a \"Withdrawals\" column.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_central_bank_policy_rate",
        -  "get_short_term_interest_rate",
        -  "get_long_term_interest_rate",
        -  "get_government_bond_yield",
        -  "get_euribor_rates",
        -  "get_european_central_bank_rates",
        -  "get_federal_reserve_rates",
        -  "get_ice_bofa_effective_yield",
        -  "get_ice_bofa_option_adjusted_spread",
        -  "get_ice_bofa_total_return",
        -  "get_ice_bofa_yield_to_worst",
        -  "get_mortgage_rate_30_year",
        -  "get_real_yield_curve",
        -  "get_breakeven_inflation_expectations",
        -  "get_treasury_rates",
        -  "get_yield_curve_slope"
        -]New value: +[
        +  "get_central_bank_policy_rate",
        +  "get_short_term_interest_rate",
        +  "get_long_term_interest_rate",
        +  "get_overnight_rate",
        +  "get_government_bond_yield",
        +  "get_government_bond_yield_curve",
        +  "get_euribor_rates",
        +  "get_european_central_bank_rates",
        +  "get_federal_reserve_rates",
        +  "get_ice_bofa_effective_yield",
        +  "get_ice_bofa_option_adjusted_spread",
        +  "get_ice_bofa_total_return",
        +  "get_ice_bofa_yield_to_worst",
        +  "get_hqm_corporate_bond_yield_curve",
        +  "get_hqm_corporate_bond_spread",
        +  "get_moodys_corporate_bond_yields",
        +  "get_excess_bond_premium",
        +  "get_eiopa_risk_free_rate",
        +  "get_bank_of_england_yield_curve",
        +  "get_corporate_borrowing_cost",
        +  "get_corporate_bond_yields",
        +  "get_rating_transition_matrix",
        +  "get_default_rates",
        +  "get_eiopa_symmetric_adjustment",
        +  "get_financial_stress_index",
        +  "get_mortgage_rate_30_year",
        +  "get_real_yield_curve",
        +  "get_breakeven_inflation_expectations",
        +  "get_inflation_expectations",
        +  "get_treasury_rates",
        +  "get_yield_curve_slope"
        +]
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • removedInput schema / properties / maturities / title
        Removed value: -"Maturities"
      • changedInput schema / properties / maturity / description
        Previous value: -"Value for maturity."New value: +"Whether to return the maturity total return or the rating total return."
      • removedInput schema / properties / maturity / title
        Removed value: -"Maturity"
      • addedInput schema / properties / maturity_years
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated maturities in years to return, e.g. '1,2,5,10,20,30'. Leave unset to use the default of the indicator you selected. Defaults are [1, 2, 5, 10, 20, 30] for get_eiopa_risk_free_rate."
        +}
      • changedInput schema / properties / nominal / description
        Previous value: -"Value for nominal."New value: +"Whether to retrieve the nominal Euribor fixings or their real (inflation-adjusted) counterpart. The ECB only publishes a real Euribor for the 3-month maturity, so nominal=False returns that maturity alone and warns about any others that were requested rather than silently answering them with a..."
      • removedInput schema / properties / nominal / title
        Removed value: -"Nominal"
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). Leave unset to use the default of the indicator you selected. Defaults differ between indicators."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • addedInput schema / properties / probabilities
        Added value: +{
        +  "default": true,
        +  "description": "Whether to return the share of ratings per row instead of the number.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / rate / description
        Previous value: -"Value for rate. Leave unset to use the default of the indicator you selected. Defaults are 'EFFR' for get_federal_reserve_rates; None for get_european_central_bank_rates."New value: +"For get_european_central_bank_rates: The rate to return. Choose between 'refinancing', 'lending' or 'deposit'. For get_federal_reserve_rates: The rate to return. For get_hqm_corporate_bond_yield_curve: \"spot\" for the spot rates or \"par\" for the par yields. Leave unset to use the default of the indicator you selected. Defaults are 'EFFR' for get_federal_reserve_rates; None for get_european_central_bank_rates; 'spot' for get_hqm_corporate_bond_yield_curve."
      • removedInput schema / properties / rate / title
        Removed value: -"Rate"
      • addedInput schema / properties / rating_type
        Added value: +{
        +  "default": "corporate",
        +  "description": "\"corporate\", \"sovereign\", \"structured_finance\" or \"covered_bonds\".",
        +  "type": "string"
        +}
      • addedInput schema / properties / region
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The area of the rated entities: \"Africa\", \"America\", \"Asia\", \"Europe\", \"EU members\", \"International\" or \"Oceania\"."
        +}
      • removedInput schema / properties / rolling / title
        Removed value: -"Rolling"
      • changedInput schema / properties / short_term / description
        Previous value: -"Value for short_term."New value: +"Whether to return the short-term interest rate. This means that the long-term interest rate will be returned."
      • removedInput schema / properties / short_term / title
        Removed value: -"Short Term"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • addedInput schema / properties / spread
        Added value: +{
        +  "default": false,
        +  "description": "For get_moodys_corporate_bond_yields: Whether to return the spreads over the 10-year Treasury yield instead of the yields. For get_corporate_bond_yields: Whether to return the spread over government bonds instead of the yield.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • addedInput schema / properties / year
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The first year of the period."
        +}
      • removedInput schema / title
        Removed value: -"ratesArguments"
    • Changedrisk98 fields changed
      • changedInput schema / properties / alpha / description
        Previous value: -"Value for alpha."New value: +"The confidence level (e.g., 0.05 for 95% confidence)."
      • removedInput schema / properties / alpha / title
        Removed value: -"Alpha"
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / column / description
        Previous value: -"Value for column."New value: +"The price column to use, e.g. 'Close' or 'Adj Close'."
      • removedInput schema / properties / column / title
        Removed value: -"Column"
      • changedInput schema / properties / conditioning_ticker / description
        Previous 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."
      • removedInput schema / properties / conditioning_ticker / title
        Removed value: -"Conditioning Ticker"
      • changedInput schema / properties / copula / description
        Previous 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\"."
      • removedInput schema / properties / copula / title
        Removed value: -"Copula"
      • changedInput schema / properties / distribution / description
        Previous value: -"Value for distribution."New value: +"The distribution to use for the rolling VaR estimates, one of \"historic\", \"gaussian\", \"studentt\" or \"evt\"."
      • removedInput schema / properties / distribution / title
        Removed value: -"Distribution"
      • changedInput schema / properties / dof / description
        Previous value: -"Value for dof."New value: +"The degrees of freedom of the Student-T copula, only used when `method=\"student-t\"`."
      • removedInput schema / properties / dof / title
        Removed value: -"Dof"
      • changedInput schema / properties / empirical_margins / description
        Previous 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."
      • removedInput schema / properties / empirical_margins / title
        Removed value: -"Empirical Margins"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • changedInput schema / properties / estimator / description
        Previous value: -"Value for estimator."New value: +"How to construct the daily Realized Variance input, one of \"squared_return\", \"parkinson\", \"garman_klass\" or \"rogers_satchell\"."
      • removedInput schema / properties / estimator / title
        Removed value: -"Estimator"
      • changedInput schema / properties / fisher / description
        Previous value: -"Value for fisher."New value: +"Whether to use Fisher's definition of kurtosis (kurtosis = 0.0 for a normal distribution)."
      • removedInput schema / properties / fisher / title
        Removed value: -"Fisher"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / horizon / description
        Previous value: -"Value for horizon."New value: +"The number of days ahead to forecast."
      • removedInput schema / properties / horizon / title
        Removed value: -"Horizon"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • changedInput schema / properties / k / description
        Previous 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."
      • removedInput schema / properties / k / title
        Removed value: -"K"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • changedInput schema / properties / lags / description
        Previous value: -"Value for lags."New value: +"The number of lags (past periods) the test or model uses, e.g. 1 or 5."
      • removedInput schema / properties / lags / title
        Removed value: -"Lags"
      • changedInput schema / properties / lambda_ / description
        Previous 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."
      • removedInput schema / properties / lambda_ / title
        Removed value: -"Lambda"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / max_lag / description
        Previous value: -"Value for max_lag."New value: +"The maximum lag to use when estimating the exponent."
      • removedInput schema / properties / max_lag / title
        Removed value: -"Max Lag"
      • changedInput schema / properties / method / description
        Previous 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."
      • removedInput schema / properties / method / title
        Removed value: -"Method"
      • removedInput schema / properties / minimum_acceptable_return / title
        Removed value: -"Minimum Acceptable Return"
      • changedInput schema / properties / monthly_window / description
        Previous value: -"Value for monthly_window."New value: +"The trailing window (in trading days) for the monthly RV component."
      • removedInput schema / properties / monthly_window / title
        Removed value: -"Monthly Window"
      • changedInput schema / properties / n_bootstrap / description
        Previous value: -"Value for n_bootstrap."New value: +"The number of bootstrap resamples used to estimate the Standard Error of Z2."
      • removedInput schema / properties / n_bootstrap / title
        Removed value: -"N Bootstrap"
      • addedInput schema / properties / n_simulations / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / n_simulations / default
        Previous value: -10000New value: +null
      • changedInput schema / properties / n_simulations / description
        Previous 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."
      • removedInput schema / properties / n_simulations / title
        Removed value: -"N Simulations"
      • removedInput schema / properties / n_simulations / type
        Removed value: -"integer"
      • changedInput schema / properties / optimization_t / description
        Previous 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."
      • removedInput schema / properties / optimization_t / title
        Removed value: -"Optimization T"
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • changedInput schema / properties / q / description
        Previous value: -"Value for q."New value: +"The threshold quantile used for the \"empirical\" method, in (0.5, 1)."
      • removedInput schema / properties / q / title
        Removed value: -"Q"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • changedInput schema / properties / random_state / description
        Previous 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."
      • removedInput schema / properties / random_state / title
        Removed value: -"Random State"
      • removedInput schema / properties / rolling / title
        Removed value: -"Rolling"
      • addedInput schema / properties / scale / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / scale / default
        Previous value: -1000000New value: +null
      • changedInput schema / properties / scale / description
        Previous 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."
      • removedInput schema / properties / scale / title
        Removed value: -"Scale"
      • removedInput schema / properties / scale / type
        Removed value: -"number"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / show_full_results / description
        Previous value: -"Value for show_full_results."New value: +"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,..."
      • removedInput schema / properties / show_full_results / title
        Removed value: -"Show Full Results"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • changedInput schema / properties / tail / description
        Previous value: -"Value for tail."New value: +"Which tail to estimate, one of \"left\" (the loss tail) or \"right\" (the gain tail)."
      • removedInput schema / properties / tail / title
        Removed value: -"Tail"
      • changedInput schema / properties / test / description
        Previous value: -"Value for test."New value: +"Which test(s) to run, one of \"kupiec\", \"christoffersen\" or \"both\"."
      • removedInput schema / properties / test / title
        Removed value: -"Test"
      • removedInput schema / properties / threshold_percentile / title
        Removed value: -"Threshold Percentile"
      • changedInput schema / properties / ticker / description
        Previous 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."
      • removedInput schema / properties / ticker / title
        Removed value: -"Ticker"
      • changedInput schema / properties / ticker_a / description
        Previous 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."
      • removedInput schema / properties / ticker_a / title
        Removed value: -"Ticker A"
      • changedInput schema / properties / ticker_b / description
        Previous 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."
      • removedInput schema / properties / ticker_b / title
        Removed value: -"Ticker B"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • changedInput schema / properties / time_steps / description
        Previous 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."
      • removedInput schema / properties / time_steps / title
        Removed value: -"Time Steps"
      • changedInput schema / properties / weekly_window / description
        Previous value: -"Value for weekly_window."New value: +"The trailing window (in trading days) for the weekly RV component."
      • removedInput schema / properties / weekly_window / title
        Removed value: -"Weekly Window"
      • changedInput schema / properties / weights / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "type": "number"
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / weights / description
        Previous 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."
      • removedInput schema / properties / weights / title
        Removed value: -"Weights"
      • changedInput schema / properties / window_size / description
        Previous 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."
      • removedInput schema / properties / window_size / title
        Removed value: -"Window Size"
      • changedInput schema / properties / within_period / description
        Previous value: -"Value for within_period."New value: +"Whether to calculate GJR-GARCH within each specified period or all at once."
      • removedInput schema / properties / within_period / title
        Removed value: -"Within Period"
      • removedInput schema / title
        Removed value: -"riskArguments"
    • Removedsearch_categories
    • Removedsearch_instruments
    • Addedsearch_metric_categories
    • Changedsolvency24 fields changed
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / diluted / description
        Previous value: -"Value for diluted."New value: +"Whether to use diluted shares for market capitalization."
      • removedInput schema / properties / diluted / title
        Removed value: -"Diluted"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / show_daily / description
        Previous value: -"Value for show_daily."New value: +"Whether to use daily data for the calculation."
      • removedInput schema / properties / show_daily / title
        Removed value: -"Show Daily"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • removedInput schema / title
        Removed value: -"solvencyArguments"
    • Changedvaluation28 fields changed
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / diluted / description
        Previous 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."
      • removedInput schema / properties / diluted / title
        Removed value: -"Diluted"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / include_dividends / description
        Previous 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."
      • removedInput schema / properties / include_dividends / title
        Removed value: -"Include Dividends"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • changedInput schema / properties / show_daily / description
        Previous value: -"Value for show_daily."New value: +"Whether to show daily data."
      • removedInput schema / properties / show_daily / title
        Removed value: -"Show Daily"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • removedInput schema / properties / trailing / title
        Removed value: -"Trailing"
      • changedInput schema / properties / use_ebitda_growth_rate / description
        Previous value: -"Value for use_ebitda_growth_rate."New value: +"Whether to use EBITDA growth rate for the calculation."
      • removedInput schema / properties / use_ebitda_growth_rate / title
        Removed value: -"Use Ebitda Growth Rate"
      • removedInput schema / title
        Removed value: -"valuationArguments"
    • Changedvolatility35 fields changed
      • changedInput schema / properties / atr_multiplier / description
        Previous value: -"Value for atr_multiplier."New value: +"Multiplier for ATR to determine channel width."
      • removedInput schema / properties / atr_multiplier / title
        Removed value: -"Atr Multiplier"
      • changedInput schema / properties / atr_window / description
        Previous value: -"Value for atr_window."New value: +"Number of periods for ATR calculation."
      • removedInput schema / properties / atr_window / title
        Removed value: -"Atr Window"
      • removedInput schema / properties / benchmark_ticker / title
        Removed value: -"Benchmark Ticker"
      • changedInput schema / properties / close_column / description
        Previous value: -"Value for close_column."New value: +"The column name for closing prices in the historical data."
      • removedInput schema / properties / close_column / title
        Removed value: -"Close Column"
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-10-02"New value: +"2026-10-14"
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / growth / title
        Removed value: -"Growth"
      • changedInput schema / properties / indicator / description
        Previous value: -"Name of the specific metric to calculate, e.g. 'get_asset_turnover_ratio'. Required — omitting it returns the list of available indicators."New value: +"Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name."
      • removedInput schema / properties / indicator / title
        Removed value: -"Indicator"
      • addedInput schema / properties / lag / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "items": {
        +      "type": "integer"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / lag / title
        Removed value: -"Lag"
      • removedInput schema / properties / lag / type
        Removed value: -"integer"
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length."
        +}
      • changedInput schema / properties / multiplier / description
        Previous value: -"Value for multiplier."New value: +"Multiplier applied to the Average True Range to determine how far the bands sit from the median price."
      • removedInput schema / properties / multiplier / title
        Removed value: -"Multiplier"
      • changedInput schema / properties / num_std_dev / description
        Previous value: -"Value for num_std_dev."New value: +"Number of standard deviations for the bands."
      • removedInput schema / properties / num_std_dev / title
        Removed value: -"Num Std Dev"
      • changedInput schema / properties / period / description
        Previous value: -"Observation frequency, e.g. 'monthly', 'quarterly', or 'annual'."New value: +"Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method)."
      • removedInput schema / properties / period / title
        Removed value: -"Period"
      • removedInput schema / properties / quarterly / title
        Removed value: -"Quarterly"
      • removedInput schema / properties / show_columns / title
        Removed value: -"Show Columns"
      • removedInput schema / properties / standardize / title
        Removed value: -"Standardize"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-10-03"New value: +"2021-10-15"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • addedInput schema / properties / tickers / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / tickers / title
        Removed value: -"Tickers"
      • removedInput schema / properties / tickers / type
        Removed value: -"string"
      • changedInput schema / properties / window / description
        Previous 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."
      • removedInput schema / properties / window / title
        Removed value: -"Window"
      • changedInput schema / properties / windows / description
        Previous value: -"Value for windows."New value: +"The rolling windows (in periods) to calculate realized volatility for."
      • removedInput schema / properties / windows / title
        Removed value: -"Windows"
      • removedInput schema / title
        Removed value: -"volatilityArguments"
  2. 21 tool updatesv2.2.1
    • Changedbreadth2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedeconometrics3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
      • changedInput schema / properties / within_period / default
        Previous value: -trueNew value: +false
    • Changedefficiency2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedenvironment2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedfixed_income2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedgovernment2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedjobs2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedliquidity2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedmacroeconomics2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedmarket_data2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedmodels2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedmomentum2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedoptions3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
      • changedInput schema / properties / stock_price_step_size / type
        Previous value: -"number"New value: +"integer"
    • Changedoverlap2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedperformance2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedprofitability2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedrates2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedrisk6 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
      • removedInput schema / properties / within_period / anyOf
        Removed value: -[
        -  {
        -    "type": "boolean"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / within_period / default
        Previous value: -nullNew value: +false
      • changedInput schema / properties / within_period / description
        Previous 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."
      • addedInput schema / properties / within_period / type
        Added value: +"boolean"
    • Changedsolvency2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedvaluation2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
    • Changedvolatility2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-08-19"New value: +"2026-10-02"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-08-20"New value: +"2021-10-03"
  3. 22 tool updatesv2.2.0
    • Changedbreadth9 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / start_value
        Added value: +{
        +  "default": 1000,
        +  "description": "Value for start_value.",
        +  "title": "Start Value",
        +  "type": "number"
        +}
      • addedInput schema / properties / volume_divisor
        Added value: +{
        +  "default": 100000000,
        +  "description": "Value for volume_divisor.",
        +  "title": "Volume Divisor",
        +  "type": "number"
        +}
      • addedInput schema / properties / window / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / window / default
        Previous value: -252New value: +null
      • changedInput schema / properties / window / description
        Previous 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."
      • removedInput schema / properties / window / type
        Removed value: -"integer"
    • Changeddiscovery6 fields changed
      • addedInput schema / properties / country
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for country.",
        +  "title": "Country"
        +}
      • addedInput schema / properties / exchange
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for exchange.",
        +  "title": "Exchange"
        +}
      • addedInput schema / properties / limit / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / limit / default
        Previous value: -100New value: +null
      • changedInput schema / properties / limit / description
        Previous 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."
      • removedInput schema / properties / limit / type
        Removed value: -"integer"
    • Addedeconometrics
    • Changedefficiency3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedenvironment2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedfixed_income21 fields changed
      • changedInput schema / properties / coupon_rate / description
        Previous 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."
      • addedInput schema / properties / days_to_maturity
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for days_to_maturity.",
        +  "title": "Days To Maturity"
        +}
      • addedInput schema / properties / discount_yield
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for discount_yield.",
        +  "title": "Discount Yield"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • addedInput schema / properties / far_maturity
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for far_maturity.",
        +  "title": "Far Maturity"
        +}
      • addedInput schema / properties / guess / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / guess / default
        Previous value: -0.05New value: +null
      • changedInput schema / properties / guess / description
        Previous 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."
      • removedInput schema / properties / guess / type
        Removed value: -"number"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / key_rate_maturity
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for key_rate_maturity.",
        +  "title": "Key Rate Maturity"
        +}
      • addedInput schema / properties / long_maturity
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for long_maturity.",
        +  "title": "Long Maturity"
        +}
      • addedInput schema / properties / maturity
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for maturity.",
        +  "title": "Maturity"
        +}
      • addedInput schema / properties / near_maturity
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for near_maturity.",
        +  "title": "Near Maturity"
        +}
      • addedInput schema / properties / nominal_rates
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for nominal_rates.",
        +  "title": "Nominal Rates"
        +}
      • addedInput schema / properties / real_rates
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for real_rates.",
        +  "title": "Real Rates"
        +}
      • addedInput schema / properties / short_maturity
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for short_maturity.",
        +  "title": "Short Maturity"
        +}
      • addedInput schema / properties / spot_rates
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for spot_rates.",
        +  "title": "Spot Rates"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / volatility_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for volatility_type.",
        +  "title": "Volatility Type"
        +}
      • addedInput schema / properties / yield_change
        Added 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"
        +}
    • Changedgovernment2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedjobs4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / gmdb_source / description
        Previous value: -"Use the OECD Global Macro Data Bank as the data source when True."New value: +"Use the Global Macro Database as the data source when True, rather than the OECD. The two are independent providers with different country and period coverage; both return rates and ratios as decimal fractions."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedliquidity4 fields changed
      • addedInput schema / properties / days
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Number of calendar days used in day-count-based calculations.",
        +  "title": "Days"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedmacroeconomics8 fields changed
      • addedInput schema / properties / commodity
        Added 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"
        +}
      • addedInput schema / properties / contracts
        Added value: +{
        +  "default": 12,
        +  "description": "Value for contracts.",
        +  "title": "Contracts",
        +  "type": "integer"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / gmdb_source / description
        Previous value: -"Use the OECD Global Macro Data Bank as the data source when True."New value: +"Use the Global Macro Database as the data source when True, rather than the OECD. The two are independent providers with different country and period coverage; both return rates and ratios as decimal fractions."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • addedInput schema / properties / oecd_source
        Added value: +{
        +  "default": false,
        +  "description": "Value for oecd_source.",
        +  "title": "Oecd Source",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / rate_type
        Added value: +{
        +  "default": "long_term",
        +  "description": "Value for rate_type.",
        +  "title": "Rate Type",
        +  "type": "string"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedmarket_data11 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / period / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / period / default
        Previous value: -"daily"New value: +null
      • changedInput schema / properties / period / description
        Previous 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."
      • removedInput schema / properties / period / type
        Removed value: -"string"
      • addedInput schema / properties / return_column / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / return_column / default
        Previous value: -"Adj Close"New value: +null
      • changedInput schema / properties / return_column / description
        Previous 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."
      • removedInput schema / properties / return_column / type
        Removed value: -"string"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedmodels22 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • addedInput schema / properties / growth_rate / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / growth_rate / default
        Previous value: -""New value: +null
      • changedInput schema / properties / growth_rate / description
        Previous value: -"Assumed constant growth rate as a decimal."New value: +"Assumed constant growth rate as a decimal. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_intrinsic_valuation."
      • removedInput schema / properties / growth_rate / type
        Removed value: -"number"
      • addedInput schema / properties / high_growth_periods
        Added value: +{
        +  "default": 5,
        +  "description": "Value for high_growth_periods.",
        +  "title": "High Growth Periods",
        +  "type": "integer"
        +}
      • addedInput schema / properties / high_growth_rate
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for high_growth_rate. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model.",
        +  "title": "High Growth Rate"
        +}
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_altman_z_score",
        -  "get_beneish_m_score",
        -  "get_dupont_analysis",
        -  "get_economic_value_added",
        -  "get_enterprise_value_breakdown",
        -  "get_extended_dupont_analysis",
        -  "get_gorden_growth_model",
        -  "get_graham_number",
        -  "get_internal_growth_rate",
        -  "get_intrinsic_valuation",
        -  "get_piotroski_score",
        -  "get_present_value_of_growth_opportunities",
        -  "get_sustainable_growth_rate",
        -  "get_weighted_average_cost_of_capital"
        -]New value: +[
        +  "get_altman_z_score",
        +  "get_beneish_m_score",
        +  "get_dupont_analysis",
        +  "get_economic_value_added",
        +  "get_enterprise_value_breakdown",
        +  "get_extended_dupont_analysis",
        +  "get_free_cash_flow_to_equity",
        +  "get_free_cash_flow_to_firm",
        +  "get_fulmer_h_score",
        +  "get_gorden_growth_model",
        +  "get_graham_number",
        +  "get_grover_score",
        +  "get_internal_growth_rate",
        +  "get_intrinsic_valuation",
        +  "get_market_value_added",
        +  "get_ohlson_o_score",
        +  "get_piotroski_score",
        +  "get_present_value_of_growth_opportunities",
        +  "get_residual_income",
        +  "get_springate_score",
        +  "get_sustainable_growth_rate",
        +  "get_tobins_q_ratio",
        +  "get_two_stage_dividend_discount_model",
        +  "get_weighted_average_cost_of_capital",
        +  "get_zmijewski_score"
        +]
      • addedInput schema / properties / perpetual_growth_rate / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / perpetual_growth_rate / default
        Previous value: -""New value: +null
      • changedInput schema / properties / perpetual_growth_rate / description
        Previous value: -"Terminal (perpetual) growth rate used in DCF models."New value: +"Terminal (perpetual) growth rate used in DCF models. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation."
      • removedInput schema / properties / perpetual_growth_rate / type
        Removed value: -"number"
      • addedInput schema / properties / rate_of_return / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / rate_of_return / default
        Previous value: -""New value: +null
      • changedInput schema / properties / rate_of_return / description
        Previous value: -"Value for rate_of_return."New value: +"Value for rate_of_return. Leave unset to use the default of the indicator you selected. Required by: get_gorden_growth_model, get_two_stage_dividend_discount_model."
      • removedInput schema / properties / rate_of_return / type
        Removed value: -"number"
      • addedInput schema / properties / stable_growth_rate
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for stable_growth_rate. Leave unset to use the default of the indicator you selected. Required by: get_two_stage_dividend_discount_model.",
        +  "title": "Stable Growth Rate"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / weighted_average_cost_of_capital / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / weighted_average_cost_of_capital / default
        Previous value: -""New value: +null
      • changedInput schema / properties / weighted_average_cost_of_capital / description
        Previous value: -"WACC as a decimal, e.g. 0.09 for 9 %."New value: +"WACC as a decimal, e.g. 0.09 for 9 %. Leave unset to use the default of the indicator you selected. Required by: get_intrinsic_valuation."
      • removedInput schema / properties / weighted_average_cost_of_capital / type
        Removed value: -"number"
    • Changedmomentum22 fields changed
      • changedInput schema / properties / base_window / default
        Previous value: -20New value: +26
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • changedInput schema / properties / lead_span_b_window / default
        Previous value: -40New value: +52
      • addedInput schema / properties / long_window / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / long_window / default
        Previous value: -28New value: +null
      • changedInput schema / properties / long_window / description
        Previous 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."
      • removedInput schema / properties / long_window / type
        Removed value: -"integer"
      • addedInput schema / properties / roc_windows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for roc_windows.",
        +  "title": "Roc Windows"
        +}
      • addedInput schema / properties / short_window / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / short_window / default
        Previous value: -7New value: +null
      • changedInput schema / properties / short_window / description
        Previous 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."
      • removedInput schema / properties / short_window / type
        Removed value: -"integer"
      • addedInput schema / properties / sma_windows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for sma_windows.",
        +  "title": "Sma Windows"
        +}
      • removedInput schema / properties / smooth_widow
        Removed value: -{
        -  "default": 3,
        -  "description": "Value for smooth_widow.",
        -  "title": "Smooth Widow",
        -  "type": "integer"
        -}
      • addedInput schema / properties / smooth_window
        Added value: +{
        +  "default": 3,
        +  "description": "Value for smooth_window.",
        +  "title": "Smooth Window",
        +  "type": "integer"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / weights
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for weights.",
        +  "title": "Weights"
        +}
      • addedInput schema / properties / window / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / window / default
        Previous value: -14New value: +null
      • changedInput schema / properties / window / description
        Previous value: -"Value for window."New value: +"Value for window. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."
      • removedInput schema / properties / window / type
        Removed value: -"integer"
    • Changedoptions25 fields changed
      • addedInput schema / properties / barrier_direction
        Added value: +{
        +  "default": "down",
        +  "description": "Value for barrier_direction.",
        +  "title": "Barrier Direction",
        +  "type": "string"
        +}
      • addedInput schema / properties / barrier_percentage
        Added value: +{
        +  "default": 0.9,
        +  "description": "Value for barrier_percentage.",
        +  "title": "Barrier Percentage",
        +  "type": "number"
        +}
      • addedInput schema / properties / cash_payout
        Added value: +{
        +  "default": 1,
        +  "description": "Value for cash_payout.",
        +  "title": "Cash Payout",
        +  "type": "number"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • addedInput schema / properties / expiration_dates
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for expiration_dates.",
        +  "title": "Expiration Dates"
        +}
      • addedInput schema / properties / foreign_risk_free_rate
        Added value: +{
        +  "default": 0,
        +  "description": "Value for foreign_risk_free_rate.",
        +  "title": "Foreign Risk Free Rate",
        +  "type": "number"
        +}
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / knock_type
        Added value: +{
        +  "default": "out",
        +  "description": "Value for knock_type.",
        +  "title": "Knock Type",
        +  "type": "string"
        +}
      • addedInput schema / properties / legs
        Added 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"
        +}
      • addedInput schema / properties / number_of_expirations
        Added value: +{
        +  "default": 6,
        +  "description": "Value for number_of_expirations.",
        +  "title": "Number Of Expirations",
        +  "type": "integer"
        +}
      • addedInput schema / properties / number_of_strikes
        Added value: +{
        +  "default": 200,
        +  "description": "Value for number_of_strikes.",
        +  "title": "Number Of Strikes",
        +  "type": "integer"
        +}
      • addedInput schema / properties / option_type
        Added value: +{
        +  "default": "cash-or-nothing",
        +  "description": "Value for option_type.",
        +  "title": "Option Type",
        +  "type": "string"
        +}
      • addedInput schema / properties / outlier_threshold
        Added value: +{
        +  "default": 5,
        +  "description": "Value for outlier_threshold.",
        +  "title": "Outlier Threshold",
        +  "type": "number"
        +}
      • addedInput schema / properties / rebate
        Added value: +{
        +  "default": 0,
        +  "description": "Value for rebate.",
        +  "title": "Rebate",
        +  "type": "number"
        +}
      • addedInput schema / properties / seed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for seed.",
        +  "title": "Seed"
        +}
      • addedInput schema / properties / show_standard_error
        Added value: +{
        +  "default": false,
        +  "description": "Value for show_standard_error.",
        +  "title": "Show Standard Error",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / simulations
        Added value: +{
        +  "default": 10000,
        +  "description": "Value for simulations.",
        +  "title": "Simulations",
        +  "type": "integer"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / stock_price_range
        Added value: +{
        +  "default": 0.5,
        +  "description": "Value for stock_price_range.",
        +  "title": "Stock Price Range",
        +  "type": "number"
        +}
      • addedInput schema / properties / stock_price_step_size
        Added value: +{
        +  "default": 1,
        +  "description": "Value for stock_price_step_size.",
        +  "title": "Stock Price Step Size",
        +  "type": "number"
        +}
      • addedInput schema / properties / strike_price_range / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / strike_price_range / default
        Previous value: -0.25New value: +null
      • changedInput schema / properties / strike_price_range / description
        Previous 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."
      • removedInput schema / properties / strike_price_range / type
        Removed value: -"number"
      • addedInput schema / properties / time_steps
        Added value: +{
        +  "default": 100,
        +  "description": "Value for time_steps.",
        +  "title": "Time Steps",
        +  "type": "integer"
        +}
    • Changedoverlap12 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • addedInput schema / properties / fast_window
        Added value: +{
        +  "default": 2,
        +  "description": "Value for fast_window.",
        +  "title": "Fast Window",
        +  "type": "integer"
        +}
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / levels
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for levels.",
        +  "title": "Levels"
        +}
      • addedInput schema / properties / sensitivity
        Added value: +{
        +  "default": 0.05,
        +  "description": "Value for sensitivity.",
        +  "title": "Sensitivity",
        +  "type": "number"
        +}
      • addedInput schema / properties / slow_window
        Added value: +{
        +  "default": 30,
        +  "description": "Value for slow_window.",
        +  "title": "Slow Window",
        +  "type": "integer"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / trend
        Added value: +{
        +  "default": "uptrend",
        +  "description": "Value for trend.",
        +  "title": "Trend",
        +  "type": "string"
        +}
      • addedInput schema / properties / window / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / window / default
        Previous value: -14New value: +null
      • changedInput schema / properties / window / description
        Previous value: -"Value for window."New value: +"Value for window. Leave unset to use the default of the indicator you selected. Defaults differ between indicators."
      • removedInput schema / properties / window / type
        Removed value: -"integer"
    • Changedperformance12 fields changed
      • addedInput schema / properties / alpha
        Added value: +{
        +  "default": 0.05,
        +  "description": "Value for alpha.",
        +  "title": "Alpha",
        +  "type": "number"
        +}
      • addedInput schema / properties / benchmark_sharpe_ratio
        Added value: +{
        +  "default": 0,
        +  "description": "Value for benchmark_sharpe_ratio.",
        +  "title": "Benchmark Sharpe Ratio",
        +  "type": "number"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / method / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / method / default
        Previous value: -"multi"New value: +null
      • changedInput schema / properties / method / description
        Previous 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."
      • removedInput schema / properties / method / type
        Removed value: -"string"
      • addedInput schema / properties / n_trials
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for n_trials.",
        +  "title": "N Trials"
        +}
      • changedInput schema / properties / rolling / description
        Previous 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."
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / trials_window
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for trials_window.",
        +  "title": "Trials Window"
        +}
    • Changedprofitability3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedrates5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / gmdb_source / description
        Previous value: -"Use the OECD Global Macro Data Bank as the data source when True."New value: +"Use the Global Macro Database as the data source when True, rather than the OECD. The two are independent providers with different country and period coverage; both return rates and ratios as decimal fractions."
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_central_bank_policy_rate",
        -  "get_short_term_interest_rate",
        -  "get_long_term_interest_rate",
        -  "get_government_bond_yield",
        -  "get_euribor_rates",
        -  "get_european_central_bank_rates",
        -  "get_federal_reserve_rates",
        -  "get_ice_bofa_effective_yield",
        -  "get_ice_bofa_option_adjusted_spread",
        -  "get_ice_bofa_total_return",
        -  "get_ice_bofa_yield_to_worst"
        -]New value: +[
        +  "get_central_bank_policy_rate",
        +  "get_short_term_interest_rate",
        +  "get_long_term_interest_rate",
        +  "get_government_bond_yield",
        +  "get_euribor_rates",
        +  "get_european_central_bank_rates",
        +  "get_federal_reserve_rates",
        +  "get_ice_bofa_effective_yield",
        +  "get_ice_bofa_option_adjusted_spread",
        +  "get_ice_bofa_total_return",
        +  "get_ice_bofa_yield_to_worst",
        +  "get_mortgage_rate_30_year",
        +  "get_real_yield_curve",
        +  "get_breakeven_inflation_expectations",
        +  "get_treasury_rates",
        +  "get_yield_curve_slope"
        +]
      • changedInput schema / properties / rate / description
        Previous value: -"Value for rate."New value: +"Value for rate. Leave unset to use the default of the indicator you selected. Defaults are 'EFFR' for get_federal_reserve_rates; None for get_european_central_bank_rates."
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedrisk33 fields changed
      • addedInput schema / properties / column
        Added value: +{
        +  "default": "Return",
        +  "description": "Value for column.",
        +  "title": "Column",
        +  "type": "string"
        +}
      • addedInput schema / properties / conditioning_ticker
        Added 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"
        +}
      • addedInput schema / properties / copula
        Added value: +{
        +  "default": "gaussian",
        +  "description": "Value for copula.",
        +  "title": "Copula",
        +  "type": "string"
        +}
      • addedInput schema / properties / dof
        Added value: +{
        +  "default": 4,
        +  "description": "Value for dof.",
        +  "title": "Dof",
        +  "type": "number"
        +}
      • addedInput schema / properties / empirical_margins
        Added value: +{
        +  "default": true,
        +  "description": "Value for empirical_margins.",
        +  "title": "Empirical Margins",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • addedInput schema / properties / estimator
        Added value: +{
        +  "default": "squared_return",
        +  "description": "Value for estimator.",
        +  "title": "Estimator",
        +  "type": "string"
        +}
      • addedInput schema / properties / horizon
        Added value: +{
        +  "default": 1,
        +  "description": "Value for horizon.",
        +  "title": "Horizon",
        +  "type": "integer"
        +}
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / k
        Added value: +{
        +  "default": 0.1,
        +  "description": "Value for k.",
        +  "title": "K",
        +  "type": "number"
        +}
      • addedInput schema / properties / method
        Added 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"
        +}
      • addedInput schema / properties / monthly_window
        Added value: +{
        +  "default": 22,
        +  "description": "Value for monthly_window.",
        +  "title": "Monthly Window",
        +  "type": "integer"
        +}
      • addedInput schema / properties / n_bootstrap
        Added value: +{
        +  "default": 1000,
        +  "description": "Value for n_bootstrap.",
        +  "title": "N Bootstrap",
        +  "type": "integer"
        +}
      • addedInput schema / properties / n_simulations
        Added value: +{
        +  "default": 10000,
        +  "description": "Value for n_simulations.",
        +  "title": "N Simulations",
        +  "type": "integer"
        +}
      • addedInput schema / properties / q
        Added value: +{
        +  "default": 0.95,
        +  "description": "Value for q.",
        +  "title": "Q",
        +  "type": "number"
        +}
      • addedInput schema / properties / random_state
        Added value: +{
        +  "default": 42,
        +  "description": "Value for random_state.",
        +  "title": "Random State",
        +  "type": "integer"
        +}
      • changedInput schema / properties / rolling / description
        Previous 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."
      • addedInput schema / properties / scale
        Added value: +{
        +  "default": 1000000,
        +  "description": "Value for scale.",
        +  "title": "Scale",
        +  "type": "number"
        +}
      • addedInput schema / properties / show_full_results
        Added value: +{
        +  "default": false,
        +  "description": "Value for show_full_results.",
        +  "title": "Show Full Results",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / tail
        Added value: +{
        +  "default": "left",
        +  "description": "Value for tail.",
        +  "title": "Tail",
        +  "type": "string"
        +}
      • addedInput schema / properties / test
        Added value: +{
        +  "default": "both",
        +  "description": "Value for test.",
        +  "title": "Test",
        +  "type": "string"
        +}
      • addedInput schema / properties / ticker
        Added 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"
        +}
      • addedInput schema / properties / ticker_a
        Added 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"
        +}
      • addedInput schema / properties / ticker_b
        Added 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"
        +}
      • changedInput schema / properties / time_steps / description
        Previous 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."
      • addedInput schema / properties / weekly_window
        Added value: +{
        +  "default": 5,
        +  "description": "Value for weekly_window.",
        +  "title": "Weekly Window",
        +  "type": "integer"
        +}
      • addedInput schema / properties / weights
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for weights.",
        +  "title": "Weights"
        +}
      • addedInput schema / properties / window_size
        Added value: +{
        +  "default": 252,
        +  "description": "Value for window_size.",
        +  "title": "Window Size",
        +  "type": "integer"
        +}
      • addedInput schema / properties / within_period / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / within_period / default
        Previous value: -trueNew value: +null
      • changedInput schema / properties / within_period / description
        Previous 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."
      • removedInput schema / properties / within_period / type
        Removed value: -"boolean"
    • Changedsolvency3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedvaluation3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
    • Changedvolatility9 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-14"New value: +"2026-08-19"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / multiplier
        Added value: +{
        +  "default": 3,
        +  "description": "Value for multiplier.",
        +  "title": "Multiplier",
        +  "type": "number"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-15"New value: +"2021-08-20"
      • addedInput schema / properties / window / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / window / default
        Previous value: -14New value: +null
      • changedInput schema / properties / window / description
        Previous 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."
      • removedInput schema / properties / window / type
        Removed value: -"integer"
      • addedInput schema / properties / windows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for windows.",
        +  "title": "Windows"
        +}
  4. 21 tool updates
    • Changedbreadth5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / window
        Added value: +{
        +  "default": 252,
        +  "description": "Value for window.",
        +  "title": "Window",
        +  "type": "integer"
        +}
    • Changeddiscovery7 fields changed
      • addedInput schema / properties / date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for date.",
        +  "title": "Date"
        +}
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / industry
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for industry.",
        +  "title": "Industry"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 100,
        +  "description": "Value for limit.",
        +  "title": "Limit",
        +  "type": "integer"
        +}
      • addedInput schema / properties / page
        Added value: +{
        +  "default": 0,
        +  "description": "Value for page.",
        +  "title": "Page",
        +  "type": "integer"
        +}
      • addedInput schema / properties / pages
        Added value: +{
        +  "default": 1,
        +  "description": "Value for pages.",
        +  "title": "Pages",
        +  "type": "integer"
        +}
      • addedInput schema / properties / sector
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for sector.",
        +  "title": "Sector"
        +}
    • Changedefficiency5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • changedInput schema / properties / trailing / description
        Previous value: -"Number of trailing periods for rolling-window calculations."New value: +"Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period."
    • Changedenvironment5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / rolling
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Rolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.",
        +  "title": "Rolling"
        +}
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / trailing
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.",
        +  "title": "Trailing"
        +}
    • Changedfixed_income4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / payment_frequency
        Added value: +{
        +  "default": 2,
        +  "description": "Value for payment_frequency.",
        +  "title": "Payment Frequency",
        +  "type": "integer"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / tenor
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Value for tenor.",
        +  "title": "Tenor"
        +}
    • Changedgovernment5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / rolling
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Rolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.",
        +  "title": "Rolling"
        +}
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / trailing
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.",
        +  "title": "Trailing"
        +}
    • Changedjobs5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / rolling
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Rolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.",
        +  "title": "Rolling"
        +}
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / trailing
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.",
        +  "title": "Trailing"
        +}
    • Changedliquidity4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • changedInput schema / properties / trailing / description
        Previous value: -"Number of trailing periods for rolling-window calculations."New value: +"Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period."
    • Changedmacroeconomics5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / rolling
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Rolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.",
        +  "title": "Rolling"
        +}
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / trailing
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.",
        +  "title": "Trailing"
        +}
    • Changedmarket_data3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • changedInput schema / properties / trailing / description
        Previous value: -"Number of trailing periods for rolling-window calculations."New value: +"Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period."
    • Changedmodels5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_altman_z_score",
        -  "get_dupont_analysis",
        -  "get_enterprise_value_breakdown",
        -  "get_extended_dupont_analysis",
        -  "get_gorden_growth_model",
        -  "get_intrinsic_valuation",
        -  "get_piotroski_score",
        -  "get_present_value_of_growth_opportunities",
        -  "get_weighted_average_cost_of_capital"
        -]New value: +[
        +  "get_altman_z_score",
        +  "get_beneish_m_score",
        +  "get_dupont_analysis",
        +  "get_economic_value_added",
        +  "get_enterprise_value_breakdown",
        +  "get_extended_dupont_analysis",
        +  "get_gorden_growth_model",
        +  "get_graham_number",
        +  "get_internal_growth_rate",
        +  "get_intrinsic_valuation",
        +  "get_piotroski_score",
        +  "get_present_value_of_growth_opportunities",
        +  "get_sustainable_growth_rate",
        +  "get_weighted_average_cost_of_capital"
        +]
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • changedInput schema / properties / trailing / description
        Previous value: -"Number of trailing periods for rolling-window calculations."New value: +"Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period."
    • Changedmomentum3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
    • Changedoptions3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
    • Changedoverlap7 fields changed
      • addedInput schema / properties / af_increment
        Added value: +{
        +  "default": 0.02,
        +  "description": "Value for af_increment.",
        +  "title": "Af Increment",
        +  "type": "number"
        +}
      • addedInput schema / properties / af_max
        Added value: +{
        +  "default": 0.2,
        +  "description": "Value for af_max.",
        +  "title": "Af Max",
        +  "type": "number"
        +}
      • addedInput schema / properties / af_start
        Added value: +{
        +  "default": 0.02,
        +  "description": "Value for af_start.",
        +  "title": "Af Start",
        +  "type": "number"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
    • Changedperformance10 fields changed
      • addedInput schema / properties / adjustment
        Added value: +{
        +  "default": 0.1,
        +  "description": "Value for adjustment.",
        +  "title": "Adjustment",
        +  "type": "number"
        +}
      • addedInput schema / properties / cumulative
        Added 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"
        +}
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous 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"
        +]
      • addedInput schema / properties / minimum_acceptable_return
        Added 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"
        +}
      • addedInput schema / properties / order
        Added value: +{
        +  "default": 3,
        +  "description": "Value for order.",
        +  "title": "Order",
        +  "type": "integer"
        +}
      • changedInput schema / properties / rolling / description
        Previous 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."
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / within_period
        Added value: +{
        +  "default": true,
        +  "description": "Value for within_period.",
        +  "title": "Within Period",
        +  "type": "boolean"
        +}
    • Changedprofitability5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • changedInput schema / properties / trailing / description
        Previous value: -"Number of trailing periods for rolling-window calculations."New value: +"Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period."
    • Changedrates5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • addedInput schema / properties / rolling
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Rolling window size in number of periods. When set, the metric is computed over a smoothly overlapping trailing window across the full history (e.g. period='monthly' and rolling=6 gives a rolling 6-month value) instead of one value per period, or (for economics indicators) a simple moving average used to smooth the raw series.",
        +  "title": "Rolling"
        +}
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / trailing
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period.",
        +  "title": "Trailing"
        +}
    • Changedrisk13 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • addedInput schema / properties / lags
        Added value: +{
        +  "default": 10,
        +  "description": "Value for lags.",
        +  "title": "Lags",
        +  "type": "integer"
        +}
      • addedInput schema / properties / lambda_
        Added value: +{
        +  "default": 0.94,
        +  "description": "Value for lambda_.",
        +  "title": "Lambda",
        +  "type": "number"
        +}
      • addedInput schema / properties / max_lag
        Added value: +{
        +  "default": 20,
        +  "description": "Value for max_lag.",
        +  "title": "Max Lag",
        +  "type": "integer"
        +}
      • addedInput schema / properties / minimum_acceptable_return
        Added 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"
        +}
      • addedInput schema / properties / rolling / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / rolling / default
        Previous value: -14New value: +null
      • changedInput schema / properties / rolling / description
        Previous 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."
      • removedInput schema / properties / rolling / type
        Removed value: -"integer"
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • addedInput schema / properties / threshold_percentile
        Added 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"
        +}
    • Changedsolvency5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • changedInput schema / properties / trailing / description
        Previous value: -"Number of trailing periods for rolling-window calculations."New value: +"Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period."
    • Changedvaluation5 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
      • changedInput schema / properties / trailing / description
        Previous value: -"Number of trailing periods for rolling-window calculations."New value: +"Trailing window size in number of periods. Sums the raw values over the trailing N periods (e.g. trailing=4 on quarterly data gives a trailing-4-quarter / TTM-style sum) instead of returning one value per period."
    • Changedvolatility4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-07-09"New value: +"2026-07-14"
      • changedInput schema / properties / indicator / enum
        Previous value: -[
        -  "get_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"
        +]
      • addedInput schema / properties / standardize
        Added value: +{
        +  "default": false,
        +  "description": "Return the Z-Score (standard score) instead of the raw values, i.e. how many standard deviations each value is from the mean of its own series. When combined with growth=True, the growth values are standardized instead of the raw values.",
        +  "title": "Standardize",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-07-10"New value: +"2021-07-15"
  5. 20 tool updatesv2.1.4
    • Changedbreadth2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedefficiency2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedenvironment2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedfixed_income2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedgovernment2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedjobs2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedliquidity2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedmacroeconomics2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedmarket_data2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedmodels2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedmomentum2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedoptions2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedoverlap2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedperformance2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedprofitability2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedrates2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedrisk2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedsolvency2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedvaluation2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
    • Changedvolatility2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-27"New value: +"2026-07-09"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-28"New value: +"2021-07-10"
  6. 20 tool updatesv2.1.3
    • Changedbreadth2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedefficiency2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedenvironment2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedfixed_income2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedgovernment2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedjobs2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedliquidity2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedmacroeconomics2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedmarket_data2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedmodels2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedmomentum2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedoptions2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedoverlap2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedperformance2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedprofitability2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedrates2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedrisk2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedsolvency2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedvaluation2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
    • Changedvolatility2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-23"New value: +"2026-06-27"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-24"New value: +"2021-06-28"
  7. 21 tool updatesv0.1.2
    • Changedbreadth4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changeddiscovery1 field changed
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
    • Changedefficiency4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedenvironment4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedfixed_income3 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedgovernment4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedjobs4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedliquidity4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedmacroeconomics4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedmarket_data4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedmodels4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedmomentum4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedoptions4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedoverlap4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedperformance4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedprofitability4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedrates4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedrisk4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedsolvency4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedvaluation4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
    • Changedvolatility4 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-22"New value: +"2026-06-23"
      • removedInput schema / properties / rounding
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Number of decimal places to round results to.",
        -  "title": "Rounding"
        -}
      • addedInput schema / properties / show_columns
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage.",
        +  "title": "Show Columns"
        +}
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-23"New value: +"2021-06-24"
  8. 41 tool updatesv0.1.1
    • Addedbreadth
    • Addeddiscovery
    • Removedeconomics_environment
    • Removedeconomics_fixed_income
    • Removedeconomics_general
    • Removedeconomics_government
    • Removedeconomics_jobs
    • Removedeconomics_rates
    • Addedefficiency
    • Addedenvironment
    • Addedfixed_income
    • Addedgovernment
    • Addedjobs
    • Addedliquidity
    • Addedmacroeconomics
    • Changedmarket_data2 fields changed
      • changedInput schema / properties / end_date / default
        Previous value: -"2026-06-21"New value: +"2026-06-22"
      • changedInput schema / properties / start_date / default
        Previous value: -"2021-06-22"New value: +"2021-06-23"
    • Removedmarket_discovery
    • Addedmodels
    • Addedmomentum
    • Addedoptions
    • Addedoverlap
    • Addedperformance
    • Addedprofitability
    • Removedquant_models
    • Removedquant_options
    • Removedquant_performance
    • Removedquant_risk
    • Addedrates
    • Removedratios_efficiency
    • Removedratios_liquidity
    • Removedratios_profitability
    • Removedratios_solvency
    • Removedratios_valuation
    • Addedrisk
    • Addedsolvency
    • Removedtechnicals_breadth
    • Removedtechnicals_momentum
    • Removedtechnicals_overlap
    • Removedtechnicals_volatility
    • Addedvaluation
    • Addedvolatility
  9. 25 tool updatesv0.1.0
    • First observedeconomics_environment
    • First observedeconomics_fixed_income
    • First observedeconomics_general
    • First observedeconomics_government
    • First observedeconomics_jobs
    • First observedeconomics_rates
    • First observedmarket_data
    • First observedmarket_discovery
    • First observedquant_models
    • First observedquant_options
    • First observedquant_performance
    • First observedquant_risk
    • First observedratios_efficiency
    • First observedratios_liquidity
    • First observedratios_profitability
    • First observedratios_solvency
    • First observedratios_valuation
    • First observedsearch_by_category
    • First observedsearch_categories
    • First observedsearch_instruments
    • First observedsearch_metrics
    • First observedtechnicals_breadth
    • First observedtechnicals_momentum
    • First observedtechnicals_overlap
    • First observedtechnicals_volatility

TDQS

A3.8/5.0

Scored across 25 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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 npm
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    SEC 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.
    3
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP 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.
    8
    3
    Apache 2.0