From a5b4f89e4ecd69e436a4a5b79351914fb75e5d43 Mon Sep 17 00:00:00 2001 From: Pratyush Shukla Date: Wed, 2 Aug 2023 04:11:37 +0530 Subject: [PATCH] refactored `StockMultiples` for `stocks.multiples` --- .../fmp/openbb_fmp/models/stock_multiples.py | 166 +++----- .../openbb_provider/models/stock_multiples.py | 365 +++++++++--------- 2 files changed, 243 insertions(+), 288 deletions(-) diff --git a/openbb_sdk/providers/fmp/openbb_fmp/models/stock_multiples.py b/openbb_sdk/providers/fmp/openbb_fmp/models/stock_multiples.py index ace8d950783..262bfd19c30 100644 --- a/openbb_sdk/providers/fmp/openbb_fmp/models/stock_multiples.py +++ b/openbb_sdk/providers/fmp/openbb_fmp/models/stock_multiples.py @@ -8,119 +8,80 @@ from openbb_provider.models.stock_multiples import ( StockMultiplesData, StockMultiplesQueryParams, ) -from pydantic import Field -from openbb_fmp.utils.helpers import create_url, get_data_one +from openbb_fmp.utils.helpers import create_url, get_data_many class FMPStockMultiplesQueryParams(StockMultiplesQueryParams): - """FMP Stock Multiples QueryParams. + """FMP Stock Multiples Query. Source: https://site.financialmodelingprep.com/developer/docs/#Company-Key-Metrics - - Parameter - --------- - symbol : str - The symbol of the company. - limit : Optional[int] - The limit of the key metrics ttm to be returned. """ class FMPStockMultiplesData(StockMultiplesData): """FMP Stock Multiples Data.""" - revenuePerShareTTM: Optional[float] = Field(alias="revenue_per_share_ttm") - netIncomePerShareTTM: Optional[float] = Field(alias="net_income_per_share_ttm") - operatingCashFlowPerShareTTM: Optional[float] = Field( - alias="operating_cash_flow_per_share_ttm" - ) - freeCashFlowPerShareTTM: Optional[float] = Field( - alias="free_cash_flow_per_share_ttm" - ) - cashPerShareTTM: Optional[float] = Field(alias="cash_per_share_ttm") - bookValuePerShareTTM: Optional[float] = Field(alias="book_value_per_share_ttm") - tangibleBookValuePerShareTTM: Optional[float] = Field( - alias="tangible_book_value_per_share_ttm" - ) - shareholdersEquityPerShareTTM: Optional[float] = Field( - alias="shareholders_equity_per_share_ttm" - ) - interestDebtPerShareTTM: Optional[float] = Field( - alias="interest_debt_per_share_ttm" - ) - marketCapTTM: Optional[float] = Field(alias="market_cap_ttm") - enterpriseValueTTM: Optional[float] = Field(alias="enterprise_value_ttm") - peRatioTTM: Optional[float] = Field(alias="pe_ratio_ttm") - priceToSalesRatioTTM: Optional[float] = Field(alias="price_to_sales_ratio_ttm") - pocfratioTTM: Optional[float] = Field(alias="pocf_ratio_ttm") - pfcfRatioTTM: Optional[float] = Field(alias="pfcf_ratio_ttm") - pbRatioTTM: Optional[float] = Field(alias="pb_ratio_ttm") - ptbRatioTTM: Optional[float] = Field(alias="ptb_ratio_ttm") - evToSalesTTM: Optional[float] = Field(alias="ev_to_sales_ttm") - enterpriseValueOverEBITDATTM: Optional[float] = Field( - alias="enterprise_value_over_ebitda_ttm" - ) - evToOperatingCashFlowTTM: Optional[float] = Field( - alias="ev_to_operating_cash_flow_ttm" - ) - evToFreeCashFlowTTM: Optional[float] = Field(alias="ev_to_free_cash_flow_ttm") - earningsYieldTTM: Optional[float] = Field(alias="earnings_yield_ttm") - freeCashFlowYieldTTM: Optional[Optional[float]] = Field( - alias="free_cash_flow_yield_ttm" - ) - debtToEquityTTM: Optional[float] = Field(alias="debt_to_equity_ttm") - debtToAssetsTTM: Optional[float] = Field(alias="debt_to_assets_ttm") - netDebtToEBITDATTM: Optional[float] = Field(alias="net_debt_to_ebitda_ttm") - currentRatioTTM: Optional[float] = Field(alias="current_ratio_ttm") - interestCoverageTTM: Optional[float] = Field(alias="interest_coverage_ttm") - incomeQualityTTM: Optional[float] = Field(alias="income_quality_ttm") - dividendYieldTTM: Optional[Optional[float]] = Field(alias="dividend_yield_ttm") - payoutRatioTTM: Optional[Optional[float]] = Field(alias="payout_ratio_ttm") - salesGeneralAndAdministrativeToRevenueTTM: Optional[float] = Field( - alias="sales_general_and_administrative_to_revenue_ttm" - ) - researchAndDevelopementToRevenueTTM: Optional[float] = Field( - alias="research_and_development_to_revenue_ttm" - ) - intangiblesToTotalAssetsTTM: Optional[float] = Field( - alias="intangibles_to_total_assets_ttm" - ) - capexToOperatingCashFlowTTM: Optional[float] = Field( - alias="capex_to_operating_cash_flow_ttm" - ) - capexToRevenueTTM: Optional[float] = Field(alias="capex_to_revenue_ttm") - capexToDepreciationTTM: Optional[float] = Field(alias="capex_to_depreciation_ttm") - stockBasedCompensationToRevenueTTM: Optional[float] = Field( - alias="stock_based_compensation_to_revenue_ttm" - ) - grahamNumberTTM: Optional[float] = Field(alias="graham_number_ttm") - roicTTM: Optional[float] = Field(alias="roic_ttm") - returnOnTangibleAssetsTTM: Optional[float] = Field( - alias="return_on_tangible_assets_ttm" - ) - grahamNetNetTTM: Optional[float] = Field(alias="graham_net_net_ttm") - workingCapitalTTM: Optional[float] = Field(alias="working_capital_ttm") - tangibleAssetValueTTM: Optional[float] = Field(alias="tangible_asset_value_ttm") - netCurrentAssetValueTTM: Optional[float] = Field( - alias="net_current_asset_value_ttm" - ) - investedCapitalTTM: Optional[float] = Field(alias="invested_capital_ttm") - averageReceivablesTTM: Optional[float] = Field(alias="average_receivables_ttm") - averagePayablesTTM: Optional[float] = Field(alias="average_payables_ttm") - averageInventoryTTM: Optional[float] = Field(alias="average_inventory_ttm") - daysSalesOutstandingTTM: Optional[float] = Field(alias="days_sales_outstanding_ttm") - daysPayablesOutstandingTTM: Optional[float] = Field( - alias="days_payables_outstanding_ttm" - ) - daysOfInventoryOnHandTTM: Optional[float] = Field( - alias="days_of_inventory_on_hand_ttm" - ) - receivablesTurnoverTTM: Optional[float] = Field(alias="receivables_turnover_ttm") - payablesTurnoverTTM: Optional[float] = Field(alias="payables_turnover_ttm") - inventoryTurnoverTTM: Optional[float] = Field(alias="inventory_turnover_ttm") - roeTTM: Optional[float] = Field(alias="roe_ttm") - capexPerShareTTM: Optional[float] = Field(alias="capex_per_share_ttm") + class Config: + fields = { + "revenue_per_share_ttm": "revenuePerShareTTM", + "net_income_per_share_ttm": "netIncomePerShareTTM", + "operating_cash_flow_per_share_ttm": "operatingCashFlowPerShareTTM", + "free_cash_flow_per_share_ttm": "freeCashFlowPerShareTTM", + "cash_per_share_ttm": "cashPerShareTTM", + "book_value_per_share_ttm": "bookValuePerShareTTM", + "tangible_book_value_per_share_ttm": "tangibleBookValuePerShareTTM", + "shareholders_equity_per_share_ttm": "shareholdersEquityPerShareTTM", + "interest_debt_per_share_ttm": "interestDebtPerShareTTM", + "market_cap_ttm": "marketCapTTM", + "enterprise_value_ttm": "enterpriseValueTTM", + "pe_ratio_ttm": "peRatioTTM", + "price_to_sales_ratio_ttm": "priceToSalesRatioTTM", + "pocf_ratio_ttm": "pocfratioTTM", + "pfcf_ratio_ttm": "pfcfRatioTTM", + "pb_ratio_ttm": "pbRatioTTM", + "ptb_ratio_ttm": "ptbRatioTTM", + "ev_to_sales_ttm": "evToSalesTTM", + "enterprise_value_over_ebitda_ttm": "enterpriseValueOverEBITDATTM", + "ev_to_operating_cash_flow_ttm": "evToOperatingCashFlowTTM", + "ev_to_free_cash_flow_ttm": "evToFreeCashFlowTTM", + "earnings_yield_ttm": "earningsYieldTTM", + "free_cash_flow_yield_ttm": "freeCashFlowYieldTTM", + "debt_to_equity_ttm": "debtToEquityTTM", + "debt_to_assets_ttm": "debtToAssetsTTM", + "net_debt_to_ebitda_ttm": "netDebtToEBITDATTM", + "current_ratio_ttm": "currentRatioTTM", + "interest_coverage_ttm": "interestCoverageTTM", + "income_quality_ttm": "incomeQualityTTM", + "dividend_yield_ttm": "dividendYieldTTM", + "payout_ratio_ttm": "payoutRatioTTM", + "sales_general_and_administrative_to_revenue_ttm": "salesGeneralAndAdministrativeToRevenueTTM", + "research_and_development_to_revenue_ttm": "researchAndDevelopementToRevenueTTM", + "intangibles_to_total_assets_ttm": "intangiblesToTotalAssetsTTM", + "capex_to_operating_cash_flow_ttm": "capexToOperatingCashFlowTTM", + "capex_to_revenue_ttm": "capexToRevenueTTM", + "capex_to_depreciation_ttm": "capexToDepreciationTTM", + "stock_based_compensation_to_revenue_ttm": "stockBasedCompensationToRevenueTTM", + "graham_number_ttm": "grahamNumberTTM", + "roic_ttm": "roicTTM", + "return_on_tangible_assets_ttm": "returnOnTangibleAssetsTTM", + "graham_net_net_ttm": "grahamNetNetTTM", + "working_capital_ttm": "workingCapitalTTM", + "tangible_asset_value_ttm": "tangibleAssetValueTTM", + "net_current_asset_value_ttm": "netCurrentAssetValueTTM", + "invested_capital_ttm": "investedCapitalTTM", + "average_receivables_ttm": "averageReceivablesTTM", + "average_payables_ttm": "averagePayablesTTM", + "average_inventory_ttm": "averageInventoryTTM", + "days_sales_outstanding_ttm": "daysSalesOutstandingTTM", + "days_payables_outstanding_ttm": "daysPayablesOutstandingTTM", + "days_of_inventory_on_hand_ttm": "daysOfInventoryOnHandTTM", + "receivables_turnover_ttm": "receivablesTurnoverTTM", + "payables_turnover_ttm": "payablesTurnoverTTM", + "inventory_turnover_ttm": "inventoryTurnoverTTM", + "roe_ttm": "roeTTM", + "capex_per_share_ttm": "capexPerShareTTM", + } class FMPStockMultiplesFetcher( @@ -144,7 +105,8 @@ class FMPStockMultiplesFetcher( url = create_url( 3, f"key-metrics-ttm/{query.symbol}", api_key, query, exclude=["symbol"] ) - return [get_data_one(url, FMPStockMultiplesData)] + + return get_data_many(url, FMPStockMultiplesData) @staticmethod def transform_data( diff --git a/openbb_sdk/sdk/provider/openbb_provider/models/stock_multiples.py b/openbb_sdk/sdk/provider/openbb_provider/models/stock_multiples.py index 970f534601a..f0f064cef1c 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/models/stock_multiples.py +++ b/openbb_sdk/sdk/provider/openbb_provider/models/stock_multiples.py @@ -5,197 +5,190 @@ from typing import Optional from openbb_provider.abstract.data import Data from openbb_provider.abstract.query_params import QueryParams from openbb_provider.models.base import BaseSymbol +from openbb_provider.descriptions import QUERY_DESCRIPTIONS + +from pydantic import Field class StockMultiplesQueryParams(QueryParams, BaseSymbol): - """Stock Multiples query model. + """Stock Multiples Query.""" - Parameter - --------- - symbol : str - The symbol of the company. - limit : Optional[int] - The limit of the key metrics ttm to be returned. - """ - - limit: Optional[int] = None + limit: Optional[int] = Field( + default=100, description=QUERY_DESCRIPTIONS.get("limit", "") + ) class StockMultiplesData(Data): - """Stock Multiples Data. + """Stock Multiples Data.""" - Returns - ------- - revenue_per_share_ttm: Optional[float] - The revenue per share of the stock calculated as trailing twelve months. - net_income_per_share_ttm: Optional[float] - The net income per share of the stock calculated as trailing twelve months. - operating_cash_flow_per_share_ttm: Optional[float] - The operating cash flow per share of the stock calculated as trailing twelve months. - free_cash_flow_per_share_ttm: Optional[float] - The free cash flow per share of the stock calculated as trailing twelve months. - cash_per_share_ttm: Optional[float] - The cash per share of the stock calculated as trailing twelve months. - book_value_per_share_ttm: Optional[float] - The book value per share of the stock calculated as trailing twelve months. - tangible_book_value_per_share_ttm: Optional[float] - The tangible book value per share of the stock calculated as trailing twelve months. - shareholders_equity_per_share_ttm: Optional[float] - The shareholders equity per share of the stock calculated as trailing twelve months. - interest_debt_per_share_ttm: Optional[float] - The interest debt per share of the stock calculated as trailing twelve months. - market_cap_ttm: Optional[float] - The market cap of the stock calculated as trailing twelve months. - enterprise_value_ttm: Optional[float] - The enterprise value of the stock calculated as trailing twelve months. - pe_ratio_ttm: Optional[float] - The PE ratio of the stock calculated as trailing twelve months. - price_to_sales_ratio_ttm: Optional[float] - The price to sales ratio of the stock calculated as trailing twelve months. - pocf_ratio_ttm: Optional[float] - The POCF ratio of the stock calculated as trailing twelve months. - pfcf_ratio_ttm: Optional[float] - The PFCF ratio of the stock calculated as trailing twelve months. - pb_ratio_ttm: Optional[float] - The PB ratio of the stock calculated as trailing twelve months. - ptb_ratio_ttm: Optional[float] - The PTB ratio of the stock calculated as trailing twelve months. - ev_to_sales_ttm: Optional[float] - The EV to sales of the stock calculated as trailing twelve months. - enterprise_value_over_ebitda_ttm: Optional[float] - The enterprise value over EBITDA of the stock calculated as trailing twelve months. - ev_to_operating_cash_flow_ttm: Optional[float] - The EV to operating cash flow of the stock calculated as trailing twelve months. - ev_to_free_cash_flow_ttm: Optional[float] - The EV to free cash flow of the stock calculated as trailing twelve months. - earnings_yield_ttm: Optional[float] - The earnings yield of the stock calculated as trailing twelve months. - free_cash_flow_yield_ttm: Optional[float] - The free cash flow yield of the stock calculated as trailing twelve months. - debt_to_equity_ttm: Optional[float] - The debt to equity of the stock calculated as trailing twelve months. - debt_to_assets_ttm: Optional[float] - The debt to assets of the stock calculated as trailing twelve months. - net_debt_to_ebitda_ttm: Optional[float] - The net debt to EBITDA of the stock calculated as trailing twelve months. - current_ratio_ttm: Optional[float] - The current ratio of the stock calculated as trailing twelve months. - interest_coverage_ttm: Optional[float] - The interest coverage of the stock calculated as trailing twelve months. - income_quality_ttm: Optional[float] - The income quality of the stock calculated as trailing twelve months. - dividend_yield_ttm: Optional[float] - The dividend yield of the stock calculated as trailing twelve months. - payout_ratio_ttm: Optional[float] - The payout ratio of the stock calculated as trailing twelve months. - sales_general_and_administrative_to_revenue_ttm: Optional[float] - The sales general and administrative to revenue of the stock calculated as trailing twelve months. - research_and_development_to_revenue_ttm: Optional[float] - The research and development to revenue of the stock calculated as trailing twelve months. - intangibles_to_total_assets_ttm: Optional[float] - The intangibles to total assets of the stock calculated as trailing twelve months. - capex_to_operating_cash_flow_ttm: Optional[float] - The capex to operating cash flow of the stock calculated as trailing twelve months. - capex_to_revenue_ttm: Optional[float] - The capex to revenue of the stock calculated as trailing twelve months. - capex_to_depreciation_ttm: Optional[float] - The capex to depreciation of the stock calculated as trailing twelve months. - stock_based_compensation_to_revenue_ttm: Optional[float] - The stock based compensation to revenue of the stock calculated as trailing twelve months. - graham_number_ttm: Optional[float] - The graham number of the stock calculated as trailing twelve months. - roic_ttm: Optional[float] - The ROIC of the stock calculated as trailing twelve months. - return_on_tangible_assets_ttm: Optional[float] - The return on tangible assets of the stock calculated as trailing twelve months. - graham_net_net_ttm: Optional[float] - The graham net net of the stock calculated as trailing twelve months. - working_capital_ttm: Optional[float] - The working capital of the stock calculated as trailing twelve months. - tangible_asset_value_ttm: Optional[float] - The tangible asset value of the stock calculated as trailing twelve months. - net_current_asset_value_ttm: Optional[float] - The net current asset value of the stock calculated as trailing twelve months. - invested_capital_ttm: Optional[float] - The invested capital of the stock calculated as trailing twelve months. - average_receivables_ttm: Optional[float] - The average receivables of the stock calculated as trailing twelve months. - average_payables_ttm: Optional[float] - The average payables of the stock calculated as trailing twelve months. - average_inventory_ttm: Optional[float] - The average inventory of the stock calculated as trailing twelve months. - days_sales_outstanding_ttm: Optional[float] - The days sales outstanding of the stock calculated as trailing twelve months. - days_payables_outstanding_ttm: Optional[float] - The days payables outstanding of the stock calculated as trailing twelve months. - days_of_inventory_on_hand_ttm: Optional[float] - The days of inventory on hand of the stock calculated as trailing twelve months. - receivables_turnover_ttm: Optional[float] - The receivables turnover of the stock calculated as trailing twelve months. - payables_turnover_ttm: Optional[float] - The payables turnover of the stock calculated as trailing twelve months. - inventory_turnover_ttm: Optional[float] - The inventory turnover of the stock calculated as trailing twelve months. - roe_ttm: Optional[float] - The ROE of the stock calculated as trailing twelve months. - capex_per_share_ttm: Optional[float] - The capex per share of the stock calculated as trailing twelve months. - """ - - revenue_per_share_ttm: Optional[float] - net_income_per_share_ttm: Optional[float] - operating_cash_flow_per_share_ttm: Optional[float] - free_cash_flow_per_share_ttm: Optional[float] - cash_per_share_ttm: Optional[float] - book_value_per_share_ttm: Optional[float] - tangible_book_value_per_share_ttm: Optional[float] - shareholders_equity_per_share_ttm: Optional[float] - interest_debt_per_share_ttm: Optional[float] - market_cap_ttm: Optional[float] - enterprise_value_ttm: Optional[float] - pe_ratio_ttm: Optional[float] - price_to_sales_ratio_ttm: Optional[float] - pocf_ratio_ttm: Optional[float] - pfcf_ratio_ttm: Optional[float] - pb_ratio_ttm: Optional[float] - ptb_ratio_ttm: Optional[float] - ev_to_sales_ttm: Optional[float] - enterprise_value_over_ebitda_ttm: Optional[float] - ev_to_operating_cash_flow_ttm: Optional[float] - ev_to_free_cash_flow_ttm: Optional[float] - earnings_yield_ttm: Optional[float] - free_cash_flow_yield_ttm: Optional[float] - debt_to_equity_ttm: Optional[float] - debt_to_assets_ttm: Optional[float] - net_debt_to_ebitda_ttm: Optional[float] - current_ratio_ttm: Optional[float] - interest_coverage_ttm: Optional[float] - income_quality_ttm: Optional[float] - dividend_yield_ttm: Optional[float] - payout_ratio_ttm: Optional[float] - sales_general_and_administrative_to_revenue_ttm: Optional[float] - research_and_development_to_revenue_ttm: Optional[float] - intangibles_to_total_assets_ttm: Optional[float] - capex_to_operating_cash_flow_ttm: Optional[float] - capex_to_revenue_ttm: Optional[float] - capex_to_depreciation_ttm: Optional[float] - stock_based_compensation_to_revenue_ttm: Optional[float] - graham_number_ttm: Optional[float] - roic_ttm: Optional[float] - return_on_tangible_assets_ttm: Optional[float] - graham_net_net_ttm: Optional[float] - working_capital_ttm: Optional[float] - tangible_asset_value_ttm: Optional[float] - net_current_asset_value_ttm: Optional[float] - invested_capital_ttm: Optional[float] - average_receivables_ttm: Optional[float] - average_payables_ttm: Optional[float] - average_inventory_ttm: Optional[float] - days_sales_outstanding_ttm: Optional[float] - days_payables_outstanding_ttm: Optional[float] - days_of_inventory_on_hand_ttm: Optional[float] - receivables_turnover_ttm: Optional[float] - payables_turnover_ttm: Optional[float] - inventory_turnover_ttm: Optional[float] - roe_ttm: Optional[float] - capex_per_share_ttm: Optional[float] + revenue_per_share_ttm: Optional[float] = Field( + description="Revenue per share calculated as trailing twelve months." + ) + net_income_per_share_ttm: Optional[float] = Field( + description="Net income per share calculated as trailing twelve months." + ) + operating_cash_flow_per_share_ttm: Optional[float] = Field( + description="Operating cash flow per share calculated as trailing twelve months." + ) + free_cash_flow_per_share_ttm: Optional[float] = Field( + description="Free cash flow per share calculated as trailing twelve months." + ) + cash_per_share_ttm: Optional[float] = Field( + description="Cash per share calculated as trailing twelve months." + ) + book_value_per_share_ttm: Optional[float] = Field( + description="Book value per share calculated as trailing twelve months." + ) + tangible_book_value_per_share_ttm: Optional[float] = Field( + description="Tangible book value per share calculated as trailing twelve months." + ) + shareholders_equity_per_share_ttm: Optional[float] = Field( + description="Shareholders equity per share calculated as trailing twelve months." + ) + interest_debt_per_share_ttm: Optional[float] = Field( + description="Interest debt per share calculated as trailing twelve months." + ) + market_cap_ttm: Optional[float] = Field( + description="Market capitalization calculated as trailing twelve months." + ) + enterprise_value_ttm: Optional[float] = Field( + description="Enterprise value calculated as trailing twelve months." + ) + pe_ratio_ttm: Optional[float] = Field( + description="Price-to-earnings ratio (P/E ratio) calculated as trailing twelve months." + ) + price_to_sales_ratio_ttm: Optional[float] = Field( + description="Price-to-sales ratio calculated as trailing twelve months." + ) + pocf_ratio_ttm: Optional[float] = Field( + description="Price-to-operating cash flow ratio calculated as trailing twelve months." + ) + pfcf_ratio_ttm: Optional[float] = Field( + description="Price-to-free cash flow ratio calculated as trailing twelve months." + ) + pb_ratio_ttm: Optional[float] = Field( + description="Price-to-book ratio calculated as trailing twelve months." + ) + ptb_ratio_ttm: Optional[float] = Field( + description="Price-to-tangible book ratio calculated as trailing twelve months." + ) + ev_to_sales_ttm: Optional[float] = Field( + description="Enterprise value-to-sales ratio calculated as trailing twelve months." + ) + enterprise_value_over_ebitda_ttm: Optional[float] = Field( + description="Enterprise value-to-EBITDA ratio calculated as trailing twelve months." + ) + ev_to_operating_cash_flow_ttm: Optional[float] = Field( + description="Enterprise value-to-operating cash flow ratio calculated as trailing twelve months." + ) + ev_to_free_cash_flow_ttm: Optional[float] = Field( + description="Enterprise value-to-free cash flow ratio calculated as trailing twelve months." + ) + earnings_yield_ttm: Optional[float] = Field( + description="Earnings yield calculated as trailing twelve months." + ) + free_cash_flow_yield_ttm: Optional[float] = Field( + description="Free cash flow yield calculated as trailing twelve months." + ) + debt_to_equity_ttm: Optional[float] = Field( + description="Debt-to-equity ratio calculated as trailing twelve months." + ) + debt_to_assets_ttm: Optional[float] = Field( + description="Debt-to-assets ratio calculated as trailing twelve months." + ) + net_debt_to_ebitda_ttm: Optional[float] = Field( + description="Net debt-to-EBITDA ratio calculated as trailing twelve months." + ) + current_ratio_ttm: Optional[float] = Field( + description="Current ratio calculated as trailing twelve months." + ) + interest_coverage_ttm: Optional[float] = Field( + description="Interest coverage calculated as trailing twelve months." + ) + income_quality_ttm: Optional[float] = Field( + description="Income quality calculated as trailing twelve months." + ) + dividend_yield_ttm: Optional[float] = Field( + description="Dividend yield calculated as trailing twelve months." + ) + payout_ratio_ttm: Optional[float] = Field( + description="Payout ratio calculated as trailing twelve months." + ) + sales_general_and_administrative_to_revenue_ttm: Optional[float] = Field( + description="Sales general and administrative expenses-to-revenue ratio calculated as trailing twelve months." + ) + research_and_development_to_revenue_ttm: Optional[float] = Field( + description="Research and development expenses-to-revenue ratio calculated as trailing twelve months." + ) + intangibles_to_total_assets_ttm: Optional[float] = Field( + description="Intangibles-to-total assets ratio calculated as trailing twelve months." + ) + capex_to_operating_cash_flow_ttm: Optional[float] = Field( + description="Capital expenditures-to-operating cash flow ratio calculated as trailing twelve months." + ) + capex_to_revenue_ttm: Optional[float] = Field( + description="Capital expenditures-to-revenue ratio calculated as trailing twelve months." + ) + capex_to_depreciation_ttm: Optional[float] = Field( + description="Capital expenditures-to-depreciation ratio calculated as trailing twelve months." + ) + stock_based_compensation_to_revenue_ttm: Optional[float] = Field( + description="Stock-based compensation-to-revenue ratio calculated as trailing twelve months." + ) + graham_number_ttm: Optional[float] = Field( + description="Graham number calculated as trailing twelve months." + ) + roic_ttm: Optional[float] = Field( + description="Return on invested capital calculated as trailing twelve months." + ) + return_on_tangible_assets_ttm: Optional[float] = Field( + description="Return on tangible assets calculated as trailing twelve months." + ) + graham_net_net_ttm: Optional[float] = Field( + description="Graham net-net working capital calculated as trailing twelve months." + ) + working_capital_ttm: Optional[float] = Field( + description="Working capital calculated as trailing twelve months." + ) + tangible_asset_value_ttm: Optional[float] = Field( + description="Tangible asset value calculated as trailing twelve months." + ) + net_current_asset_value_ttm: Optional[float] = Field( + description="Net current asset value calculated as trailing twelve months." + ) + invested_capital_ttm: Optional[float] = Field( + description="Invested capital calculated as trailing twelve months." + ) + average_receivables_ttm: Optional[float] = Field( + description="Average receivables calculated as trailing twelve months." + ) + average_payables_ttm: Optional[float] = Field( + description="Average payables calculated as trailing twelve months." + ) + average_inventory_ttm: Optional[float] = Field( + description="Average inventory calculated as trailing twelve months." + ) + days_sales_outstanding_ttm: Optional[float] = Field( + description="Days sales outstanding calculated as trailing twelve months." + ) + days_payables_outstanding_ttm: Optional[float] = Field( + description="Days payables outstanding calculated as trailing twelve months." + ) + days_of_inventory_on_hand_ttm: Optional[float] = Field( + description="Days of inventory on hand calculated as trailing twelve months." + ) + receivables_turnover_ttm: Optional[float] = Field( + description="Receivables turnover calculated as trailing twelve months." + ) + payables_turnover_ttm: Optional[float] = Field( + description="Payables turnover calculated as trailing twelve months." + ) + inventory_turnover_ttm: Optional[float] = Field( + description="Inventory turnover calculated as trailing twelve months." + ) + roe_ttm: Optional[float] = Field( + description="Return on equity calculated as trailing twelve months." + ) + capex_per_share_ttm: Optional[float] = Field( + description="Capital expenditures per share calculated as trailing twelve months." + )