{"repo":"JerBouma/FinanceToolkit","free":true,"listed":false,"github":"https://github.com/JerBouma/FinanceToolkit","clone":"git clone https://github.com/JerBouma/FinanceToolkit.git","description":"Transparent and Efficient Financial Analysis","language":"Python","stars":5225,"topics":["algorithmic-trading","equities","factor-analysis","finance","financial-analysis","financial-data","financial-statements","fundamental-analysis","fundamentals","market-data","mcp-server","performance-analysis","python","quantitative-analysis","quantitative-finance","risk-management","sector-analysis","stock-data","technical-analysis","valuation"],"license":"MIT","category":"financial_analysis_platform","readme_excerpt":"<!-- mcp-name: io.github.JerBouma/financetoolkit -->\n[![FinanceToolkit](https://github.com/JerBouma/FinanceToolkit/assets/46355364/198d47bd-e1b3-492d-acc4-5d9f02d1d009)](https://github.com/JerBouma/FinanceToolkit)\n\n[![GitHub Sponsors](https://img.shields.io/badge/Sponsor_this_Project-grey?logo=github)](https://github.com/sponsors/JerBouma)\n[![Buy Me a Coffee](https://img.shields.io/badge/Buy_Me_a_Coffee-grey?logo=buymeacoffee)](https://www.buymeacoffee.com/jerbouma)\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-grey?logo=Linkedin&logoColor=white)](https://www.linkedin.com/in/boumajeroen/)\n[![MCP Server](https://img.shields.io/badge/MCP_Server-grey?logo=modelcontextprotocol)](https://www.jeroenbouma.com/projects/financetoolkit/mcp)\n[![Download MCP Bundle](https://img.shields.io/badge/Download_MCP_Bundle-grey?logo=anthropic)](https://github.com/JerBouma/FinanceToolkit/releases/latest/download/financetoolkit.mcpb)\n[![Smithery](https://img.shields.io/badge/Smithery-grey?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjE1OSIgdmlld0JveD0iMCAwIDEzNSAxNTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMxLjM1MDggNTguNDA1M0gwVjc4Ljk0OTJDMCA5MC44ODcyIDkuNjc1NzggMTAwLjU2MyAyMS42MTM4IDEwMC41NjNINDIuMTU3N1Y2OS4yMTIyQzQyLjE1NzcgNjMuMjQzMiAzNy4zMTk4IDU4LjQwNTMgMzEuMzUwOCA1OC40MDUzWiIgZmlsbD0id2hpdGUiLz48cGF0aCBkPSJNNDYuMjMyNyA2OS4yMTIyVjEwMC41NjNINzcuNTgzNUM4My41NTI1IDEwMC41NjMgODguMzkwNCA5NS43MjUxIDg4LjM5MDQgODkuNzU2MVY1OC40MDUzSDU3LjAzOTZDNTEuMDcwNiA1OC40MDUzIDQ2LjIzMjcgNjMuMjQzMiA0Ni4yMzI3IDY5LjIxMjJaIiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik0xMTMuMDEzIDU4LjQwNTNIOTIuNDY5NVY4OS43NTYxQzkyLjQ2OTUgOTUuNzI1MSA5Ny4zMDc0IDEwMC41NjMgMTAzLjI3NiAxMDAuNTYzSDEzNC42MjdWODAuMDE5MUMxMzQuNjI3IDY4LjA4MTEgMTI0Ljk1MSA1OC40MDUzIDExMy4wMTMgNTguNDA1M1oiIGZpbGw9IndoaXRlIi8+PHBhdGggZD0iTTAuMDAwMjQ0MTQxIDM3LjU1MzVWNTQuMzUxSDMxLjM1MTFDMzcuMzIwMSA1NC4zNTEgNDIuMTU4IDQ5LjUxMzEgNDIuMTU4IDQzLjU0NDFWNi4wMTUzNEM0MC45MzMyIDUuOTc1NzIgMzkuNjYxNiA1Ljk1NDEgMzguMzMyMyA1Ljk1NDFDMTcuOTg2NSA1Ljk1NDEgMC4wMDAyNDQxNDEgMTUuOTAwMSAwLjAwMDI0NDE0MSAzNy41NTM1WiIgZmlsbD0id2hpdGUiLz48cGF0aCBkPSJNNDYuMjMyNyA0My41MzMyQzQ2LjIzMjcgNDkuNTAyMiA1MS4wNzA2IDU0LjM0MDEgNTcuMDM5NiA1NC4zNDAxSDg4LjM5MDRWMTQuNDczNUM3MS4wOTkzIDEyLjg1OTYgNjQuMTEwOSA3LjQ3NDE4IDQ2LjIzMjcgNi4yMTMzOFY0My41MzY4VjQzLjUzMzJaIiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik05OC44NjM2IDE0LjkzNTFDOTYuNTgzMyAxNC45MzUxIDk0LjQ2MTYgMTQuODc3NSA5Mi40Njk1IDE0Ljc3M1Y1NC4zNDQzSDExMy4wMTNDMTI0Ljk1MSA1NC4zNDQzIDEzNC42MjcgNDQuNjY4NSAxMzQuNjI3IDMyLjczMDVWMEMxMjcuOTQ1IDguOTEyMDkgMTE2LjA5NyAxNC45MzUxIDk4Ljg2MzYgMTQuOTM1MVoiIGZpbGw9IndoaXRlIi8+PHBhdGggZD0iTTM1Ljc2OTcgMTQ0LjA2OEMzOC4wNSAxNDQuMDY4IDQwLjE3MTggMTQ0LjEyNiA0Mi4xNjM4IDE0NC4yM1YxMDQuNjU5SDIxLjYxOTlDOS42ODE4OCAxMDQuNjU5IDAuMDA2MTAzNTIgMTE0LjMzNSAwLjAwNjEwMzUyIDEyNi4yNzNWMTU5QzYuNjg4MzcgMTUwLjA4OCAxOC41MzYzIDE0NC4wNjUgMzUuNzczMyAxNDQuMDY1TDM1Ljc2OTcgMTQ0LjA2OFoiIGZpbGw9IndoaXRlIi8+PHBhdGggZD0iTTg4LjM5MDQgMTE1LjQ2NkM4OC4zOTA0IDEwOS40OTcgODMuNTUyNSAxMDQuNjU5IDc3LjU4MzUgMTA0LjY1OUg0Ni4yMzI3VjE0NC41MjlDNjMuNTIzNyAxNDYuMTQzIDcwLjUxMjIgMTUxLjUyOSA4OC4zOTA0IDE1Mi43OVYxMTUuNDY2WiIgZmlsbD0id2hpdGUiLz48cGF0aCBkPSJNMTM0LjYyNyAxMjEuNVYxMDQuNjU5SDEwMy4yNzZDOTcuMzA3NCAxMDQuNjU5IDkyLjQ2OTUgMTA5LjQ5NyA5Mi40Njk1IDExNS40NjZWMTUyLjk5NUM5My42OTQzIDE1My4wMzQgOTQuOTY1OSAxNTMuMDUyIDk2LjI5NTEgMTUzLjA1MkMxMTYuNjMgMTUzLjA1MiAxMzQuNjA2IDE0My4xMjEgMTM0LjYyNyAxMjEuNDk2VjEyMS41WiIgZmlsbD0id2hpdGUiLz48L3N2Zz4=)](https://smithery.ai/servers/jer-bouma/financetoolkit)\n[![Glama](https://img.shields.io/badge/Glama-grey?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzMwIiBoZWlnaHQ9IjMzMCIgdmlld0JveD0iMCAwIDMzMCAzMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk1IDE1SDc1VjE1NUg5NVYxNVpNMjU1IDE1SDIzNVYxNTVIMjU1VjE1Wk03NSAyNUg2NVYxMjVINzVWMjVaTTI2NSAyNUgyNTVWMTI1SDI2NVYyNVpNNjUgMzVINTVWOTVINjVWMzVaTTI3NSAzNUgyNjVWOTVIMjc1VjM1Wk0xMDUgNzVIOTVWMTU1SDEwNVY3NVpNMjM1IDc1SDIyNVYxNTVIMjM1Vjc1Wk0yMDUgODVIMTI1VjE4NUgyMDVWODVaTTEyNSA5NUgxMDVWMTU1SDEyNVY5NVpNMjI1IDk1SDIwNVYxNTVIMjI1Vjk1Wk03NSAxNDVINjVWMTU1SDc1VjE0NVpNMjY1IDE0NUgyNTVWMTU1SDI2NVYxNDVaTTEyNSAxNTVIMTE1VjIyNUgxMjVWMTU1Wk0yMTUgMTU1SDIwNVYyMjVIMjE1VjE1NVpNODUgMTY1SDc1VjMxNUg4NVYxNjVaTTExNSAxNjVIMTA1VjMxNUgxMTVWMTY1Wk0yMjUgMTY1SDIxNVYzMTVIMjI1VjE2NVpNMjU1IDE2NUgyNDVWMzE1SDI1NVYxNjVaTTEwNSAxNzVIODVWMzE1SDEwNVYxNzVaTTI0NSAxNzVIMjI1VjMxNUgyNDVWMTc1Wk0xMzUgMTg1SDEyNVYyMzVIMTM1VjE4NVpNMTg1IDE4NUgxNDVWMTk1SDE4NVYxODVaTTIwNSAxODVIMTk1VjIzNUgyMDVWMTg1Wk03NSAxOTVINjVWMjc1SDc1VjE5NVpNMTQ1IDE5NUgxMzVWMjM1SDE0NVYxOTVaTTE5NSAxOTVIMTg1VjIzNUgxOTVWMTk1Wk0yNjUgMTk1SDI1NVYyNzVIMjY1VjE5NVpNMTU1IDIwNUgxNDVWMjM1SDE1NVYyMDVaTTE4NSAyMDVIMTc1VjIzNUgxODVWMjA1Wk0xMjUgMjM1SDExNVYzMTVIMTI1VjIzNVpNMjE1IDIzNUgyMDVWMzE1SDIxNVYyMzVaTTE0NSAyNDVIMTI1VjMxNUgxNDVWMjQ1Wk0yMDUgMjQ1SDE4NVYzMTVIMjA1VjI0NVpNMTg1IDI2NUgxNDVWMzE1SDE4NVYyNjVaIiBmaWxsPSJ3aGl0ZSIvPjwvc3ZnPg==)](https://glama.ai/mcp/servers/JerBouma/FinanceToolkit)\n[![Documentation](https://img.shields.io/badge/Documentation-grey?logo=readme)](https://www.jeroenbouma.com/projects/financetoolkit/docs)\n[![Supported Python Versions](https://img.shields.io/pypi/pyversions/financetoolkit)](https://pypi.org/project/FinanceToolkit/)\n[![PYPI Version](https://img.shields.io/pypi/v/FinanceToolkit)](https://pypi.org/project/FinanceToolkit/)\n[![PYPI Downloads](https://static.pepy.tech/badge/financetoolkit/month)](https://pepy.tech/project/financetoolkit)\n\nWhile 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.\n\nFor 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.\n\n**This is why I designed the FinanceToolkit**, this is an open-source toolkit in which all relevant financial ratios ([200+](https://www.jeroenbouma.com/projects/financetoolkit/docs)), indicators and performance measurements are written down in the most simplistic way allowing for complete transparency of the method of calculation ([proof](https://github.com/JerBouma/FinanceToolkit/blob/main/financetoolkit/ratios/valuation_model.py)). 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.\n\nBeyond 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.\n\nComplementing this is the [Finance Database 🌎](https://github.com/JerBouma/FinanceDatabase), 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.\n\n___\n**🔌 The Finance Toolkit is also available as an [MCP Server](https://www.jeroenbouma.com/projects/financetoolkit/mcp)**\n\nQuery 200+ metrics from Claude, Copilot, Cursor, Windsurf or any MCP-compatible client without writing code.\n\n- **Hosted:** connect to `https://financetoolkit.jeroenbouma.com/mcp` — OAuth handles the rest on first use.\n- **Local:** `uvx --from \"financetoolkit[mcp]\" financetoolkit-mcp-setup` — sets up your client config and API key automatically. See [MCP Server Documentation](https://www.jeroenbouma.com/projects/financetoolkit/mcp#local-clients) for manual setup.\n\nAlso on [Smithery](https://smithery.ai/servers/jer-bouma/financetoolkit), [Glama](https://glama.ai/mcp/servers/JerBouma/FinanceToolkit), [MCP Servers](https://mcpservers.org/servers/jerbouma/financetoolkit) and more.\n___\n\n# Table of Contents\n\n1. [Installation](#installation)\n2. [Functionality](#functionality)\n3. [MCP Server](#mcp-server)\n4. [Questions & Answers](#questions--answers)\n5. [Contributing](#contributing)\n6. [Mentions](#mentions)\n7. [Contact](#contact)\n\n# Installation\n\nBefore installation, consider starring the project on GitHub which helps others find the project as well. \n\n<a href=\"https://github.com/JerBouma/FinanceToolkit\" target=\"_blank\"><img width=\"1415\" alt=\"image\" src=\"https://github.com/JerBouma/FinanceToolkit/assets/46355364/014109fe-0c68-47d4-99bd-217c69dcea8d\"></a>\n\nTo install the Finance Toolkit it simply requires the following:\n\n```\npip install financetoolkit -U\n````\n\nThen within Python use:\n\n```python\nfrom financetoolkit import Toolkit\n\ncompanies = Toolkit(\n    tickers=['AAPL', 'MSFT'],\n    api_key=\"FINANCIAL_MODELING_PREP_KEY\",  # replace with your actual API key\n)\n```\nTo 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.\n\n___ \n\n<b><div align=\"center\">Obtain an API Key from FinancialModelingPrep <a href=\"https://www.jeroenbouma.com/fmp\" target=\"_blank\">here</a>.</div></b>\n___\n\nThrough the link you are able to subscribe for the free plan and also pr","default_branch":"main","files":1052,"tree":[".github/FUNDING.yml",".github/ISSUE_TEMPLATE/enhancement.md",".github/ISSUE_TEMPLATE/feature_request.md",".github/workflows/linting.yml",".github/workflows/unit_tests.yml",".gitignore",".pre-commit-config.yaml","CONTRIBUTING.md","Dockerfile","LICENSE.txt","README.md","docker-compose.yml","examples/Finance Toolkit - 0. README Examples.ipynb","examples/Finance Toolkit - 1. Getting Started.ipynb","examples/Finance Toolkit - 10. Fixed Income Module.ipynb","examples/Finance Toolkit - 11. Portfolio Module.ipynb","examples/Finance Toolkit - 2. Discovery Module.ipynb","examples/Finance Toolkit - 3. Ratios Module.ipynb","examples/Finance Toolkit - 4. Models Module.ipynb","examples/Finance Toolkit - 5. Options Module.ipynb","examples/Finance Toolkit - 6. Technicals Module.ipynb","examples/Finance Toolkit - 7. Risk Module.ipynb","examples/Finance Toolkit - 8. Performance Module.ipynb","examples/Finance Toolkit - 9. Economics Module.ipynb","examples/Finance Toolkit - MCP Demo.mp4","examples/Finance Toolkit - Using External Datasets.ipynb","examples/Finance Toolkit - Video Demo.gif","examples/__init__..py","examples/external_datasets/GOOGL_balance.csv","examples/external_datasets/GOOGL_cash.csv","examples/external_datasets/GOOGL_income.csv","examples/external_datasets/README.md","examples/external_datasets/TSLA_balance.csv","examples/external_datasets/TSLA_cash.csv","examples/external_datasets/TSLA_income.csv","examples/external_datasets/balance.csv","examples/external_datasets/cash.csv","examples/external_datasets/income.csv","examples/external_datasets/statistics.csv","financetoolkit/__init__.py","financetoolkit/currencies_model.py","financetoolkit/discovery/__init__.py","financetoolkit/discovery/discovery_controller.py","financetoolkit/discovery/discovery_model.py","financetoolkit/economics/__init__.py","financetoolkit/economics/economics_controller.py","financetoolkit/economics/gmdb_model.py","financetoolkit/economics/oecd_model.py","financetoolkit/fixedincome/__init__.py","financetoolkit/fixedincome/bond_model.py","financetoolkit/fixedincome/derivative_model.py","financetoolkit/fixedincome/ecb_model.py","financetoolkit/fixedincome/euribor_model.py","financetoolkit/fixedincome/fed_model.py","financetoolkit/fixedincome/fixedincome_controller.py","financetoolkit/fixedincome/fred_model.py","financetoolkit/fixedincome/helpers.py","financetoolkit/fmp_model.py","financetoolkit/fundamentals_model.py","financetoolkit/helpers.py","financetoolkit/historical_model.py","financetoolkit/mcp_server/__init__.py","financetoolkit/mcp_server/__main__.py","financetoolkit/mcp_server/auth_model.py","financetoolkit/mcp_server/cache_model.py","financetoolkit/mcp_server/coercion_model.py","financetoolkit/mcp_server/config.yaml","financetoolkit/mcp_server/formatting_model.py","financetoolkit/mcp_server/inspection_controller.py","financetoolkit/mcp_server/mcp_controller.py","financetoolkit/mcp_server/mcpb/.mcpbignore","financetoolkit/mcp_server/mcpb/LICENSE","financetoolkit/mcp_server/mcpb/README.md","financetoolkit/mcp_server/mcpb/build-mcpb.sh","financetoolkit/mcp_server/mcpb/finance_toolkit_icon.png","financetoolkit/mcp_server/mcpb/manifest.json","financetoolkit/mcp_server/mcpb/pyproject.toml","financetoolkit/mcp_server/provider_model.py","financetoolkit/mcp_server/registry_controller.py","financetoolkit/mcp_server/setup_model.py","financetoolkit/mcp_server/tools_model.py","financetoolkit/models/__init__.py","financetoolkit/models/altman_model.py","financetoolkit/models/beneish_model.py","financetoolkit/models/dupont_model.py","financetoolkit/models/enterprise_model.py","financetoolkit/models/eva_model.py","financetoolkit/models/growth_model.py","financetoolkit/models/helpers.py","financetoolkit/models/intrinsic_model.py","financetoolkit/models/models_controller.py","financetoolkit/models/piotroski_model.py","financetoolkit/models/wacc_model.py","financetoolkit/normalization/balance.csv","financetoolkit/normalization/balance_yf.csv","financetoolkit/normalization/cash.csv","financetoolkit/normalization/cash_yf.csv","financetoolkit/normalization/income.csv","financetoolkit/normalization/income_yf.csv","financetoolkit/normalization/statistics.csv","financetoolkit/normalization_model.py","financetoolkit/options/__init__.py","financetoolkit/options/binomial_trees_model.py","financetoolkit/options/black_scholes_model.py","financetoolkit/options/greeks_model.py","financetoolkit/options/helpers.py","financetoolkit/options/options_controller.py","financetoolkit/options/options_model.py","financetoolkit/performance/__init__.py","financetoolkit/performance/helpers.py","financetoolkit/performance/performance_controller.py","financetoolkit/performance/performance_model.py","financetoolkit/portfolio/__init__.py","financetoolkit/portfolio/config.yaml","financetoolkit/portfolio/example_datasets/example_portfolio.csv","financetoolkit/portfolio/example_datasets/example_portfolio.xlsx","financetoolkit/portfolio/helpers.py","financetoolkit/portfolio/overview_model.py","financetoolkit/portfolio/portfolio_controller.py","financetoolkit/portfolio/portfolio_model.py","financetoolkit/ratios/__init__.py","financetoolkit/ratios/efficiency_model.py","financetoolkit/ratios/helpers.py","financetoolkit/ratios/liquidity_model.py","financetoolkit/ratios/profitability_model.py","financetoolkit/ratios/ratios_controller.py","financetoolkit/ratios/solvency_model.py","financetoolkit/ratios/valuation_model.py","financetoolkit/risk/__init__.py","financetoolkit/risk/cvar_model.py","financetoolkit/risk/evar_model.py","financetoolkit/risk/garch_model.py","financetoolkit/risk/helpers.py","financetoolkit/risk/risk_controller.py","financetoolkit/risk/risk_model.py","financetoolkit/risk/var_model.py","financetoolkit/technicals/__init__.py","financetoolkit/technicals/breadth_model.py","financetoolkit/technicals/helpers.py","financetoolkit/technicals/momentum_model.py","financetoolkit/technicals/overlap_model.py","financetoolkit/technicals/technicals_controller.py","financetoolkit/technicals/volatility_model.py","financetoolkit/toolkit_controller.py","financetoolkit/utilities/cache_model.py","financetoolkit/utilities/dataframe_model.py","financetoolkit/utilities/error_model.py","financetoolkit/utilities/logger_model.py","financetoolkit/utilities/requests_model.py","financetoolkit/utilities/statistics_model.py","financetoolkit/yfinance_model.py","glama.json","pyproject.toml","server.json","tests/__init__.py","tests/conftest.py","tests/csv/test_toolkit_controller/test_toolkit_balance.csv","tests/csv/test_toolkit_controller/test_toolkit_balance_1.csv","tests/csv/test_toolkit_controller/test_toolkit_balance_2.csv","tests/csv/test_toolkit_controller/test_toolkit_cash.csv","tests/csv/test_toolkit_controller/test_toolkit_cash_1.csv","tests/csv/test_toolkit_controller/test_toolkit_cash_2.csv","tests/csv/test_toolkit_controller/test_toolkit_historical.csv","tests/csv/test_toolkit_controller/test_toolkit_income.csv","tests/csv/test_toolkit_controller/test_toolkit_income_1.csv","tests/csv/test_toolkit_controller/test_toolkit_income_2.csv","tests/csv/test_toolkit_controller/test_toolkit_models.csv","tests/csv/test_toolkit_controller/test_toolkit_models_1.csv","tests/csv/test_toolkit_controller/test_toolkit_models_2.csv","tests/csv/test_toolkit_controller/test_toolkit_performance.csv","tests/csv/test_toolkit_controller/test_toolkit_performance_1.csv","tests/csv/test_toolkit_controller/test_toolkit_performance_2.csv","tests/csv/test_toolkit_controller/test_toolkit_ratios.csv","tests/csv/test_toolkit_controller/test_toolkit_ratios_1.csv","tests/csv/test_toolkit_controller/test_toolkit_ratios_2.csv","tests/csv/test_toolkit_controller/test_toolkit_risk.csv","tests/csv/test_toolkit_controller/test_toolkit_risk_1.csv","tests/csv/test_toolkit_controller/test_toolkit_risk_2.csv","tests/csv/test_toolkit_controller/test_toolkit_technicals.csv","tests/csv/test_toolkit_controller/test_toolkit_technicals_1.csv","tests/csv/test_toolkit_controller/test_toolkit_technicals_2.csv","tests/datasets/balance_dataset.pickle","tests/datasets/cash_dataset.pickle","tests/datasets/historical_dataset.pickle","tests/datasets/income_dataset.pickle","tests/datasets/portfolio_benchmark_dataset.pickle","tests/datasets/portfolio_historical_dataset.pickle","tests/datasets/portfolio_test.xlsx","tests/datasets/risk_free_rate.pickle","tests/datasets/treasury_data.pickle","tests/discovery/__init__.py","tests/discovery/json/test_discovery_controller/test_discovery_controller_initialization.json","tests/discovery/json/test_discovery_controller/test_discovery_controller_initialization_1.json","tests/discovery/json/test_discovery_controller/test_get_crypto_news.json","tests/discovery/json/test_discovery_controller/test_get_forex_news.json","tests/discovery/json/test_discovery_controller/test_get_general_news.json","tests/discovery/json/test_discovery_controller/test_get_industry_pe_history.json","tests/discovery/json/test_discovery_controller/test_get_industry_pe_snapshot.json","tests/discovery/json/test_discovery_controller/test_get_industry_performance_history.json","tests/discovery/json/test_discovery_controller/test_get_industry_performance_snapshot.json","tests/discovery/json/test_discovery_controller/test_get_ipo_calendar.json","tests/discovery/json/test_discovery_controller/test_get_ipo_calendar_1.json","tests/discovery/json/test_discovery_controller/test_get_ipo_disclosures.json","tests/discovery/json/test_discovery_controller/test_get_ipo_prospectuses.json","tests/discovery/json/test_discovery_controller/test_get_mergers_acquisitions_latest.json","tests/discovery/json/test_discovery_controller/test_get_press_releases.json","tests/discovery/json/test_discovery_controller/test_get_sector_pe_history.json","tests/discovery/json/test_discovery_controller/test_get_sector_pe_snapshot.json","tests/discovery/json/test_discovery_controller/test_get_sector_performance_history.json","tests/discovery/json/test_discovery_controller/test_get_sector_performance_snapshot.json","tests/discovery/json/test_discovery_controller/test_get_stock_list.json","tests/discovery/json/test_discovery_controller/test_get_stock_list_1.json","tests/discovery/json/test_discovery_controller/test_get_stock_news.json","tests/discovery/json/test_discovery_controller/test_get_stock_news_1.json","tests/discovery/json/test_discovery_controller/test_get_stock_screener.json","tests/discovery/json/test_discovery_controller/test_get_stock_screener_1.json","tests/discovery/json/test_discovery_controller/test_get_stock_splits_calendar.json","tests/discovery/json/test_discovery_controller/test_search_crypto_news.json","tests/discovery/json/test_discovery_controller/test_search_forex_news.json","tests/discovery/json/test_discovery_controller/test_search_instruments.json","tests/discovery/json/test_discovery_controller/test_search_instruments_1.json","tests/discovery/json/test_discovery_controller/test_search_press_releases.json","tests/discovery/json/test_discovery_controller/test_search_stock_news.json","tests/discovery/test_discovery_controller.py","tests/economics/__init__.py","tests/economics/conftest.py","tests/economics/test_economics_controller.py","tests/fixedincome/__init__.py","tests/fixedincome/csv/test_fixedincome_controller/test_collect_bond_statistics.csv","tests/fixedincome/csv/test_fixedincome_controller/test_collect_bond_statistics_1.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_derivative_price.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_derivative_price_1.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_derivative_price_2.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_duration.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_duration_1.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_duration_2.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_duration_3.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_present_value.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_present_value_1.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_yield_to_maturity.csv","tests/fixedincome/csv/test_fixedincome_controller/test_get_yield_to_maturity_1.csv","tests/fixedincome/json/test_derivative_model/test_get_annuity_factor.json","tests/fixedincome/json/test_derivative_model/test_get_annuity_factor_scales_with_tenor.json","tests/fixedincome/json/test_derivative_model/test_get_bachelier_price_payer.json","tests/fixedincome/json/test_derivative_model/test_get_bachelier_price_receiver.json","tests/fixedincome/json/test_derivative_model/test_get_bachelier_price_scales_with_tenor.json","tests/fixedincome/json/test_derivative_model/test_get_black_price_default_tenor_matches_maturity.json","tests/fixedincome/json/test_derivative_model/test_get_black_price_payer.json","tests/fixedincome/json/test_derivative_model/test_get_black_price_receiver.json","tests/fixedincome/json/test_derivative_model/test_get_black_price_scales_with_tenor.json","tests/fixedincome/json/test_fixedincome_controller/test_fixedincome_controller_initialization.json","tests/fixedincome/json/test_fixedincome_controller/test_fixedincome_controller_initialization_1.json","tests/fixedincome/json/test_fixedincome_controller/test_fixedincome_controller_initialization_2.json","tests/fixedincome/json/test_fixedincome_controller/test_fixedincome_controller_initialization_3.json","tests/fixedincome/json/test_fixedincome_controller/test_get_present_value.json","tests/fixedincome/json/test_fixedincome_controller/test_get_present_value_1.json","tests/fixedincome/json/test_fixedincome_controller/test_get_present_value_2.json","tests/fixedincome/test_derivative_model.py","tests/fixedincome/test_fixedincome_controller.py","tests/json/test_normalization_model/test_convert_financial_statements_empty_format.json","tests/mcp_server/test_mcp_controller.py","tests/mcp_server/test_mcp_oauth.py","tests/mcp_server/test_request_auth.py","tests/models/__init__.py","tests/models/csv/test_altman_model/test_get_altman_z_score.csv","tests/models/csv/test_altman_model/test_get_earnings_before_interest_and_taxes_to_total_assets_ratio.csv","tests/models/csv/test_altman_model/test_get_market_value_of_equity_to_book_value_of_total_liabilities_ratio.csv","tests/models/csv/test_altman_model/test_get_retained_earnings_to_total_assets_ratio.csv","tests/models/csv/test_altman_model/test_get_sales_to_total_assets_ratio.csv","tests/models/csv/test_altman_model/test_get_working_capital_to_total_assets_ratio.csv","tests/models/csv/test_beneish_model/test_get_asset_quality_index.csv","tests/models/csv/test_beneish_model/test_get_beneish_m_score.csv","tests/models/csv/test_beneish_model/test_get_days_sales_in_receivables_index.csv","tests/models/csv/test_beneish_model/test_get_depreciation_index.csv","tests/models/csv/test_beneish_model/test_get_gross_margin_index.csv","tests/models/csv/test_beneish_model/test_get_leverage_index.csv","tests/models/csv/test_beneish_model/test_get_sales_growth_index.csv","tests/models/csv/test_beneish_model/test_get_selling_general_and_administrative_expenses_index.csv","tests/models/csv/test_beneish_model/test_get_total_accruals_to_total_assets.csv","tests/models/csv/test_dupont_model/test_get_dupont_analysis.csv","tests/models/csv/test_dupont_model/test_get_extended_dupont_analysis.csv","tests/models/csv/test_enterprise_model/test_get_enterprise_value_breakdown.csv","tests/models/csv/test_eva_model/test_get_economic_value_added.csv","tests/models/csv/test_eva_model/test_get_invested_capital.csv","tests/models/csv/test_eva_model/test_get_net_operating_profit_after_taxes.csv","tests/models/csv/test_growth_model/test_get_internal_growth_rate.csv","tests/models/csv/test_growth_model/test_get_present_value_of_growth_opportunities.csv","tests/models/csv/test_growth_model/test_get_sustainable_growth_rate.csv","tests/models/csv/test_intrinsic_model/test_get_intrinsic_value.csv","tests/models/csv/test_models_controller/test_get_altman_z_score.csv","tests/models/csv/test_models_controller/test_get_altman_z_score_1.csv","tests/models/csv/test_models_controller/test_get_altman_z_score_2.csv","tests/models/csv/test_models_controller/test_get_beneish_m_score.csv","tests/models/csv/test_models_controller/test_get_beneish_m_score_1.csv","tests/models/csv/test_models_controller/test_get_dupont_analysis.csv","tests/models/csv/test_models_controller/test_get_dupont_analysis_1.csv","tests/models/csv/test_models_controller/test_get_dupont_analysis_2.csv","tests/models/csv/test_models_controller/test_get_economic_value_added.csv","tests/models/csv/test_models_controller/test_get_economic_value_added_1.csv","tests/models/csv/test_models_controller/test_get_enterprise_value_breakdown.csv","tests/models/csv/test_models_controller/test_get_enterprise_value_breakdown_1.csv","tests/models/csv/test_models_controller/test_get_enterprise_value_breakdown_2.csv","tests/models/csv/test_models_controller/test_get_extended_dupont_analysis.csv","tests/models/csv/test_models_controller/test_get_extended_dupont_analysis_1.csv","tests/models/csv/test_models_controller/test_get_extended_dupont_analysis_2.csv","tests/models/csv/test_models_controller/test_get_gorden_growth_model.csv","tests/models/csv/test_models_controller/test_get_gorden_growth_model_1.csv","tests/models/csv/test_models_controller/test_get_internal_growth_rate.csv","tests/models/csv/test_models_controller/test_get_internal_growth_rate_1.csv","tests/models/csv/test_models_controller/test_get_intrinsic_valuation.csv","tests/models/csv/test_models_controller/test_get_intrinsic_valuation_1.csv","tests/models/csv/test_models_controller/test_get_piotroski_score.csv","tests/models/csv/test_models_controller/test_get_present_value_of_growth_opportunities.csv","tests/models/csv/test_models_controller/test_get_present_value_of_growth_opportunities_1.csv","tests/models/csv/test_models_controller/test_get_sustainable_growth_rate.csv","tests/models/csv/test_models_controller/test_get_sustainable_growth_rate_1.csv","tests/models/csv/test_models_controller/test_get_weighted_average_cost_of_capital.csv","tests/models/csv/test_models_controller/test_get_weighted_average_cost_of_capital_1.csv","tests/models/csv/test_models_controller/test_get_weighted_average_cost_of_capital_2.csv","tests/models/csv/test_wacc_model/test_get_cost_of_debt.csv","tests/models/csv/test_wacc_model/test_get_cost_of_equity.csv","tests/models/csv/test_wacc_model/test_get_weighted_average_cost_of_capital.csv","tests/models/test_altman_model.py","tests/models/test_beneish_model.py","tests/models/test_dupont_model.py","tests/models/test_enterprise_model.py","tests/models/test_eva_model.py","tests/models/test_growth_model.py","tests/models/test_intrinsic_model.py","tests/models/test_models_controller.py","tests/models/test_piotroski_model.py","tests/models/test_wacc_model.py","tests/options/csv/test_options_controller/test_collect_all_greeks.csv","tests/options/csv/test_options_controller/test_collect_all_greeks_1.csv","tests/options/csv/test_options_controller/test_collect_all_greeks_2.csv","tests/options/csv/test_options_controller/test_collect_first_order_greeks.csv","tests/options/csv/test_options_controller/test_collect_first_order_greeks_1.csv","tests/options/csv/test_options_controller/test_collect_first_order_greeks_2.csv","tests/options/csv/test_options_controller/test_collect_second_order_greeks.csv","tests/options/csv/test_options_controller/test_collect_second_order_greeks_1.csv","tests/options/csv/test_options_controller/test_collect_second_order_greeks_2.csv","tests/options/csv/test_options_controller/test_collect_third_order_greeks.csv","tests/options/csv/test_options_controller/test_collect_third_order_greeks_1.csv","tests/options/csv/test_options_controller/test_get_binomial_model.csv","tests/options/csv/test_options_controller/test_get_binomial_model_1.csv","tests/options/csv/test_options_controller/test_get_binomial_model_2.csv","tests/options/csv/test_options_controller/test_get_binomial_model_3.csv","tests/options/csv/test_options_controller/test_get_black_scholes_model.csv","tests/options/csv/test_options_controller/test_get_black_scholes_model_1.csv","tests/options/csv/test_options_controller/test_get_black_scholes_model_2.csv","tests/options/csv/test_options_controller/test_get_charm.csv","tests/options/csv/test_options_controller/test_get_charm_1.csv","tests/options/csv/test_options_controller/test_get_charm_2.csv","tests/options/csv/test_options_controller/test_get_color.csv","tests/options/csv/test_options_controller/test_get_color_1.csv","tests/options/csv/test_options_controller/test_get_delta.csv","tests/options/csv/test_options_controller/test_get_delta_1.csv","tests/options/csv/test_options_controller/test_get_delta_2.csv","tests/options/csv/test_options_controller/test_get_dual_delta.csv","tests/options/csv/test_options_controller/test_get_dual_delta_1.csv","tests/options/csv/test_options_controller/test_get_dual_delta_2.csv","tests/options/csv/test_options_controller/test_get_dual_gamma.csv","tests/options/csv/test_options_controller/test_get_dual_gamma_1.csv","tests/options/csv/test_options_controller/test_get_epsilon.csv","tests/options/csv/test_options_controller/test_get_epsilon_1.csv","tests/options/csv/test_options_controller/test_get_epsilon_2.csv","tests/options/csv/test_options_controller/test_get_gamma.csv","tests/options/csv/test_options_controller/test_get_gamma_1.csv","tests/options/csv/test_options_controller/test_get_lambda.csv","tests/options/csv/test_options_controller/test_get_lambda_1.csv","tests/options/csv/test_options_controller/test_get_lambda_2.csv","tests/options/csv/test_options_controller/test_get_partial_derivative.csv","tests/options/csv/test_options_controller/test_get_partial_derivative_1.csv","tests/options/csv/test_options_controller/test_get_rho.csv","tests/options/csv/test_options_controller/test_get_rho_1.csv","tests/options/csv/test_options_controller/test_get_rho_2.csv","tests/options/csv/test_options_controller/test_get_speed.csv","tests/options/csv/test_options_controller/test_get_speed_1.csv","tests/options/csv/test_options_controller/test_get_stock_price_simulation.csv","tests/options/csv/test_options_controller/test_get_stock_price_simulation_1.csv","tests/options/csv/test_options_controller/test_get_theta.csv","tests/options/csv/test_options_controller/test_get_theta_1.csv","tests/options/csv/test_options_controller/test_get_theta_2.csv","tests/options/csv/test_options_controller/test_get_ultima.csv","tests/options/csv/test_options_controller/test_get_ultima_1.csv","tests/options/csv/test_options_controller/test_get_vanna.csv","tests/options/csv/test_options_controller/test_get_vanna_1.csv","tests/options/csv/test_options_controller/test_get_vega.csv","tests/options/csv/test_options_controller/test_get_vega_1.csv","tests/options/csv/test_options_controller/test_get_vera.csv","tests/options/csv/test_options_controller/test_get_vera_1.csv","tests/options/csv/test_options_controller/test_get_veta.csv","tests/options/csv/test_options_controller/test_get_veta_1.csv","tests/options/csv/test_options_controller/test_get_vomma.csv","tests/options/csv/test_options_controller/test_get_vomma_1.csv","tests/options/csv/test_options_controller/test_get_zomma.csv","tests/options/csv/test_options_controller/test_get_zomma_1.csv","tests/options/test_options_controller.py","tests/performance/csv/test_performance_controller/test_collect_all_metrics.csv","tests/performance/csv/test_performance_controller/test_collect_all_metrics_1.csv"],"storefront":"/r/JerBouma","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/JerBouma/FinanceToolkit/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}