diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/balance_sheet.py b/openbb_platform/providers/fmp/openbb_fmp/models/balance_sheet.py index a67d1089e104..d8f40c65123a 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/balance_sheet.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/balance_sheet.py @@ -1,5 +1,5 @@ """FMP Balance Sheet Model.""" - +# pylint: disable=unused-argument from datetime import ( date as dateType, datetime, @@ -33,7 +33,7 @@ class FMPBalanceSheetData(BalanceSheetData): "fiscal_year": "calendarYear", "filing_date": "fillingDate", "accepted_date": "acceptedDate", - "currency": "reportedCurrency", + "reported_currency": "reportedCurrency", "cash_and_cash_equivalents": "cashAndCashEquivalents", "short_term_investments": "shortTermInvestments", "cash_and_short_term_investments": "cashAndShortTermInvestments", @@ -69,11 +69,11 @@ class FMPBalanceSheetData(BalanceSheetData): "common_stock": "commonStock", "retained_earnings": "retainedEarnings", "accumulated_other_comprehensive_income": "accumulatedOtherComprehensiveIncomeLoss", - "other_stock_holders_equity": "otherStockholdersEquity", - "other_total_stock_holders_equity": "othertotalStockholdersEquity", + "other_shareholders_equity": "otherStockholdersEquity", + "other_total_shareholders_equity": "othertotalStockholdersEquity", "total_common_equity": "totalStockholdersEquity", "total_equity_non_controlling_interests": "totalEquity", - "total_liabilities_shareholders_equity": "totalLiabilitiesAndStockholdersEquity", + "total_liabilities_and_shareholders_equity": "totalLiabilitiesAndStockholdersEquity", "minority_interest": "minorityInterest", "total_liabilities_and_total_equity": "totalLiabilitiesAndTotalEquity", "total_investments": "totalInvestments", @@ -91,6 +91,198 @@ class FMPBalanceSheetData(BalanceSheetData): default=None, description="The date and time when the filing was accepted.", ) + reported_currency: Optional[str] = Field( + default=None, + description="The currency in which the balance sheet was reported.", + ) + cash_and_cash_equivalents: Optional[float] = Field( + default=None, + description="Cash and cash equivalents.", + ) + short_term_investments: Optional[float] = Field( + default=None, + description="Short term investments.", + ) + cash_and_short_term_investments: Optional[float] = Field( + default=None, + description="Cash and short term investments.", + ) + net_receivables: Optional[float] = Field( + default=None, + description="Net receivables.", + ) + inventory: Optional[float] = Field( + default=None, + description="Inventory.", + ) + other_current_assets: Optional[float] = Field( + default=None, + description="Other current assets.", + ) + total_current_assets: Optional[float] = Field( + default=None, + description="Total current assets.", + ) + plant_property_equipment_net: Optional[float] = Field( + default=None, + description="Plant property equipment net.", + ) + goodwill: Optional[float] = Field( + default=None, + description="Goodwill.", + ) + intangible_assets: Optional[float] = Field( + default=None, + description="Intangible assets.", + ) + goodwill_and_intangible_assets: Optional[float] = Field( + default=None, + description="Goodwill and intangible assets.", + ) + long_term_investments: Optional[float] = Field( + default=None, + description="Long term investments.", + ) + tax_assets: Optional[float] = Field( + default=None, + description="Tax assets.", + ) + other_non_current_assets: Optional[float] = Field( + default=None, + description="Other non current assets.", + ) + non_current_assets: Optional[float] = Field( + default=None, + description="Total non current assets.", + ) + other_assets: Optional[float] = Field( + default=None, + description="Other assets.", + ) + total_assets: Optional[float] = Field( + default=None, + description="Total assets.", + ) + accounts_payable: Optional[float] = Field( + default=None, + description="Accounts payable.", + ) + short_term_debt: Optional[float] = Field( + default=None, + description="Short term debt.", + ) + tax_payables: Optional[float] = Field( + default=None, + description="Tax payables.", + ) + current_deferred_revenue: Optional[float] = Field( + default=None, + description="Current deferred revenue.", + ) + other_current_liabilities: Optional[float] = Field( + default=None, + description="Other current liabilities.", + ) + total_current_liabilities: Optional[float] = Field( + default=None, + description="Total current liabilities.", + ) + long_term_debt: Optional[float] = Field( + default=None, + description="Long term debt.", + ) + deferred_revenue_non_current: Optional[float] = Field( + default=None, + description="Non current deferred revenue.", + ) + deferred_tax_liabilities_non_current: Optional[float] = Field( + default=None, + description="Deferred tax liabilities non current.", + ) + other_non_current_liabilities: Optional[float] = Field( + default=None, + description="Other non current liabilities.", + ) + total_non_current_liabilities: Optional[float] = Field( + default=None, + description="Total non current liabilities.", + ) + other_liabilities: Optional[float] = Field( + default=None, + description="Other liabilities.", + ) + capital_lease_obligations: Optional[float] = Field( + default=None, + description="Capital lease obligations.", + ) + total_liabilities: Optional[float] = Field( + default=None, + description="Total liabilities.", + ) + preferred_stock: Optional[float] = Field( + default=None, + description="Preferred stock.", + ) + common_stock: Optional[float] = Field( + default=None, + description="Common stock.", + ) + retained_earnings: Optional[float] = Field( + default=None, + description="Retained earnings.", + ) + accumulated_other_comprehensive_income: Optional[float] = Field( + default=None, + description="Accumulated other comprehensive income (loss).", + ) + other_shareholders_equity: Optional[float] = Field( + default=None, + description="Other shareholders equity.", + ) + other_total_shareholders_equity: Optional[float] = Field( + default=None, + description="Other total shareholders equity.", + ) + total_common_equity: Optional[float] = Field( + default=None, + description="Total common equity.", + ) + total_equity_non_controlling_interests: Optional[float] = Field( + default=None, + description="Total equity non controlling interests.", + ) + total_liabilities_and_shareholders_equity: Optional[float] = Field( + default=None, + description="Total liabilities and shareholders equity.", + ) + minority_interest: Optional[float] = Field( + default=None, + description="Minority interest.", + ) + total_liabilities_and_total_equity: Optional[float] = Field( + default=None, + description="Total liabilities and total equity.", + ) + total_investments: Optional[float] = Field( + default=None, + description="Total investments.", + ) + total_debt: Optional[float] = Field( + default=None, + description="Total debt.", + ) + net_debt: Optional[float] = Field( + default=None, + description="Net debt.", + ) + link: Optional[str] = Field( + default=None, + description="Link to the filing.", + ) + final_link: Optional[str] = Field( + default=None, + description="Link to the filing document.", + ) @model_validator(mode="before") @classmethod diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/cash_flow.py b/openbb_platform/providers/fmp/openbb_fmp/models/cash_flow.py index e497b4aa6f8f..0b72101a517b 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/cash_flow.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/cash_flow.py @@ -1,5 +1,5 @@ """FMP Cash Flow Statement Model.""" - +# pylint: disable=unused-argument from datetime import ( date as dateType, @@ -40,11 +40,11 @@ class FMPCashFlowStatementData(CashFlowStatementData): "deferred_income_tax": "deferredIncomeTax", "stock_based_compensation": "stockBasedCompensation", "change_in_working_capital": "changeInWorkingCapital", - "changes_in_account_receivables": "accountsReceivables", - "changes_in_inventory": "inventory", + "change_in_account_receivables": "accountsReceivables", + "change_in_inventory": "inventory", "change_in_account_payable": "accountsPayables", - "changes_in_other_working_capital": "otherWorkingCapital", - "changes_in_other_non_cash_items": "otherNonCashItems", + "change_in_other_working_capital": "otherWorkingCapital", + "change_in_other_non_cash_items": "otherNonCashItems", "net_cash_from_operating_activities": "netCashProvidedByOperatingActivities", "purchase_of_property_plant_and_equipment": "investmentsInPropertyPlantAndEquipment", "acquisitions": "acquisitionsNet", @@ -69,9 +69,148 @@ class FMPCashFlowStatementData(CashFlowStatementData): "final_link": "finalLink", } - fiscal_year: int = Field(description="The fiscal year of the fiscal period.") - filing_date: dateType = Field(description="The date of the filing.") - accepted_date: datetime = Field(description="The date the filing was accepted.") + fiscal_year: Optional[int] = Field( + default=None, + description="The fiscal year of the fiscal period.", + ) + filing_date: Optional[dateType] = Field( + default=None, + description="The date of the filing.", + ) + accepted_date: Optional[datetime] = Field( + default=None, description="The date the filing was accepted." + ) + reported_currency: Optional[str] = Field( + default=None, + description="The currency in which the cash flow statement was reported.", + ) + net_income: Optional[float] = Field( + default=None, + description="Net income.", + ) + depreciation_and_amortization: Optional[float] = Field( + default=None, + description="Depreciation and amortization.", + ) + deferred_income_tax: Optional[float] = Field( + default=None, + description="Deferred income tax.", + ) + stock_based_compensation: Optional[float] = Field( + default=None, + description="Stock-based compensation.", + ) + change_in_working_capital: Optional[float] = Field( + default=None, + description="Change in working capital.", + ) + change_in_account_receivables: Optional[float] = Field( + default=None, + description="Change in account receivables.", + ) + change_in_inventory: Optional[float] = Field( + default=None, + description="Change in inventory.", + ) + change_in_account_payable: Optional[float] = Field( + default=None, + description="Change in account payable.", + ) + change_in_other_working_capital: Optional[float] = Field( + default=None, + description="Change in other working capital.", + ) + change_in_other_non_cash_items: Optional[float] = Field( + default=None, + description="Change in other non-cash items.", + ) + net_cash_from_operating_activities: Optional[float] = Field( + default=None, + description="Net cash from operating activities.", + ) + purchase_of_property_plant_and_equipment: Optional[float] = Field( + default=None, + description="Purchase of property, plant and equipment.", + ) + acquisitions: Optional[float] = Field( + default=None, + description="Acquisitions.", + ) + purchase_of_investment_securities: Optional[float] = Field( + default=None, + description="Purchase of investment securities.", + ) + sale_and_maturity_of_investments: Optional[float] = Field( + default=None, + description="Sale and maturity of investments.", + ) + other_investing_activities: Optional[float] = Field( + default=None, + description="Other investing activities.", + ) + net_cash_from_investing_activities: Optional[float] = Field( + default=None, + description="Net cash from investing activities.", + ) + repayment_of_debt: Optional[float] = Field( + default=None, + description="Repayment of debt.", + ) + issuance_of_common_equity: Optional[float] = Field( + default=None, + description="Issuance of common equity.", + ) + repurchase_of_common_equity: Optional[float] = Field( + default=None, + description="Repurchase of common equity.", + ) + payment_of_dividends: Optional[float] = Field( + default=None, + description="Payment of dividends.", + ) + other_financing_activities: Optional[float] = Field( + default=None, + description="Other financing activities.", + ) + net_cash_from_financing_activities: Optional[float] = Field( + default=None, + description="Net cash from financing activities.", + ) + effect_of_exchange_rate_changes_on_cash: Optional[float] = Field( + default=None, + description="Effect of exchange rate changes on cash.", + ) + net_change_in_cash_and_equivalents: Optional[float] = Field( + default=None, + description="Net change in cash and equivalents.", + ) + cash_at_beginning_of_period: Optional[float] = Field( + default=None, + description="Cash at beginning of period.", + ) + cash_at_end_of_period: Optional[float] = Field( + default=None, + description="Cash at end of period.", + ) + operating_cash_flow: Optional[float] = Field( + default=None, + description="Operating cash flow.", + ) + capital_expenditure: Optional[float] = Field( + default=None, + description="Capital expenditure.", + ) + free_cash_flow: Optional[float] = Field( + default=None, + ) + link: Optional[str] = Field( + default=None, + description="Link to the filing.", + ) + final_link: Optional[str] = Field( + default=None, + description="Link to the filing document.", + ) @model_validator(mode="before") @classmethod diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/income_statement.py b/openbb_platform/providers/fmp/openbb_fmp/models/income_statement.py index ca015c0fb385..5eb3c7dfbfb4 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/income_statement.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/income_statement.py @@ -1,5 +1,5 @@ """FMP Income Statement Model.""" - +# pylint: disable=unused-argument from datetime import ( date as dateType, datetime, @@ -37,7 +37,7 @@ class FMPIncomeStatementData(IncomeStatementData): "revenue": "revenue", "cost_of_revenue": "costOfRevenue", "gross_profit": "grossProfit", - "gross_profit_ratio": "grossProfitRatio", + "gross_profit_margin": "grossProfitRatio", "general_and_admin_expense": "generalAndAdministrativeExpenses", "research_and_development_expense": "researchAndDevelopmentExpenses", "selling_and_marketing_expense": "sellingAndMarketingExpenses", @@ -46,18 +46,18 @@ class FMPIncomeStatementData(IncomeStatementData): "total_operating_expenses": "operatingExpenses", "cost_and_expenses": "costAndExpenses", "interest_income": "interestIncome", - "interest_expense": "interestExpense", + "total_interest_expense": "interestExpense", "depreciation_and_amortization": "depreciationAndAmortization", "ebitda": "ebitda", "ebitda_margin": "ebitdaratio", - "operating_income": "operatingIncome", - "operating_income_ratio": "operatingIncomeRatio", - "total_other_income_expenses_net": "totalOtherIncomeExpensesNet", - "income_before_tax": "incomeBeforeTax", - "income_before_tax_ratio": "incomeBeforeTaxRatio", + "total_operating_income": "operatingIncome", + "operating_income_margin": "operatingIncomeRatio", + "total_other_income_expenses": "totalOtherIncomeExpensesNet", + "total_pre_tax_income": "incomeBeforeTax", + "pre_tax_income_margin": "incomeBeforeTaxRatio", "income_tax_expense": "incomeTaxExpense", "consolidated_net_income": "netIncome", - "net_income_ratio": "netIncomeRatio", + "net_income_margin": "netIncomeRatio", "basic_earnings_per_share": "eps", "diluted_earnings_per_share": "epsdiluted", "weighted_average_basic_shares_outstanding": "weightedAverageShsOut", @@ -66,10 +66,137 @@ class FMPIncomeStatementData(IncomeStatementData): "final_link": "finalLink", } - filing_date: dateType = Field(description="The date of the filing.") - accepted_date: datetime = Field(description="The date the filing was accepted.") - reported_currency: str = Field( - description="The reported currency of the filing.", + filing_date: Optional[dateType] = Field( + default=None, + description="The date when the filing was made.", + ) + accepted_date: Optional[datetime] = Field( + default=None, + description="The date and time when the filing was accepted.", + ) + reported_currency: Optional[str] = Field( + default=None, + description="The currency in which the balance sheet was reported.", + ) + revenue: Optional[float] = Field( + default=None, + description="Total revenue.", + ) + cost_of_revenue: Optional[float] = Field( + default=None, + description="Cost of revenue.", + ) + gross_profit: Optional[float] = Field( + default=None, + description="Gross profit.", + ) + gross_profit_margin: Optional[float] = Field( + default=None, + description="Gross profit margin.", + ) + general_and_admin_expense: Optional[float] = Field( + default=None, + description="General and administrative expenses.", + ) + research_and_development_expense: Optional[float] = Field( + default=None, + description="Research and development expenses.", + ) + selling_and_marketing_expense: Optional[float] = Field( + default=None, + description="Selling and marketing expenses.", + ) + selling_general_and_admin_expense: Optional[float] = Field( + default=None, + description="Selling, general and administrative expenses.", + ) + other_expenses: Optional[float] = Field( + default=None, + description="Other expenses.", + ) + total_operating_expenses: Optional[float] = Field( + default=None, + description="Total operating expenses.", + ) + cost_and_expenses: Optional[float] = Field( + default=None, + description="Cost and expenses.", + ) + interest_income: Optional[float] = Field( + default=None, + description="Interest income.", + ) + total_interest_expense: Optional[float] = Field( + default=None, + description="Total interest expenses.", + ) + depreciation_and_amortization: Optional[float] = Field( + default=None, + description="Depreciation and amortization.", + ) + ebitda: Optional[float] = Field( + default=None, + description="EBITDA.", + ) + ebitda_margin: Optional[float] = Field( + default=None, + description="EBITDA margin.", + ) + total_operating_income: Optional[float] = Field( + default=None, + description="Total operating income.", + ) + operating_income_margin: Optional[float] = Field( + default=None, + description="Operating income margin.", + ) + total_other_income_expenses: Optional[float] = Field( + default=None, + description="Total other income and expenses.", + ) + total_pre_tax_income: Optional[float] = Field( + default=None, + description="Total pre-tax income.", + ) + pre_tax_income_margin: Optional[float] = Field( + default=None, + description="Pre-tax income margin.", + ) + income_tax_expense: Optional[float] = Field( + default=None, + description="Income tax expense.", + ) + consolidated_net_income: Optional[float] = Field( + default=None, + description="Consolidated net income.", + ) + net_income_margin: Optional[float] = Field( + default=None, + description="Net income margin.", + ) + basic_earnings_per_share: Optional[float] = Field( + default=None, + description="Basic earnings per share.", + ) + diluted_earnings_per_share: Optional[float] = Field( + default=None, + description="Diluted earnings per share.", + ) + weighted_average_basic_shares_outstanding: Optional[float] = Field( + default=None, + description="Weighted average basic shares outstanding.", + ) + weighted_average_diluted_shares_outstanding: Optional[float] = Field( + default=None, + description="Weighted average diluted shares outstanding.", + ) + link: Optional[str] = Field( + default=None, + description="Link to the filing.", + ) + final_link: Optional[str] = Field( + default=None, + description="Link to the filing document.", ) @model_validator(mode="before") diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/balance_sheet.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/balance_sheet.py index 402bcaf140ca..cadc8672be13 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/balance_sheet.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/balance_sheet.py @@ -1,5 +1,5 @@ """Intrinio Balance Sheet Model.""" - +# pylint: disable=unused-argument import warnings from typing import Any, Dict, List, Literal, Optional @@ -135,7 +135,10 @@ class IntrinioBalanceSheetData(BalanceSheetData): "total_equity_non_controlling_interests": "totalequityandnoncontrollinginterests", "total_liabilities_shareholders_equity": "totalliabilitiesandequity", } - + reported_currency: Optional[str] = Field( + description="The currency in which the balance sheet is reported.", + default=None, + ) cash_and_cash_equivalents: Optional[int] = Field( description="Cash and cash equivalents.", default=None ) @@ -461,12 +464,15 @@ def transform_data( ) -> List[IntrinioBalanceSheetData]: """Return the transformed data.""" transformed_data: List[IntrinioBalanceSheetData] = [] - + units = [] for item in data: sub_dict: Dict[str, Any] = {} for sub_item in item["financials"]: field_name = sub_item["data_tag"]["tag"] + unit = sub_item["data_tag"].get("unit", "") + if unit and "share" not in unit: + units.append(unit) sub_dict[field_name] = ( float(sub_item["value"]) if sub_item["value"] and sub_item["value"] != 0 @@ -476,6 +482,7 @@ def transform_data( sub_dict["period_ending"] = item["period_ending"] sub_dict["fiscal_year"] = item["fiscal_year"] sub_dict["fiscal_period"] = item["fiscal_period"] + sub_dict["reported_currency"] = list(set(units))[0] # Intrinio does not return Q4 data but FY data instead if query.period == "QTR" and item["fiscal_period"] == "FY": diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/cash_flow.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/cash_flow.py index 5be657439f4b..73d51c409a51 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/cash_flow.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/cash_flow.py @@ -1,5 +1,5 @@ """Intrinio Cash Flow Statement Model.""" - +# pylint: disable=unused-argument import warnings from typing import Any, Dict, List, Literal, Optional @@ -84,6 +84,10 @@ class IntrinioCashFlowStatementData(CashFlowStatementData): "sale_of_property_plant_and_equipment": "saleofplantpropertyandequipment", } + reported_currency: Optional[str] = Field( + description="The currency in which the balance sheet is reported.", + default=None, + ) net_income: Optional[float] = Field( default=None, description="Consolidated Net Income." ) @@ -293,10 +297,14 @@ def transform_data( ) -> List[IntrinioCashFlowStatementData]: """Return the transformed data.""" transformed_data: List[IntrinioCashFlowStatementData] = [] + units = [] for item in data: sub_dict: Dict[str, Any] = {} for sub_item in item["financials"]: + unit = sub_item["data_tag"].get("unit", "") + if unit and "share" not in unit: + units.append(unit) field_name = sub_item["data_tag"]["tag"] sub_dict[field_name] = ( float(sub_item["value"]) @@ -307,6 +315,7 @@ def transform_data( sub_dict["period_ending"] = item["period_ending"] sub_dict["fiscal_year"] = item["fiscal_year"] sub_dict["fiscal_period"] = item["fiscal_period"] + sub_dict["reported_currency"] = list(set(units))[0] transformed_data.append(IntrinioCashFlowStatementData(**sub_dict)) diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/income_statement.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/income_statement.py index 280a4087c916..9e63c4ea8dc2 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/income_statement.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/income_statement.py @@ -1,5 +1,5 @@ """Intrinio Income Statement Model.""" - +# pylint: disable=unused-argument import warnings from typing import Any, Dict, List, Literal, Optional @@ -104,7 +104,7 @@ class IntrinioIncomeStatementData(IncomeStatementData): "short_term_borrowings_interest_expense": "shorttermborrowinginterestexpense", "cost_of_revenue": "totalcostofrevenue", "gross_profit": "totalgrossprofit", - "gross_profit_ratio": "grossmargin", + "gross_profit_magin": "grossmargin", "total_interest_expense": "totalinterestexpense", "interest_and_investment_income": "totalinterestincome", "total_non_interest_expense": "totalnoninterestexpense", @@ -124,6 +124,10 @@ class IntrinioIncomeStatementData(IncomeStatementData): "weighted_average_diluted_shares_outstanding": "weightedavedilutedsharesos", } + reported_currency: Optional[str] = Field( + description="The currency in which the balance sheet is reported.", + default=None, + ) revenue: Optional[float] = Field(default=None, description="Total revenue") operating_revenue: Optional[float] = Field( default=None, description="Total operating revenue" @@ -137,7 +141,7 @@ class IntrinioIncomeStatementData(IncomeStatementData): gross_profit: Optional[float] = Field( default=None, description="Total gross profit" ) - gross_profit_ratio: Optional[float] = Field( + gross_profit_margin: Optional[float] = Field( default=None, description="Gross margin ratio." ) provision_for_credit_losses: Optional[float] = Field( @@ -461,11 +465,14 @@ def transform_data( ) -> List[IntrinioIncomeStatementData]: """Return the transformed data.""" transformed_data: List[IntrinioIncomeStatementData] = [] - + units = [] for item in data: sub_dict: Dict[str, Any] = {} for sub_item in item["financials"]: + unit = sub_item["data_tag"].get("unit", "") + if unit and "share" not in unit: + units.append(unit) field_name = sub_item["data_tag"]["tag"] sub_dict[field_name] = ( float(sub_item["value"]) @@ -476,6 +483,7 @@ def transform_data( sub_dict["period_ending"] = item["period_ending"] sub_dict["fiscal_year"] = item["fiscal_year"] sub_dict["fiscal_period"] = item["fiscal_period"] + sub_dict["reported_currency"] = list(set(units))[0] transformed_data.append(IntrinioIncomeStatementData(**sub_dict)) diff --git a/openbb_platform/providers/polygon/openbb_polygon/models/income_statement.py b/openbb_platform/providers/polygon/openbb_polygon/models/income_statement.py index daa52031caf2..fa4c220d5e8e 100644 --- a/openbb_platform/providers/polygon/openbb_polygon/models/income_statement.py +++ b/openbb_platform/providers/polygon/openbb_polygon/models/income_statement.py @@ -1,5 +1,5 @@ """Polygon Income Statement Model.""" - +# pylint: disable=unused-argument from datetime import date from typing import Any, Dict, List, Literal, Optional @@ -84,26 +84,30 @@ class PolygonIncomeStatementData(IncomeStatementData): "non_operating_income": "nonoperating_income_loss", "income_before_equity_method_investments": "income_loss_before_equity_method_investments", "income_from_equity_method_investments": "income_loss_from_equity_method_investments", - "income_before_tax": "income_loss_from_continuing_operations_before_tax", + "total_pre_tax_income": "income_loss_from_continuing_operations_before_tax", "income_tax_expense": "income_tax_expense_benefit", "interest_and_debt_expense": "interest_and_debt_expense", - "net_income": "net_income_loss", + "consolidated_net_income": "net_income_loss", "eps": "basic_earnings_per_share", "eps_diluted": "diluted_earnings_per_share", "interest_and_dividend_income": "interest_and_dividend_income_operating", - "interest_expense": "interest_expense_operating", + "total_interest_expense": "interest_expense_operating", "interest_income_after_provision_for_losses": "interest_income_expense_after_provision_for_losses", - "interest_income_net": "interest_income_expense_operating_net", + "net_interest_income": "interest_income_expense_operating_net", "non_interest_income": "noninterest_income", "non_interest_expense": "noninterest_expense", "income_after_tax": "income_loss_from_continuing_operations_after_tax", "income_from_discontinued_operations_net_of_tax_on_disposal": "income_loss_from_discontinued_operations_net_of_tax_gain_loss_on_disposal", # type: ignore # noqa: E501 "income_from_discontinued_operations_net_of_tax": "income_loss_from_discontinued_operations_net_of_tax", - "net_income_attributable_minority_interest": "net_income_loss_attributable_to_noncontrolling_interest", + "net_income_attributable_to_noncontrolling_interest": "net_income_loss_attributable_to_noncontrolling_interest", "net_income_attributable_to_parent": "net_income_loss_attributable_to_parent", - "net_income_available_to_stock_holders": "net_income_loss_available_to_common_stockholders_basic", + "net_income_attributable_to_common_shareholders": "net_income_loss_available_to_common_stockholders_basic", "participating_securities_earnings": "participating_securities_distributed_and_undistributed_earnings_loss_basic", "undistributed_earnings_allocated_to_participating_securities": "undistributed_earnings_loss_allocated_to_participating_securities_basic", # type: ignore # noqa: E501 + "weighted_average_diluted_shares_outstanding": "diluted_average_shares", + "weighted_average_basic_shares_outstanding": "basic_average_shares", + "basic_earnings_per_share": "eps", + "diluted_earnings_per_share": "eps_diluted", } revenue: Optional[float] = Field(default=None, description="Total Revenue") @@ -132,8 +136,8 @@ class PolygonIncomeStatementData(IncomeStatementData): benefits_costs_expenses: Optional[float] = Field( default=None, description="Benefits, costs and expenses" ) - selling_general_and_administrative_expenses: Optional[float] = Field( - default=None, description="Selling, general and administrative expenses" + selling_general_and_administrative_expense: Optional[float] = Field( + default=None, description="Selling, general and administrative expense" ) research_and_development: Optional[float] = Field( default=None, description="Research and development" @@ -156,13 +160,13 @@ class PolygonIncomeStatementData(IncomeStatementData): interest_and_dividend_income: Optional[float] = Field( default=None, description="Interest and Dividend Income" ) - interest_expense: Optional[float] = Field( + total_interest_expense: Optional[float] = Field( default=None, description="Interest Expense" ) interest_and_debt_expense: Optional[float] = Field( default=None, description="Interest and Debt Expense" ) - interest_income_net: Optional[float] = Field( + net_interest_income: Optional[float] = Field( default=None, description="Interest Income Net" ) interest_income_after_provision_for_losses: Optional[float] = Field( @@ -187,7 +191,7 @@ class PolygonIncomeStatementData(IncomeStatementData): income_from_equity_method_investments: Optional[float] = Field( default=None, description="Income From Equity Method Investments" ) - income_before_tax: Optional[float] = Field( + total_pre_tax_income: Optional[float] = Field( default=None, description="Income Before Tax" ) income_tax_expense: Optional[float] = Field( @@ -196,15 +200,17 @@ class PolygonIncomeStatementData(IncomeStatementData): income_after_tax: Optional[float] = Field( default=None, description="Income After Tax" ) - net_income: Optional[float] = Field(default=None, description="Net Income/Loss") - net_income_attributable_minority_interest: Optional[float] = Field( + consolidated_net_income: Optional[float] = Field( + default=None, description="Net Income/Loss" + ) + net_income_attributable_noncontrolling_interest: Optional[float] = Field( default=None, description="Net income (loss) attributable to noncontrolling interest", ) net_income_attributable_to_parent: Optional[float] = Field( default=None, description="Net income (loss) attributable to parent" ) - net_income_available_to_stock_holders: Optional[float] = Field( + net_income_attributable_to_common_shareholders: Optional[float] = Field( default=None, description="Net Income/Loss Available To Common Stockholders Basic", ) @@ -224,16 +230,18 @@ class PolygonIncomeStatementData(IncomeStatementData): preferred_stock_dividends_and_other_adjustments: Optional[float] = Field( default=None, description="Preferred stock dividends and other adjustments" ) - basic_average_shares: Optional[float] = Field( + basic_earnings_per_share: Optional[float] = Field( + default=None, description="Earnings Per Share" + ) + diluted_earnings_per_share: Optional[float] = Field( + default=None, description="Diluted Earnings Per Share" + ) + weighted_average_basic_shares_outstanding: Optional[float] = Field( default=None, description="Basic Average Shares" ) - diluted_average_shares: Optional[float] = Field( + weighted_average_diluted_shares_outstanding: Optional[float] = Field( default=None, description="Diluted Average Shares" ) - eps: Optional[float] = Field(default=None, description="Earnings Per Share") - diluted_eps: Optional[float] = Field( - default=None, description="Diluted Earnings Per Share" - ) @model_validator(mode="before") @classmethod diff --git a/tests/openbb_terminal/portfolio/csv/test_portfolio_model/test_tracking_error.csv b/tests/openbb_terminal/portfolio/csv/test_portfolio_model/test_tracking_error.csv index a45e0a4b2710..2b4d76c26f26 100644 --- a/tests/openbb_terminal/portfolio/csv/test_portfolio_model/test_tracking_error.csv +++ b/tests/openbb_terminal/portfolio/csv/test_portfolio_model/test_tracking_error.csv @@ -1,6 +1,8 @@ ,Tracking Error mtd,- -qtd,- +qtd,"Adj Close NaN +Total NaN +dtype: float64" ytd,- 3m,- 6m,-