mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-06 09:22:26 +00:00
refactored KeyMetrics for stocks.fa.metrics
This commit is contained in:
@@ -1,103 +1,89 @@
|
||||
"""Key Metrics fetcher."""
|
||||
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Any, Dict, List, Literal, Optional
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from openbb_provider.abstract.data import Data
|
||||
from openbb_provider.abstract.fetcher import Fetcher
|
||||
from openbb_provider.abstract.query_params import QueryParams
|
||||
from openbb_provider.models.key_metrics import KeyMetricsData, KeyMetricsQueryParams
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_fmp.utils.helpers import create_url, get_data_many
|
||||
|
||||
from pydantic import validator
|
||||
|
||||
class FMPKeyMetricsQueryParams(QueryParams):
|
||||
"""FMP Key Metrics QueryParams.
|
||||
|
||||
class FMPKeyMetricsQueryParams(KeyMetricsQueryParams):
|
||||
"""FMP Key Metrics Query.
|
||||
|
||||
Source: https://site.financialmodelingprep.com/developer/docs/company-key-metrics-api/
|
||||
|
||||
Parameter
|
||||
---------
|
||||
symbol : str
|
||||
The symbol of the company.
|
||||
period : Literal["quarter", "annual"]
|
||||
The period of the key metrics. Default is "annual".
|
||||
limit : Optional[int]
|
||||
The limit of the key metrics to be returned.
|
||||
"""
|
||||
|
||||
symbol: str
|
||||
period: Literal["quarter", "annual"] = "annual"
|
||||
limit: Optional[int] = None
|
||||
|
||||
class FMPKeyMetricsData(KeyMetricsData):
|
||||
"""FMP Key Metrics Data."""
|
||||
|
||||
class FMPKeyMetricsData(Data):
|
||||
symbol: str
|
||||
date: dateType
|
||||
period: str
|
||||
revenuePerShare: float
|
||||
netIncomePerShare: float
|
||||
operatingCashFlowPerShare: Optional[float]
|
||||
freeCashFlowPerShare: Optional[float]
|
||||
cashPerShare: Optional[float]
|
||||
bookValuePerShare: Optional[float]
|
||||
tangibleBookValuePerShare: Optional[float]
|
||||
shareholdersEquityPerShare: Optional[float]
|
||||
interestDebtPerShare: Optional[float]
|
||||
marketCap: Optional[float]
|
||||
enterpriseValue: Optional[float]
|
||||
peRatio: Optional[float]
|
||||
priceToSalesRatio: Optional[float]
|
||||
pocfratio: Optional[float] = Field(alias="pocf_ratio")
|
||||
pfcfRatio: Optional[float]
|
||||
pbRatio: Optional[float]
|
||||
ptbRatio: Optional[float]
|
||||
evToSales: Optional[float]
|
||||
enterpriseValueOverEBITDA: Optional[float] = Field(
|
||||
alias="enterprise_value_over_ebitda"
|
||||
)
|
||||
evToOperatingCashFlow: Optional[float]
|
||||
evToFreeCashFlow: Optional[float]
|
||||
earningsYield: Optional[float]
|
||||
freeCashFlowYield: Optional[Optional[float]]
|
||||
debtToEquity: Optional[float]
|
||||
debtToAssets: Optional[float]
|
||||
netDebtToEBITDA: Optional[float] = Field(alias="net_debt_to_ebitda")
|
||||
currentRatio: Optional[float]
|
||||
interestCoverage: Optional[float]
|
||||
incomeQuality: Optional[float]
|
||||
dividendYield: Optional[Optional[float]]
|
||||
payoutRatio: Optional[Optional[float]]
|
||||
salesGeneralAndAdministrativeToRevenue: Optional[float]
|
||||
researchAndDdevelopementToRevenue: Optional[float] = Field(
|
||||
alias="research_and_developement_to_revenue"
|
||||
)
|
||||
intangiblesToTotalAssets: Optional[float]
|
||||
capexToOperatingCashFlow: Optional[float]
|
||||
capexToRevenue: Optional[float]
|
||||
capexToDepreciation: Optional[float]
|
||||
stockBasedCompensationToRevenue: Optional[float]
|
||||
grahamNumber: Optional[float]
|
||||
roic: Optional[float]
|
||||
returnOnTangibleAssets: Optional[float]
|
||||
grahamNetNet: Optional[float]
|
||||
workingCapital: Optional[float]
|
||||
tangibleAssetValue: Optional[float]
|
||||
netCurrentAssetValue: Optional[float]
|
||||
investedCapital: Optional[float]
|
||||
averageReceivables: Optional[float]
|
||||
averagePayables: Optional[float]
|
||||
averageInventory: Optional[float]
|
||||
daysSalesOutstanding: Optional[float]
|
||||
daysPayablesOutstanding: Optional[float]
|
||||
daysOfInventoryOnHand: Optional[float]
|
||||
receivablesTurnover: Optional[float]
|
||||
payablesTurnover: Optional[float]
|
||||
inventoryTurnover: Optional[float]
|
||||
roe: Optional[float]
|
||||
capexPerShare: Optional[float]
|
||||
class Config:
|
||||
fields = {
|
||||
"revenue_per_share": "revenuePerShare",
|
||||
"net_income_per_share": "netIncomePerShare",
|
||||
"operating_cash_flow_per_share": "operatingCashFlowPerShare",
|
||||
"free_cash_flow_per_share": "freeCashFlowPerShare",
|
||||
"cash_per_share": "cashPerShare",
|
||||
"book_value_per_share": "bookValuePerShare",
|
||||
"tangible_book_value_per_share": "tangibleBookValuePerShare",
|
||||
"shareholders_equity_per_share": "shareholdersEquityPerShare",
|
||||
"interest_debt_per_share": "interestDebtPerShare",
|
||||
"market_cap": "marketCap",
|
||||
"enterprise_value": "enterpriseValue",
|
||||
"pe_ratio": "peRatio",
|
||||
"price_to_sales_ratio": "priceToSalesRatio",
|
||||
"pocf_ratio": "pocfratio",
|
||||
"pfcf_ratio": "pfcfRatio",
|
||||
"pb_ratio": "pbRatio",
|
||||
"ptb_ratio": "ptbRatio",
|
||||
"ev_to_sales": "evToSales",
|
||||
"enterprise_value_over_ebitda": "enterpriseValueOverEBITDA",
|
||||
"ev_to_operating_cash_flow": "evToOperatingCashFlow",
|
||||
"ev_to_free_cash_flow": "evToFreeCashFlow",
|
||||
"earnings_yield": "earningsYield",
|
||||
"free_cash_flow_yield": "freeCashFlowYield",
|
||||
"debt_to_equity": "debtToEquity",
|
||||
"debt_to_assets": "debtToAssets",
|
||||
"net_debt_to_ebitda": "netDebtToEBITDA",
|
||||
"current_ratio": "currentRatio",
|
||||
"interest_coverage": "interestCoverage",
|
||||
"income_quality": "incomeQuality",
|
||||
"dividend_yield": "dividendYield",
|
||||
"payout_ratio": "payoutRatio",
|
||||
"sales_general_and_administrative_to_revenue": "salesGeneralAndAdministrativeToRevenue",
|
||||
"research_and_development_to_revenue": "researchAndDdevelopementToRevenue",
|
||||
"intangibles_to_total_assets": "intangiblesToTotalAssets",
|
||||
"capex_to_operating_cash_flow": "capexToOperatingCashFlow",
|
||||
"capex_to_revenue": "capexToRevenue",
|
||||
"capex_to_depreciation": "capexToDepreciation",
|
||||
"stock_based_compensation_to_revenue": "stockBasedCompensationToRevenue",
|
||||
"graham_number": "grahamNumber",
|
||||
"return_on_tangible_assets": "returnOnTangibleAssets",
|
||||
"graham_net_net": "grahamNetNet",
|
||||
"working_capital": "workingCapital",
|
||||
"tangible_asset_value": "tangibleAssetValue",
|
||||
"net_current_asset_value": "netCurrentAssetValue",
|
||||
"invested_capital": "investedCapital",
|
||||
"average_receivables": "averageReceivables",
|
||||
"average_payables": "averagePayables",
|
||||
"average_inventory": "averageInventory",
|
||||
"days_sales_outstanding": "daysSalesOutstanding",
|
||||
"days_payables_outstanding": "daysPayablesOutstanding",
|
||||
"days_of_inventory_on_hand": "daysOfInventoryOnHand",
|
||||
"receivables_turnover": "receivablesTurnover",
|
||||
"payables_turnover": "payablesTurnover",
|
||||
"inventory_turnover": "inventoryTurnover",
|
||||
"capex_per_share": "capexPerShare",
|
||||
}
|
||||
|
||||
@validator("date", pre=True, check_fields=False)
|
||||
def date_validate(cls, v): # pylint: disable=no-self-argument
|
||||
return datetime.strptime(v, "%Y-%m-%d")
|
||||
|
||||
|
||||
class FMPKeyMetricsFetcher(
|
||||
@@ -110,11 +96,7 @@ class FMPKeyMetricsFetcher(
|
||||
):
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FMPKeyMetricsQueryParams:
|
||||
transformed_params = params
|
||||
transformed_params["period"] = (
|
||||
"annual" if params.get("period", "") == "annually" else "quarter"
|
||||
)
|
||||
return FMPKeyMetricsQueryParams(**transformed_params)
|
||||
return FMPKeyMetricsQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
@@ -122,6 +104,8 @@ class FMPKeyMetricsFetcher(
|
||||
) -> List[FMPKeyMetricsData]:
|
||||
api_key = credentials.get("fmp_api_key") if credentials else ""
|
||||
|
||||
query.period = "annual" if query.period == "annually" else "quarter"
|
||||
|
||||
url = create_url(
|
||||
3, f"key-metrics/{query.symbol}", api_key, query, exclude=["symbol"]
|
||||
)
|
||||
|
||||
@@ -1,211 +1,133 @@
|
||||
"""Key Metrics Data Model."""
|
||||
|
||||
|
||||
from datetime import date as DateType
|
||||
from datetime import date as dateType
|
||||
from typing import Literal, 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, DATA_DESCRIPTIONS
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
|
||||
class KeyMetricsQueryParams(QueryParams, BaseSymbol):
|
||||
"""Key Metrics query model.
|
||||
"""Key Metrics Query."""
|
||||
|
||||
Parameter
|
||||
---------
|
||||
symbol : str
|
||||
The symbol of the company.
|
||||
"""
|
||||
|
||||
period: Literal["annually", "quarterly"] = "annually"
|
||||
limit: Optional[int] = None
|
||||
period: Literal["annually", "quarterly"] = Field(
|
||||
default="annually", description=QUERY_DESCRIPTIONS.get("period", "")
|
||||
)
|
||||
limit: Optional[int] = Field(
|
||||
default=100, description=QUERY_DESCRIPTIONS.get("limit", "")
|
||||
)
|
||||
|
||||
|
||||
class KeyMetricsData(Data):
|
||||
"""Return Key Metrics Data.
|
||||
class KeyMetricsData(Data, BaseSymbol):
|
||||
"""Key Metrics Data."""
|
||||
|
||||
Returns
|
||||
-------
|
||||
symbol : str
|
||||
The symbol of the stock.
|
||||
date : DateType
|
||||
The date of the key metrics.
|
||||
period : str
|
||||
The period of the key metrics.
|
||||
revenue_per_share : float
|
||||
The revenue per share of the stock.
|
||||
net_income_per_share : float
|
||||
The net income per share of the stock.
|
||||
operating_cash_flow_per_share : float
|
||||
The operating cash flow per share of the stock.
|
||||
free_cash_flow_per_share : float
|
||||
The free cash flow per share of the stock.
|
||||
cash_per_share : float
|
||||
The cash per share of the stock.
|
||||
book_value_per_share : float
|
||||
The book value per share of the stock.
|
||||
tangible_book_value_per_share : float
|
||||
The tangible book value per share of the stock.
|
||||
shareholders_equity_per_share : float
|
||||
The shareholders equity per share of the stock.
|
||||
interest_debt_per_share : float
|
||||
The interest debt per share of the stock.
|
||||
market_cap : float
|
||||
The market cap of the stock.
|
||||
enterprise_value : float
|
||||
The enterprise value of the stock.
|
||||
pe_ratio : float
|
||||
The PE ratio of the stock.
|
||||
price_to_sales_ratio : float
|
||||
The price to sales ratio of the stock.
|
||||
pocf_ratio : float
|
||||
The POCF ratio of the stock.
|
||||
pfcf_ratio : float
|
||||
The PFCF ratio of the stock.
|
||||
pb_ratio : float
|
||||
The PB ratio of the stock.
|
||||
ptb_ratio : float
|
||||
The PTB ratio of the stock.
|
||||
ev_to_sales : float
|
||||
The EV to sales of the stock.
|
||||
enterprise_value_over_ebitda : float
|
||||
The enterprise value over EBITDA of the stock.
|
||||
ev_to_operating_cash_flow : float
|
||||
The EV to operating cash flow of the stock.
|
||||
ev_to_free_cash_flow : float
|
||||
The EV to free cash flow of the stock.
|
||||
earnings_yield : float
|
||||
The earnings yield of the stock.
|
||||
free_cash_flow_yield : float
|
||||
The free cash flow yield of the stock.
|
||||
debt_to_equity : float
|
||||
The debt to equity of the stock.
|
||||
debt_to_assets : float
|
||||
The debt to assets of the stock.
|
||||
net_debt_to_ebitda : float
|
||||
The net debt to EBITDA of the stock.
|
||||
current_ratio : float
|
||||
The current ratio of the stock.
|
||||
interest_coverage : float
|
||||
The interest coverage of the stock.
|
||||
income_quality : float
|
||||
The income quality of the stock.
|
||||
dividend_yield : float
|
||||
The dividend yield of the stock.
|
||||
payout_ratio : float
|
||||
The payout ratio of the stock.
|
||||
sales_general_and_administrative_to_revenue : float
|
||||
The sales general and administrative to revenue of the stock.
|
||||
research_and_developement_to_revenue : float
|
||||
The research and development to revenue of the stock.
|
||||
intangibles_to_total_assets : float
|
||||
The intangibles to total assets of the stock.
|
||||
capex_to_operating_cash_flow : float
|
||||
The capex to operating cash flow of the stock.
|
||||
capex_to_revenue : float
|
||||
The capex to revenue of the stock.
|
||||
capex_to_depreciation : float
|
||||
The capex to depreciation of the stock.
|
||||
stock_based_compensation_to_revenue : float
|
||||
The stock based compensation to revenue of the stock.
|
||||
graham_number : float
|
||||
The graham number of the stock.
|
||||
roic : float
|
||||
The ROIC of the stock.
|
||||
return_on_tangible_assets : float
|
||||
The return on tangible assets of the stock.
|
||||
graham_net_net : float
|
||||
The graham net net of the stock.
|
||||
working_capital : float
|
||||
The working capital of the stock.
|
||||
tangible_asset_value : float
|
||||
The tangible asset value of the stock.
|
||||
net_current_asset_value : float
|
||||
The net current asset value of the stock.
|
||||
invested_capital : float
|
||||
The invested capital of the stock.
|
||||
average_receivables : float
|
||||
The average receivables of the stock.
|
||||
average_payables : float
|
||||
The average payables of the stock.
|
||||
average_inventory : float
|
||||
The average inventory of the stock.
|
||||
days_sales_outstanding : float
|
||||
The days sales outstanding of the stock.
|
||||
days_payables_outstanding : float
|
||||
The days payables outstanding of the stock.
|
||||
days_of_inventory_on_hand : float
|
||||
The days of inventory on hand of the stock.
|
||||
receivables_turnover : float
|
||||
The receivables turnover of the stock.
|
||||
payables_turnover : float
|
||||
The payables turnover of the stock.
|
||||
inventory_turnover : float
|
||||
The inventory turnover of the stock.
|
||||
roe : float
|
||||
The ROE of the stock.
|
||||
capex_per_share : float
|
||||
The capex per share of the stock.
|
||||
"""
|
||||
|
||||
symbol: str
|
||||
date: DateType
|
||||
period: str
|
||||
revenue_per_share: Optional[float]
|
||||
net_income_per_share: Optional[float]
|
||||
operating_cash_flow_per_share: Optional[float]
|
||||
free_cash_flow_per_share: Optional[float]
|
||||
cash_per_share: Optional[float]
|
||||
book_value_per_share: Optional[float]
|
||||
tangible_book_value_per_share: Optional[float]
|
||||
shareholders_equity_per_share: Optional[float]
|
||||
interest_debt_per_share: Optional[float]
|
||||
market_cap: Optional[float]
|
||||
enterprise_value: Optional[float]
|
||||
pe_ratio: Optional[float]
|
||||
price_to_sales_ratio: Optional[float]
|
||||
pocf_ratio: Optional[float]
|
||||
pfcf_ratio: Optional[float]
|
||||
pb_ratio: Optional[float]
|
||||
ptb_ratio: Optional[float]
|
||||
ev_to_sales: Optional[float]
|
||||
enterprise_value_over_ebitda: Optional[float]
|
||||
ev_to_operating_cash_flow: Optional[float]
|
||||
ev_to_free_cash_flow: Optional[float]
|
||||
earnings_yield: Optional[float]
|
||||
free_cash_flow_yield: Optional[float]
|
||||
debt_to_equity: Optional[float]
|
||||
debt_to_assets: Optional[float]
|
||||
net_debt_to_ebitda: Optional[float]
|
||||
current_ratio: Optional[float]
|
||||
interest_coverage: Optional[float]
|
||||
income_quality: Optional[float]
|
||||
dividend_yield: Optional[float]
|
||||
payout_ratio: Optional[float]
|
||||
sales_general_and_administrative_to_revenue: Optional[float]
|
||||
research_and_development_to_revenue: Optional[float]
|
||||
intangibles_to_total_assets: Optional[float]
|
||||
capex_to_operating_cash_flow: Optional[float]
|
||||
capex_to_revenue: Optional[float]
|
||||
capex_to_depreciation: Optional[float]
|
||||
stock_based_compensation_to_revenue: Optional[float]
|
||||
graham_number: Optional[float]
|
||||
roic: Optional[float]
|
||||
return_on_tangible_assets: Optional[float]
|
||||
graham_net_net: Optional[float]
|
||||
working_capital: Optional[float]
|
||||
tangible_asset_value: Optional[float]
|
||||
net_current_asset_value: Optional[float]
|
||||
invested_capital: Optional[float]
|
||||
average_receivables: Optional[float]
|
||||
average_payables: Optional[float]
|
||||
average_inventory: Optional[float]
|
||||
days_sales_outstanding: Optional[float]
|
||||
days_payables_outstanding: Optional[float]
|
||||
days_of_inventory_on_hand: Optional[float]
|
||||
receivables_turnover: Optional[float]
|
||||
payables_turnover: Optional[float]
|
||||
inventory_turnover: Optional[float]
|
||||
roe: Optional[float]
|
||||
capex_per_share: Optional[float]
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
period: str = Field(description="The period of the data.")
|
||||
revenue_per_share: Optional[float] = Field(description="Revenue per share")
|
||||
net_income_per_share: Optional[float] = Field(description="Net income per share")
|
||||
operating_cash_flow_per_share: Optional[float] = Field(
|
||||
description="Operating cash flow per share"
|
||||
)
|
||||
free_cash_flow_per_share: Optional[float] = Field(
|
||||
description="Free cash flow per share"
|
||||
)
|
||||
cash_per_share: Optional[float] = Field(description="Cash per share")
|
||||
book_value_per_share: Optional[float] = Field(description="Book value per share")
|
||||
tangible_book_value_per_share: Optional[float] = Field(
|
||||
description="Tangible book value per share"
|
||||
)
|
||||
shareholders_equity_per_share: Optional[float] = Field(
|
||||
description="Shareholders equity per share"
|
||||
)
|
||||
interest_debt_per_share: Optional[float] = Field(
|
||||
description="Interest debt per share"
|
||||
)
|
||||
market_cap: Optional[float] = Field(description="Market capitalization")
|
||||
enterprise_value: Optional[float] = Field(description="Enterprise value")
|
||||
pe_ratio: Optional[float] = Field(description="Price-to-earnings ratio (P/E ratio)")
|
||||
price_to_sales_ratio: Optional[float] = Field(description="Price-to-sales ratio")
|
||||
pocf_ratio: Optional[float] = Field(
|
||||
description="Price-to-operating cash flow ratio"
|
||||
)
|
||||
pfcf_ratio: Optional[float] = Field(description="Price-to-free cash flow ratio")
|
||||
pb_ratio: Optional[float] = Field(description="Price-to-book ratio")
|
||||
ptb_ratio: Optional[float] = Field(description="Price-to-tangible book ratio")
|
||||
ev_to_sales: Optional[float] = Field(description="Enterprise value-to-sales ratio")
|
||||
enterprise_value_over_ebitda: Optional[float] = Field(
|
||||
description="Enterprise value-to-EBITDA ratio"
|
||||
)
|
||||
ev_to_operating_cash_flow: Optional[float] = Field(
|
||||
description="Enterprise value-to-operating cash flow ratio"
|
||||
)
|
||||
ev_to_free_cash_flow: Optional[float] = Field(
|
||||
description="Enterprise value-to-free cash flow ratio"
|
||||
)
|
||||
earnings_yield: Optional[float] = Field(description="Earnings yield")
|
||||
free_cash_flow_yield: Optional[float] = Field(description="Free cash flow yield")
|
||||
debt_to_equity: Optional[float] = Field(description="Debt-to-equity ratio")
|
||||
debt_to_assets: Optional[float] = Field(description="Debt-to-assets ratio")
|
||||
net_debt_to_ebitda: Optional[float] = Field(description="Net debt-to-EBITDA ratio")
|
||||
current_ratio: Optional[float] = Field(description="Current ratio")
|
||||
interest_coverage: Optional[float] = Field(description="Interest coverage")
|
||||
income_quality: Optional[float] = Field(description="Income quality")
|
||||
dividend_yield: Optional[float] = Field(description="Dividend yield")
|
||||
payout_ratio: Optional[float] = Field(description="Payout ratio")
|
||||
sales_general_and_administrative_to_revenue: Optional[float] = Field(
|
||||
description="Sales general and administrative expenses-to-revenue ratio"
|
||||
)
|
||||
research_and_development_to_revenue: Optional[float] = Field(
|
||||
description="Research and development expenses-to-revenue ratio"
|
||||
)
|
||||
intangibles_to_total_assets: Optional[float] = Field(
|
||||
description="Intangibles-to-total assets ratio"
|
||||
)
|
||||
capex_to_operating_cash_flow: Optional[float] = Field(
|
||||
description="Capital expenditures-to-operating cash flow ratio"
|
||||
)
|
||||
capex_to_revenue: Optional[float] = Field(
|
||||
description="Capital expenditures-to-revenue ratio"
|
||||
)
|
||||
capex_to_depreciation: Optional[float] = Field(
|
||||
description="Capital expenditures-to-depreciation ratio"
|
||||
)
|
||||
stock_based_compensation_to_revenue: Optional[float] = Field(
|
||||
description="Stock-based compensation-to-revenue ratio"
|
||||
)
|
||||
graham_number: Optional[float] = Field(description="Graham number")
|
||||
roic: Optional[float] = Field(description="Return on invested capital")
|
||||
return_on_tangible_assets: Optional[float] = Field(
|
||||
description="Return on tangible assets"
|
||||
)
|
||||
graham_net_net: Optional[float] = Field(
|
||||
description="Graham net-net working capital"
|
||||
)
|
||||
working_capital: Optional[float] = Field(description="Working capital")
|
||||
tangible_asset_value: Optional[float] = Field(description="Tangible asset value")
|
||||
net_current_asset_value: Optional[float] = Field(
|
||||
description="Net current asset value"
|
||||
)
|
||||
invested_capital: Optional[float] = Field(description="Invested capital")
|
||||
average_receivables: Optional[float] = Field(description="Average receivables")
|
||||
average_payables: Optional[float] = Field(description="Average payables")
|
||||
average_inventory: Optional[float] = Field(description="Average inventory")
|
||||
days_sales_outstanding: Optional[float] = Field(
|
||||
description="Days sales outstanding"
|
||||
)
|
||||
days_payables_outstanding: Optional[float] = Field(
|
||||
description="Days payables outstanding"
|
||||
)
|
||||
days_of_inventory_on_hand: Optional[float] = Field(
|
||||
description="Days of inventory on hand"
|
||||
)
|
||||
receivables_turnover: Optional[float] = Field(description="Receivables turnover")
|
||||
payables_turnover: Optional[float] = Field(description="Payables turnover")
|
||||
inventory_turnover: Optional[float] = Field(description="Inventory turnover")
|
||||
roe: Optional[float] = Field(description="Return on equity")
|
||||
capex_per_share: Optional[float] = Field(
|
||||
description="Capital expenditures per share"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user