diff --git a/.codespell.skip b/.codespell.skip index 980042a93eb..81ed6d71fa1 100644 --- a/.codespell.skip +++ b/.codespell.skip @@ -21,6 +21,8 @@ ./openbb_platform/providers/econdb/openbb_econdb/utils/helpers.py ./openbb_platform/core/openbb/package/** ./openbb_platform/providers/imf/openbb_imf/utils/constants.py +./openbb_platform/providers/sec/validate_corpus.py +./openbb_platform/providers/sec/openbb_sec/utils/STATEMENT_SCHEMA_README.md ./openbb_platform/extensions/economy/openbb_economy/economy_views.py ./openbb_platform/providers/fmp/openbb_fmp/models/calendar_ipo.py ./openbb_platform/providers/imf/openbb_imf/models/consumer_price_index.py diff --git a/openbb_platform/extensions/equity/integration/test_equity_api.py b/openbb_platform/extensions/equity/integration/test_equity_api.py index dabce1688e1..27b758a26bc 100644 --- a/openbb_platform/extensions/equity/integration/test_equity_api.py +++ b/openbb_platform/extensions/equity/integration/test_equity_api.py @@ -49,6 +49,17 @@ def headers(): "provider": "yfinance", } ), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), ], ) @pytest.mark.integration @@ -65,7 +76,20 @@ def test_equity_fundamental_balance(params, headers): @pytest.mark.parametrize( "params", - [{"symbol": "AAPL", "limit": 10, "provider": "fmp", "period": "annual"}], + [ + ({"symbol": "AAPL", "limit": 10, "provider": "fmp", "period": "annual"}), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), + ], ) @pytest.mark.integration def test_equity_fundamental_balance_growth(params, headers): @@ -172,6 +196,17 @@ def test_equity_calendar_earnings(params, headers): "provider": "yfinance", } ), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), ], ) @pytest.mark.integration @@ -188,7 +223,20 @@ def test_equity_fundamental_cash(params, headers): @pytest.mark.parametrize( "params", - [{"symbol": "AAPL", "limit": 10, "provider": "fmp", "period": "annual"}], + [ + ({"symbol": "AAPL", "limit": 10, "provider": "fmp", "period": "annual"}), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), + ], ) @pytest.mark.integration def test_equity_fundamental_cash_growth(params, headers): @@ -468,6 +516,17 @@ def test_equity_estimates_forward_eps(params, headers): "provider": "yfinance", } ), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), ], ) @pytest.mark.integration @@ -484,7 +543,20 @@ def test_equity_fundamental_income(params, headers): @pytest.mark.parametrize( "params", - [{"symbol": "AAPL", "limit": 10, "period": "annual", "provider": "fmp"}], + [ + ({"symbol": "AAPL", "limit": 10, "period": "annual", "provider": "fmp"}), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), + ], ) @pytest.mark.integration def test_equity_fundamental_income_growth(params, headers): diff --git a/openbb_platform/extensions/equity/integration/test_equity_python.py b/openbb_platform/extensions/equity/integration/test_equity_python.py index 6d2137c6061..e32579b2263 100644 --- a/openbb_platform/extensions/equity/integration/test_equity_python.py +++ b/openbb_platform/extensions/equity/integration/test_equity_python.py @@ -47,6 +47,17 @@ def obb(pytestconfig): "provider": "yfinance", } ), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), ], ) @pytest.mark.integration @@ -62,6 +73,17 @@ def test_equity_fundamental_balance(params, obb): "params", [ ({"symbol": "AAPL", "limit": 10, "provider": "fmp", "period": "annual"}), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), ], ) @pytest.mark.integration @@ -157,6 +179,17 @@ def test_equity_calendar_earnings(params, obb): "provider": "yfinance", } ), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), ], ) @pytest.mark.integration @@ -172,6 +205,17 @@ def test_equity_fundamental_cash(params, obb): "params", [ ({"symbol": "AAPL", "limit": 10, "provider": "fmp", "period": "annual"}), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), ], ) @pytest.mark.integration @@ -361,6 +405,17 @@ def test_equity_estimates_historical(params, obb): "period": "annual", } ), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), ], ) @pytest.mark.integration @@ -374,7 +429,20 @@ def test_equity_fundamental_income(params, obb): @pytest.mark.parametrize( "params", - [{"symbol": "AAPL", "limit": 10, "period": "annual", "provider": "fmp"}], + [ + ({"symbol": "AAPL", "limit": 10, "period": "annual", "provider": "fmp"}), + ( + { + "symbol": "AAPL", + "period": "annual", + "limit": 5, + "provider": "sec", + "use_cache": True, + "include_preliminary": True, + "pit_mode": True, + } + ), + ], ) @pytest.mark.integration def test_equity_fundamental_income_growth(params, obb): diff --git a/openbb_platform/providers/sec/openbb_sec/__init__.py b/openbb_platform/providers/sec/openbb_sec/__init__.py index dc919e28547..d6c37d40459 100644 --- a/openbb_platform/providers/sec/openbb_sec/__init__.py +++ b/openbb_platform/providers/sec/openbb_sec/__init__.py @@ -1,6 +1,10 @@ """SEC provider module.""" from openbb_core.provider.abstract.provider import Provider +from openbb_sec.models.balance_sheet import SecBalanceSheetFetcher +from openbb_sec.models.balance_sheet_growth import SecBalanceSheetGrowthFetcher +from openbb_sec.models.cash_flow import SecCashFlowStatementFetcher +from openbb_sec.models.cash_flow_growth import SecCashFlowStatementGrowthFetcher from openbb_sec.models.cik_map import SecCikMapFetcher from openbb_sec.models.company_filings import SecCompanyFilingsFetcher from openbb_sec.models.compare_company_facts import SecCompareCompanyFactsFetcher @@ -8,6 +12,8 @@ from openbb_sec.models.equity_ftd import SecEquityFtdFetcher from openbb_sec.models.equity_search import SecEquitySearchFetcher from openbb_sec.models.form_13FHR import SecForm13FHRFetcher from openbb_sec.models.htm_file import SecHtmFileFetcher +from openbb_sec.models.income_statement import SecIncomeStatementFetcher +from openbb_sec.models.income_statement_growth import SecIncomeStatementGrowthFetcher from openbb_sec.models.insider_trading import SecInsiderTradingFetcher from openbb_sec.models.institutions_search import SecInstitutionsSearchFetcher from openbb_sec.models.latest_financial_reports import SecLatestFinancialReportsFetcher @@ -27,6 +33,10 @@ sec_provider = Provider( description="SEC is the public listings regulatory body for the United States.", credentials=None, fetcher_dict={ + "BalanceSheet": SecBalanceSheetFetcher, + "BalanceSheetGrowth": SecBalanceSheetGrowthFetcher, + "CashFlowStatement": SecCashFlowStatementFetcher, + "CashFlowStatementGrowth": SecCashFlowStatementGrowthFetcher, "CikMap": SecCikMapFetcher, "CompanyFilings": SecCompanyFilingsFetcher, "CompareCompanyFacts": SecCompareCompanyFactsFetcher, @@ -35,6 +45,8 @@ sec_provider = Provider( "Filings": SecCompanyFilingsFetcher, "Form13FHR": SecForm13FHRFetcher, "SecHtmFile": SecHtmFileFetcher, + "IncomeStatement": SecIncomeStatementFetcher, + "IncomeStatementGrowth": SecIncomeStatementGrowthFetcher, "InsiderTrading": SecInsiderTradingFetcher, "InstitutionsSearch": SecInstitutionsSearchFetcher, "LatestFinancialReports": SecLatestFinancialReportsFetcher, diff --git a/openbb_platform/providers/sec/openbb_sec/models/balance_sheet.py b/openbb_platform/providers/sec/openbb_sec/models/balance_sheet.py new file mode 100644 index 00000000000..fc45d84c86a --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/models/balance_sheet.py @@ -0,0 +1,792 @@ +"""SEC Balance Sheet Model.""" + +# pylint: disable=unused-argument + +from math import isnan +from typing import Any, Literal +from warnings import warn + +from openbb_core.provider.abstract.annotated_result import AnnotatedResult +from openbb_core.provider.abstract.fetcher import Fetcher +from openbb_core.provider.standard_models.balance_sheet import ( + BalanceSheetData, + BalanceSheetQueryParams, +) +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.errors import EmptyDataError +from pydantic import ConfigDict, Field, model_serializer, model_validator + + +class SecBalanceSheetQueryParams(BalanceSheetQueryParams): + """SEC BalanceSheet Query. + + Source: https://www.sec.gov/edgar/sec-api-documentation + """ + + period: Literal["annual", "quarterly", "ttm"] = Field( + default="annual", + description=QUERY_DESCRIPTIONS.get("period", "") + + " For balance sheet, TTM is treated as the average of the last 4 quarters.", + ) + use_cache: bool = Field( + default=True, + description="Whether to use cache (4-hour memory) for the SEC request." + " Defaults to True.", + ) + include_preliminary: bool = Field( + default=False, + description="Whether to include preliminary data from 8-K filings" + " for periods not yet reported on 10-Q/K.", + ) + pit_mode: bool = Field( + default=False, + description="Point-in-time mode. When True, returns data as originally" + " reported at the time of filing, without subsequent restatements or" + " amendments. For annual data, uses the original 10-K values. For" + " quarterly data, preserves 10-Q filing vintage instead of using" + " restated comparatives from the 10-K.", + ) + + +class SecBalanceSheetData(BalanceSheetData): + """SEC BalanceSheet Data.""" + + model_config = ConfigDict( + allow_inf_nan=True, + ser_json_inf_nan="null", + json_schema_extra={ + "x-widget_config": {"$.data": {"table": {"enableFormulas": True}}} + }, + ) + + reported_currency: str | None = Field( + default=None, + description="The currency in which the balance sheet is reported.", + ) + cash_and_equivalents: float | None = Field( + default=None, + description="Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand " + "deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent " + "includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known " + "amount of cash and so near maturity that it presents insignificant risk of change in value because of change in " + "interest rate.", + ) + restricted_cash: float | None = Field( + default=None, + description="Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency " + "on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics " + "of demand deposits.", + ) + short_term_investments: float | None = Field( + default=None, + description="Amount of investment in marketable security, classified as current.", + ) + fed_funds_sold: float | None = Field( + default=None, + description="Includes: (1) the amount outstanding of funds lent to other depository institutions, securities " + "brokers, or securities dealers in the form of Federal Funds sold; for example, immediately available funds lent " + "under agreements or contracts that mature in one business day or roll over under a continuing contract, " + "regardless of the nature of the transaction or the collateral involved, excluding overnight lending for " + "commercial and industrial purposes. Also include Federal Funds sold under agreements to resell on a gross " + "basis, excluding (1) sales of term Federal Funds, (2) due bills representing purchases of securities or other " + "assets by the reporting bank that have not yet been delivered and similar instruments, (3) resale agreements " + "that mature in more than one business day involving assets other than securities, and (4) yield maintenance " + "dollar repurchase agreements (Federal Funds Sold) and (2) the dollar amount outstanding of funds lent in the " + "form of security resale agreements regardless of maturity, if the agreement requires the bank to resell the " + "identical security purchased or a security that meets the definition of substantially the same in the case of a " + "dollar roll. Also include purchases of participations in pools of securities, regardless of maturity " + "(Securities Purchased Under Agreements to Re-sell).", + ) + interest_bearing_deposits_at_other_banks: float | None = Field( + default=None, + description="For banks and other depository institutions (including Federal Reserve Banks, if applicable): " + "Interest-bearing deposits in other financial institutions for relatively short periods of time including, for " + "example, certificates of deposits, which are presented separately from cash on the balance sheet.", + ) + time_deposits_placed: float | None = Field( + default=None, + description="Amount of time deposit liabilities, including certificates of deposit.", + ) + trading_account_securities: float | None = Field( + default=None, + description="Amount of investment in debt security measured at fair value with change in fair value recognized " + "in net income (trading) and investment in equity security measured at fair value with change in fair value " + "recognized in net income (FV-NI).", + ) + loans_and_leases: float | None = Field( + default=None, + description="Amortized cost excluding accrued interest, before allowance for credit loss, of financing " + "receivable. Excludes net investment in lease.", + ) + allowance_for_loan_and_lease_losses: float | None = Field( + default=None, + description="Amount of allowance for credit loss on financing receivable. Excludes allowance for financing " + "receivable covered under loss sharing agreement.", + ) + net_loans_and_leases: float | None = Field( + default=None, + description="Amortized cost excluding accrued interest, after allowance for credit loss, of financing " + "receivable. Excludes net investment in lease.", + ) + loans_held_for_sale: float | None = Field( + default=None, + description="Amount before allowance and after deduction of deferred interest and fees, unamortized costs and " + "premiums and discounts from face amounts, of loans and leases held in portfolio, including but not limited to, " + "commercial and consumer loans. Excludes loans and leases covered under loss sharing agreements.", + ) + accrued_investment_income: float | None = Field( + default=None, + description="Interest, dividends, rents, ancillary and other revenues earned but not yet received by the entity " + "on its investments.", + ) + accounts_receivable: float | None = Field( + default=None, + description="Amount, after allowance for credit loss, of right to consideration from customer for product sold " + "and service rendered in normal course of business, classified as current.", + ) + customer_and_other_receivables: float | None = Field( + default=None, + description="Amount, after allowance for credit loss, of right to consideration from customer for product sold " + "and service rendered in normal course of business.", + ) + note_receivable: float | None = Field( + default=None, + description="Amortized cost, after allowance for credit loss, of financing receivable classified as current. " + "Excludes net investment in lease.", + ) + nontrade_receivables: float | None = Field( + default=None, + description="The sum of amounts currently receivable other than from customers. For classified balance sheets, " + "represents the current amount receivable, that is amounts expected to be collected within one year or the " + "normal operating cycle, if longer.", + ) + net_inventory: float | None = Field( + default=None, + description="Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one " + "year or operating cycle, if longer.", + ) + prepaid_expenses: float | None = Field( + default=None, + description="Amount of asset related to consideration paid in advance for costs that provide economic benefits " + "within a future period of one year or the normal operating cycle, if longer.", + ) + current_deferred_tax_assets: float | None = Field( + default=None, + description="The current portion of the aggregate tax effects as of the balance sheet date of all future tax " + "deductions arising from temporary differences between tax basis and generally accepted accounting principles " + "basis recognition of assets, liabilities, revenues and expenses, which can only be deducted for tax purposes " + "when permitted under enacted tax laws; after deducting the allocated valuation allowance, if any, to reduce " + "such amount to net realizable value. Deferred tax liabilities and assets are classified as current or " + "noncurrent based on the classification of the related asset or liability for financial reporting. A deferred " + "tax liability or asset that is not related to an asset or liability for financial reporting, including deferred " + "tax assets related to carryforwards, are classified according to the expected reversal date of the temporary " + "difference. An unrecognized tax benefit that is directly related to a position taken in a tax year that results " + "in a net operating loss carryforward is presented as a reduction of the related deferred tax asset.", + ) + other_current_assets: float | None = Field( + default=None, + description="Amount of current assets classified as other.", + ) + other_current_nonoperating_assets: float | None = Field( + default=None, + description="Amount of asset related to consideration paid in advance for costs that provide economic benefits " + "in future periods, and amount of other assets that are expected to be realized or consumed within one year or " + "the normal operating cycle, if longer.", + ) + total_current_assets: float | None = Field( + default=None, + description="Amount of asset recognized for present right to economic benefit, classified as current.", + ) + gross_ppe: float | None = Field( + default=None, + title="Gross PPE", + description="Amount, before accumulated depreciation, depletion, and amortization, of property, plant, and " + "equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; " + "furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + ) + accumulated_depreciation: float | None = Field( + default=None, + description="Amount of accumulated depreciation, depletion, and amortization of property, plant, and equipment. " + "Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and " + "fixture; and work of art, historical treasure, or similar asset classified as collection.", + ) + net_ppe: float | None = Field( + default=None, + title="Net PPE", + description="Amount, after accumulated depreciation, depletion, and amortization, of property, plant, and " + "equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; " + "furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + ) + net_premises_and_equipment: float | None = Field( + default=None, + description="Amount, after accumulated depreciation, depletion, and amortization, of property, plant, and " + "equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; " + "furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + ) + operating_lease_right_of_use_asset: float | None = Field( + default=None, + description="Amount of lessee's right to use underlying asset under operating lease.", + ) + finance_lease_right_of_use_asset: float | None = Field( + default=None, + description="Amount, after accumulated amortization, of right-of-use asset from finance lease.", + ) + long_term_investments: float | None = Field( + default=None, + description="Amount of investment in marketable security, classified as noncurrent.", + ) + mortgage_servicing_rights: float | None = Field( + default=None, + description="Fair value of an asset representing net future revenue from contractually specified servicing fees, " + "late charges, and other ancillary revenues, in excess of future costs related to servicing arrangements.", + ) + deferred_acquisition_cost: float | None = Field( + default=None, + description="Amount of deferred policy acquisition cost capitalized on contract remaining in force.", + ) + separate_account_business_assets: float | None = Field( + default=None, + description="Amount of asset at fair value held for benefit of separate account policyholder.", + ) + noncurrent_note_receivables: float | None = Field( + default=None, + description="Amount, after allowance for credit loss, of financing receivable, classified as noncurrent.", + ) + goodwill: float | None = Field( + default=None, + description="Amount, after accumulated impairment loss, of asset representing future economic benefit arising " + "from other asset acquired in business combination or from joint venture formation or both, that is not " + "individually identified and separately recognized.", + ) + intangible_assets: float | None = Field( + default=None, + description="Amount, after accumulated amortization, of finite- and indefinite-lived intangible assets and " + "capitalized cost for software to be sold, leased, or marketed. Excludes goodwill.", + ) + noncurrent_deferred_tax_assets: float | None = Field( + default=None, + description="The noncurrent portion as of the balance sheet date of the aggregate carrying amount of all future " + "tax deductions arising from temporary differences between tax basis and generally accepted accounting " + "principles basis recognition of assets, liabilities, revenues and expenses, which can only be deducted for tax " + "purposes when permitted under enacted tax laws; after the valuation allowance, if any, to reduce such amount to " + "net realizable value. Deferred tax liabilities and assets are classified as current or noncurrent based on the " + "classification of the related asset or liability for financial reporting. A deferred tax liability or asset " + "that is not related to an asset or liability for financial reporting, including deferred tax assets related to " + "carryforwards, is classified according to the expected reversal date of the temporary difference.", + ) + employee_benefit_assets: float | None = Field( + default=None, + description="This represents the entire assets recognized in the balance sheet that are associated with the " + "defined benefit plans.", + ) + other_noncurrent_assets: float | None = Field( + default=None, + description="Amount of noncurrent assets classified as other.", + ) + other_noncurrent_nonoperating_assets: float | None = Field( + default=None, + description="Amount of investments, and noncurrent assets classified as other.", + ) + other_noncurrent_assets_excl_ppe: float | None = Field( + default=None, + description="Noncurrent assets other than investments and PP&E.", + ) + total_noncurrent_assets: float | None = Field( + default=None, + description="Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be " + "realized in cash, sold or consumed after one year or beyond the normal operating cycle, if longer.", + ) + other_assets: float | None = Field( + default=None, + description="Amount of assets classified as other.", + ) + total_assets: float | None = Field( + default=None, + description="Amount of asset recognized for present right to economic benefit.", + ) + noninterest_bearing_deposits: float | None = Field( + default=None, + description="The aggregate amount of all domestic and foreign noninterest-bearing deposits liabilities held by " + "the entity.", + ) + interest_bearing_deposits: float | None = Field( + default=None, + description="The aggregate of all domestic and foreign interest-bearing deposit liabilities.", + ) + fed_funds_purchased: float | None = Field( + default=None, + description="Amount after offset of short term borrowing where a bank borrows, at the federal funds rate, from " + "another bank and securities that an entity sells and agrees to repurchase at a specified date for a specified " + "price.", + ) + short_term_debt: float | None = Field( + default=None, + description="Reflects the total carrying amount as of the balance sheet date of debt having initial terms less " + "than one year or the normal operating cycle, if longer.", + ) + current_portion_of_long_term_debt: float | None = Field( + default=None, + description="Amount of long-term debt due within one year or within the normal operating cycle, " + "if longer.", + ) + bankers_acceptances: float | None = Field( + default=None, + description="Amount of short-term, negotiable time drafts drawn on and accepted by a financial institution. " + "Bankers acceptances are a bank's promise to pay to the holder of the draft a stated amount on a specified date.", + ) + accounts_payable: float | None = Field( + default=None, + description="Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have " + "typically been received) and payable to vendors for goods and services received that are used in an entity's " + "business. Used to reflect the current portion of the liabilities (due within one year or within the normal " + "operating cycle if longer).", + ) + accrued_interest_payable: float | None = Field( + default=None, + description="Carrying value as of the balance sheet date of [accrued] interest payable on all forms of debt, " + "including trade payables, that has been incurred and is unpaid. Used to reflect the current portion of the " + "liabilities (due within one year or within the normal operating cycle if longer).", + ) + other_short_term_payables: float | None = Field( + default=None, + description="Amount of borrowings classified as other, maturing within one year or the normal operating cycle, " + "if longer.", + ) + accrued_expenses: float | None = Field( + default=None, + description="Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to " + "costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for " + "which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and " + "utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal " + "operating cycle if longer).", + ) + customer_deposits: float | None = Field( + default=None, + description="Carrying amount of liabilities for customer deposits received and held, classified as current. " + "Includes cash received in advance for undelivered goods or services and refundable security deposits.", + ) + dividends_payable: float | None = Field( + default=None, + description="Carrying value as of the balance sheet date of dividends declared but unpaid on equity securities " + "issued by the entity and outstanding.", + ) + current_deferred_revenue: float | None = Field( + default=None, + description="Amount of deferred income and obligation to transfer product and service to customer for which " + "consideration has been received or is receivable, classified as current.", + ) + current_deferred_tax_liabilities: float | None = Field( + default=None, + description="Represents the current portion of deferred tax liabilities, which result from applying the " + "applicable tax rate to net taxable temporary differences pertaining to each jurisdiction to which the entity is " + "obligated to pay income tax. A current taxable temporary difference is a difference between the tax basis and " + "the carrying amount of a current asset or liability in the financial statements prepared in accordance with " + "generally accepted accounting principles. In a classified statement of financial position, an enterprise " + "separates deferred tax liabilities and assets into a current amount and a noncurrent amount. Deferred tax " + "liabilities and assets are classified as current or noncurrent based on the classification of the related asset " + "or liability for financial reporting. A deferred tax liability or asset that is not related to an asset or " + "liability for financial reporting, including deferred tax assets related to carryforwards, is classified " + "according to the expected reversal date of the temporary difference.", + ) + current_employee_benefit_liabilities: float | None = Field( + default=None, + description="Total of the carrying values as of the balance sheet date of obligations incurred through that date " + "and payable for obligations related to services received from employees, such as accrued salaries and bonuses, " + "payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year " + "or within the normal operating cycle if longer).", + ) + other_taxes_payable: float | None = Field( + default=None, + description="Carrying value as of the balance sheet date of obligations incurred and payable for statutory " + "income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the " + "liabilities (due within one year or within the normal operating cycle if longer).", + ) + other_current_liabilities: float | None = Field( + default=None, + description="Amount of liabilities classified as other, due within one year or the normal operating cycle, if " + "longer.", + ) + other_current_nonoperating_liabilities: float | None = Field( + default=None, + description="Amount of current liabilities from nonoperating activities, classified as other. Includes accrued " + "liabilities and other liabilities not separately disclosed.", + ) + operating_lease_liability_current: float | None = Field( + default=None, + description="Present value of lessee's discounted obligation for lease payments from operating lease, " + "classified as current.", + ) + finance_lease_liability_current: float | None = Field( + default=None, + description="Present value of lessee's discounted obligation for lease payments from finance lease, " + "classified as current.", + ) + total_current_liabilities: float | None = Field( + default=None, + description="Total obligations incurred as part of normal operations that are expected to be paid during the " + "following twelve months or within one business cycle, if longer.", + ) + long_term_debt: float | None = Field( + default=None, + description="Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt " + "classified as noncurrent. Excludes lease obligation.", + ) + capital_lease_obligations: float | None = Field( + default=None, + description="Present value of lessee's discounted obligation for lease payments from finance lease.", + ) + operating_lease_liability_noncurrent: float | None = Field( + default=None, + description="Present value of lessee's discounted obligation for lease payments from operating lease, " + "classified as noncurrent.", + ) + claims_and_claim_expenses: float | None = Field( + default=None, + description="The amount needed to reflect the estimated ultimate cost of settling claims relating to insured " + "events that have occurred on or before the balance sheet date, whether or not reported to the insurer at that " + "date.", + ) + future_policy_benefits: float | None = Field( + default=None, + description="Amount, before effect of reinsurance, of present value of future benefit to be paid to or on behalf " + "of policyholder and related expense less present value of future net premium receivable under insurance " + "contract.", + ) + unearned_premiums_credit: float | None = Field( + default=None, + description="Carrying amount of premiums written on insurance contracts that have not been earned as of the " + "balance sheet date.", + ) + policyholder_funds: float | None = Field( + default=None, + description="Amount due to policyholders for funds held that are returnable under the terms of insurance " + "contracts, classified as other.", + ) + participating_policyholder_equity: float | None = Field( + default=None, + description="Amount due to policyholders for funds held that are returnable under the terms of insurance " + "contracts, classified as other.", + ) + separate_account_business_liabilities: float | None = Field( + default=None, + description="Amount of liability for variable contract in which all or portion of contract holder's funds is " + "allocated to specific separate account and supported by assets held in separate account.", + ) + other_long_term_liabilities: float | None = Field( + default=None, + description="Amount of liabilities classified as other, due after one year or the normal operating cycle, if " + "longer.", + ) + asset_retirement_and_litigation_obligation: float | None = Field( + default=None, + description="Noncurrent portion of the carrying amount of a liability for an asset retirement obligation. An " + "asset retirement obligation is a legal obligation associated with the disposal or retirement of a tangible " + "long-lived asset that results from the acquisition, construction or development, or the normal operations of a " + "long-lived asset, except for certain obligations of lessees.", + ) + noncurrent_deferred_revenue: float | None = Field( + default=None, + description="Amount of deferred income and obligation to transfer product and service to customer for which " + "consideration has been received or is receivable, classified as noncurrent.", + ) + noncurrent_deferred_tax_liabilities: float | None = Field( + default=None, + description="Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences " + "with jurisdictional netting.", + ) + noncurrent_employee_benefit_liabilities: float | None = Field( + default=None, + description="Amount of liability, recognized in statement of financial position, for defined benefit pension and " + "other postretirement plans, classified as noncurrent.", + ) + other_noncurrent_liabilities: float | None = Field( + default=None, + description="Amount of liabilities classified as other, due after one year or the normal operating cycle, if " + "longer.", + ) + other_noncurrent_nonoperating_liabilities: float | None = Field( + default=None, + description="Amount of noncurrent liabilities from nonoperating activities, classified as other. Includes " + "deferred income taxes and other liabilities not separately disclosed.", + ) + total_noncurrent_liabilities: float | None = Field( + default=None, + description="Amount of obligation due after one year or beyond the normal operating cycle, if longer.", + ) + total_liabilities: float | None = Field( + default=None, + description="Amount of liability recognized for present obligation requiring transfer or otherwise providing " + "economic benefit to others.", + ) + commitments_and_contingencies: float | None = Field( + default=None, + description="Represents the caption on the face of the balance sheet to indicate that the entity has entered " + "into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the " + "terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible " + "claims against a company's resources due to future performance under contract terms, and (b) possible losses or " + "likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed " + "likely to occur do occur or fail to occur.", + ) + temporary_equity: float | None = Field( + default=None, + description="Carrying amount of the equity component of securities that are redeemable.", + ) + temporary_equity_parent: float | None = Field( + default=None, + description="Carrying amount of temporary equity attributable to parent.", + ) + redeemable_noncontrolling_interest: float | None = Field( + default=None, + description="As of the reporting date, the aggregate carrying amount of all noncontrolling interests which are " + "redeemable by the (parent) entity (1) at a fixed or determinable price on a fixed or determinable date, (2) at " + "the option of the holder of the noncontrolling interest, or (3) upon occurrence of an event that is not solely " + "within the control of the (parent) entity. This item includes noncontrolling interest holder's ownership (or " + "holders' ownership) regardless of the type of equity interest (common, preferred, other) including all " + "potential organizational (legal) forms of the investee entity.", + ) + redeemable_nci_common: float | None = Field( + default=None, + title="Redeemable NCI Common", + description="Equity carrying amount of the common stock component of redeemable NCI.", + ) + redeemable_nci_preferred: float | None = Field( + default=None, + title="Redeemable NCI Preferred", + description="Equity carrying amount of the preferred stock component of redeemable NCI.", + ) + redeemable_nci_other: float | None = Field( + default=None, + title="Redeemable NCI Other", + description="Equity carrying amount of the other component of redeemable NCI.", + ) + total_preferred_equity: float | None = Field( + default=None, + description="Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock " + "redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. " + "Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in " + "another section within stockholders' equity.", + ) + common_equity: float | None = Field( + default=None, + description="Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable " + "solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: " + "elements for number of nonredeemable common shares, par value and other disclosure concepts are in another " + "section within stockholders' equity.", + ) + additional_paid_in_capital: float | None = Field( + default=None, + description="Value received from shareholders in common stock-related transactions that are in excess of par " + "value or stated value and amounts received from other stock-related transactions. Includes only common stock " + "transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of " + "par, capital surplus, or paid-in capital.", + ) + retained_earnings: float | None = Field( + default=None, + description="Amount of accumulated undistributed earnings (deficit).", + ) + treasury_stock: float | None = Field( + default=None, + description="The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity " + "that were issued, repurchased by the entity, and are held in its treasury.", + ) + accumulated_other_comprehensive_income: float | None = Field( + default=None, + description="Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event " + "and circumstance from nonowner source.", + ) + other_equity: float | None = Field( + default=None, + description="This element represents movements included in the statement of changes in stockholders' equity " + "which are not separately disclosed or provided for elsewhere in the taxonomy.", + ) + total_common_equity: float | None = Field( + default=None, + description="Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity " + "attributable to noncontrolling interest.", + ) + total_equity: float | None = Field( + default=None, + description="Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity " + "attributable to noncontrolling interest.", + ) + noncontrolling_interests: float | None = Field( + default=None, + description="Amount of equity (deficit) attributable to noncontrolling interest. Excludes temporary equity.", + ) + total_equity_and_noncontrolling_interests: float | None = Field( + default=None, + description="Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary " + "equity.", + ) + total_liabilities_and_equity: float | None = Field( + default=None, + description="Amount of liabilities and equity items, including the portion of equity attributable to " + "noncontrolling interests, if any.", + ) + + @model_validator(mode="before") + @classmethod + def _validate_model(cls, values): + """Validate the model.""" + return {k: v for k, v in values.items() if v is not None} + + @model_serializer(mode="wrap") + def _serialize(self, handler): + d = handler(self) + return { + k: (None if isinstance(v, float) and isnan(v) else v) for k, v in d.items() + } + + +class SecBalanceSheetFetcher( + Fetcher[SecBalanceSheetQueryParams, list[SecBalanceSheetData]] +): + """SEC BalanceSheet Fetcher.""" + + @staticmethod + def transform_query( + params: dict[str, Any], + ) -> SecBalanceSheetQueryParams: + """Transform the query.""" + return SecBalanceSheetQueryParams(**params) + + @staticmethod + async def aextract_data( + query: SecBalanceSheetQueryParams, + credentials: dict[str, str] | None, + **kwargs: Any, + ) -> dict: + """Return the raw data from the SEC endpoint.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + get_standardized_financials, + ) + + result = await get_standardized_financials( + symbol=query.symbol, + period=query.period, + use_cache=query.use_cache, + include_preliminary=query.include_preliminary, + pit_mode=query.pit_mode, + ) + return { + "result": result, + "statement": "balance_sheet", + } + + @staticmethod + def transform_data( + query: SecBalanceSheetQueryParams, + data: dict, + **kwargs: Any, + ) -> AnnotatedResult[list[SecBalanceSheetData]]: + """Transform the data and validate the model.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + StandardizedStatements, + normalize_period_fields, + order_field_meta, + ) + + result: StandardizedStatements = data["result"] + statement_name: str = data["statement"] + records: list[dict] = getattr(result, statement_name) + + if not records: + raise EmptyDataError("The request was returned empty.") + + # Group records by period_ending to pivot from long to wide format. + periods: dict[str, dict] = {} + sources: dict[str, dict[str, str]] = {} + field_meta: dict[str, dict] = {} # tag -> schema metadata + + for rec in records: + date_key = rec["period_ending"] + + if date_key not in periods: + periods[date_key] = { + "period_ending": date_key, + "fiscal_period": rec.get("fiscal_period"), + "fiscal_year": rec.get("fiscal_year"), + "reported_currency": rec.get("currency"), + } + sources[date_key] = {} + + tag = rec["tag"] + periods[date_key][tag] = rec["value"] + source = rec.get("source", "") + + if source: + sources[date_key][tag] = source + + if tag not in field_meta: + field_meta[tag] = { + "label": rec.get("label", ""), + "description": rec.get("description", ""), + "parent": rec.get("parent"), + "sequence": rec.get("sequence"), + "factor": rec.get("factor", "+"), + "balance": rec.get("balance", ""), + "unit": rec.get("unit", "monetary"), + } + + normalize_period_fields(periods, SecBalanceSheetData) + + # Sort by period_ending descending (most recent first). + sorted_periods = sorted( + periods.values(), + key=lambda x: x["period_ending"], + reverse=True, + ) + + if query.limit is not None: + sorted_periods = sorted_periods[: query.limit] + + results = [SecBalanceSheetData.model_validate(d) for d in sorted_periods] + + # Build metadata: field provenance (sources) and diagnostics. + field_sources: dict[str, dict[str, str]] = {} + + for date_key, date_sources in sources.items(): + for tag, source in date_sources.items(): + if source: + if tag not in field_sources: + field_sources[tag] = {} + field_sources[tag][date_key] = source + + # Merge sources into field metadata. + for tag, period_sources in field_sources.items(): + if tag in field_meta: + field_meta[tag]["sources"] = period_sources + + metadata: dict = { + "entity_name": result.entity_name, + "cik": result.cik, + "company_type": result.company_type, + "fields": order_field_meta(field_meta, SecBalanceSheetData), + } + + # Surface ValidationWarning diagnostics. + if result.diagnostics: + diag_details = [ + { + "date": d.date, + "tag": d.tag, + "expected": d.expected, + "actual": d.actual, + "formula": d.formula, + "identity": d.identity, + } + for d in result.diagnostics + ] + metadata["validation_warnings"] = diag_details + tags_affected = sorted({d.tag for d in result.diagnostics}) + dates_affected = sorted({d.date for d in result.diagnostics}) + warn( + f"SEC XBRL validation: {len(result.diagnostics)} " + f"warning(s) across {len(dates_affected)} period(s)" + f" affecting tag(s): {', '.join(tags_affected)}. " + "See metadata['validation_warnings'] for details." + ) + + return AnnotatedResult(result=results, metadata=metadata) diff --git a/openbb_platform/providers/sec/openbb_sec/models/balance_sheet_growth.py b/openbb_platform/providers/sec/openbb_sec/models/balance_sheet_growth.py new file mode 100644 index 00000000000..b84fe75ab80 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/models/balance_sheet_growth.py @@ -0,0 +1,736 @@ +"""SEC Balance Sheet Growth Model.""" + +# pylint: disable=unused-argument + +from math import isnan +from typing import Any, Literal +from warnings import warn + +from openbb_core.provider.abstract.annotated_result import AnnotatedResult +from openbb_core.provider.abstract.fetcher import Fetcher +from openbb_core.provider.standard_models.balance_sheet_growth import ( + BalanceSheetGrowthData, + BalanceSheetGrowthQueryParams, +) +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.errors import EmptyDataError +from pydantic import ConfigDict, Field, model_serializer, model_validator + +_PCT: dict[str, Any] = {"x-unit_measurement": "percent", "x-frontend_multiply": 100} + + +class SecBalanceSheetGrowthQueryParams(BalanceSheetGrowthQueryParams): + """SEC Balance Sheet Growth Query. + + Source: https://www.sec.gov/edgar/sec-api-documentation + """ + + period: Literal["annual", "quarterly", "quarterly_yoy", "ttm"] = Field( + default="annual", + description=QUERY_DESCRIPTIONS.get("period", "") + + " For balance sheet growth, 'quarterly_yoy' compares the most recent quarter to the same" + + " quarter in the prior year, and TTM compares the most recent quarter to the average of" + + " the same quarter and the three preceding quarters in the prior year.", + ) + use_cache: bool = Field( + default=True, + description="Whether to use cache (4-hour memory) for the SEC request." + " Defaults to True.", + ) + include_preliminary: bool = Field( + default=False, + description="Whether to include preliminary data from 8-K filings" + " for periods not yet reported on 10-Q/K.", + ) + pit_mode: bool = Field( + default=False, + description="Point-in-time mode. When True, returns data as originally" + " reported at the time of filing, without subsequent restatements or" + " amendments. For annual data, uses the original 10-K values. For" + " quarterly data, preserves 10-Q filing vintage instead of using" + " restated comparatives from the 10-K.", + ) + + +class SecBalanceSheetGrowthData(BalanceSheetGrowthData): + """SEC Balance Sheet Growth Data.""" + + model_config = ConfigDict( + allow_inf_nan=True, + ser_json_inf_nan="null", + json_schema_extra={ + "x-widget_config": {"$.data": {"table": {"enableFormulas": True}}} + }, + ) + + growth_cash_and_equivalents: float | None = Field( + default=None, + description="Growth rate of cash and cash equivalents.", + json_schema_extra=_PCT, + ) + growth_restricted_cash: float | None = Field( + default=None, + description="Growth rate of restricted cash.", + json_schema_extra=_PCT, + ) + growth_short_term_investments: float | None = Field( + default=None, + description="Growth rate of short-term investments.", + json_schema_extra=_PCT, + ) + growth_fed_funds_sold: float | None = Field( + default=None, + description="Growth rate of federal funds sold.", + json_schema_extra=_PCT, + ) + growth_interest_bearing_deposits_at_other_banks: float | None = Field( + default=None, + description="Growth rate of interest-bearing deposits at other banks.", + json_schema_extra=_PCT, + ) + growth_time_deposits_placed: float | None = Field( + default=None, + description="Growth rate of time deposits placed.", + json_schema_extra=_PCT, + ) + growth_trading_account_securities: float | None = Field( + default=None, + description="Growth rate of trading account securities.", + json_schema_extra=_PCT, + ) + growth_loans_and_leases: float | None = Field( + default=None, + description="Growth rate of loans and leases.", + json_schema_extra=_PCT, + ) + growth_allowance_for_loan_and_lease_losses: float | None = Field( + default=None, + description="Growth rate of allowance for loan and lease losses.", + json_schema_extra=_PCT, + ) + growth_net_loans_and_leases: float | None = Field( + default=None, + description="Growth rate of net loans and leases.", + json_schema_extra=_PCT, + ) + growth_loans_held_for_sale: float | None = Field( + default=None, + description="Growth rate of loans held for sale.", + json_schema_extra=_PCT, + ) + growth_accrued_investment_income: float | None = Field( + default=None, + description="Growth rate of accrued investment income.", + json_schema_extra=_PCT, + ) + growth_accounts_receivable: float | None = Field( + default=None, + description="Growth rate of accounts receivable.", + json_schema_extra=_PCT, + ) + growth_customer_and_other_receivables: float | None = Field( + default=None, + description="Growth rate of customer and other receivables.", + json_schema_extra=_PCT, + ) + growth_note_receivable: float | None = Field( + default=None, + description="Growth rate of note receivable.", + json_schema_extra=_PCT, + ) + growth_nontrade_receivables: float | None = Field( + default=None, + description="Growth rate of nontrade receivables.", + json_schema_extra=_PCT, + ) + growth_net_inventory: float | None = Field( + default=None, + description="Growth rate of net inventory.", + json_schema_extra=_PCT, + ) + growth_prepaid_expenses: float | None = Field( + default=None, + description="Growth rate of prepaid expenses.", + json_schema_extra=_PCT, + ) + growth_current_deferred_tax_assets: float | None = Field( + default=None, + description="Growth rate of current deferred tax assets.", + json_schema_extra=_PCT, + ) + growth_other_current_assets: float | None = Field( + default=None, + description="Growth rate of other current assets.", + json_schema_extra=_PCT, + ) + growth_other_current_nonoperating_assets: float | None = Field( + default=None, + description="Growth rate of other current nonoperating assets.", + json_schema_extra=_PCT, + ) + growth_total_current_assets: float | None = Field( + default=None, + description="Growth rate of total current assets.", + json_schema_extra=_PCT, + ) + growth_gross_ppe: float | None = Field( + default=None, + description="Growth rate of gross property, plant, and equipment.", + json_schema_extra=_PCT, + ) + growth_accumulated_depreciation: float | None = Field( + default=None, + description="Growth rate of accumulated depreciation.", + json_schema_extra=_PCT, + ) + growth_net_ppe: float | None = Field( + default=None, + description="Growth rate of net property, plant, and equipment.", + json_schema_extra=_PCT, + ) + growth_net_premises_and_equipment: float | None = Field( + default=None, + description="Growth rate of net premises and equipment.", + json_schema_extra=_PCT, + ) + growth_operating_lease_right_of_use_asset: float | None = Field( + default=None, + description="Growth rate of operating lease right-of-use asset.", + json_schema_extra=_PCT, + ) + growth_finance_lease_right_of_use_asset: float | None = Field( + default=None, + description="Growth rate of finance lease right-of-use asset.", + json_schema_extra=_PCT, + ) + growth_long_term_investments: float | None = Field( + default=None, + description="Growth rate of long-term investments.", + json_schema_extra=_PCT, + ) + growth_mortgage_servicing_rights: float | None = Field( + default=None, + description="Growth rate of mortgage servicing rights.", + json_schema_extra=_PCT, + ) + growth_deferred_acquisition_cost: float | None = Field( + default=None, + description="Growth rate of deferred acquisition cost.", + json_schema_extra=_PCT, + ) + growth_separate_account_business_assets: float | None = Field( + default=None, + description="Growth rate of separate account business assets.", + json_schema_extra=_PCT, + ) + growth_noncurrent_note_receivables: float | None = Field( + default=None, + description="Growth rate of noncurrent note receivables.", + json_schema_extra=_PCT, + ) + growth_goodwill: float | None = Field( + default=None, + description="Growth rate of goodwill.", + json_schema_extra=_PCT, + ) + growth_intangible_assets: float | None = Field( + default=None, + description="Growth rate of intangible assets.", + json_schema_extra=_PCT, + ) + growth_noncurrent_deferred_tax_assets: float | None = Field( + default=None, + description="Growth rate of noncurrent deferred tax assets.", + json_schema_extra=_PCT, + ) + growth_employee_benefit_assets: float | None = Field( + default=None, + description="Growth rate of employee benefit assets.", + json_schema_extra=_PCT, + ) + growth_other_noncurrent_assets: float | None = Field( + default=None, + description="Growth rate of other noncurrent assets.", + json_schema_extra=_PCT, + ) + growth_other_noncurrent_nonoperating_assets: float | None = Field( + default=None, + description="Growth rate of other noncurrent nonoperating assets.", + json_schema_extra=_PCT, + ) + growth_other_noncurrent_assets_excl_ppe: float | None = Field( + default=None, + description="Growth rate of other noncurrent assets excluding PPE.", + json_schema_extra=_PCT, + ) + growth_total_noncurrent_assets: float | None = Field( + default=None, + description="Growth rate of total noncurrent assets.", + json_schema_extra=_PCT, + ) + growth_other_assets: float | None = Field( + default=None, + description="Growth rate of other assets.", + json_schema_extra=_PCT, + ) + growth_total_assets: float | None = Field( + default=None, + description="Growth rate of total assets.", + json_schema_extra=_PCT, + ) + growth_noninterest_bearing_deposits: float | None = Field( + default=None, + description="Growth rate of noninterest-bearing deposits.", + json_schema_extra=_PCT, + ) + growth_interest_bearing_deposits: float | None = Field( + default=None, + description="Growth rate of interest-bearing deposits.", + json_schema_extra=_PCT, + ) + growth_fed_funds_purchased: float | None = Field( + default=None, + description="Growth rate of federal funds purchased.", + json_schema_extra=_PCT, + ) + growth_short_term_debt: float | None = Field( + default=None, + description="Growth rate of short-term debt.", + json_schema_extra=_PCT, + ) + growth_current_portion_of_long_term_debt: float | None = Field( + default=None, + description="Growth rate of current portion of long-term debt.", + json_schema_extra=_PCT, + ) + growth_bankers_acceptances: float | None = Field( + default=None, + description="Growth rate of bankers acceptances.", + json_schema_extra=_PCT, + ) + growth_accounts_payable: float | None = Field( + default=None, + description="Growth rate of accounts payable.", + json_schema_extra=_PCT, + ) + growth_accrued_interest_payable: float | None = Field( + default=None, + description="Growth rate of accrued interest payable.", + json_schema_extra=_PCT, + ) + growth_other_short_term_payables: float | None = Field( + default=None, + description="Growth rate of other short-term payables.", + json_schema_extra=_PCT, + ) + growth_accrued_expenses: float | None = Field( + default=None, + description="Growth rate of accrued expenses.", + json_schema_extra=_PCT, + ) + growth_customer_deposits: float | None = Field( + default=None, + description="Growth rate of customer deposits.", + json_schema_extra=_PCT, + ) + growth_dividends_payable: float | None = Field( + default=None, + description="Growth rate of dividends payable.", + json_schema_extra=_PCT, + ) + growth_current_deferred_revenue: float | None = Field( + default=None, + description="Growth rate of current deferred revenue.", + json_schema_extra=_PCT, + ) + growth_current_deferred_tax_liabilities: float | None = Field( + default=None, + description="Growth rate of current deferred tax liabilities.", + json_schema_extra=_PCT, + ) + growth_current_employee_benefit_liabilities: float | None = Field( + default=None, + description="Growth rate of current employee benefit liabilities.", + json_schema_extra=_PCT, + ) + growth_other_taxes_payable: float | None = Field( + default=None, + description="Growth rate of other taxes payable.", + json_schema_extra=_PCT, + ) + growth_other_current_liabilities: float | None = Field( + default=None, + description="Growth rate of other current liabilities.", + json_schema_extra=_PCT, + ) + growth_other_current_nonoperating_liabilities: float | None = Field( + default=None, + description="Growth rate of other current nonoperating liabilities.", + json_schema_extra=_PCT, + ) + growth_operating_lease_liability_current: float | None = Field( + default=None, + description="Growth rate of current operating lease liability.", + json_schema_extra=_PCT, + ) + growth_finance_lease_liability_current: float | None = Field( + default=None, + description="Growth rate of current finance lease liability.", + json_schema_extra=_PCT, + ) + growth_total_current_liabilities: float | None = Field( + default=None, + description="Growth rate of total current liabilities.", + json_schema_extra=_PCT, + ) + growth_long_term_debt: float | None = Field( + default=None, + description="Growth rate of long-term debt.", + json_schema_extra=_PCT, + ) + growth_capital_lease_obligations: float | None = Field( + default=None, + description="Growth rate of capital lease obligations.", + json_schema_extra=_PCT, + ) + growth_operating_lease_liability_noncurrent: float | None = Field( + default=None, + description="Growth rate of noncurrent operating lease liability.", + json_schema_extra=_PCT, + ) + growth_claims_and_claim_expenses: float | None = Field( + default=None, + description="Growth rate of claims and claim expenses.", + json_schema_extra=_PCT, + ) + growth_future_policy_benefits: float | None = Field( + default=None, + description="Growth rate of future policy benefits.", + json_schema_extra=_PCT, + ) + growth_unearned_premiums_credit: float | None = Field( + default=None, + description="Growth rate of unearned premiums credit.", + json_schema_extra=_PCT, + ) + growth_policyholder_funds: float | None = Field( + default=None, + description="Growth rate of policyholder funds.", + json_schema_extra=_PCT, + ) + growth_participating_policyholder_equity: float | None = Field( + default=None, + description="Growth rate of participating policyholder equity.", + json_schema_extra=_PCT, + ) + growth_separate_account_business_liabilities: float | None = Field( + default=None, + description="Growth rate of separate account business liabilities.", + json_schema_extra=_PCT, + ) + growth_other_long_term_liabilities: float | None = Field( + default=None, + description="Growth rate of other long-term liabilities.", + json_schema_extra=_PCT, + ) + growth_asset_retirement_and_litigation_obligation: float | None = Field( + default=None, + description="Growth rate of asset retirement and litigation obligation.", + json_schema_extra=_PCT, + ) + growth_noncurrent_deferred_revenue: float | None = Field( + default=None, + description="Growth rate of noncurrent deferred revenue.", + json_schema_extra=_PCT, + ) + growth_noncurrent_deferred_tax_liabilities: float | None = Field( + default=None, + description="Growth rate of noncurrent deferred tax liabilities.", + json_schema_extra=_PCT, + ) + growth_noncurrent_employee_benefit_liabilities: float | None = Field( + default=None, + description="Growth rate of noncurrent employee benefit liabilities.", + json_schema_extra=_PCT, + ) + growth_other_noncurrent_liabilities: float | None = Field( + default=None, + description="Growth rate of other noncurrent liabilities.", + json_schema_extra=_PCT, + ) + growth_other_noncurrent_nonoperating_liabilities: float | None = Field( + default=None, + description="Growth rate of other noncurrent nonoperating liabilities.", + json_schema_extra=_PCT, + ) + growth_total_noncurrent_liabilities: float | None = Field( + default=None, + description="Growth rate of total noncurrent liabilities.", + json_schema_extra=_PCT, + ) + growth_total_liabilities: float | None = Field( + default=None, + description="Growth rate of total liabilities.", + json_schema_extra=_PCT, + ) + growth_commitments_and_contingencies: float | None = Field( + default=None, + description="Growth rate of commitments and contingencies.", + json_schema_extra=_PCT, + ) + growth_temporary_equity: float | None = Field( + default=None, + description="Growth rate of temporary equity.", + json_schema_extra=_PCT, + ) + growth_temporary_equity_parent: float | None = Field( + default=None, + description="Growth rate of temporary equity attributable to parent.", + json_schema_extra=_PCT, + ) + growth_redeemable_noncontrolling_interest: float | None = Field( + default=None, + description="Growth rate of redeemable noncontrolling interest.", + json_schema_extra=_PCT, + ) + growth_redeemable_nci_common: float | None = Field( + default=None, + description="Growth rate of redeemable NCI common.", + json_schema_extra=_PCT, + ) + growth_redeemable_nci_preferred: float | None = Field( + default=None, + description="Growth rate of redeemable NCI preferred.", + json_schema_extra=_PCT, + ) + growth_redeemable_nci_other: float | None = Field( + default=None, + description="Growth rate of redeemable NCI other.", + json_schema_extra=_PCT, + ) + growth_total_preferred_equity: float | None = Field( + default=None, + description="Growth rate of total preferred equity.", + json_schema_extra=_PCT, + ) + growth_common_equity: float | None = Field( + default=None, + description="Growth rate of common equity.", + json_schema_extra=_PCT, + ) + growth_additional_paid_in_capital: float | None = Field( + default=None, + description="Growth rate of additional paid-in capital.", + json_schema_extra=_PCT, + ) + growth_retained_earnings: float | None = Field( + default=None, + description="Growth rate of retained earnings.", + json_schema_extra=_PCT, + ) + growth_treasury_stock: float | None = Field( + default=None, + description="Growth rate of treasury stock.", + json_schema_extra=_PCT, + ) + growth_accumulated_other_comprehensive_income: float | None = Field( + default=None, + description="Growth rate of accumulated other comprehensive income.", + json_schema_extra=_PCT, + ) + growth_other_equity: float | None = Field( + default=None, + description="Growth rate of other equity.", + json_schema_extra=_PCT, + ) + growth_total_common_equity: float | None = Field( + default=None, + description="Growth rate of total common equity.", + json_schema_extra=_PCT, + ) + growth_total_equity: float | None = Field( + default=None, + description="Growth rate of total equity.", + json_schema_extra=_PCT, + ) + growth_noncontrolling_interests: float | None = Field( + default=None, + description="Growth rate of noncontrolling interests.", + json_schema_extra=_PCT, + ) + growth_total_equity_and_noncontrolling_interests: float | None = Field( + default=None, + description="Growth rate of total equity and noncontrolling interests.", + json_schema_extra=_PCT, + ) + growth_total_liabilities_and_equity: float | None = Field( + default=None, + description="Growth rate of total liabilities and equity.", + json_schema_extra=_PCT, + ) + + @model_validator(mode="before") + @classmethod + def _validate_model(cls, values): + """Validate the model.""" + return {k: v for k, v in values.items() if v is not None} + + @model_serializer(mode="wrap") + def _serialize(self, handler): + d = handler(self) + return { + k: (None if isinstance(v, float) and isnan(v) else v) for k, v in d.items() + } + + +class SecBalanceSheetGrowthFetcher( + Fetcher[SecBalanceSheetGrowthQueryParams, list[SecBalanceSheetGrowthData]] +): + """SEC Balance Sheet Growth Fetcher.""" + + @staticmethod + def transform_query( + params: dict[str, Any], + ) -> SecBalanceSheetGrowthQueryParams: + """Transform the query.""" + return SecBalanceSheetGrowthQueryParams(**params) + + @staticmethod + async def aextract_data( + query: SecBalanceSheetGrowthQueryParams, + credentials: dict[str, str] | None, + **kwargs: Any, + ) -> dict: + """Return the raw data from the SEC endpoint.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + PeriodType, + get_standardized_financials, + ) + + period_map: dict[str, PeriodType] = { + "annual": "yoy", + "quarterly": "pop", + "quarterly_yoy": "yoy_quarterly", + "ttm": "pop", + } + result = await get_standardized_financials( + symbol=query.symbol, + period=period_map[query.period], + use_cache=query.use_cache, + include_preliminary=query.include_preliminary, + pit_mode=query.pit_mode, + ) + return {"result": result, "statement": "balance_sheet"} + + @staticmethod + def transform_data( + query: SecBalanceSheetGrowthQueryParams, + data: dict, + **kwargs: Any, + ) -> AnnotatedResult[list[SecBalanceSheetGrowthData]]: + """Transform the data and validate the model.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + StandardizedStatements, + normalize_period_fields, + order_field_meta, + ) + + result: StandardizedStatements = data["result"] + records: list[dict] = getattr(result, data["statement"]) + + if not records: + raise EmptyDataError("The request was returned empty.") + + periods: dict[str, dict] = {} + sources: dict[str, dict[str, str]] = {} + field_meta: dict[str, dict] = {} + + for rec in records: + date_key = rec["period_ending"] + + if date_key not in periods: + periods[date_key] = { + "period_ending": date_key, + "fiscal_period": rec.get("fiscal_period"), + "fiscal_year": rec.get("fiscal_year"), + "reported_currency": rec.get("currency"), + } + sources[date_key] = {} + + tag = rec["tag"] + growth_tag = f"growth_{tag}" + periods[date_key][growth_tag] = rec["value"] + source = rec.get("source", "") + + if source: + sources[date_key][growth_tag] = source + + if growth_tag not in field_meta: + field_meta[growth_tag] = { + "label": rec.get("label", ""), + "description": rec.get("description", ""), + "parent": rec.get("parent"), + "sequence": rec.get("sequence"), + "factor": rec.get("factor", "+"), + "balance": rec.get("balance", ""), + "unit": rec.get("unit", "monetary"), + } + + normalize_period_fields(periods, SecBalanceSheetGrowthData) + + sorted_periods = sorted( + periods.values(), + key=lambda x: x["period_ending"], + reverse=True, + ) + + if query.limit is not None: + sorted_periods = sorted_periods[: query.limit] + + results = [SecBalanceSheetGrowthData.model_validate(d) for d in sorted_periods] + + field_sources: dict[str, dict[str, str]] = {} + + for date_key, date_sources in sources.items(): + for tag, source in date_sources.items(): + if source: + if tag not in field_sources: + field_sources[tag] = {} + field_sources[tag][date_key] = source + + for tag, period_sources in field_sources.items(): + if tag in field_meta: + field_meta[tag]["sources"] = period_sources + + metadata: dict = { + "entity_name": result.entity_name, + "cik": result.cik, + "company_type": result.company_type, + "fields": order_field_meta(field_meta, SecBalanceSheetGrowthData), + } + + if result.diagnostics: + diag_details = [ + { + "date": d.date, + "tag": d.tag, + "expected": d.expected, + "actual": d.actual, + "formula": d.formula, + "identity": d.identity, + } + for d in result.diagnostics + ] + metadata["validation_warnings"] = diag_details + tags_affected = sorted({d.tag for d in result.diagnostics}) + dates_affected = sorted({d.date for d in result.diagnostics}) + warn( + f"SEC XBRL validation: {len(result.diagnostics)} " + f"warning(s) across {len(dates_affected)} period(s)" + f" affecting tag(s): {', '.join(tags_affected)}. " + "See metadata['validation_warnings'] for details." + ) + + return AnnotatedResult(result=results, metadata=metadata) diff --git a/openbb_platform/providers/sec/openbb_sec/models/cash_flow.py b/openbb_platform/providers/sec/openbb_sec/models/cash_flow.py new file mode 100644 index 00000000000..f59e97d4d79 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/models/cash_flow.py @@ -0,0 +1,556 @@ +"""SEC Cash Flow Statement Model.""" + +# pylint: disable=unused-argument + +from math import isnan +from typing import Any, Literal +from warnings import warn + +from openbb_core.provider.abstract.annotated_result import AnnotatedResult +from openbb_core.provider.abstract.fetcher import Fetcher +from openbb_core.provider.standard_models.cash_flow import ( + CashFlowStatementData, + CashFlowStatementQueryParams, +) +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.errors import EmptyDataError +from pydantic import ConfigDict, Field, model_serializer, model_validator + + +class SecCashFlowStatementQueryParams(CashFlowStatementQueryParams): + """SEC CashFlowStatement Query. + + Source: https://www.sec.gov/edgar/sec-api-documentation + """ + + period: Literal["annual", "quarterly", "ttm"] = Field( + default="annual", + description=QUERY_DESCRIPTIONS.get("period", ""), + ) + use_cache: bool = Field( + default=True, + description="Whether to use cache (4-hour memory) for the SEC request." + " Defaults to True.", + ) + include_preliminary: bool = Field( + default=False, + description="Whether to include preliminary data from 8-K filings" + " for periods not yet reported on 10-Q/K.", + ) + pit_mode: bool = Field( + default=False, + description="Point-in-time mode. When True, returns data as originally" + " reported at the time of filing, without subsequent restatements or" + " amendments. For annual data, uses the original 10-K values. For" + " quarterly data, preserves 10-Q filing vintage instead of using" + " restated comparatives from the 10-K.", + ) + + +class SecCashFlowStatementData(CashFlowStatementData): + """SEC CashFlowStatement Data.""" + + model_config = ConfigDict( + allow_inf_nan=True, + ser_json_inf_nan="null", + json_schema_extra={ + "x-widget_config": {"$.data": {"table": {"enableFormulas": True}}} + }, + ) + + reported_currency: str | None = Field( + default=None, + description="The currency in which the cash flow statement is reported.", + ) + net_income: float | None = Field( + default=None, + description="The consolidated profit or loss for the period, net of income taxes, including the portion " + "attributable to the noncontrolling interest.", + ) + net_income_discontinued: float | None = Field( + default=None, + description="Amount after tax of income (loss) from a discontinued operation including the portion attributable " + "to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the " + "phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, " + "less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + ) + net_income_continuing: float | None = Field( + default=None, + description="Amount after tax of income (loss) from continuing operations including portion attributable to the " + "noncontrolling interest.", + ) + provision_for_loan_losses: float | None = Field( + default=None, + description="Amount of expense related to estimated loss from loan and lease transactions.", + ) + depreciation_expense: float | None = Field( + default=None, + description="The current period expense charged against earnings on long-lived, physical assets not used in " + "production, and which are not intended for resale, to allocate or recognize the cost of such assets over their " + "useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such " + "asset; or to reflect consumption during the period of an asset that is not used in production.", + ) + amortization_expense: float | None = Field( + default=None, + description="Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized " + "cost for software to be sold, leased, or marketed.", + ) + depreciation_and_amortization: float | None = Field( + default=None, + description="The aggregate expense recognized in the current period that allocates the cost of tangible and " + "intangible assets over their useful lives.", + ) + stock_based_compensation: float | None = Field( + default=None, + description="Amount of noncash expense for share-based payment arrangement.", + ) + deferred_income_tax: float | None = Field( + default=None, + description="Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing " + "operations.", + ) + gain_loss_on_investments: float | None = Field( + default=None, + description="Amount of realized and unrealized gain (loss) on investment.", + ) + gain_loss_on_sale_of_assets: float | None = Field( + default=None, + description="Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil " + "and gas property and timber property.", + ) + income_loss_from_equity_method_investments: float | None = Field( + default=None, + description="Amount of income (loss) for proportionate share of equity method investee's income (loss).", + ) + asset_impairment_charges: float | None = Field( + default=None, + description="Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible " + "assets and goodwill.", + ) + noncash_adjustments_to_net_income: float | None = Field( + default=None, + description="Amount of income (expense) included in net income that results in no cash inflow (outflow), " + "classified as other.", + ) + other_operating_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from operating activity, classified as other, in reconciling net " + "income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + ) + change_in_insurance_reserves: float | None = Field( + default=None, + description="The increase (decrease) in health care insurance liability balances during the period.", + ) + change_in_accounts_receivable: float | None = Field( + default=None, + description="The increase (decrease) during the reporting period in amount due within one year (or one business " + "cycle) from customers for the credit sale of goods and services.", + ) + change_in_nontrade_receivables: float | None = Field( + default=None, + description="Amount of increase (decrease) in receivables classified as other.", + ) + change_in_inventories: float | None = Field( + default=None, + description="The increase (decrease) during the reporting period in the aggregate value of all inventory held by " + "the reporting entity, associated with underlying transactions that are classified as operating activities.", + ) + change_in_accounts_payable: float | None = Field( + default=None, + description="The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred " + "(and for which invoices have typically been received) and payable to vendors for goods and services received " + "that are used in an entity's business.", + ) + change_in_other_operating_assets_and_liabilities: float | None = Field( + default=None, + description="Amount of increase (decrease) in operating assets classified as other.", + ) + increase_decrease_in_operating_capital: float | None = Field( + default=None, + description="Amount of increase (decrease) in asset and (increase) decrease in liability, used in operating " + "activity in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash " + "flow method is applied.", + ) + net_cash_from_continuing_operating_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from operating activity, including, but not limited to, " + "discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change " + "in value not defined as investing or financing activity.", + ) + net_cash_from_discontinued_operating_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from operating activity attributable to discontinued operation. " + "Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as " + "investing or financing activity.", + ) + net_cash_from_operating_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from operating activity, including, but not limited to, " + "discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change " + "in value not defined as investing or financing activity.", + ) + purchase_of_plant_property_and_equipment: float | None = Field( + default=None, + description="The cash outflow associated with the acquisition of long-lived, physical assets that are used in " + "the normal conduct of business to produce goods and services and not intended for resale; includes cash " + "outflows to pay for construction of self-constructed assets.", + ) + acquisitions: float | None = Field( + default=None, + description="The cash outflow associated with the acquisition of a business, net of the cash acquired from the " + "purchase.", + ) + purchase_of_investments: float | None = Field( + default=None, + description="Amount of cash outflow to acquire investment in debt security measured at fair value with change in " + "fair value recognized in other comprehensive income (available-for-sale).", + ) + purchase_of_held_to_maturity_investments: float | None = Field( + default=None, + description="Amount of cash outflow through purchase of long-term held-to-maturity securities.", + ) + sale_of_plant_property_and_equipment: float | None = Field( + default=None, + description="The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of " + "business to produce goods and services and not intended for resale.", + ) + sale_of_productive_assets: float | None = Field( + default=None, + description="The cash inflow from the sale of property, plant and equipment (capital expenditures), software, " + "and other intangible assets.", + ) + divestitures: float | None = Field( + default=None, + description="The cash inflow associated with the amount received from the sale of a portion of the company's " + "business, for example a segment, division, branch or other business, during the period.", + ) + sale_of_investments: float | None = Field( + default=None, + description="Amount of cash inflow from sale of investment in debt security measured at fair value with change " + "in fair value recognized in other comprehensive income (available-for-sale).", + ) + maturity_of_investments: float | None = Field( + default=None, + description="Amount of cash inflow from maturity, prepayment and call of investment in debt security measured at " + "fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + ) + net_increase_in_fed_funds_sold: float | None = Field( + default=None, + description="The net cash inflow or outflow from the fund lent to other financial institution arising from the " + "excess in reserve deposited at Federal Reserve Bank to meet legal requirement. This borrowing is usually " + "contracted on an overnight basis at an agreed rate of interest.", + ) + loans_held_for_sale_net: float | None = Field( + default=None, + description="The net cash outflow or inflow for the increase (decrease) in the beginning and end of period of " + "loan and lease balances which are not originated or purchased specifically for resale. Includes cash payments " + "and proceeds associated with (a) loans held-for-investment, (b) leases held-for-investment, and (c) both.", + ) + other_investing_activities_net: float | None = Field( + default=None, + description="Amount of cash (inflow) outflow from investing activity, classified as other.", + ) + net_cash_from_continuing_investing_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from investing activity, including, but not limited to, " + "discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, " + "acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive " + "assets.", + ) + net_cash_from_discontinued_investing_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from investing activity attributable to discontinued operation. " + "Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt " + "and equity instruments, property, plant, and equipment, and other productive assets.", + ) + net_cash_from_investing_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from investing activity, including, but not limited to, " + "discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, " + "acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive " + "assets.", + ) + repayment_of_debt: float | None = Field( + default=None, + description="The cash outflow for debt initially having maturity due after one year or beyond the normal " + "operating cycle, if longer.", + ) + repurchase_of_preferred_equity: float | None = Field( + default=None, + description="The cash outflow to reacquire preferred stock during the period.", + ) + repurchase_of_common_equity: float | None = Field( + default=None, + description="The cash outflow to reacquire common stock during the period.", + ) + payment_of_dividends: float | None = Field( + default=None, + description="Cash outflow in the form of capital distributions and dividends to common shareholders, preferred " + "shareholders and noncontrolling interests.", + ) + issuance_of_debt: float | None = Field( + default=None, + description="The cash inflow from a debt initially having maturity due after one year or beyond the operating " + "cycle, if longer.", + ) + issuance_of_preferred_equity: float | None = Field( + default=None, + description="Proceeds from issuance of capital stock which provides for a specific dividend that is paid to the " + "shareholders before any dividends to common stockholders and which takes precedence over common stockholders in " + "the event of liquidation.", + ) + issuance_of_common_equity: float | None = Field( + default=None, + description="The cash inflow from the additional capital contribution to the entity.", + ) + net_change_in_deposits: float | None = Field( + default=None, + description="The net cash inflow or outflow for the increase (decrease) in the beginning and end of period " + "deposits balances.", + ) + short_term_debt_net: float | None = Field( + default=None, + description="The net cash inflow or outflow for borrowing having initial term of repayment within one year or " + "the normal operating cycle, if longer.", + ) + tax_withholding_share_based_compensation: float | None = Field( + default=None, + description="Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based " + "payment arrangement.", + ) + other_financing_activities_net: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from financing activity, classified as other.", + ) + net_cash_from_continuing_financing_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from financing activity, including, but not limited to, " + "discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and " + "providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling " + "obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + ) + net_cash_from_discontinued_financing_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from financing activity attributable to discontinued operation. " + "Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and " + "return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and " + "obtaining and paying for other resource obtained from creditor on long-term credit.", + ) + net_cash_from_financing_activities: float | None = Field( + default=None, + description="Amount of cash inflow (outflow) from financing activity, including, but not limited to, " + "discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and " + "providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling " + "obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + ) + effect_of_exchange_rate_changes: float | None = Field( + default=None, + description="The effect of exchange rate changes on cash balances held in foreign currencies.", + ) + net_cash_from_discontinued_operations: float | None = Field( + default=None, + description="The net change in cash and cash equivalents resulting from the cash inflows and outflows of " + "discontinued operations.", + ) + other_net_changes_in_cash: float | None = Field( + default=None, + description="Amount of other net changes in cash and cash equivalents not separately disclosed in the statement " + "of cash flows.", + ) + net_change_in_cash: float | None = Field( + default=None, + description="The increase (decrease) during the reporting period in cash and cash equivalents. While for " + "technical reasons this element has no balance attribute, the default assumption is a debit balance consistent " + "with its label.", + ) + cash_at_beginning_of_period: float | None = Field( + default=None, + description="Cash, cash equivalents, restricted cash, and restricted cash equivalents at the beginning of the " + "reporting period. Derived from the previous period's ending balance.", + ) + cash_at_end_of_period: float | None = Field( + default=None, + description="Cash, cash equivalents, restricted cash, and restricted cash equivalents at the end of the " + "reporting period.", + ) + cash_interest_paid: float | None = Field( + default=None, + description="Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. " + "Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and " + "debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing " + "attributable to accreted interest of debt discount.", + ) + cash_interest_received: float | None = Field( + default=None, + description="The cash inflow from interest received, classified as operating activities.", + ) + cash_income_taxes_paid: float | None = Field( + default=None, + description="Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income " + "tax.", + ) + + @model_validator(mode="before") + @classmethod + def _validate_model(cls, values): + """Validate the model.""" + return {k: v for k, v in values.items() if v is not None} + + @model_serializer(mode="wrap") + def _serialize(self, handler): + d = handler(self) + return { + k: (None if isinstance(v, float) and isnan(v) else v) for k, v in d.items() + } + + +class SecCashFlowStatementFetcher( + Fetcher[SecCashFlowStatementQueryParams, list[SecCashFlowStatementData]] +): + """SEC CashFlowStatement Fetcher.""" + + @staticmethod + def transform_query( + params: dict[str, Any], + ) -> SecCashFlowStatementQueryParams: + """Transform the query.""" + return SecCashFlowStatementQueryParams(**params) + + @staticmethod + async def aextract_data( + query: SecCashFlowStatementQueryParams, + credentials: dict[str, str] | None, + **kwargs: Any, + ) -> dict: + """Return the raw data from the SEC endpoint.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + get_standardized_financials, + ) + + result = await get_standardized_financials( + symbol=query.symbol, + period=query.period, + use_cache=query.use_cache, + include_preliminary=query.include_preliminary, + pit_mode=query.pit_mode, + ) + return { + "result": result, + "statement": "cash_flow", + } + + @staticmethod + def transform_data( + query: SecCashFlowStatementQueryParams, + data: dict, + **kwargs: Any, + ) -> AnnotatedResult[list[SecCashFlowStatementData]]: + """Transform the data and validate the model.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + StandardizedStatements, + normalize_period_fields, + order_field_meta, + ) + + result: StandardizedStatements = data["result"] + statement_name: str = data["statement"] + records: list[dict] = getattr(result, statement_name) + + if not records: + raise EmptyDataError("The request was returned empty.") + + # Group records by period_ending to pivot from long to wide format. + periods: dict[str, dict] = {} + sources: dict[str, dict[str, str]] = {} + field_meta: dict[str, dict] = {} # tag -> schema metadata + + for rec in records: + date_key = rec["period_ending"] + + if date_key not in periods: + periods[date_key] = { + "period_ending": date_key, + "fiscal_period": rec.get("fiscal_period"), + "fiscal_year": rec.get("fiscal_year"), + "reported_currency": rec.get("currency"), + } + sources[date_key] = {} + tag = rec["tag"] + periods[date_key][tag] = rec["value"] + source = rec.get("source", "") + + if source: + sources[date_key][tag] = source + + if tag not in field_meta: + field_meta[tag] = { + "label": rec.get("label", ""), + "description": rec.get("description", ""), + "parent": rec.get("parent"), + "sequence": rec.get("sequence"), + "factor": rec.get("factor", "+"), + "balance": rec.get("balance", ""), + "unit": rec.get("unit", "monetary"), + } + + normalize_period_fields(periods, SecCashFlowStatementData) + + # Sort by period_ending descending (most recent first). + sorted_periods = sorted( + periods.values(), + key=lambda x: x["period_ending"], + reverse=True, + ) + + if query.limit is not None: + sorted_periods = sorted_periods[: query.limit] + + results = [SecCashFlowStatementData.model_validate(d) for d in sorted_periods] + # Build metadata: field provenance (sources) and diagnostics. + field_sources: dict[str, dict[str, str]] = {} + + for date_key, date_sources in sources.items(): + for tag, source in date_sources.items(): + if source: + if tag not in field_sources: + field_sources[tag] = {} + field_sources[tag][date_key] = source + + # Merge sources into field metadata. + for tag, period_sources in field_sources.items(): + if tag in field_meta: + field_meta[tag]["sources"] = period_sources + + metadata: dict = { + "entity_name": result.entity_name, + "cik": result.cik, + "company_type": result.company_type, + "fields": order_field_meta(field_meta, SecCashFlowStatementData), + } + + # Surface ValidationWarning diagnostics. + if result.diagnostics: + diag_details = [ + { + "date": d.date, + "tag": d.tag, + "expected": d.expected, + "actual": d.actual, + "formula": d.formula, + "identity": d.identity, + } + for d in result.diagnostics + ] + metadata["validation_warnings"] = diag_details + tags_affected = sorted({d.tag for d in result.diagnostics}) + dates_affected = sorted({d.date for d in result.diagnostics}) + warn( + f"SEC XBRL validation: {len(result.diagnostics)} " + f"warning(s) across {len(dates_affected)} period(s)" + f" affecting tag(s): {', '.join(tags_affected)}. " + "See metadata['validation_warnings'] for details." + ) + + return AnnotatedResult(result=results, metadata=metadata) diff --git a/openbb_platform/providers/sec/openbb_sec/models/cash_flow_growth.py b/openbb_platform/providers/sec/openbb_sec/models/cash_flow_growth.py new file mode 100644 index 00000000000..3da50c7bdc2 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/models/cash_flow_growth.py @@ -0,0 +1,547 @@ +"""SEC Cash Flow Statement Growth Model.""" + +# pylint: disable=unused-argument + +from math import isnan +from typing import Any, Literal +from warnings import warn + +from openbb_core.provider.abstract.annotated_result import AnnotatedResult +from openbb_core.provider.abstract.fetcher import Fetcher +from openbb_core.provider.standard_models.cash_flow_growth import ( + CashFlowStatementGrowthData, + CashFlowStatementGrowthQueryParams, +) +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.errors import EmptyDataError +from pydantic import ConfigDict, Field, model_serializer, model_validator + +_PCT: dict[str, Any] = {"x-unit_measurement": "percent", "x-frontend_multiply": 100} + + +class SecCashFlowStatementGrowthQueryParams(CashFlowStatementGrowthQueryParams): + """SEC Cash Flow Statement Growth Query. + + Source: https://www.sec.gov/edgar/sec-api-documentation + """ + + period: Literal["annual", "quarterly", "quarterly_yoy", "ttm"] = Field( + default="annual", + description=QUERY_DESCRIPTIONS.get("period", ""), + ) + use_cache: bool = Field( + default=True, + description="Whether to use cache (4-hour memory) for the SEC request." + " Defaults to True.", + ) + include_preliminary: bool = Field( + default=False, + description="Whether to include preliminary data from 8-K filings" + " for periods not yet reported on 10-Q/K.", + ) + pit_mode: bool = Field( + default=False, + description="Point-in-time mode. When True, returns data as originally" + " reported at the time of filing, without subsequent restatements or" + " amendments. For annual data, uses the original 10-K values. For" + " quarterly data, preserves 10-Q filing vintage instead of using" + " restated comparatives from the 10-K.", + ) + + +class SecCashFlowStatementGrowthData(CashFlowStatementGrowthData): + """SEC Cash Flow Statement Growth Data.""" + + model_config = ConfigDict( + allow_inf_nan=True, + ser_json_inf_nan="null", + json_schema_extra={ + "x-widget_config": {"$.data": {"table": {"enableFormulas": True}}} + }, + ) + + growth_net_income: float | None = Field( + default=None, + description="Growth rate of net income.", + json_schema_extra=_PCT, + ) + growth_net_income_discontinued: float | None = Field( + default=None, + description="Growth rate of net income from discontinued operations.", + json_schema_extra=_PCT, + ) + growth_net_income_continuing: float | None = Field( + default=None, + description="Growth rate of net income from continuing operations.", + json_schema_extra=_PCT, + ) + growth_provision_for_loan_losses: float | None = Field( + default=None, + description="Growth rate of provision for loan losses.", + json_schema_extra=_PCT, + ) + growth_depreciation_expense: float | None = Field( + default=None, + description="Growth rate of depreciation expense.", + json_schema_extra=_PCT, + ) + growth_amortization_expense: float | None = Field( + default=None, + description="Growth rate of amortization expense.", + json_schema_extra=_PCT, + ) + growth_depreciation_and_amortization: float | None = Field( + default=None, + description="Growth rate of depreciation and amortization.", + json_schema_extra=_PCT, + ) + growth_stock_based_compensation: float | None = Field( + default=None, + description="Growth rate of stock-based compensation.", + json_schema_extra=_PCT, + ) + growth_deferred_income_tax: float | None = Field( + default=None, + description="Growth rate of deferred income tax.", + json_schema_extra=_PCT, + ) + growth_gain_loss_on_investments: float | None = Field( + default=None, + description="Growth rate of gain/loss on investments.", + json_schema_extra=_PCT, + ) + growth_gain_loss_on_sale_of_assets: float | None = Field( + default=None, + description="Growth rate of gain/loss on sale of assets.", + json_schema_extra=_PCT, + ) + growth_income_loss_from_equity_method_investments: float | None = Field( + default=None, + description="Growth rate of income/loss from equity method investments.", + json_schema_extra=_PCT, + ) + growth_asset_impairment_charges: float | None = Field( + default=None, + description="Growth rate of asset impairment charges.", + json_schema_extra=_PCT, + ) + growth_noncash_adjustments_to_net_income: float | None = Field( + default=None, + description="Growth rate of noncash adjustments to net income.", + json_schema_extra=_PCT, + ) + growth_other_operating_activities: float | None = Field( + default=None, + description="Growth rate of other operating activities.", + json_schema_extra=_PCT, + ) + growth_change_in_insurance_reserves: float | None = Field( + default=None, + description="Growth rate of change in insurance reserves.", + json_schema_extra=_PCT, + ) + growth_change_in_accounts_receivable: float | None = Field( + default=None, + description="Growth rate of change in accounts receivable.", + json_schema_extra=_PCT, + ) + growth_change_in_nontrade_receivables: float | None = Field( + default=None, + description="Growth rate of change in nontrade receivables.", + json_schema_extra=_PCT, + ) + growth_change_in_inventories: float | None = Field( + default=None, + description="Growth rate of change in inventories.", + json_schema_extra=_PCT, + ) + growth_change_in_accounts_payable: float | None = Field( + default=None, + description="Growth rate of change in accounts payable.", + json_schema_extra=_PCT, + ) + growth_change_in_other_operating_assets_and_liabilities: float | None = Field( + default=None, + description="Growth rate of change in other operating assets and liabilities.", + json_schema_extra=_PCT, + ) + growth_increase_decrease_in_operating_capital: float | None = Field( + default=None, + description="Growth rate of increase/decrease in operating capital.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_continuing_operating_activities: float | None = Field( + default=None, + description="Growth rate of net cash from continuing operating activities.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_discontinued_operating_activities: float | None = Field( + default=None, + description="Growth rate of net cash from discontinued operating activities.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_operating_activities: float | None = Field( + default=None, + description="Growth rate of net cash from operating activities.", + json_schema_extra=_PCT, + ) + growth_purchase_of_plant_property_and_equipment: float | None = Field( + default=None, + description="Growth rate of purchase of plant, property, and equipment.", + json_schema_extra=_PCT, + ) + growth_acquisitions: float | None = Field( + default=None, + description="Growth rate of acquisitions.", + json_schema_extra=_PCT, + ) + growth_purchase_of_investments: float | None = Field( + default=None, + description="Growth rate of purchase of investments.", + json_schema_extra=_PCT, + ) + growth_purchase_of_held_to_maturity_investments: float | None = Field( + default=None, + description="Growth rate of purchase of held-to-maturity investments.", + json_schema_extra=_PCT, + ) + growth_sale_of_plant_property_and_equipment: float | None = Field( + default=None, + description="Growth rate of sale of plant, property, and equipment.", + json_schema_extra=_PCT, + ) + growth_sale_of_productive_assets: float | None = Field( + default=None, + description="Growth rate of sale of productive assets.", + json_schema_extra=_PCT, + ) + growth_divestitures: float | None = Field( + default=None, + description="Growth rate of divestitures.", + json_schema_extra=_PCT, + ) + growth_sale_of_investments: float | None = Field( + default=None, + description="Growth rate of sale of investments.", + json_schema_extra=_PCT, + ) + growth_maturity_of_investments: float | None = Field( + default=None, + description="Growth rate of maturity of investments.", + json_schema_extra=_PCT, + ) + growth_net_increase_in_fed_funds_sold: float | None = Field( + default=None, + description="Growth rate of net increase in federal funds sold.", + json_schema_extra=_PCT, + ) + growth_loans_held_for_sale_net: float | None = Field( + default=None, + description="Growth rate of loans held for sale, net.", + json_schema_extra=_PCT, + ) + growth_other_investing_activities_net: float | None = Field( + default=None, + description="Growth rate of other investing activities, net.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_continuing_investing_activities: float | None = Field( + default=None, + description="Growth rate of net cash from continuing investing activities.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_discontinued_investing_activities: float | None = Field( + default=None, + description="Growth rate of net cash from discontinued investing activities.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_investing_activities: float | None = Field( + default=None, + description="Growth rate of net cash from investing activities.", + json_schema_extra=_PCT, + ) + growth_repayment_of_debt: float | None = Field( + default=None, + description="Growth rate of repayment of debt.", + json_schema_extra=_PCT, + ) + growth_repurchase_of_preferred_equity: float | None = Field( + default=None, + description="Growth rate of repurchase of preferred equity.", + json_schema_extra=_PCT, + ) + growth_repurchase_of_common_equity: float | None = Field( + default=None, + description="Growth rate of repurchase of common equity.", + json_schema_extra=_PCT, + ) + growth_payment_of_dividends: float | None = Field( + default=None, + description="Growth rate of payment of dividends.", + json_schema_extra=_PCT, + ) + growth_issuance_of_debt: float | None = Field( + default=None, + description="Growth rate of issuance of debt.", + json_schema_extra=_PCT, + ) + growth_issuance_of_preferred_equity: float | None = Field( + default=None, + description="Growth rate of issuance of preferred equity.", + json_schema_extra=_PCT, + ) + growth_issuance_of_common_equity: float | None = Field( + default=None, + description="Growth rate of issuance of common equity.", + json_schema_extra=_PCT, + ) + growth_net_change_in_deposits: float | None = Field( + default=None, + description="Growth rate of net change in deposits.", + json_schema_extra=_PCT, + ) + growth_net_short_term_borrowings: float | None = Field( + default=None, + description="Growth rate of net short-term borrowings.", + json_schema_extra=_PCT, + ) + growth_tax_withholding_share_based_compensation: float | None = Field( + default=None, + description="Growth rate of tax withholding for share-based compensation.", + json_schema_extra=_PCT, + ) + growth_other_financing_activities_net: float | None = Field( + default=None, + description="Growth rate of other financing activities, net.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_continuing_financing_activities: float | None = Field( + default=None, + description="Growth rate of net cash from continuing financing activities.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_discontinued_financing_activities: float | None = Field( + default=None, + description="Growth rate of net cash from discontinued financing activities.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_financing_activities: float | None = Field( + default=None, + description="Growth rate of net cash from financing activities.", + json_schema_extra=_PCT, + ) + growth_effect_of_exchange_rate_changes: float | None = Field( + default=None, + description="Growth rate of effect of exchange rate changes.", + json_schema_extra=_PCT, + ) + growth_net_cash_from_discontinued_operations: float | None = Field( + default=None, + description="Growth rate of net cash from discontinued operations.", + json_schema_extra=_PCT, + ) + growth_other_net_changes_in_cash: float | None = Field( + default=None, + description="Growth rate of other net changes in cash.", + json_schema_extra=_PCT, + ) + growth_net_change_in_cash: float | None = Field( + default=None, + description="Growth rate of net change in cash.", + json_schema_extra=_PCT, + ) + growth_cash_at_beginning_of_period: float | None = Field( + default=None, + description="Growth rate of cash at beginning of period.", + json_schema_extra=_PCT, + ) + growth_cash_at_end_of_period: float | None = Field( + default=None, + description="Growth rate of cash at end of period.", + json_schema_extra=_PCT, + ) + growth_cash_interest_paid: float | None = Field( + default=None, + description="Growth rate of cash interest paid.", + json_schema_extra=_PCT, + ) + growth_cash_interest_received: float | None = Field( + default=None, + description="Growth rate of cash interest received.", + json_schema_extra=_PCT, + ) + growth_cash_income_taxes_paid: float | None = Field( + default=None, + description="Growth rate of cash income taxes paid.", + json_schema_extra=_PCT, + ) + + @model_validator(mode="before") + @classmethod + def _validate_model(cls, values): + """Validate the model.""" + return {k: v for k, v in values.items() if v is not None} + + @model_serializer(mode="wrap") + def _serialize(self, handler): + d = handler(self) + return { + k: (None if isinstance(v, float) and isnan(v) else v) for k, v in d.items() + } + + +class SecCashFlowStatementGrowthFetcher( + Fetcher[ + SecCashFlowStatementGrowthQueryParams, + list[SecCashFlowStatementGrowthData], + ] +): + """SEC Cash Flow Statement Growth Fetcher.""" + + @staticmethod + def transform_query( + params: dict[str, Any], + ) -> SecCashFlowStatementGrowthQueryParams: + """Transform the query.""" + return SecCashFlowStatementGrowthQueryParams(**params) + + @staticmethod + async def aextract_data( + query: SecCashFlowStatementGrowthQueryParams, + credentials: dict[str, str] | None, + **kwargs: Any, + ) -> dict: + """Return the raw data from the SEC endpoint.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + PeriodType, + get_standardized_financials, + ) + + period_map: dict[str, PeriodType] = { + "annual": "yoy", + "quarterly": "pop", + "quarterly_yoy": "yoy_quarterly", + "ttm": "pop", + } + result = await get_standardized_financials( + symbol=query.symbol, + period=period_map[query.period], + use_cache=query.use_cache, + include_preliminary=query.include_preliminary, + pit_mode=query.pit_mode, + ) + return {"result": result, "statement": "cash_flow"} + + @staticmethod + def transform_data( + query: SecCashFlowStatementGrowthQueryParams, + data: dict, + **kwargs: Any, + ) -> AnnotatedResult[list[SecCashFlowStatementGrowthData]]: + """Transform the data and validate the model.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + StandardizedStatements, + normalize_period_fields, + order_field_meta, + ) + + result: StandardizedStatements = data["result"] + records: list[dict] = getattr(result, data["statement"]) + + if not records: + raise EmptyDataError("The request was returned empty.") + + periods: dict[str, dict] = {} + sources: dict[str, dict[str, str]] = {} + field_meta: dict[str, dict] = {} + + for rec in records: + date_key = rec["period_ending"] + + if date_key not in periods: + periods[date_key] = { + "period_ending": date_key, + "fiscal_period": rec.get("fiscal_period"), + "fiscal_year": rec.get("fiscal_year"), + "reported_currency": rec.get("currency"), + } + sources[date_key] = {} + + tag = rec["tag"] + growth_tag = f"growth_{tag}" + periods[date_key][growth_tag] = rec["value"] + source = rec.get("source", "") + + if source: + sources[date_key][growth_tag] = source + + if growth_tag not in field_meta: + field_meta[growth_tag] = { + "label": rec.get("label", ""), + "description": rec.get("description", ""), + "parent": rec.get("parent"), + "sequence": rec.get("sequence"), + "factor": rec.get("factor", "+"), + "balance": rec.get("balance", ""), + "unit": rec.get("unit", "monetary"), + } + + normalize_period_fields(periods, SecCashFlowStatementGrowthData) + + sorted_periods = sorted( + periods.values(), + key=lambda x: x["period_ending"], + reverse=True, + ) + + if query.limit is not None: + sorted_periods = sorted_periods[: query.limit] + + results = [ + SecCashFlowStatementGrowthData.model_validate(d) for d in sorted_periods + ] + field_sources: dict[str, dict[str, str]] = {} + + for date_key, date_sources in sources.items(): + for tag, source in date_sources.items(): + if source: + if tag not in field_sources: + field_sources[tag] = {} + field_sources[tag][date_key] = source + + for tag, period_sources in field_sources.items(): + if tag in field_meta: + field_meta[tag]["sources"] = period_sources + + metadata: dict = { + "entity_name": result.entity_name, + "cik": result.cik, + "company_type": result.company_type, + "fields": order_field_meta(field_meta, SecCashFlowStatementGrowthData), + } + + if result.diagnostics: + diag_details = [ + { + "date": d.date, + "tag": d.tag, + "expected": d.expected, + "actual": d.actual, + "formula": d.formula, + "identity": d.identity, + } + for d in result.diagnostics + ] + metadata["validation_warnings"] = diag_details + tags_affected = sorted({d.tag for d in result.diagnostics}) + dates_affected = sorted({d.date for d in result.diagnostics}) + warn( + f"SEC XBRL validation: {len(result.diagnostics)} " + f"warning(s) across {len(dates_affected)} period(s)" + f" affecting tag(s): {', '.join(tags_affected)}. " + "See metadata['validation_warnings'] for details." + ) + + return AnnotatedResult(result=results, metadata=metadata) diff --git a/openbb_platform/providers/sec/openbb_sec/models/income_statement.py b/openbb_platform/providers/sec/openbb_sec/models/income_statement.py new file mode 100644 index 00000000000..b107d1580fe --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/models/income_statement.py @@ -0,0 +1,689 @@ +"""SEC Income Statement Model.""" + +# pylint: disable=unused-argument + +from math import isnan +from typing import Any, Literal +from warnings import warn + +from openbb_core.provider.abstract.annotated_result import AnnotatedResult +from openbb_core.provider.abstract.fetcher import Fetcher +from openbb_core.provider.standard_models.income_statement import ( + IncomeStatementData, + IncomeStatementQueryParams, +) +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.errors import EmptyDataError +from pydantic import ConfigDict, Field, model_serializer, model_validator + + +class SecIncomeStatementQueryParams(IncomeStatementQueryParams): + """SEC IncomeStatement Query. + + Source: https://www.sec.gov/edgar/sec-api-documentation + """ + + period: Literal["annual", "quarterly", "ttm"] = Field( + default="annual", + description=QUERY_DESCRIPTIONS.get("period", ""), + ) + use_cache: bool = Field( + default=True, + description="Whether to use cache (4-hour memory) for the SEC request." + " Defaults to True.", + ) + include_preliminary: bool = Field( + default=False, + description="Whether to include preliminary data from 8-K filings" + " for periods not yet reported on 10-Q/K.", + ) + pit_mode: bool = Field( + default=False, + description="Point-in-time mode. When True, returns data as originally" + " reported at the time of filing, without subsequent restatements or" + " amendments. For annual data, uses the original 10-K values. For" + " quarterly data, preserves 10-Q filing vintage instead of using" + " restated comparatives from the 10-K.", + ) + + +class SecIncomeStatementData(IncomeStatementData): + """SEC IncomeStatement Data.""" + + model_config = ConfigDict( + allow_inf_nan=True, + ser_json_inf_nan="null", + json_schema_extra={ + "x-widget_config": {"$.data": {"table": {"enableFormulas": True}}} + }, + ) + + reported_currency: str | None = Field( + default=None, + description="The currency in which the income statement is reported.", + ) + operating_revenue: float | None = Field( + default=None, + description="Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other " + "activities that constitute an earning process. Includes, but is not limited to, investment and interest income " + "before deduction of interest expense when recognized as a component of revenue, and sales and trading gain " + "(loss).", + ) + other_revenue: float | None = Field( + default=None, + description="Revenues from the sale of other goods or rendering of other services, not elsewhere specified in " + "the taxonomy; net of (reduced by) sales adjustments, returns, allowances, and discounts.", + ) + total_revenue: float | None = Field( + default=None, + description="Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other " + "activities that constitute an earning process. Includes, but is not limited to, investment and interest income " + "before deduction of interest expense when recognized as a component of revenue, and sales and trading gain " + "(loss).", + ) + operating_cost_of_revenue: float | None = Field( + default=None, + description="The aggregate costs related to goods produced and sold and services rendered by an entity during " + "the reporting period. This excludes costs incurred during the reporting period related to financial services " + "rendered and other revenue generating activities.", + ) + other_cost_of_revenue: float | None = Field( + default=None, + description="Other costs incurred during the reporting period related to other revenue generating activities.", + ) + total_cost_of_revenue: float | None = Field( + default=None, + description="The aggregate costs related to goods produced and sold and services rendered by an entity during " + "the reporting period. This excludes costs incurred during the reporting period related to financial services " + "rendered and other revenue generating activities.", + ) + excise_and_sales_taxes: float | None = Field( + default=None, + description="Amount of excise and sales taxes included in revenue.", + ) + total_gross_profit: float | None = Field( + default=None, + description="Aggregate revenue less cost of goods and services sold or operating expenses directly attributable " + "to the revenue generation activity.", + ) + sga_expense: float | None = Field( + default=None, + description="The aggregate total costs related to selling a firm's product and services, as well as all other " + "general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) " + "are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are " + "expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, " + "Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, " + "rent, utilities, communication, etc.", + ) + rd_expense: float | None = Field( + default=None, + description="Amount of expense for research and development. Includes, but is not limited to, cost for computer " + "software product to be sold, leased, or otherwise marketed and writeoff of research and development assets " + "acquired in transaction other than business combination or joint venture formation or both. Excludes write-down " + "of intangible asset acquired in business combination or from joint venture formation or both, used in research " + "and development activity.", + ) + exploration_expense: float | None = Field( + default=None, + description="Exploration expenses (including prospecting) related to oil and gas producing entities and would be " + "included in operating expenses of that entity. Costs incurred in identifying areas that may warrant examination " + "and in examining specific areas that are considered to have prospects of containing oil and gas reserves, " + "including costs of drilling exploratory wells and exploratory-type stratigraphic test wells. Exploration costs " + "may be incurred both before acquiring the related property (sometimes referred to in part as prospecting costs) " + "and after acquiring the property. Principal types of exploration costs, which include depreciation and " + "applicable operating costs of support equipment and facilities and other costs of exploration activities, are: " + "(i) Costs of topographical, geographical and geophysical studies, rights of access to properties to conduct " + "those studies, and salaries and other expenses of geologists, geophysical crews, and others conducting those " + 'studies. Collectively, these are sometimes referred to as geological and geophysical or "G&G" costs. (ii) ' + "Costs of carrying and retaining undeveloped properties, such as delay rentals, ad valorem taxes on properties, " + "legal costs for title defense, and the maintenance of land and lease records. (iii) Dry hole contributions and " + "bottom hole contributions. (iv) Costs of drilling and equipping exploratory wells. (v) Costs of drilling " + "exploratory-type stratigraphic test wells.", + ) + depreciation_expense: float | None = Field( + default=None, + description="The current period expense charged against earnings on long-lived, physical assets not used in " + "production, and which are not intended for resale, to allocate or recognize the cost of such assets over their " + "useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such " + "asset; or to reflect consumption during the period of an asset that is not used in production.", + ) + amortization_expense: float | None = Field( + default=None, + description="Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized " + "cost for software to be sold, leased, or marketed.", + ) + depletion_expense: float | None = Field( + default=None, + description="The noncash expense charged against earnings to recognize the consumption of natural resources.", + ) + other_operating_expenses: float | None = Field( + default=None, + description="The net amount of other operating income and expenses, the components of which are not separately " + "disclosed on the income statement, from items that are associated with the entity's normal revenue producing " + "operations.", + ) + impairment_expense: float | None = Field( + default=None, + description="Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible " + "assets and goodwill.", + ) + restructuring_charge: float | None = Field( + default=None, + description="Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. " + "Excludes expenses related to a discontinued operation or an asset retirement obligation.", + ) + other_special_charges: float | None = Field( + default=None, + description="Amount of restructuring charges, remediation cost, and asset impairment loss.", + ) + total_operating_expenses: float | None = Field( + default=None, + description="Generally recurring costs associated with normal operations except for the portion of these " + "expenses which can be clearly related to production and included in cost of sales or services. Includes " + "selling, general and administrative expense.", + ) + costs_and_expenses: float | None = Field( + default=None, + description="Total costs of sales and operating expenses for the period.", + ) + total_operating_income: float | None = Field( + default=None, + description="The net result for the period of deducting operating expenses from operating revenues.", + ) + loans_and_lease_interest_income: float | None = Field( + default=None, + description="The aggregate interest and fee income generated by: (1) loans the Entity has positive intent and " + "ability to hold for the foreseeable future, or until maturity or payoff, including commercial and consumer " + "loans, whether domestic or foreign, which may consist of: (a) industrial and agricultural; (b) real estate; and " + "(c) real estate construction loans; (d) trade financing; (e) lease financing; (f) home equity lines-of-credit; " + "(g) automobile and other vehicle loans; and (h) credit card and other revolving-type loans and (2) loans and " + "leases held-for-sale which may include mortgage loans, direct financing, and sales-type leases.", + ) + investment_securities_interest_income: float | None = Field( + default=None, + description="Amount of operating interest income, including amortization and accretion of premiums and " + "discounts, on securities subject to state, federal and other income tax.", + ) + deposits_interest_income: float | None = Field( + default=None, + description="Interest income derived from funds deposited with both domestic and foreign financial institutions " + "including funds in money market and other accounts.", + ) + fed_funds_and_repo_interest_income: float | None = Field( + default=None, + description="The aggregate interest income earned from (1) the lending of excess federal funds to another " + "commercial bank requiring such for its legal reserve requirements and (2) securities purchased under agreements " + "to resell.", + ) + trading_account_interest_income: float | None = Field( + default=None, + description="Interest and dividend income on securities that are bought and held principally for the purpose of " + 'selling them in the near term ("trading securities") and on securities measured at fair value through ' + "earnings.", + ) + other_interest_income: float | None = Field( + default=None, + description="Amount of interest income earned from interest bearing assets classified as other.", + ) + total_interest_income: float | None = Field( + default=None, + description="Amount of operating interest income, including, but not limited to, amortization and accretion of " + "premiums and discounts on securities.", + ) + deposits_interest_expense: float | None = Field( + default=None, + description="Aggregate amount of interest expense on all deposits.", + ) + short_term_borrowing_interest_expense: float | None = Field( + default=None, + description="The aggregate interest expense incurred on short-term borrowings including commercial paper and " + "Federal funds purchased and securities sold under agreements to repurchase.", + ) + long_term_debt_interest_expense: float | None = Field( + default=None, + description="Aggregate amount of interest paid or due on all long-term debt.", + ) + fed_funds_and_repo_interest_expense: float | None = Field( + default=None, + description="The aggregate expense incurred on federal funds purchased and securities sold under agreements to " + "repurchase. If amounts recognized as payables under repurchase agreements have been offset against amounts " + "recognized as receivables under reverse repurchase agreements and reported as a net amount on the balance " + "sheet, the income and expense from these agreements may be reported on a net basis.", + ) + capitalized_lease_obligation_interest_expense: float | None = Field( + default=None, + description="Amount of interest expense on finance lease liability.", + ) + other_interest_expense: float | None = Field( + default=None, + description="Amount of interest expense classified as other.", + ) + total_interest_expense: float | None = Field( + default=None, + description="Amount of interest expense classified as operating.", + ) + net_interest_income: float | None = Field( + default=None, + description="Amount of interest income (expense) classified as operating.", + ) + investment_banking_income: float | None = Field( + default=None, + description="Amount of fees and commissions from banking, advisory, brokerage, and securities underwriting " + "activities. Activities include, but are not limited to, underwriting securities, private placements of " + "securities, investment advisory and management services, merger and acquisition services, sale and servicing of " + "mutual funds, and other related consulting fees.", + ) + trading_revenue: float | None = Field( + default=None, + description="Amount of revenue from trading activities, including gains and losses on trading assets and " + "liabilities, and principal transactions.", + ) + securities_gains: float | None = Field( + default=None, + description="Amount of realized and unrealized gain (loss) on debt and equity securities.", + ) + other_noninterest_income: float | None = Field( + default=None, + description="Represents the total of noninterest income derived from certain activities and assets including " + "(for example): (1) venture capital investments; (2) bank owned life insurance; (3) foreign currency " + "transactions; and (4) mortgage servicing rights.", + ) + total_noninterest_income: float | None = Field( + default=None, + description="The total amount of noninterest income which may be derived from: (1) fees and commissions; (2) " + "premiums earned; (3) insurance policy charges; (4) the sale or disposal of assets; and (5) other sources not " + "otherwise specified.", + ) + provision_for_credit_losses: float | None = Field( + default=None, + description="Amount of expense related to estimated loss from loan and lease transactions.", + ) + net_interest_income_after_provision: float | None = Field( + default=None, + description="Amount of net interest income after provision for credit losses.", + ) + benefits_costs_expenses: float | None = Field( + default=None, + description="The total amount of expense recognized during the period for future policy benefits, claims and " + "claims adjustment costs, and for selling, general and administrative costs.", + ) + current_and_future_benefits: float | None = Field( + default=None, + description="Amount, after effect of policies assumed or ceded, of expense related to provision for policy " + "benefits and costs incurred for health insurance contracts.", + ) + salaries_and_employee_benefits_expense: float | None = Field( + default=None, + description="Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and " + "other employee benefit.", + ) + net_occupancy_equipment_expense: float | None = Field( + default=None, + description="Amount of net occupancy expense that may include items, such as depreciation of facilities and " + "equipment, lease expenses, property taxes and property and casualty insurance expense.", + ) + marketing_expense: float | None = Field( + default=None, + description="The aggregate total amount of expenses directly related to the marketing or selling of products or " + "services.", + ) + property_liability_insurance_claims: float | None = Field( + default=None, + description="Amount, after effects of policies assumed or ceded, of expense related to the provision for policy " + "benefits and costs incurred.", + ) + policy_acquisition_costs: float | None = Field( + default=None, + description="Amount of deferred policy acquisition cost capitalized on contract remaining in force.", + ) + amortization_of_deferred_policy_acquisition_costs: float | None = Field( + default=None, + description="Amount of amortization expense (reversal of expense) for deferred policy acquisition costs.", + ) + total_noninterest_expense: float | None = Field( + default=None, + description="Total aggregate amount of all noninterest expense.", + ) + non_operating_income: float | None = Field( + default=None, + description="The aggregate amount of income or expense from ancillary business-related activities (that is to " + "say, excluding major activities considered part of the normal operations of the business).", + ) + other_income: float | None = Field( + default=None, + description="Amount of income (expense) related to nonoperating activities, classified as other.", + ) + other_gains: float | None = Field( + default=None, + description="Amount of realized and unrealized gain (loss) on investment.", + ) + total_other_income: float | None = Field( + default=None, + description="The aggregate amount of income or expense from ancillary business-related activities (that is to " + "say, excluding major activities considered part of the normal operations of the business).", + ) + total_pretax_income: float | None = Field( + default=None, + description="Amount of income (loss) from continuing operations, including income (loss) from equity method " + "investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling " + "interest.", + ) + income_tax_expense: float | None = Field( + default=None, + description="Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining " + "to continuing operations.", + ) + income_tax_current: float | None = Field( + default=None, + description="Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing " + "operations.", + ) + income_tax_deferred: float | None = Field( + default=None, + description="Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing " + "operations.", + ) + income_before_equity_method: float | None = Field( + default=None, + description="Amount of income/loss from continuing operations before income from equity method investments.", + ) + equity_method_investments: float | None = Field( + default=None, + description="Amount of income (loss) for proportionate share of equity method investee's income (loss).", + ) + net_income_continuing: float | None = Field( + default=None, + description="Amount after tax of income (loss) from continuing operations including portion attributable to the " + "noncontrolling interest.", + ) + net_income_discontinued: float | None = Field( + default=None, + description="Amount after tax of income (loss) from a discontinued operation including the portion attributable " + "to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the " + "phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, " + "less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + ) + extraordinary_income: float | None = Field( + default=None, + description="Description of the gains (losses), after tax, arising from an event or transaction that is both " + "unusual in nature and infrequent in occurrence when considered in relation to the environment in which the " + "entity operates and which represents the portion assigned to noncontrolling interest, if any. This amount is " + "the income statement amount which is allocable to that ownership interest in subsidiary equity which is not " + "attributable to the parent (noncontrolling interest, minority interest).", + ) + other_adjustments_to_consolidated_net_income: float | None = Field( + default=None, + description="Amount after tax and reclassification adjustments of other comprehensive income (loss).", + ) + gain_on_sale_properties: float | None = Field( + default=None, + description="Amount of gain (loss) on sale or disposal of property, net of applicable income taxes.", + ) + gain_loss_disposition_subsidiary: float | None = Field( + default=None, + description="Gain/loss on sale of stock in subsidiary or equity method investee.", + ) + net_income: float | None = Field( + default=None, + description="The consolidated profit or loss for the period, net of income taxes, including the portion " + "attributable to the noncontrolling interest.", + ) + preferred_dividends: float | None = Field( + default=None, + description="Amount of paid and unpaid preferred stock dividends declared with the form of settlement in cash, " + "stock and payment-in-kind (PIK).", + ) + net_income_nci_redeemable: float | None = Field( + default=None, + description="Amount after tax of income attributable to redeemable noncontrolling interest.", + ) + net_income_nci_nonredeemable: float | None = Field( + default=None, + description="Amount after tax of income attributable to nonredeemable noncontrolling interest.", + ) + net_income_to_noncontrolling_interest: float | None = Field( + default=None, + description="Amount of Net Income (Loss) attributable to noncontrolling interest.", + ) + other_adjustments_to_net_income_to_common: float | None = Field( + default=None, + description="The aggregate value of preferred stock dividends and other adjustments necessary to derive net " + "income apportioned to common stockholders.", + ) + net_income_to_common: float | None = Field( + default=None, + description="Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and " + "participating securities; of income (loss) available to common shareholders.", + ) + weighted_ave_basic_shares_os: int | None = Field( + default=None, + description="Number of [basic] shares or units, after adjustment for contingently issuable shares or units and " + "other shares or units not deemed outstanding, determined by relating the portion of time within a reporting " + "period that common shares or units have been outstanding to the total time in that period.", + ) + basic_eps: float | None = Field( + default=None, + description="The amount of net income (loss) for the period per each share of common stock or unit outstanding " + "during the reporting period.", + ) + weighted_ave_diluted_shares_os: int | None = Field( + default=None, + description="The average number of shares or units issued and outstanding that are used in calculating diluted " + "EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", + ) + diluted_eps: float | None = Field( + default=None, + description="The amount of net income (loss) for the period available to each share of common stock or common " + "unit outstanding during the reporting period and to each share or unit that would have been outstanding " + "assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding " + "during the reporting period.", + ) + weighted_ave_basic_diluted_shares_os: int | None = Field( + default=None, + description="Average number of shares or units issued and outstanding that are used in calculating basic and " + "diluted earnings per share (EPS).", + ) + basic_diluted_eps: float | None = Field( + default=None, + description="The amount of net income or loss for the period per each share in instances when basic and diluted " + "earnings per share are the same amount and reported as a single line item on the face of the financial " + "statements. Basic earnings per share is the amount of net income or loss for the period per each share of " + "common stock or unit outstanding during the reporting period. Diluted earnings per share includes the amount of " + "net income or loss for the period available to each share of common stock or common unit outstanding during the " + "reporting period and to each share or unit that would have been outstanding assuming the issuance of common " + "shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + ) + cash_dividends_per_share: float | None = Field( + default=None, + description="Aggregate dividends declared during the period for each share of common stock outstanding.", + ) + other_comprehensive_income_parent: float | None = Field( + default=None, + description="Amount after tax and reclassification adjustments of OCI attributable to parent.", + ) + comprehensive_income_parent: float | None = Field( + default=None, + description="Amount after tax of increase (decrease) in equity from transactions and other events, attributable " + "to parent.", + ) + other_comprehensive_income_nci: float | None = Field( + default=None, + description="Amount after tax and reclassification adjustments of OCI attributable to noncontrolling interests.", + ) + comprehensive_income_nci: float | None = Field( + default=None, + description="Amount after tax of increase (decrease) in equity from transactions and other events, attributable " + "to noncontrolling interests.", + ) + comprehensive_income: float | None = Field( + default=None, + description="Amount after tax of increase (decrease) in equity from transactions and other events/circumstances " + "from net income and OCI. Includes portion attributable to NCI.", + ) + + @model_validator(mode="before") + @classmethod + def _validate_model(cls, values): + """Validate the model.""" + return {k: v for k, v in values.items() if v is not None} + + @model_serializer(mode="wrap") + def _serialize(self, handler): + d = handler(self) + return { + k: (None if isinstance(v, float) and isnan(v) else v) for k, v in d.items() + } + + +class SecIncomeStatementFetcher( + Fetcher[SecIncomeStatementQueryParams, list[SecIncomeStatementData]] +): + """SEC IncomeStatement Fetcher.""" + + @staticmethod + def transform_query( + params: dict[str, Any], + ) -> SecIncomeStatementQueryParams: + """Transform the query.""" + return SecIncomeStatementQueryParams(**params) + + @staticmethod + async def aextract_data( + query: SecIncomeStatementQueryParams, + credentials: dict[str, str] | None, + **kwargs: Any, + ) -> dict: + """Return the raw data from the SEC endpoint.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + get_standardized_financials, + ) + + result = await get_standardized_financials( + symbol=query.symbol, + period=query.period, + use_cache=query.use_cache, + include_preliminary=query.include_preliminary, + pit_mode=query.pit_mode, + ) + return { + "result": result, + "statement": "income_statement", + } + + @staticmethod + def transform_data( + query: SecIncomeStatementQueryParams, + data: dict, + **kwargs: Any, + ) -> AnnotatedResult[list[SecIncomeStatementData]]: + """Transform the data and validate the model.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + StandardizedStatements, + normalize_period_fields, + order_field_meta, + ) + + result: StandardizedStatements = data["result"] + statement_name: str = data["statement"] + records: list[dict] = getattr(result, statement_name) + + if not records: + raise EmptyDataError("The request was returned empty.") + + # Group records by period_ending to pivot from long to wide format. + periods: dict[str, dict] = {} + sources: dict[str, dict[str, str]] = {} + field_meta: dict[str, dict] = {} # tag -> schema metadata + + for rec in records: + date_key = rec["period_ending"] + + if date_key not in periods: + periods[date_key] = { + "period_ending": date_key, + "fiscal_period": rec.get("fiscal_period"), + "fiscal_year": rec.get("fiscal_year"), + "reported_currency": rec.get("currency"), + } + sources[date_key] = {} + + tag = rec["tag"] + periods[date_key][tag] = rec["value"] + source = rec.get("source", "") + + if source: + sources[date_key][tag] = source + + if tag not in field_meta: + field_meta[tag] = { + "label": rec.get("label", ""), + "description": rec.get("description", ""), + "parent": rec.get("parent"), + "sequence": rec.get("sequence"), + "factor": rec.get("factor", "+"), + "balance": rec.get("balance", ""), + "unit": rec.get("unit", "monetary"), + } + + normalize_period_fields(periods, SecIncomeStatementData) + + # Sort by period_ending descending (most recent first). + sorted_periods = sorted( + periods.values(), + key=lambda x: x["period_ending"], + reverse=True, + ) + + if query.limit is not None: + sorted_periods = sorted_periods[: query.limit] + + results = [SecIncomeStatementData.model_validate(d) for d in sorted_periods] + + # Build metadata: field provenance (sources) and diagnostics. + field_sources: dict[str, dict[str, str]] = {} + + for date_key, date_sources in sources.items(): + for tag, source in date_sources.items(): + if source: + if tag not in field_sources: + field_sources[tag] = {} + field_sources[tag][date_key] = source + + # Merge sources into field metadata. + for tag, period_sources in field_sources.items(): + if tag in field_meta: + field_meta[tag]["sources"] = period_sources + + metadata: dict = { + "entity_name": result.entity_name, + "cik": result.cik, + "company_type": result.company_type, + "fields": order_field_meta(field_meta, SecIncomeStatementData), + } + + # Surface ValidationWarning diagnostics. + if result.diagnostics: + diag_details = [ + { + "date": d.date, + "tag": d.tag, + "expected": d.expected, + "actual": d.actual, + "formula": d.formula, + "identity": d.identity, + } + for d in result.diagnostics + ] + metadata["validation_warnings"] = diag_details + tags_affected = sorted({d.tag for d in result.diagnostics}) + dates_affected = sorted({d.date for d in result.diagnostics}) + warn( + f"SEC XBRL validation: {len(result.diagnostics)} " + f"warning(s) across {len(dates_affected)} period(s)" + f" affecting tag(s): {', '.join(tags_affected)}. " + "See metadata['validation_warnings'] for details." + ) + + return AnnotatedResult(result=results, metadata=metadata) diff --git a/openbb_platform/providers/sec/openbb_sec/models/income_statement_growth.py b/openbb_platform/providers/sec/openbb_sec/models/income_statement_growth.py new file mode 100644 index 00000000000..dc29f08e3e1 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/models/income_statement_growth.py @@ -0,0 +1,665 @@ +"""SEC Income Statement Growth Model.""" + +# pylint: disable=unused-argument + +from math import isnan +from typing import Any, Literal +from warnings import warn + +from openbb_core.provider.abstract.annotated_result import AnnotatedResult +from openbb_core.provider.abstract.fetcher import Fetcher +from openbb_core.provider.standard_models.income_statement_growth import ( + IncomeStatementGrowthData, + IncomeStatementGrowthQueryParams, +) +from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS +from openbb_core.provider.utils.errors import EmptyDataError +from pydantic import ConfigDict, Field, model_serializer, model_validator + +_PCT: dict[str, Any] = {"x-unit_measurement": "percent", "x-frontend_multiply": 100} + + +class SecIncomeStatementGrowthQueryParams(IncomeStatementGrowthQueryParams): + """SEC Income Statement Growth Query. + + Source: https://www.sec.gov/edgar/sec-api-documentation + """ + + period: Literal["annual", "quarterly", "quarterly_yoy", "ttm"] = Field( + default="annual", + description=QUERY_DESCRIPTIONS.get("period", ""), + ) + use_cache: bool = Field( + default=True, + description="Whether to use cache (4-hour memory) for the SEC request." + " Defaults to True.", + ) + include_preliminary: bool = Field( + default=False, + description="Whether to include preliminary data from 8-K filings" + " for periods not yet reported on 10-Q/K.", + ) + pit_mode: bool = Field( + default=False, + description="Point-in-time mode. When True, returns data as originally" + " reported at the time of filing, without subsequent restatements or" + " amendments. For annual data, uses the original 10-K values. For" + " quarterly data, preserves 10-Q filing vintage instead of using" + " restated comparatives from the 10-K.", + ) + + +class SecIncomeStatementGrowthData(IncomeStatementGrowthData): + """SEC Income Statement Growth Data.""" + + model_config = ConfigDict( + allow_inf_nan=True, + ser_json_inf_nan="null", + json_schema_extra={ + "x-widget_config": {"$.data": {"table": {"enableFormulas": True}}} + }, + ) + + growth_operating_revenue: float | None = Field( + default=None, + description="Growth rate of operating revenue.", + json_schema_extra=_PCT, + ) + growth_other_revenue: float | None = Field( + default=None, + description="Growth rate of other revenue.", + json_schema_extra=_PCT, + ) + growth_total_revenue: float | None = Field( + default=None, + description="Growth rate of total revenue.", + json_schema_extra=_PCT, + ) + growth_operating_cost_of_revenue: float | None = Field( + default=None, + description="Growth rate of operating cost of revenue.", + json_schema_extra=_PCT, + ) + growth_other_cost_of_revenue: float | None = Field( + default=None, + description="Growth rate of other cost of revenue.", + json_schema_extra=_PCT, + ) + growth_total_cost_of_revenue: float | None = Field( + default=None, + description="Growth rate of total cost of revenue.", + json_schema_extra=_PCT, + ) + growth_excise_and_sales_taxes: float | None = Field( + default=None, + description="Growth rate of excise and sales taxes.", + json_schema_extra=_PCT, + ) + growth_total_gross_profit: float | None = Field( + default=None, + description="Growth rate of total gross profit.", + json_schema_extra=_PCT, + ) + growth_sga_expense: float | None = Field( + default=None, + description="Growth rate of selling, general, and administrative expense.", + json_schema_extra=_PCT, + ) + growth_rd_expense: float | None = Field( + default=None, + description="Growth rate of research and development expense.", + json_schema_extra=_PCT, + ) + growth_exploration_expense: float | None = Field( + default=None, + description="Growth rate of exploration expense.", + json_schema_extra=_PCT, + ) + growth_depreciation_expense: float | None = Field( + default=None, + description="Growth rate of depreciation expense.", + json_schema_extra=_PCT, + ) + growth_amortization_expense: float | None = Field( + default=None, + description="Growth rate of amortization expense.", + json_schema_extra=_PCT, + ) + growth_depletion_expense: float | None = Field( + default=None, + description="Growth rate of depletion expense.", + json_schema_extra=_PCT, + ) + growth_other_operating_expenses: float | None = Field( + default=None, + description="Growth rate of other operating expenses.", + json_schema_extra=_PCT, + ) + growth_impairment_expense: float | None = Field( + default=None, + description="Growth rate of impairment expense.", + json_schema_extra=_PCT, + ) + growth_restructuring_charge: float | None = Field( + default=None, + description="Growth rate of restructuring charge.", + json_schema_extra=_PCT, + ) + growth_other_special_charges: float | None = Field( + default=None, + description="Growth rate of other special charges.", + json_schema_extra=_PCT, + ) + growth_total_operating_expenses: float | None = Field( + default=None, + description="Growth rate of total operating expenses.", + json_schema_extra=_PCT, + ) + growth_costs_and_expenses: float | None = Field( + default=None, + description="Growth rate of costs and expenses.", + json_schema_extra=_PCT, + ) + growth_total_operating_income: float | None = Field( + default=None, + description="Growth rate of total operating income.", + json_schema_extra=_PCT, + ) + growth_loans_and_lease_interest_income: float | None = Field( + default=None, + description="Growth rate of loans and lease interest income.", + json_schema_extra=_PCT, + ) + growth_investment_securities_interest_income: float | None = Field( + default=None, + description="Growth rate of investment securities interest income.", + json_schema_extra=_PCT, + ) + growth_deposits_interest_income: float | None = Field( + default=None, + description="Growth rate of deposits interest income.", + json_schema_extra=_PCT, + ) + growth_fed_funds_and_repo_interest_income: float | None = Field( + default=None, + description="Growth rate of federal funds and repo interest income.", + json_schema_extra=_PCT, + ) + growth_trading_account_interest_income: float | None = Field( + default=None, + description="Growth rate of trading account interest income.", + json_schema_extra=_PCT, + ) + growth_other_interest_income: float | None = Field( + default=None, + description="Growth rate of other interest income.", + json_schema_extra=_PCT, + ) + growth_total_interest_income: float | None = Field( + default=None, + description="Growth rate of total interest income.", + json_schema_extra=_PCT, + ) + growth_deposits_interest_expense: float | None = Field( + default=None, + description="Growth rate of deposits interest expense.", + json_schema_extra=_PCT, + ) + growth_short_term_borrowing_interest_expense: float | None = Field( + default=None, + description="Growth rate of short-term borrowing interest expense.", + json_schema_extra=_PCT, + ) + growth_long_term_debt_interest_expense: float | None = Field( + default=None, + description="Growth rate of long-term debt interest expense.", + json_schema_extra=_PCT, + ) + growth_fed_funds_and_repo_interest_expense: float | None = Field( + default=None, + description="Growth rate of federal funds and repo interest expense.", + json_schema_extra=_PCT, + ) + growth_capitalized_lease_obligation_interest_expense: float | None = Field( + default=None, + description="Growth rate of capitalized lease obligation interest expense.", + json_schema_extra=_PCT, + ) + growth_other_interest_expense: float | None = Field( + default=None, + description="Growth rate of other interest expense.", + json_schema_extra=_PCT, + ) + growth_total_interest_expense: float | None = Field( + default=None, + description="Growth rate of total interest expense.", + json_schema_extra=_PCT, + ) + growth_net_interest_income: float | None = Field( + default=None, + description="Growth rate of net interest income.", + json_schema_extra=_PCT, + ) + growth_investment_banking_income: float | None = Field( + default=None, + description="Growth rate of investment banking income.", + json_schema_extra=_PCT, + ) + growth_trading_revenue: float | None = Field( + default=None, + description="Growth rate of trading revenue.", + json_schema_extra=_PCT, + ) + growth_securities_gains: float | None = Field( + default=None, + description="Growth rate of net securities gains / (losses).", + json_schema_extra=_PCT, + ) + growth_other_noninterest_income: float | None = Field( + default=None, + description="Growth rate of other noninterest income.", + json_schema_extra=_PCT, + ) + growth_total_noninterest_income: float | None = Field( + default=None, + description="Growth rate of total noninterest income.", + json_schema_extra=_PCT, + ) + growth_provision_for_credit_losses: float | None = Field( + default=None, + description="Growth rate of provision for credit losses.", + json_schema_extra=_PCT, + ) + growth_net_interest_income_after_provision: float | None = Field( + default=None, + description="Growth rate of net interest income after provision.", + json_schema_extra=_PCT, + ) + growth_benefits_costs_expenses: float | None = Field( + default=None, + description="Growth rate of benefits, costs, and expenses.", + json_schema_extra=_PCT, + ) + growth_current_and_future_benefits: float | None = Field( + default=None, + description="Growth rate of current and future benefits.", + json_schema_extra=_PCT, + ) + growth_salaries_and_employee_benefits_expense: float | None = Field( + default=None, + description="Growth rate of salaries and employee benefits expense.", + json_schema_extra=_PCT, + ) + growth_net_occupancy_equipment_expense: float | None = Field( + default=None, + description="Growth rate of net occupancy equipment expense.", + json_schema_extra=_PCT, + ) + growth_marketing_expense: float | None = Field( + default=None, + description="Growth rate of marketing expense.", + json_schema_extra=_PCT, + ) + growth_property_liability_insurance_claims: float | None = Field( + default=None, + description="Growth rate of property liability insurance claims.", + json_schema_extra=_PCT, + ) + growth_policy_acquisition_costs: float | None = Field( + default=None, + description="Growth rate of policy acquisition costs.", + json_schema_extra=_PCT, + ) + growth_amortization_of_deferred_policy_acquisition_costs: float | None = Field( + default=None, + description="Growth rate of amortization of deferred policy acquisition costs.", + json_schema_extra=_PCT, + ) + growth_total_noninterest_expense: float | None = Field( + default=None, + description="Growth rate of total noninterest expense.", + json_schema_extra=_PCT, + ) + growth_non_operating_income: float | None = Field( + default=None, + description="Growth rate of non-operating income.", + json_schema_extra=_PCT, + ) + growth_other_income: float | None = Field( + default=None, + description="Growth rate of other income.", + json_schema_extra=_PCT, + ) + growth_other_gains: float | None = Field( + default=None, + description="Growth rate of other gains.", + json_schema_extra=_PCT, + ) + growth_total_other_income: float | None = Field( + default=None, + description="Growth rate of total other income.", + json_schema_extra=_PCT, + ) + growth_total_pretax_income: float | None = Field( + default=None, + description="Growth rate of total pretax income.", + json_schema_extra=_PCT, + ) + growth_income_tax_expense: float | None = Field( + default=None, + description="Growth rate of income tax expense.", + json_schema_extra=_PCT, + ) + growth_income_tax_current: float | None = Field( + default=None, + description="Growth rate of current income tax.", + json_schema_extra=_PCT, + ) + growth_income_tax_deferred: float | None = Field( + default=None, + description="Growth rate of deferred income tax.", + json_schema_extra=_PCT, + ) + growth_income_before_equity_method: float | None = Field( + default=None, + description="Growth rate of income before equity method.", + json_schema_extra=_PCT, + ) + growth_equity_method_investments: float | None = Field( + default=None, + description="Growth rate of equity method investments.", + json_schema_extra=_PCT, + ) + growth_net_income_continuing: float | None = Field( + default=None, + description="Growth rate of net income from continuing operations.", + json_schema_extra=_PCT, + ) + growth_net_income_discontinued: float | None = Field( + default=None, + description="Growth rate of net income from discontinued operations.", + json_schema_extra=_PCT, + ) + growth_extraordinary_income: float | None = Field( + default=None, + description="Growth rate of extraordinary income.", + json_schema_extra=_PCT, + ) + growth_other_adjustments_to_consolidated_net_income: float | None = Field( + default=None, + description="Growth rate of other adjustments to consolidated net income.", + json_schema_extra=_PCT, + ) + growth_gain_on_sale_properties: float | None = Field( + default=None, + description="Growth rate of gain on sale of properties.", + json_schema_extra=_PCT, + ) + growth_gain_loss_disposition_subsidiary: float | None = Field( + default=None, + description="Growth rate of gain/loss on disposition of subsidiary.", + json_schema_extra=_PCT, + ) + growth_net_income: float | None = Field( + default=None, + description="Growth rate of net income.", + json_schema_extra=_PCT, + ) + growth_preferred_dividends: float | None = Field( + default=None, + description="Growth rate of preferred dividends.", + json_schema_extra=_PCT, + ) + growth_net_income_nci_redeemable: float | None = Field( + default=None, + description="Growth rate of net income NCI redeemable.", + json_schema_extra=_PCT, + ) + growth_net_income_nci_nonredeemable: float | None = Field( + default=None, + description="Growth rate of net income NCI nonredeemable.", + json_schema_extra=_PCT, + ) + growth_net_income_to_noncontrolling_interest: float | None = Field( + default=None, + description="Growth rate of net income to noncontrolling interest.", + json_schema_extra=_PCT, + ) + growth_other_adjustments_to_net_income_to_common: float | None = Field( + default=None, + description="Growth rate of other adjustments to net income to common.", + json_schema_extra=_PCT, + ) + growth_net_income_to_common: float | None = Field( + default=None, + description="Growth rate of net income to common.", + json_schema_extra=_PCT, + ) + growth_weighted_ave_basic_shares_os: float | None = Field( + default=None, + description="Growth rate of weighted average basic shares outstanding.", + json_schema_extra=_PCT, + ) + growth_basic_eps: float | None = Field( + default=None, + description="Growth rate of basic earnings per share.", + json_schema_extra=_PCT, + ) + growth_weighted_ave_diluted_shares_os: float | None = Field( + default=None, + description="Growth rate of weighted average diluted shares outstanding.", + json_schema_extra=_PCT, + ) + growth_diluted_eps: float | None = Field( + default=None, + description="Growth rate of diluted earnings per share.", + json_schema_extra=_PCT, + ) + growth_weighted_ave_basic_diluted_shares_os: float | None = Field( + default=None, + description="Growth rate of weighted average basic/diluted shares outstanding.", + json_schema_extra=_PCT, + ) + growth_basic_diluted_eps: float | None = Field( + default=None, + description="Growth rate of basic/diluted earnings per share.", + json_schema_extra=_PCT, + ) + growth_cash_dividends_per_share: float | None = Field( + default=None, + description="Growth rate of cash dividends per share.", + json_schema_extra=_PCT, + ) + growth_other_comprehensive_income_parent: float | None = Field( + default=None, + description="Growth rate of other comprehensive income attributable to parent.", + json_schema_extra=_PCT, + ) + growth_comprehensive_income_parent: float | None = Field( + default=None, + description="Growth rate of comprehensive income attributable to parent.", + json_schema_extra=_PCT, + ) + growth_other_comprehensive_income_nci: float | None = Field( + default=None, + description="Growth rate of other comprehensive income attributable to NCI.", + json_schema_extra=_PCT, + ) + growth_comprehensive_income_nci: float | None = Field( + default=None, + description="Growth rate of comprehensive income attributable to NCI.", + json_schema_extra=_PCT, + ) + growth_comprehensive_income: float | None = Field( + default=None, + description="Growth rate of comprehensive income.", + json_schema_extra=_PCT, + ) + + @model_validator(mode="before") + @classmethod + def _validate_model(cls, values): + """Validate the model.""" + return {k: v for k, v in values.items() if v is not None} + + @model_serializer(mode="wrap") + def _serialize(self, handler): + d = handler(self) + return { + k: (None if isinstance(v, float) and isnan(v) else v) for k, v in d.items() + } + + +class SecIncomeStatementGrowthFetcher( + Fetcher[SecIncomeStatementGrowthQueryParams, list[SecIncomeStatementGrowthData]] +): + """SEC Income Statement Growth Fetcher.""" + + @staticmethod + def transform_query( + params: dict[str, Any], + ) -> SecIncomeStatementGrowthQueryParams: + """Transform the query.""" + return SecIncomeStatementGrowthQueryParams(**params) + + @staticmethod + async def aextract_data( + query: SecIncomeStatementGrowthQueryParams, + credentials: dict[str, str] | None, + **kwargs: Any, + ) -> dict: + """Return the raw data from the SEC endpoint.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + PeriodType, + get_standardized_financials, + ) + + period_map: dict[str, PeriodType] = { + "annual": "yoy", + "quarterly": "pop", + "quarterly_yoy": "yoy_quarterly", + "ttm": "pop", + } + result = await get_standardized_financials( + symbol=query.symbol, + period=period_map[query.period], + use_cache=query.use_cache, + include_preliminary=query.include_preliminary, + pit_mode=query.pit_mode, + ) + return {"result": result, "statement": "income_statement"} + + @staticmethod + def transform_data( + query: SecIncomeStatementGrowthQueryParams, + data: dict, + **kwargs: Any, + ) -> AnnotatedResult[list[SecIncomeStatementGrowthData]]: + """Transform the data and validate the model.""" + # pylint: disable=import-outside-toplevel + from openbb_sec.utils.company_facts import ( + StandardizedStatements, + normalize_period_fields, + order_field_meta, + ) + + result: StandardizedStatements = data["result"] + records: list[dict] = getattr(result, data["statement"]) + + if not records: + raise EmptyDataError("The request was returned empty.") + + periods: dict[str, dict] = {} + sources: dict[str, dict[str, str]] = {} + field_meta: dict[str, dict] = {} + + for rec in records: + date_key = rec["period_ending"] + + if date_key not in periods: + periods[date_key] = { + "period_ending": date_key, + "fiscal_period": rec.get("fiscal_period"), + "fiscal_year": rec.get("fiscal_year"), + "reported_currency": rec.get("currency"), + } + sources[date_key] = {} + + tag = rec["tag"] + growth_tag = f"growth_{tag}" + periods[date_key][growth_tag] = rec["value"] + source = rec.get("source", "") + + if source: + sources[date_key][growth_tag] = source + + if growth_tag not in field_meta: + field_meta[growth_tag] = { + "label": rec.get("label", ""), + "description": rec.get("description", ""), + "parent": rec.get("parent"), + "sequence": rec.get("sequence"), + "factor": rec.get("factor", "+"), + "balance": rec.get("balance", ""), + "unit": rec.get("unit", "monetary"), + } + + normalize_period_fields(periods, SecIncomeStatementGrowthData) + + sorted_periods = sorted( + periods.values(), + key=lambda x: x["period_ending"], + reverse=True, + ) + + if query.limit is not None: + sorted_periods = sorted_periods[: query.limit] + + results = [ + SecIncomeStatementGrowthData.model_validate(d) for d in sorted_periods + ] + + field_sources: dict[str, dict[str, str]] = {} + + for date_key, date_sources in sources.items(): + for tag, source in date_sources.items(): + if source: + if tag not in field_sources: + field_sources[tag] = {} + field_sources[tag][date_key] = source + + for tag, period_sources in field_sources.items(): + if tag in field_meta: + field_meta[tag]["sources"] = period_sources + + metadata: dict = { + "entity_name": result.entity_name, + "cik": result.cik, + "company_type": result.company_type, + "fields": order_field_meta(field_meta, SecIncomeStatementGrowthData), + } + + if result.diagnostics: + diag_details = [ + { + "date": d.date, + "tag": d.tag, + "expected": d.expected, + "actual": d.actual, + "formula": d.formula, + "identity": d.identity, + } + for d in result.diagnostics + ] + metadata["validation_warnings"] = diag_details + tags_affected = sorted({d.tag for d in result.diagnostics}) + dates_affected = sorted({d.date for d in result.diagnostics}) + warn( + f"SEC XBRL validation: {len(result.diagnostics)} " + f"warning(s) across {len(dates_affected)} period(s)" + f" affecting tag(s): {', '.join(tags_affected)}. " + "See metadata['validation_warnings'] for details." + ) + + return AnnotatedResult(result=results, metadata=metadata) diff --git a/openbb_platform/providers/sec/openbb_sec/models/sec_filing.py b/openbb_platform/providers/sec/openbb_sec/models/sec_filing.py index c4898256d48..6454cec2748 100644 --- a/openbb_platform/providers/sec/openbb_sec/models/sec_filing.py +++ b/openbb_platform/providers/sec/openbb_sec/models/sec_filing.py @@ -179,7 +179,7 @@ class SecBaseFiling(Data): # pylint: disable=too-many-instance-attributes _url: str = PrivateAttr(default="") _index_headers_url: str = PrivateAttr(default="") _index_headers_download: str = PrivateAttr(default="") - _document_urls: list = PrivateAttr(default=None) + _document_urls: list | None = PrivateAttr(default=None) _filing_date: str = PrivateAttr(default="") _period_ending: str = PrivateAttr(default="") _document_type: str = PrivateAttr(default="") @@ -191,8 +191,8 @@ class SecBaseFiling(Data): # pylint: disable=too-many-instance-attributes _cover_page_url: str | None = PrivateAttr(default=None) _fiscal_year_end: str = PrivateAttr(default="") _fiscal_period: str = PrivateAttr(default="") - _cover_page: dict = PrivateAttr(default=None) - _trading_symbols: list = PrivateAttr(default=None) + _cover_page: dict | None = PrivateAttr(default=None) + _trading_symbols: list | None = PrivateAttr(default=None) _use_cache: bool = PrivateAttr(default=True) @computed_field(title="Base URL", description="Base URL of the filing.") # type: ignore @@ -286,7 +286,7 @@ class SecBaseFiling(Data): # pylint: disable=too-many-instance-attributes @computed_field(title="Document URLs", description="List of files associated with the filing.") # type: ignore @property - def document_urls(self) -> list: + def document_urls(self) -> list | None: """List of document URLs.""" return self._document_urls diff --git a/openbb_platform/providers/sec/openbb_sec/utils/STATEMENT_SCHEMA_README.md b/openbb_platform/providers/sec/openbb_sec/utils/STATEMENT_SCHEMA_README.md new file mode 100644 index 00000000000..b67ecac151f --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/STATEMENT_SCHEMA_README.md @@ -0,0 +1,2478 @@ +# Standardized Financial Statement Extraction from SEC XBRL Data + +## A Technical Whitepaper + +--- + +## Abstract + +This document is a methodology and maintenance specification for a system +that transforms raw SEC XBRL Company Facts data into standardized, +cross-validated financial statements. It is written for readers who need to +evaluate the design without reading the code and for maintainers who need a +repeatable framework for evolving the schema as taxonomies and filer behavior +change. + +The system maps 1,190 distinct XBRL tag-namespace pairs into 250 standardized +line items across three financial statements and four company types. It +resolves tag evolution across 15 years of taxonomy vintages, derives missing +values through algebraic imputation, applies targeted corrections for known +XBRL scope-mismatch patterns, enforces curated accounting identities, and +produces consistent time-series data from 2009 to present. For monetary +quarterly duration items, Q4 is reconstructed from the audited annual total +minus reported interim quarters because standalone Q4 values are generally +not available in SEC Company Facts. + +The paper's core claim is methodological rather than promotional: the system +enforces strict identity resolution logic, currently achieving zero +unresolved violations across a curated, edge-case-weighted validation corpus +of 970 company histories. This result reflects the defined verification +set and documented +tolerance; it is not a claim about all possible filers. The corpus spans +industrials, banks, insurers, conglomerates, REITs, discontinued-operations +cases, fiscal-year offsets, IFRS filers, and multi-CIK histories. + +The system is organized into a Python package and a set of JSON schema +files, supported by a public API layer and a taxonomy maintenance tool: + +- **`statement_schema/schemas/`** — The declarative schema, split into four + JSON files: `_meta.json` (metadata, detection signals), plus one file per + statement — `income_statement.json`, `balance_sheet.json`, `cash_flow.json` + (~950 KB in total). +- **`statement_schema/`** — The runtime engine package: `_types.py` + (dataclasses, constants), `_detection.py` (company-type classification, + filing dates, fiscal metadata), `_extraction.py` (row-level XBRL + extraction, reference filing computation), `_rules.py` (imputation and + verification rule definitions), `_imputation.py` (multi-pass imputation, + hierarchical articulation, identity enforcement), `_schema.py` + (`StatementSchema` class orchestrating the pipeline), and `__init__.py`. +- **`company_facts.py`** — The public API: wraps the engine, merges + configured multi-CIK histories, and produces long-format records with full + provenance per line item per period. +- **`xbrl_taxonomy_helper.py`** — Taxonomy infrastructure: programmatic + access to FASB, SEC, and IFRS Foundation taxonomies for schema maintenance. + +## Reader Orientation + +This whitepaper is written for two primary audiences: + +1. **Methodology reviewers** who want to understand the extraction logic, + validation logic, and accounting assumptions without reading the code. +2. **Schema maintainers** who need a conceptual framework for evolving tag + chains, row definitions, correction rules, and taxonomy coverage over time. + +The paper therefore emphasizes methodological decisions, validation logic, +and maintenance-relevant structure rather than a line-by-line description of +the implementation. It explains how the system chooses among competing XBRL +facts, when it derives values algebraically, when it refuses to overwrite +direct facts, and how it uses a validation corpus to discover and resolve +known failure patterns. + +The paper does **not** attempt to serve as a full API reference or as a +substitute for the source code. Readers who need callable signatures, +parameter defaults, or packaging details should consult the implementation. +The goal here is different: document the system's methodological contract so +that the design can be evaluated, maintained, and extended as taxonomies and +filers evolve. + +## Claims, Guarantees, and Non-Guarantees + +The system is designed to provide a reproducible transformation from raw SEC +Company Facts data to standardized statement rows with full provenance. Its +claims are strongest where the output is anchored to direct XBRL facts and +validated accounting identities, and weaker where the source data itself is +structurally incomplete or scope-ambiguous. + +### Methodological Guarantees + +| Property | Guarantee | Boundary / Consequence | +|----------|-----------|------------------------| +| Standardized row naming | Every output row is mapped to a stable, schema-defined snake_case tag. | Row names are invariant across filers even when underlying XBRL tags differ. | +| Provenance | Every non-null output value carries a source string describing whether it was extracted, imputed, corrected, reconciled, or reconstructed. | Downstream users can distinguish direct facts from derived values. | +| Filing-vintage consistency | Within `extract_all`, the system uses a shared reference filing map across IS, BS, and CF. | Consistency is prioritized over maximal row coverage; some dates may be dropped during alignment. | +| Identity enforcement policy | Soft values may be overridden to satisfy accounting identities; hard XBRL facts are not silently overwritten when both sides disagree. | Genuine hard-value conflicts surface as diagnostics rather than being hidden. | +| Quarterly monetary reconstruction | For monetary duration items, Q4 is reconstructed as `FY - (Q1 + Q2 + Q3)`. | This is a methodological requirement, not an optional normalization step, because standalone Q4 duration facts are typically absent from SEC Company Facts. | +| Sparse output semantics | Null-valued rows are omitted from the final long-format output. | The output is intentionally sparse; absence means either no fact was available, the concept was not applicable, or no defensible derivation path existed. | + +### Non-Guarantees + +The system does **not** guarantee that every raw Company Facts entry will +appear in the standardized output, that every period-end date in one +statement will survive cross-statement alignment, or that every reported zero +is economically meaningful. It also does not claim that a zero-diagnostics +result means the source filing is free from disclosure ambiguity; it means +that every **testable identity included in the verification set** held within +tolerance after the documented correction and enforcement pipeline ran. + +The system likewise does not treat apparent direct Q4 values for monetary +duration items as authoritative. For SEC annual filings, the reliable fact is +the full-year audited duration total; Q4 is ordinarily recovered by +subtracting reported interim quarters from that annual total. Shares and +per-share metrics are explicitly excluded from this additive reconstruction +because they do not aggregate across quarters in the same way as monetary +flows. + +--- + +## Table of Contents + +- [Reader Orientation](#reader-orientation) +- [Claims, Guarantees, and Non-Guarantees](#claims-guarantees-and-non-guarantees) +- [1. The Problem](#1-the-problem) +- [2. Data Sources & External References](#2-data-sources--external-references) +- [Validation Corpus and Evaluation Design](#validation-corpus-and-evaluation-design) +- [3. Schema Architecture](#3-schema-architecture) +- [4. Company Type Classification](#4-company-type-classification) +- [5. Tag Chain Resolution](#5-tag-chain-resolution) +- [6. Extraction Methodology](#6-extraction-methodology) +- [7. Imputation Methodology](#7-imputation-methodology) +- [8. Hierarchical Articulation](#8-hierarchical-articulation) +- [9. Pre-Imputation Corrections](#9-pre-imputation-corrections) +- [10. Post-Imputation Corrections](#10-post-imputation-corrections) +- [11. Identity Enforcement & Verification](#11-identity-enforcement--verification) +- [12. Scope Mismatch Resolution](#12-scope-mismatch-resolution) +- [13. Quarterly Methodology & Q4 Reconstruction](#13-quarterly-methodology--q4-reconstruction) +- [14. Final Output Format](#14-final-output-format) +- [15. Zero-Value and Null-Value Policy](#15-zero-value-and-null-value-policy) +- [16. Schema Maintenance Workflow](#16-schema-maintenance-workflow) +- [17. Reconstructing the Schema from Scratch](#17-reconstructing-the-schema-from-scratch) +- [18. Taxonomy Maintenance](#18-taxonomy-maintenance) + +--- + +## 1. The Problem + +### 1.1 XBRL Tag Proliferation + +SEC filers report financial data using XBRL (eXtensible Business Reporting +Language). Each value is tagged with an element name from a taxonomy — +primarily US GAAP or IFRS. The fundamental problem is three-dimensional: + +**Tag evolution over time.** FASB publishes a new US GAAP taxonomy annually. +Tags are introduced, deprecated, and renamed. Revenue was reported as +`SalesRevenueNet` (pre-2018), then +`RevenueFromContractWithCustomerExcludingAssessedTax` (ASC 606, 2018+), with +the broader `Revenues` available throughout. A single company's revenue +history may span multiple tags across filing vintages. + +**Tag variation across filers.** Two companies reporting the same economic +concept may choose different XBRL tags. One company uses +`CostOfGoodsAndServicesSold`, another uses `CostOfRevenue`, a third uses +`CostOfGoodsSold`. All represent cost of revenue. IFRS filers use entirely +different tags: `Revenue` instead of `Revenues`, `ProfitLoss` instead of +`NetIncomeLoss`. + +**Structural variation across industries.** Banks report Net Interest Income +and Provision for Credit Losses — concepts that don't exist for industrial +companies. Insurance companies report Premium Revenue and Policyholder +Benefits. A single statement template cannot serve all filer types. + +### 1.2 Scope Ambiguity + +Beyond tag selection, XBRL introduces scope ambiguity — the same economic +concept can be reported at different levels of consolidation: + +- **`ProfitLoss`** includes noncontrolling interests (NCI); **`NetIncomeLoss`** + excludes NCI (parent-only). Both are commonly used for "net income." +- **`IncomeLossFromContinuingOperationsBeforeIncomeTaxes...`** has variants + that exclude equity-method investment income and variants that include it. +- Cash flow activity totals may use `ContinuingOperations`-scoped tags + while the net change tag covers total operations. +- Tags evolved from a "cash and cash equivalents" basis to a "cash, + restricted cash, and restricted cash equivalents" basis circa 2017. + +These scope mismatches are invisible when looking at a single tag in +isolation but cause accounting identities to fail when tags of different +scope are combined. A significant portion of this system's complexity exists +to detect and resolve these mismatches. + +### 1.3 The SEC Company Facts API + +The SEC provides a bulk data endpoint for every filer: + +``` +https://data.sec.gov/api/xbrl/companyfacts/CIK{cik_padded}.json +``` + +This returns every XBRL tag the company has ever reported, organized by +namespace → tag name → unit type → array of entries. Each entry contains: + +```json +{ + "end": "2024-09-28", + "val": 391035000000, + "accn": "0000320193-24-000123", + "fy": 2024, + "fp": "FY", + "form": "10-K", + "filed": "2024-11-01", + "frame": "CY2024Q4I", + "start": "2023-10-01" +} +``` + +The extraction challenge: given this raw data for any company, produce +standardized financial statements with consistent row names, correct signs, +no double-counting, complete time series, algebraic derivation of missing +values, and verified accounting identities — all with full provenance +tracking for every value. + +--- + +## 2. Data Sources & External References + +### 2.1 Primary Data Sources + +| Source | URL Pattern | What It Provides | +|--------|-------------|------------------| +| SEC Company Facts API | `https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json` | All historical XBRL tag values for a filer | +| SEC EDGAR Taxonomies Index | `https://www.sec.gov/info/edgar/edgartaxonomies.xml` | Master index of all recognized taxonomies and versions | + +### 2.2 Taxonomy Schema Sources + +| Taxonomy | Host | URL Pattern | Years | +|----------|------|-------------|-------| +| US GAAP | FASB | `https://xbrl.fasb.org/us-gaap/{year}/` | 2011–2026 | +| SEC Reporting (SRT) | FASB | `https://xbrl.fasb.org/srt/{year}/` | 2011–2026 | +| Document & Entity (DEI) | SEC | `https://xbrl.sec.gov/dei/{year}/` | 2011–2026 | +| IFRS Full | IFRS Foundation | `https://xbrl.ifrs.org/taxonomy/{YYYY-MM-DD}/` | 2020–2025 | + +#### Key Taxonomy Files (US GAAP) + +For any given year, the US GAAP taxonomy contains: + +``` +https://xbrl.fasb.org/us-gaap/{year}/ +├── elts/ +│ ├── us-gaap-{year}.xsd # Schema: all element definitions +│ └── us-gaap-lab-{year}.xml # Labels: human-readable names +└── stm/ + ├── us-gaap-stm-sfp-classified-pre-{year}.xml # Presentation: Balance Sheet + ├── us-gaap-stm-soi-pre-{year}.xml # Presentation: Income Statement + ├── us-gaap-stm-scf-indirect-pre-{year}.xml # Presentation: Cash Flow + └── ... (83 total components including disclosures) +``` + +The schema file defines every element's `name`, `type` (monetary, per-share, +shares), `periodType` (duration or instant), `balance` (debit or credit), +and whether it is abstract. The presentation linkbase files define the +hierarchical layout of standard financial statements. + +#### IFRS Taxonomy + +IFRS uses date-based versioning (e.g., `2025-03-27`). Date strings are +resolved by parsing SEC's `edgartaxonomies.xml` for IFRS Foundation href +entries, with a hardcoded fallback table for 2020–2025. + +### 2.3 Imputation & Validation References + +| Source | What It Provides | +|--------|------------------| +| **FASB Presentation Linkbases** | Hierarchical statement structures: parent-child nesting, display order | +| **FASB Calculation Linkbases** | Algebraic relationships between elements (weights of +1 or −1) | +| **xbrlsite Report Frame** | Standardized statement templates, company type classifications, and ImputeRules — algebraic identities between line items organized by company type. The imputation rules in this system are derived from these ImputeRules. | +| **SEC Company Facts (validation corpus)** | 970 company histories used to verify extraction correctness, tag chain quality, and identity compliance | + +--- + +## Validation Corpus and Evaluation Design + +The system's headline validation claim is not based on a random sample of SEC +filers. It is based on a deliberately curated corpus intended to stress the +methodology across the kinds of reporting patterns that break naive XBRL +extraction systems: taxonomy transitions, industry-specific statement +structures, non-December fiscal year-ends, multi-CIK continuity, scope +mismatches, discontinued operations, mezzanine equity, and IFRS reporting. + +The validation corpus contains **970 companies** spanning four company types: +619 industrial, 231 diversified, 68 financial, and 52 insurance. Coverage +is near-complete for the Russell 1000 index. Industrial issuers provide long +XBRL histories and frequent taxonomy transitions; banks and insurers require +distinct statement templates; conglomerates and special cases expose scope +ambiguities and classification edge cases that simpler filers do not. + +The evaluation protocol has four layers: + +1. **Automated extraction validation.** Each issuer is run through the full + annual and quarterly extraction pipeline using the same schema and rule + set described in this paper. +2. **Deterministic unit and regression tests.** The dedicated test module + `openbb_platform/providers/sec/tests/test_company_facts.py` exercises the + extraction engine against both synthetic fixtures and a real SEC Company + Facts fixture for BlackRock. These tests assert company-type detection, + tag-chain priority, imputation cascades, suspect-zero labeling, Q4 + reconstruction, balance-sheet immunity from Q4 derivation, cross-vintage + fallback behavior, IFRS namespace handling, multi-CIK merging, + cross-statement identity locks, and diagnostic emission. They therefore + function as executable evidence for known failure modes, not merely as + convenience checks. +3. **Identity validation.** The resulting statements are checked against the + verification identities documented in Section 11. The target outcome is + zero unresolved `ValidationWarning` diagnostics after the correction and + enforcement pipeline completes. +4. **Manual reasonableness review.** Key totals such as revenue, net income, + total assets, operating cash flow, and net change in cash are spot-checked + against SEC filings across multiple periods, with special attention paid + to periods near taxonomy transitions or known scope-mismatch events. + +The unit-test layer matters because corpus-level zero-diagnostic outcomes do +not by themselves prove that the correct causal path produced a result. The +tests encode narrower behavioral claims: that a specific tag wins when two +plausible tags coexist, that an imputed subtotal carries the expected +provenance string, that Q4 is reconstructed only for monetary duration facts, +and that known historical edge cases continue to behave the same way after +maintenance changes. In other words, the test suite turns prior debugging and +issuer-specific discoveries into durable, executable evidence. + +The validation design can be summarized compactly as follows: + +| Dimension | Current Coverage | Why It Matters | +|-----------|------------------|----------------| +| Corpus size | 970 companies | Near-complete Russell 1000 coverage across all four company types. | +| Company types | 619 industrial, 231 diversified, 68 financial, 52 insurance | Ensures the methodology is tested across all four statement templates with substantial depth in each category. | +| Frequencies tested | Annual, quarterly, semi-annual | Validates both direct annual extraction and interim reconstruction behavior, including Q4 and H1/H2 derivation. | +| Validation modes | Automated extraction, deterministic unit/regression tests, identity verification, manual spot-checks | Combines end-to-end extraction checks, executable edge-case assertions, mechanical identity verification, and human review of key totals in SEC filings. | +| Edge-case coverage | Taxonomy transitions, non-December fiscal year-ends, discontinued operations, mezzanine equity, multi-CIK continuity, IFRS filers, insurance variants, REITs | Focuses the corpus on the cases most likely to break naive XBRL standardization. | +| Success criterion | Zero unresolved `ValidationWarning` diagnostics for the verification set | The system must clear every documented identity check after correction and enforcement logic has been applied. | + +The corpus is **comprehensive within the Russell 1000 universe**, answering +both the methodological question, "Does the system handle filers that report +the same concept in structurally different ways?" and the broader coverage +question, "Does it handle the full range of large-cap U.S. reporting without +modification?" The hard part of maintenance is not the median filer; it is the +tail of unusual filers that force new tag-chain entries, new safeguards, or +new correction logic. The validation report clears both annual and quarterly +runs with zero diagnostics across all 970 companies. + +Appendix B enumerates representative members of the corpus and the edge cases +they cover. The corpus includes, among others, Apple for long-tag-chain +industrial history, JPMorgan for bank-specific revenue structure, +UnitedHealth for insurance-specific reporting and disposal-group cash flow, +Berkshire Hathaway and BlackRock for diversified structures, Boeing for +NCI-related net-income scope issues, and Disney and Merck for discontinued +operations cash flow patterns. The claim of zero unresolved identity +violations is therefore best interpreted as a claim about a **deliberately +challenging validation set**, not merely about straightforward issuers. + +--- + +## 3. Schema Architecture + +### 3.1 The Declarative Schema (`statement_schema/schemas/`) + +The schema is split across four JSON files in `statement_schema/schemas/`: + +``` +statement_schema/schemas/ +├── _meta.json # version, generated, taxonomy_sources, detection signals +│ ├── version: "2.0" +│ ├── generated: "2026-03-17" +│ ├── taxonomy_sources +│ │ ├── us_gaap: { years: [2011, 2026], tags_indexed: 3753 } +│ │ └── ifrs: { years: [2020, 2025], tags_indexed: 3979 } +│ └── detection +│ ├── insurance_is_signals: [8 tags] +│ ├── insurance_bs_signals: [5 tags] +│ ├── financial_signals: [16 tags] +│ ├── industrial_signals: [5 tags] +│ ├── diversified_signals: [5 tags] +│ └── min_financial_signals: 2 +├── income_statement.json # {industrial: [55 rows], financial: [74 rows], +│ # diversified: [52 rows], insurance: [56 rows]} +├── balance_sheet.json # {industrial: [73 rows], financial: [68 rows], +│ # diversified: [73 rows], insurance: [68 rows]} +└── cash_flow.json # {industrial: [57 rows], financial: [62 rows], + # diversified: [57 rows], insurance: [62 rows]} +``` + +**3 statements × 4 company types = 12 arrays, totaling 761 row instances +mapping to 250 unique standardized tags across 1,190 unique XBRL tag-namespace +pairs.** + +### 3.2 Row Definition + +Each row defines a standardized line item: + +```json +{ + "tag": "total_gross_profit", + "label": "Total Gross Profit", + "description": "Aggregate revenue less cost of goods and services sold...", + "parent": null, + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { "tag": "GrossProfit", "namespace": "us-gaap" }, + { "tag": "GrossProfit", "namespace": "ifrs-full", "first_year": 2020, "last_year": 2025 } + ] +} +``` + +| Field | Purpose | +|-------|---------| +| `tag` | Stable snake_case identifier. Invariant across schema versions. | +| `label` | Display name for rendered statements. | +| `parent` | The tag this row rolls up into (tree structure). `null` = root. | +| `sequence` | Display order (1-based, unique within each company-type array). | +| `factor` | `"+"` adds to parent, `"-"` subtracts from parent, `"0"` supplemental. | +| `balance` | XBRL `"debit"` or `"credit"`. Governs sign convention. | +| `unit` | `"monetary"`, `"per_share"`, or `"shares"`. | +| `period_type` | `"duration"` (flow) or `"instant"` (point-in-time snapshot). | +| `xbrl_tags` | **Ordered priority chain** of XBRL tags to try during extraction. | + +### 3.3 The Runtime Engine (`statement_schema/`) + +The runtime engine is a Python package comprising seven modules. +The `StatementSchema` class in `_schema.py` is the primary entry point, +loaded once at module import and reused for all calls. Its methods +delegate to module-level functions in `_detection.py` (company-type +classification, filing dates, fiscal metadata), `_extraction.py` +(row-level value extraction, reference filing computation), +`_imputation.py` (imputation, articulation, identity enforcement), and +`_rules.py` (pure-data rule definitions). Dataclasses and constants +live in `_types.py`, and `__init__.py` re-exports all public names +for backward-compatible imports. + +| Method | Purpose | +|--------|---------| +| `detect_type(facts)` | Classify a company as industrial / financial / diversified / insurance | +| `extract(facts, statement, ...)` | Extract one statement → `StatementResult` | +| `extract_all(facts, ...)` | Extract all three statements with aligned dates and shared filing vintage | +| `get_filing_dates(facts, frequency)` | Discover valid period-end dates | +| `get_fiscal_meta(facts, frequency, dates)` | Build fiscal year/period metadata per date | +| `merge_facts(*facts_list)` | Merge multiple CIKs' Company Facts (e.g., BlackRock's CIK transition) | + +### 3.4 The Public API (`company_facts.py`) + +| Function | Purpose | +|----------|---------| +| `resolve_company_facts(facts_json, fiscal_years=None, period="both", pit_mode=False, include_preliminary=False)` | Synchronous: parse SEC JSON → `StandardizedStatements` | +| `get_standardized_financials(symbol=None, cik=None, fiscal_years=None, period="both", use_cache=True, pit_mode=False, include_preliminary=False)` | Async: fetch from SEC API, merge multi-CIK histories when configured, then resolve | + +`StandardizedStatements` is the public container returned by the resolver. It +holds entity metadata (`entity_name`, `cik`, `company_type`, `currency`), +three long-format record lists (one per statement), and an aggregated +`diagnostics` list containing the `ValidationWarning` objects emitted during +statement extraction. The `period` argument accepts `annual`, `quarterly`, +or `both`; when `both` is requested, the resolver appends records from each +frequency and distinguishes them via a `frequency` field in the final output. + +### 3.5 Key Dataclasses (`_types.py`) + +The following dataclasses are defined in `statement_schema/_types.py` and +re-exported via `__init__.py`: + +```python +@dataclass +class RowResult: + tag: str # Standardized tag name + label: str # Display label + description: str # Long-form schema description + parent: str | None # Parent tag (None = root) + sequence: int | float # Display order (plugs may be fractional) + factor: str # "+", "-", or "0" + balance: str # "debit" or "credit" + unit: str # "monetary", "per_share", or "shares" + values: dict[str, float] # {period_end_date: value} + sources: dict[str, str] # {date: provenance string} +``` + +```python +@dataclass +class StatementResult: + statement: str # "income_statement", "balance_sheet", "cash_flow" + company_type: str # "industrial", "financial", etc. + frequency: str # "annual" or "quarterly" + currency: str # ISO code (e.g., "USD") + dates: list[str] # Sorted period-end dates + rows: list[RowResult] # Extracted line items + fiscal_data: dict[str, dict] # {date: {fiscal_year, fiscal_period}} + diagnostics: list[ValidationWarning] +``` + +```python +@dataclass +class ValidationWarning: + date: str # Period-end date of the discrepancy + tag: str # Standardized tag whose value disagrees + expected: float # Value computed from the accounting identity + actual: float # Value extracted from XBRL + formula: str # Human-readable formula + identity: str # Full identity description +``` + +The `diagnostics` list on `StatementResult` surfaces any accounting-identity +discrepancies that survive the full verification pipeline. An empty list +means every testable identity held within tolerance for every period. + +#### Source Provenance Strings + +The `sources` field tracks exactly how every value was obtained: + +| Source Pattern | Meaning | +|----------------|---------| +| `us-gaap:Revenues` | Direct XBRL extraction at reference filing date | +| `us-gaap:Revenues(fallback)` | Cross-vintage extraction from a non-reference filing | +| `imputed: total_revenue + -total_cost_of_revenue` | Algebraic imputation from accounting identity | +| `imputed-rollup: sum of explicitly mapped children` | Hierarchical parent rollup from children | +| `imputed-plug: balancing remainder` | Synthetic plug to maintain parent-child articulation | +| `identity-enforced: ...` | Value overridden during identity enforcement | +| `corrected: total_gross_profit - total_operating_income` | OpEx/COGS disambiguation | +| `us-gaap:NetIncomeLoss(NCI-corrected)` | NI switched from NCI-inclusive to parent-only | +| `us-gaap:ProfitLoss(disc-adjusted)` | NI adjusted from total to continuing-ops scope | +| `us-gaap:NetIncomeLoss(identity_lock:cash_flow)` | Direct XBRL value locked to a cross-statement identity target | +| `reconciled: total_equity_and_nci - noncontrolling_interests` | Equity decomposition override | +| `Q4: FY − (Q1+Q2+Q3)` | Q4 derived from annual minus first three quarters | +| `H2: FY − H1` | H2 derived from annual minus first-half semi-annual filing | +| `derived: cash_at_end_of_period(2023-09-30)` | Beginning cash derived from prior period's ending | +| `standalone` | Extracted without filing-date constraint | +| `imputed-zero: ...` | Suspect zero flagged for review | + +--- + +## 4. Company Type Classification + +### 4.1 The Classification Problem + +Financial statements have fundamentally different structures depending on +industry: + +- **Industrial** (Apple, Chevron, Coca-Cola): Revenue → COGS → + Gross Profit → OpEx → Operating Income. Balance sheet uses + current/noncurrent classification. + +- **Financial** (JPMorgan, Goldman Sachs): Interest Income → Interest + Expense → Net Interest Income → Noninterest Income → Provision for Credit + Losses. Balance sheet uses asset-class structure (loans, deposits, etc.). + +- **Insurance** (UnitedHealth): Premium Revenue → Benefits & Claims → + Pretax Income. Balance sheet has policy liabilities, deferred acquisition + costs, separate account assets. + +- **Diversified** (Berkshire Hathaway, BlackRock, BHP): Revenue → + Costs & Expenses → Operating Income. No gross profit decomposition + because the cost structure doesn't split cleanly into COGS + SG&A. + +### 4.2 Signal-Based Detection + +Classification uses the XBRL tags actually present in a company's data, +not SIC/NAICS codes. The priority cascade: + +``` +1. INSURANCE — ≥ 1 insurance IS signal AND (IS + BS signals) ≥ 2 + (defers to financial when financial signal count is higher) +2. FINANCIAL — ≥ 2 financial signals +3. INDUSTRIAL — any COGS or GrossProfit tag present **in recent filings** +4. DIVERSIFIED — has CostsAndExpenses without COGS +5. INDUSTRIAL — ultimate fallback +``` + +**Insurance IS signals** (8): `PremiumsEarnedNet`, `PolicyholderBenefitsAndClaimsIncurredNet`, +`PolicyholderBenefitsAndClaimsIncurredHealthCare`, `BenefitsLossesAndExpenses`, +`InsuranceRevenue`, `InsuranceServiceResult`, +`InsuranceServiceExpensesFromInsuranceContractsIssued`, `NetEarnedPremium` + +**Insurance BS signals** (5): `LiabilityForFuturePolicyBenefits`, +`DeferredPolicyAcquisitionCosts`, `InsuranceContractsThatAreLiabilities`, +`LiabilitiesArisingFromInsuranceContracts`, `UnearnedPremiums` + +**Financial signals** (need ≥2, 16 total): `InterestIncomeExpenseNet`, `NoninterestIncome`, +`ProvisionForLoanAndLeaseLosses`, `NetInterestIncome`, +`InterestAndDividendIncomeOperating`, +`FederalFundsSoldAndSecuritiesPurchasedUnderAgreementsToResell`, +`FinancingReceivableExcludingAccruedInterestBeforeAllowanceForCreditLoss`, +`InterestRevenueCalculatedUsingEffectiveInterestMethod`, +`FinancialAssetsAtAmortisedCost`, `DepositsFromBanks`, +`ReverseRepurchaseAgreementsAndCashCollateralOnSecuritiesBorrowed`, +`SubordinatedLiabilities`, `InterestIncomeOnLoansAndReceivables`, +`CreditrelatedFeeAndCommissionIncome`, `TradingIncomeExpense`, +`BankAcceptanceAssets` + +**Industrial signals** (5): `CostOfGoodsAndServicesSold`, `CostOfRevenue`, +`CostOfGoodsSold`, `GrossProfit`, `CostOfSales` + +**Diversified signals** (5): `CostsAndExpenses`, `OperatingIncomeLoss`, +`OperatingExpense`, `ProfitLossFromOperatingActivities`, +`OtherOperatingIncomeExpense` + +The detection signal lists now include both US GAAP and IFRS tag names to +ensure correct classification for foreign private issuers reporting under +IFRS. + +#### 4.2.1 Recency-Aware Industrial Detection + +Industrial signals (COGS/GrossProfit tags) must have data in a **recent +10-K filing** (within the last 5 years) to trigger industrial classification. +This prevents stale tags from overriding the correct classification. For +example, Equity Residential reported `GrossProfit` in 2010 but stopped using +it by 2011. Without the recency check, the 15-year-old tag would trigger the +industrial template, which then derives phantom COGS values (via +`CostsAndExpenses − OperatingExpenses`) and produces nonsensical negative +gross profit figures. With the recency check, EQR correctly classifies as +diversified. + +The recency check is implemented via `_has_recent_data()`, which scans the +raw Company Facts entries for 10-K/20-F filings with an `end` date within +the cutoff window. Only industrial signals require this check — insurance +and financial signals are structural to the company type and do not exhibit +the same stale-tag pattern. + +--- + +## 5. Tag Chain Resolution + +### 5.1 The Priority Chain + +Each standardized row contains an ordered array of XBRL tags to try during +extraction. This ordering encodes institutional knowledge: + +```json +"xbrl_tags": [ + { "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", "namespace": "us-gaap" }, + { "tag": "Revenues", "namespace": "us-gaap", "first_year": 2011, "last_year": 2026 }, + { "tag": "SalesRevenueNet", "namespace": "us-gaap", "first_year": 2011, "last_year": 2017 }, + { "tag": "Revenue", "namespace": "ifrs-full", "first_year": 2020, "last_year": 2025 } +] +``` + +**Priority rules:** + +1. **Most specific first.** The ASC 606 revenue tag (excludes sales tax) is + preferred over the broad `Revenues` catch-all. +2. **Current before deprecated.** Active taxonomy tags before those with + `last_year` set. +3. **US GAAP before IFRS.** Most SEC filers use US GAAP; IFRS equivalents + are appended as fallbacks for foreign private issuers (20-F filers). +4. **Year bounds are documentation, not filters.** The engine tries all tags + regardless — Company Facts data itself is absent for out-of-range years. + +### 5.2 Resolution Algorithm + +For each standardized row and each period-end date, the engine walks the +chain in priority order. The first tag that has data matching the period-end +date and the reference filing date is selected. **First hit wins.** + +If no tag has data at the reference filing date, the engine tries the +nearest alternative filing (preferring earlier filings). Values sourced this +way are marked with a `(fallback)` suffix — e.g., `us-gaap:Revenues(fallback)`. +This provenance marker is used downstream by the identity enforcement system +to recognize cross-vintage values (Section 11.4). + +### 5.3 Chain Statistics + +The two revenue rows (`operating_revenue` and `total_revenue`) have +82-entry tag chains covering every revenue-related XBRL tag across all +taxonomy years, industry-specific variants, and IFRS equivalents. +`cash_at_beginning_of_period` has zero XBRL entries — it is always derived +from the prior period's ending balance. Most rows have 1–4 candidates. +Across all 761 row instances: 2,022 `us-gaap` tag references and 1,834 +`ifrs-full` tag references. + +--- + +## 6. Extraction Methodology + +### 6.1 Filing-Date Consistency + +The most important invariant: **all rows in a statement are extracted from +the same filing vintage for each period.** + +When a company files a 10-K, all values in that filing are internally +consistent. If the company later files a 10-K/A (amendment), some values may +be restated. The engine prevents mixing original and restated values by +computing a **reference filing date** per period — the latest filing date +that provides data for any row across *all three statements*. +Using the latest filing ensures that restatements and amendments are +reflected in the output: + +```python +ref_filed_map = compute_ref_filings(facts, rows_def, frequency, currency) +# {period_end_date: latest_filing_date_with_data} +``` + +When called via `extract_all`, a single shared reference filing map is +computed across all rows from IS, BS, and CF, ensuring that net income on +the income statement matches net income on the cash flow statement. + +**450-day filing cap.** In default (non-PIT) mode, the engine ignores any +filing whose `filed` date is more than 450 days after the `end` date. +This prevents stale re-filings (e.g., a late 10-K/A filed years after the +period) from overriding the substantive filing vintage. The cap does not +apply in `pit_mode`, where the earliest filing is selected regardless. + +**Form categories.** The engine groups SEC form types into four constants: + +| Constant | Forms | +|----------|-------| +| `ANNUAL_FORMS` | 10-K, 10-K/A, 20-F, 20-F/A, 40-F, 40-F/A | +| `QUARTERLY_FORMS` | 10-Q, 10-Q/A | +| `SEMI_ANNUAL_FORMS` | 6-K, 6-K/A | +| `PRELIMINARY_FORMS` | 8-K, 8-K/A | + +Annual extraction considers only `ANNUAL_FORMS` by default. Quarterly and +semi-annual extraction considers all non-preliminary forms. Preliminary +forms (8-K filings) are excluded by default because they may contain +unaudited, incomplete, or press-release-grade figures. + +**`include_preliminary` parameter.** Both API functions accept +`include_preliminary=True`, which adds `PRELIMINARY_FORMS` to the set of +allowed forms during reference filing computation. This is useful when an +issuer's only source of certain interim data is an 8-K (e.g., preliminary +earnings releases before the 10-Q is filed). The parameter does not affect +the extraction pipeline itself — it only widens the filing-date discovery +window. + +### 6.2 Annual Extraction Pipeline + +The full pipeline for a single statement extraction: + +```mermaid +flowchart TD + A["1. DETECT CURRENCY"] --> B["2. DISCOVER FILING DATES"] + B --> C["3. COMPUTE REFERENCE FILINGS"] + C --> D["4. EXTRACT EACH ROW\n(tag chain resolution)"] + D --> E["5. PRE-IMPUTATION CORRECTIONS\n(§9: pretax scope, disc-ops)"] + E --> F["6. HIERARCHICAL ARTICULATION — 1st PASS\n(§8: rollups + plugs)"] + F --> G["7. IMPUTE MISSING VALUES\n(§7: multi-pass algebraic)"] + G --> H["8. POST-IMPUTATION CORRECTIONS\n(§10: OpEx/COGS disambiguation)"] + H --> I["9. EQUITY RECONCILIATION\n(BS only)"] + I --> J["10. HIERARCHICAL ARTICULATION — 2nd PASS\n(§8: re-sync after corrections)"] + J --> K["11. IDENTITY ENFORCEMENT & VERIFICATION\n(§11: soft overrides, diagnostics)"] + K --> L["12. APPLY SIGN CONVENTION\n(CF only: negate credit-balance)"] + L --> M["13. CASH BALANCE POST-PROCESSING"] + M --> N["14. PRUNE EMPTY DATES"] + N --> O["15. BUILD FISCAL METADATA"] + O --> P["OUTPUT: StatementResult"] + + style A fill:#e1f5fe + style P fill:#c8e6c9 +``` + +The same pipeline in text form: + +``` +INPUT: Company Facts JSON, statement name, company type + + 1. DETECT CURRENCY + Scan all unit keys; most frequent 3-letter ISO code wins (default: USD). + + 2. DISCOVER FILING DATES + Find period-end dates from 10-K/20-F/40-F forms with 300–400 day + duration items. Deduplicate using the dominant fiscal-year-end + month-day pattern. Drop earliest date if no Assets instant exists + (incomplete early XBRL era). + + 3. COMPUTE REFERENCE FILINGS + Per period-end, find the LATEST filing date across ALL rows in + ALL THREE statements (reflects restatements/amendments). + + 4. EXTRACT EACH ROW + Walk the xbrl_tags chain. First tag with data matching (end_date, + ref_filing_date) wins. Fallback to nearest alternative filing if no + match. Record provenance in sources dict. + + 5. PRE-IMPUTATION CORRECTIONS (Section 9) + Fix scope mismatches in pretax income and net income before imputation. + + 6. HIERARCHICAL ARTICULATION — FIRST PASS (Section 8) + Roll up parent nodes from children. Generate synthetic plugs where + parent ≠ sum of children. + + 7. IMPUTE MISSING VALUES (Section 7) + Multi-pass algebraic derivation from accounting identities. + + 8. POST-IMPUTATION CORRECTIONS (Section 10) + OpEx disambiguation, COGS disambiguation, GP recalculation. + + 9. EQUITY RECONCILIATION (BS only) + Override total_equity when the XBRL decomposition of equity into + parent + NCI is inconsistent with the total, but the top-level + BS identity (L + E_nci + R_nci = L&E) holds. + +10. HIERARCHICAL ARTICULATION — SECOND PASS (Section 8) + Re-sync tree structure after corrections. + +11. IDENTITY ENFORCEMENT & VERIFICATION (Section 11) + Check all accounting identities. Override soft values to satisfy + identities. Apply targeted corrections (NCI, disc ops). Emit + diagnostics only for genuine hard-value mismatches. + +12. APPLY SIGN CONVENTION (CF only) + Negate credit-balance items so outflows are negative, + except net_income family and supplemental disclosures. + +13. CASH BALANCE POST-PROCESSING + Standalone extraction fills gaps in cash_at_end_of_period. + Begin-of-period derived as prior period's end-of-period. + +14. PRUNE EMPTY DATES + Remove dates where every row is NULL. + +15. BUILD FISCAL METADATA + Compute fiscal_year/fiscal_period per date from SEC fy/fp fields. + Apply monotonicity correction for early XBRL era duplicates. + +OUTPUT: StatementResult with dates, rows, currency, fiscal_data, diagnostics +``` + +### 6.3 Date Alignment in `extract_all` + +When extracting all three statements via `extract_all`: + +1. Compute a single shared reference filing map across IS, BS, CF. +2. Extract each statement individually. +3. **Intersect** the date sets — only dates present in all three statements + are retained. +4. For quarterly: trim incomplete leading fiscal years. +5. Apply the aligned date set and unified fiscal metadata to all. + +### 6.4 The Fiscal Year Field (`fy`) and Comparative-Data Duplication + +The SEC `fy` field carries the fiscal year of the *filing*, not the *period*. +When Apple files a FY 2024 10-K, prior-year comparatives also carry +`fy=2024`. The same `end` date can appear with multiple `fy` values. + +**Resolution:** `get_fiscal_meta()` selects the earliest `filed` date per +`end` date to get the original filing's `fy`. A monotonicity correction +walks backwards and decrements any `fy` ≥ the next date's — fixing the +first-ever XBRL filing case where historical comparatives all share one `fy`. + +--- + +## 7. Imputation Methodology + +### 7.1 Design Philosophy + +Imputation exploits a fundamental property of double-entry accounting: if a +company reports 2 of 3 values in an accounting identity, the third can be +derived. The rules are drawn from the xbrlsite Report Frame's ImputeRules +and FASB's taxonomy calculation linkbases. + +Each rule is a tuple: `(target_tag, [(source_tag, sign), ...])`. + +The target is computed as: `target = Σ(source × sign)`. + +A rule fires only when: +1. The target has no extracted value for the period +2. ALL source tags have values for the period + +The **first applicable rule wins** for each target tag — if an identity is +satisfied by one rule, later rules for the same target are skipped. + +### 7.2 Income Statement Rules + +#### Industrial + +| Target | = | Formula | Accounting Basis | +|--------|---|---------|-----------------| +| `total_cost_of_revenue` | = | `costs_and_expenses` − `total_operating_expenses` | C&E decomposition | +| `total_operating_expenses` | = | `costs_and_expenses` − `total_cost_of_revenue` | C&E decomposition | +| `costs_and_expenses` | = | `total_revenue` − `total_operating_income` | C&E = Rev − OpInc | +| `total_gross_profit` | = | `total_revenue` − `total_cost_of_revenue` | GP identity | +| `total_cost_of_revenue` | = | `total_revenue` − `total_gross_profit` | GP inverse | +| `total_operating_expenses` | = | `total_gross_profit` − `total_operating_income` | OpInc identity | +| `total_operating_income` | = | `total_gross_profit` − `total_operating_expenses` | OpInc inverse | +| `total_other_income` | = | `total_pretax_income` − `total_operating_income` | Below-the-line residual | + +The C&E-based rules fire first because when `costs_and_expenses` is directly +reported (as many filers do), they can derive COGS even before GP is known. +This matters because `total_operating_expenses` is typically available from +hierarchical rollup of SG&A, D&A, and other children (Section 8), making +the C&E decomposition path available in the first imputation pass. + +#### Diversified + +| Target | = | Formula | +|--------|---|---------| +| `total_operating_income` | = | `total_pretax_income` − `total_other_income` | +| `total_operating_income` | = | `total_revenue` − `costs_and_expenses` | +| `costs_and_expenses` | = | `total_revenue` − `total_operating_income` | +| `total_other_income` | = | `total_pretax_income` − `total_operating_income` | + +No gross profit decomposition — diversified companies report aggregate +costs rather than the COGS + SG&A split. + +#### Financial + +| Target | = | Formula | +|--------|---|---------| +| `total_interest_income` | = | `net_interest_income` + `total_interest_expense` | +| `net_interest_income_after_provision` | = | `net_interest_income` − `provision_for_credit_losses` | +| `total_revenue` | = | `net_interest_income` + `total_noninterest_income` | +| `total_revenue` | = | `total_pretax_income` + `total_noninterest_expense` | + +Rule 3 handles cases like American Express pre-2015 where no direct revenue +tag was reported but NII and noninterest income were available. Rule 4 is a +deeper fallback (Goldman Sachs pre-2011) where revenue is derived from +pretax + opex. + +#### Insurance + +| Target | = | Formula | +|--------|---|---------| +| `total_pretax_income` | = | `total_revenue` − `benefits_costs_expenses` | +| `benefits_costs_expenses` | = | `total_revenue` − `total_pretax_income` | + +#### Common (Applied to All Types) + +| Target | = | Formula | +|--------|---|---------| +| `total_pretax_income` | = | `net_income_continuing` + `income_tax_expense` | +| `net_income_continuing` | = | `total_pretax_income` − `income_tax_expense` | +| `net_income` | = | `net_income_continuing` + `net_income_discontinued` | +| `comprehensive_income` | = | `CI_parent` + `CI_nci` | +| `CI_parent` | = | `comprehensive_income` − `CI_nci` | +| `CI_nci` | = | `comprehensive_income` − `CI_parent` | +| `income_tax_expense` | = | `income_tax_current` + `income_tax_deferred` | +| `income_tax_current` | = | `income_tax_expense` − `income_tax_deferred` | +| `income_tax_deferred` | = | `income_tax_expense` − `income_tax_current` | +| `total_pretax_income` | = | `income_before_equity_method` + `equity_method_investments` | +| `income_before_equity_method` | = | `total_pretax_income` − `equity_method_investments` | +| `net_income_to_noncontrolling_interest` | = | `net_income_nci_redeemable` + `net_income_nci_nonredeemable` | + +### 7.3 Balance Sheet Rules + +| Target | = | Formula | Notes | +|--------|---|---------|-------| +| `total_noncurrent_assets` | = | `total_assets` − `total_current_assets` | | +| `total_noncurrent_liabilities` | = | `total_liabilities` − `total_current_liabilities` | | +| `total_liabilities_and_equity` | = | `total_assets` | Accounting equation | +| `total_liabilities` | = | `L&E` − `E_nci` − `redeemable_nci` | With mezzanine (tried first) | +| `total_liabilities` | = | `L&E` − `E_nci` | Without mezzanine (fallback) | +| `total_equity_and_nci` | = | `total_equity` + `NCI` | | +| `total_equity` | = | `E_nci` − `NCI` | | +| `total_common_equity` | = | `total_equity` − `preferred_equity` | | +| `total_common_equity` | = | `total_equity` | When no preferred stock | +| `E_nci` | = | `total_equity` | When NCI not separately reported | +| `redeemable_nci` | = | `redeemable_nci_common` + `redeemable_nci_preferred` + `redeemable_nci_other` | Direct mezzanine breakdown | +| `redeemable_nci` | = | `L&E` − `L` − `E_nci` | Mezzanine from identity (e.g., BlackRock) | + +### 7.4 Cash Flow Rules + +| Target | = | Formula | +|--------|---|---------| +| `net_change_in_cash` | = | `operating` + `investing` + `financing` + `fx_effect` | +| `effect_of_exchange_rate_changes` | = | `net_change` − `operating` − `investing` − `financing` | +| `depreciation_and_amortization` | = | `depreciation_expense` + `amortization_expense` | + +The FX derivation is common after companies switch to the +`...IncludingExchangeRateEffect` net-change tag, which embeds FX in the +total and eliminates the separate FX line item. + +### 7.5 Multi-Pass Cascading + +Rules execute in up to 10 passes. Example cascade for an industrial IS: + +- Pass 1: `total_gross_profit` derived from revenue and COGS +- Pass 2: `total_operating_income` derived from the just-computed GP +- Pass 3: `total_other_income` derived from the just-computed OpInc + +Early exit occurs on the first pass with no new derivations. + +--- + +## 8. Hierarchical Articulation + +### 8.1 The Parent-Child Tree + +Schema rows define a tree structure via the `parent` and `factor` fields. +For example, `total_operating_expenses` is the parent node; `selling_general_and_admin`, +`depreciation_and_amortization`, `research_and_development`, etc. are its +children with `factor="+"`. + +### 8.2 Bottom-Up Rollup and Plug Generation + +Before imputation, the engine performs hierarchical articulation: + +1. **Process deepest nodes first** (strict bottom-up traversal). +2. **If a parent has no value**: impute it as the sum of its children + (weighted by each child's factor). Source: `"imputed-rollup"`. +3. **If a parent has a value that differs from the children sum beyond + tolerance**: generate a synthetic `other_{parent_tag}` plug row equal to + the difference. Source: `"imputed-plug"`. + +This ensures the statement tree always articulates exactly. The plug rows +represent line items the company reports but may not tag individually in XBRL +(e.g., "other operating expenses" that aren't separately itemized). + +### 8.3 Large Plug Diagnostics + +Not all plugs indicate legitimate "other" items — some arise because the +schema doesn't map a company's custom extension tag. To surface potential +schema coverage gaps, the engine emits a `LARGE_PLUG` diagnostic when a plug +exceeds **20% of the parent's value**. These diagnostics appear in the +`ValidationWarning` list with identity `"LARGE_PLUG: {pct}% of {parent}"`. + +Maintainers reviewing large-plug diagnostics should check whether: + +- The company legitimately clumps remaining expenses into an untagged + "Other" bucket (common for `other_operating_expenses`). +- The schema is missing a mapping for a company-specific extension tag + (e.g., `CompanySpecificRAndDExpense`) that should be added to the tag + chain for a standard row. + +### 8.4 Why This Matters + +Hierarchical rollup enables imputation paths that otherwise wouldn't fire. +For example, `total_operating_expenses` may not have a direct XBRL tag, but +if SG&A, D&A, and R&D are all extracted, the rollup computes OpEx — which +then allows the imputation rule `COGS = C&E − OpEx` to derive cost of +revenue in the first pass. + +Articulation runs **twice**: once before imputation (to seed the rules) and +once after identity enforcement (to propagate any overrides back through +the tree). + +--- + +## 9. Pre-Imputation Corrections + +Before imputation rules fire, two targeted corrections fix known scope +mismatches that would otherwise propagate errors through the derivation chain. + +### 9.1 Equity-Method Pretax Reclassification + +**Problem:** Some filers use `IncomeLossFromContinuingOperationsBeforeIncomeTaxes` +`MinorityInterestAndIncomeLossFromEquityMethodInvestments` — a pretax tag +that **excludes** equity-method investment income. The corresponding net +income tag (`ProfitLoss`) **includes** equity-method income. This scope +mismatch means `Pretax ≠ NI + Tax`. + +**Resolution:** When the narrow pretax tag is detected (via its source +string), the engine checks three cases: + +1. **Narrow identity already holds** (`pretax = NI + tax` within tolerance): + Both values share the same scope — no correction needed. +2. **NI comes from total-scope `ProfitLoss`**: Clear pretax so imputation + derives it from `NI + tax`, maintaining scope consistency. +3. **Equity-method income is available**: Add `equity_method_investments` to + pretax to broaden its scope. The narrow value is preserved as + `income_before_equity_method`. + +### 9.2 ProfitLoss Discontinued-Operations Adjustment + +**Problem:** When `net_income_continuing` maps to the bare `ProfitLoss` tag, +the extracted value is total NI (including discontinued operations). But the +pretax identity `Pretax = NI_continuing + Tax` expects NI from continuing +operations only. + +**Resolution:** When NI is sourced from `ProfitLoss` (not a continuing-ops +variant like `ProfitLossFromContinuingOperations`), and `net_income_discontinued` +has a nonzero value, subtract it: + +``` +NI_continuing = ProfitLoss − NI_discontinued +``` + +Source updated to `ProfitLoss(disc-adjusted)`. + +**Critical guard:** This adjustment only fires when `income_tax_expense` also +uses a `ContinuingOperations`-scoped tag. If tax is total-scope, adjusting +NI to continuing scope while leaving tax at total scope would create a +*new* scope mismatch. In that case, both NI and tax remain total-scope and +the pretax identity holds as-is. + +This guard resolved 7 identity failures (IBM, Merck, Honeywell) where +the original unguarded adjustment broke the NI/tax scope alignment. + +--- + +## 10. Post-Imputation Corrections + +### 10.1 Gross Profit Recalculation + +When COGS was derived from C&E after the initial hierarchical rollup set GP +equal to Revenue (because COGS was missing at rollup time), GP is +recalculated as `Revenue − COGS` from the now-known COGS value, and +imputation re-runs to propagate the correction through downstream identities. + +### 10.2 COGS Disambiguation + +Some companies (e.g., Verizon 2015–2017) report a *narrow* +`CostOfGoodsSold` (product-only) while also reporting `CostsAndExpenses` +(total). When the narrow COGS + rollup OpEx doesn't account for C&E, the +engine overrides: `COGS = C&E − OpEx`. + +Guards prevent false positives: +- Only triggers on direct XBRL values (not already-imputed ones) +- C&E must approximately equal `Revenue − OpInc` (within tolerance) +- Reported COGS + OpEx must be < 95% of C&E (confirming COGS is partial) + +### 10.3 OpEx Disambiguation + +Some companies (e.g., Caterpillar) report `OperatingExpenses` as the total +of all costs and expenses (including COGS), not just the SG&A/D&A expenses +below gross profit. The engine detects this when `OpEx > Gross Profit` and +corrects: `OpEx = GP − OpInc`. Source: `"corrected: total_gross_profit - total_operating_income"`. + +### 10.4 Equity Reconciliation + +When the XBRL decomposition of equity into parent + NCI is inconsistent with +the reported total, but the top-level BS identity (`L + E_nci + R_nci = L&E`) +holds within tolerance, the engine overrides: + +``` +total_equity = total_equity_and_nci − noncontrolling_interests +``` + +This handles companies like BlackRock where mezzanine classification +differences cause inconsistency in the sub-total tagging. + +--- + +## 11. Identity Enforcement & Verification + +### 11.1 The Three-Tier Approach + +After imputation and corrections, the system runs a full identity +enforcement and verification pass. This is the most sophisticated part of +the pipeline and operates in three tiers: + +1. **Soft-target enforcement**: If the target of an identity is a soft value + (rollup, plug, fallback, or imputation-derived subtotal), override it. + These values are less authoritative than direct XBRL facts. +2. **Targeted corrections**: Apply specific domain knowledge to resolve + known patterns (NCI scope, discontinued operations, disposal groups). +3. **Hard diagnostics**: When no safe enforcement path exists, emit a + `ValidationWarning`. The system never silently overwrites authoritative + XBRL data merely to make an identity pass. + +The implementation is slightly more selective than a generic "soft vs hard" +description suggests. Only a narrow set of source markers are treated as +algebraically replaceable components: `imputed-rollup`, `imputed-plug`, and +`(fallback)`. A broader set of target markers can be overridden as stale +identity targets; this broader set additionally includes `imputed:` values. +If exactly one source component is soft, the engine solves for that source +algebraically. If the cash-flow rule is ambiguous or a known scope mismatch +is in play, enforcement is skipped and the system falls back to diagnostic +selection logic. + +### 11.2 Verification Rules + +The verification rule sets are curated separately from imputation rules. +They include only identities that can be meaningfully checked without +creating circular overrides. + +#### Income Statement (`_IS_VERIFY`) + +| Identity | Why Checked | +|----------|-------------| +| `total_pretax_income = net_income_continuing + income_tax_expense` | Core tax bridge | +| `net_income_continuing = total_pretax_income − income_tax_expense` | Tax bridge inverse | +| `total_gross_profit = total_revenue − total_cost_of_revenue` | GP identity | +| `total_operating_income = total_gross_profit − total_operating_expenses` | OpInc identity | + +**Excluded:** `net_income = net_income_continuing + discontinued`. The +`ProfitLoss` tag is the authoritative NI figure that ties to the cash flow +statement. The continuing + discontinued identity uses broader NCI-inclusive +tags that can disagree with `ProfitLoss` for companies with disc ops (3M, +Honeywell, J&J, Merck). + +#### Balance Sheet (`_BS_VERIFY`) + +| Identity | Why Checked | +|----------|-------------| +| `total_assets = total_liabilities_and_equity` | Fundamental equation | +| `E_nci = total_equity + NCI` | Equity decomposition | +| `total_equity = E_nci − NCI` | Equity inverse | +| `total_liabilities = L&E − E_nci − redeemable_nci` | With mezzanine | +| `total_liabilities = L&E − E_nci` | Without mezzanine (fallback) | + +**Excluded:** Noncurrent derivations and common equity identity +(`StockholdersEquity` includes preferred equity in XBRL for many filers). + +#### Cash Flow (`_CF_VERIFY`) + +| Identity | Why Checked | +|----------|-------------| +| `net_change = operating + investing + financing + fx_effect` | CF identity with FX | +| `net_change = operating + investing + financing` | CF identity without FX | +| `net_change = operating + investing + financing + fx_effect + other_net_changes` | CF identity with FX and other (e.g. Ferrovial business-acquisition cash) | +| `net_change = operating + investing + financing + other_net_changes` | CF identity without FX, with other | + +Four rules compete based on the net-change tag (Section 11.5) and the +presence of reconciling items outside the standard activity buckets. D&A +decomposition is excluded because `DepreciationDepletionAndAmortization` +includes depletion while `Depreciation + Amortization` does not. + +#### Cash Balance Verification + +In addition to the rule-based identities above, a separate cash balance +post-processing step verifies: + +``` +cash_at_end_of_period = cash_at_beginning_of_period + net_change_in_cash +``` + +This identity is enforced directly during cash balance post-processing +(Section 6.2, step 13) rather than through `_CF_VERIFY`. When the identity +fails, the engine attempts to override soft components (beginning-of-period +values derived from the prior period's ending balance, or net-change values +from imputation) to satisfy the constraint. Genuine mismatches are surfaced +as diagnostics. + +### 11.3 Tolerance + +Identity checks use a **scale-adaptive tolerance** (`_tolerance()`). +The threshold is **0.1% of the largest absolute value** among the identity +components, floored at **$100,000** and capped at **$1,000,000**: + +```python +_TOLERANCE_FLOOR = 100_000 +_TOLERANCE_CAP = 1_000_000 + +def _tolerance(*values): + scale = max(abs(v) for v in values if v is not None) + return max(_TOLERANCE_FLOOR, min(_TOLERANCE_CAP, scale * 0.001)) +``` + +This accommodates SEC filing conventions where values are rounded to +millions or thousands, while avoiding false passes on small-cap companies +whose totals are closer to the floor. + +### 11.4 Soft Value System + +The enforcement logic classifies every value's provenance as "soft" or +"hard" using marker strings in the source field: + +**Source-soft markers** (unreliable — can be overridden when they are a +component of an identity): +- `"imputed-rollup"` — parent computed from children sum +- `"imputed-plug"` — synthetic balancing remainder +- `"(fallback)"` — cross-vintage extraction + +**Target-soft markers** (can be overridden as the *target* of an identity): +- All source-soft markers, plus: +- `"imputed:"` — imputation-derived values are stale if inputs changed + +When an identity fails: + +1. **Target is soft?** Override target with identity-computed value. + Source: `"identity-enforced: ..."`. +2. **Exactly one source is soft?** Solve for the soft source algebraically. +3. **All hard, or multiple soft?** Record as `pending_diagnostic`. + +Values marked `corrected:` or `reconciled:` are not automatically treated as +soft by the enforcement engine. They reflect targeted post-extraction logic, +not generic rollup or plug behavior, and are therefore allowed to stand +unless a more specific correction path applies. + +### 11.5 CF Rule Competition + +Cash flow net-change tags come in two flavors: + +- **FX-exclusive**: `...ExcludingExchangeRateEffect` — identity requires + the three activities *without* the FX line. +- **FX-inclusive**: `...IncludingExchangeRateEffect` or the older + `CashAndCashEquivalentsPeriodIncreaseDecrease` — identity requires the + three activities *plus* the FX line. + +Detection is by tag-name inspection: +- Explicit `ExcludingExchangeRateEffect` → use without-FX rule only. +- Explicit `IncludingExchangeRateEffect` → use with-FX rule only. +- **Ambiguous** (e.g., `CashPeriodIncreaseDecrease`): both rules compete. + The first to pass wins via `verified_pairs`; if both fail, the pending + diagnostic with the smaller difference is kept. + +### 11.6 Pending Diagnostics Pattern + +When multiple rules can verify the same target tag (e.g., the two CF rules, +or the two `total_liabilities` rules), a diagnostic is only emitted if **no** +rule succeeds: + +- **`verified_pairs`**: Set of `(target_tag, date)` tuples where any rule passed. +- **`pending_diagnostics`**: Dict mapping `(target_tag, date)` to the most + recent `ValidationWarning`. + +After all rules are processed, diagnostics are emitted only for pairs that +appear in `pending_diagnostics` but NOT in `verified_pairs`. The paper's +"zero unresolved identity violations" claim should therefore be read as "no +target/date pair remained unverified after all applicable rule variants and +correction paths were attempted." + +### 11.7 IS NCI Correction (Boeing Pattern) + +**Problem:** Boeing reports `ProfitLoss` (includes NCI) as its net income +figure. The pretax tag is before-NCI scope. The identity +`Pretax = NI + Tax` fails by the NCI amount ($2M–$41M depending on year). + +**Resolution:** When the pretax identity fails and NI was sourced from +`ProfitLoss`, the engine looks up `NetIncomeLoss` (parent-only, excl. NCI) +from the same filing in the raw XBRL data. If `Pretax = NetIncomeLoss + Tax` +holds within tolerance, NI is switched to the parent-only value. + +Source: `"us-gaap:NetIncomeLoss(NCI-corrected)"`. + +This correction requires access to the raw Company Facts JSON — the `facts` +dict is passed into the `impute()` method specifically to enable this +lookup. + +### 11.8 CF Discontinued Operations Correction (Disney/Merck/Coca-Cola) + +**Problem:** When a company reports activity totals for continuing +operations only but the net-change tag covers all operations, the CF +identity fails by the cash flows from discontinued operations. + +The schema includes a dedicated row: `net_cash_from_discontinued_operations`, +mapped to `NetCashProvidedByUsedInDiscontinuedOperations` and +`CashProvidedByUsedInDiscontinuedOperations`. + +**Resolution:** When the CF identity fails, the engine checks whether +adding the disc-ops cash flow bridges the gap: + +``` +If activities + disc_ops = net_change (within tolerance): + → Identity verified, no diagnostic emitted. +``` + +This resolved identity failures for Disney ($10.97B disc ops in 2020), +Merck ($349M across ops/inv/fin), and Coca-Cola ($15M/$91M). + +### 11.9 Disposal Group Fallback (UnitedHealth Pattern) + +**Problem:** UnitedHealth has no `NetCashProvidedByUsedInDiscontinuedOperations` +tag, but does report a `DisposalGroupIncludingDiscontinuedOperations` variant +of the net-change tag (a separate total that includes disc ops). + +**Resolution:** When no disc-ops row is available, the engine searches the +raw XBRL for disposal-group net-change tags. If found, it derives disc-ops +cash flow as: + +``` +disc_ops = total_net_change − disposal_group_net_change +``` + +And verifies: `activities + disc_ops ≈ total_net_change`. + +This resolved UnitedHealth's identity failures ($104M and −$592M). + +### 11.10 CF Derived-Value Identity Enforcement (Quarterly YTD/Q4 Pattern) + +**Problem:** For quarterly cash flow data, different rows within the CF +identity (`net_change_in_cash = operating + investing + financing + fx_effect`) +are often extracted from XBRL tags with different scope or basis. For example, +the operating total may come from a `ContinuingOperations`-scoped tag while +net change uses a total-scope tag, or one row may use a newer +`RestrictedCash`-inclusive basis while others use the older +`CashAndCashEquivalentsOnly` basis. When annual YTD cumulative values are +independently de-cumulated per row to recover quarterly amounts +(Q2 = YTD_Q2 − Q1, Q3 = YTD_Q3 − YTD_Q2), these scope and basis +differences cause the de-cumulated quarterly values to diverge — even though +the annual identity holds perfectly. + +This pattern accounted for **all 72 quarterly CF identity violations** across +45 companies in the validation corpus. Annual data was unaffected because the +scope/basis differences are immaterial at the full-year level (continuing +equals total for companies without disc ops, and both cash bases typically +agree at year-end). + +**Resolution:** After the standard soft-value enforcement and targeted +correction passes, the engine checks whether any participant in a failing CF +identity carries a derived-value marker: `ytd_derived`, `Q4:`, `H2:`, or +`q4_h2_derived`. If so, the discrepancy is attributed to the de-cumulation +process rather than to a genuine data inconsistency, and `net_change_in_cash` +is overridden to equal the activity sum: + +``` +net_change_in_cash = operating + investing + financing [+ fx_effect] +``` + +The activity totals (operating, investing, financing) are treated as the +primary building blocks because they are the direct decomposition of cash +generation; net change is the dependent variable. When a CF scope mismatch +is also flagged, the source is recorded as `"scope-aligned: ..."`; +otherwise as `"identity-enforced: ..."`. + +This enforcement fires only when at least one participant value (either the +target or any source) has a derived-value provenance marker — it never +overrides identities composed entirely of direct XBRL facts. The check +examines both the target source string and all source component source +strings, ensuring edge cases where only the activity totals are derived +(but net change is a direct XBRL fact for that quarter) are also caught. + +--- + +## 12. Scope Mismatch Resolution + +Scope mismatches are the most challenging class of XBRL data quality issues. +They occur when two tags that should be at the same level of consolidation +are not. The system handles four distinct patterns: + +### 12.1 CF Scope Mismatch (Activities = Continuing, Net Change = Total) + +**Example filers:** Goldman Sachs, American Express, Caterpillar, and a large +majority of the validation corpus. + +Many filers only have `ContinuingOperations`-scoped tags for their activity +totals (operating, investing, financing) while the net change tag is total. +For companies with no discontinued operations (the vast majority), continuing +equals total and the identity holds. + +**Resolution:** The system detects `ContinuingOperations` in activity +sources and flags `_cf_scope_mismatch`, but does **not** bail out. It +proceeds with verification. If the identity passes (common case — no disc +ops), the pair is verified normally. If it fails, disc ops correction +(Section 11.8) or disposal group fallback (Section 11.9) resolves it. +Only if all paths fail is a diagnostic emitted with `SCOPE_MISMATCH` labeling. + +This pattern accounted for a large share of the original cash-flow scope +mismatches and is covered by the validation corpus and regression tests. + +### 12.2 IS Scope Mismatch (Pretax ≠ NI + Tax Due to Equity Method) + +See Section 9.1. The narrow pretax tag excludes equity-method income while +NI includes it. Fixed during pre-imputation. + +### 12.3 IS Scope Mismatch (NI = Continuing, Tax = Total) + +See Section 9.2, critical guard. When NI has been disc-adjusted to continuing +scope but tax remains total scope, the system detects this combination and +preserves both at total scope instead. + +### 12.4 IS NCI Mismatch (ProfitLoss vs. NetIncomeLoss) + +See Section 11.7. `ProfitLoss` includes NCI; `NetIncomeLoss` excludes it. +The pretax tag may be at either scope. Fixed during enforcement by checking +the alternative tag. + +--- + +## 13. Quarterly Methodology & Q4 Reconstruction + +### 13.1 Why Quarterly Reconstruction Is Necessary + +For SEC filers, quarterly duration data is structurally asymmetric. Q1, Q2, +and Q3 are typically reported in interim 10-Q filings, but no standalone Q4 +filing exists. Instead, the annual 10-K reports **full-year duration totals** +for income statement and cash flow concepts. In raw Company Facts data, this +means the annual fact is ordinarily available as a FY amount, while the +fourth quarter must be recovered indirectly. + +This distinction matters because Q4 reconstruction is not a convenience or a +presentation choice. It is the canonical method for obtaining quarterly +monetary duration values from SEC Company Facts. When a full-year audited +total and the first three interim quarters are available, the defensible +fourth-quarter value is: + +``` +Q4 = FY - (Q1 + Q2 + Q3) +``` + +The methodology therefore treats annual duration totals as authoritative for +the completed fiscal year and uses them to reconstruct Q4 for monetary flow +items. Shares and per-share metrics are handled differently because they do +not aggregate additively across quarters. + +### 13.2 10-K Vintage Override + +For quarters within a completed fiscal year, the reference filing date is +overridden to the 10-K filing date for IS and CF only. This ensures restated +comparatives match the annual total. BS is excluded — the 10-K only contains +FY-end instant snapshots, not Q1/Q2/Q3 snapshots. + +This override is a methodological choice in favor of internal consistency. +Without it, a quarterly series can mix preliminary interim values from 10-Qs +with the audited annual total from the 10-K, producing a Q4 residual that +absorbs filing-vintage differences rather than economic activity. By forcing +the completed fiscal year's duration series to reference the 10-K vintage, +the system ensures that Q1 + Q2 + Q3 + Q4 ties back to the audited annual +figure whenever a complete monetary series exists. + +### 13.3 Reconstruction Rules by Unit Type + +| Unit Type | Derivation | +|-----------|-----------| +| `monetary` | `Q4 = FY − (Q1 + Q2 + Q3)`. Always override any direct Q4 value. | +| `shares` | No derivation. Weighted-average shares don't sum across quarters. | +| `per_share` | No derivation. Affected by stock-split vintage mismatches. | + +The override for monetary items is intentional. If a direct-looking Q4 fact +appears in Company Facts, it is not treated as more authoritative than the +audited full-year total minus the reported interim quarters. The annual total +is the primary fact; Q4 is the residual required to produce a complete, +internally consistent quarterly series. + +This rule should be interpreted narrowly. It applies only to **monetary +duration items**. Shares outstanding, weighted-average shares, earnings per +share, and similar metrics are excluded because additive quarter subtraction +is not economically meaningful for those unit types. + +### 13.4 Semi-Annual Reporters + +IFRS and other foreign private issuers often do not supply a US-style 10-Q +sequence. Instead, the interim duration facts arrive through `6-K` filings, +typically as a single first-half (`H1`) report followed by the audited +full-year `20-F` or `40-F`. The runtime therefore treats semi-annual +reporters as a distinct pattern rather than as a quarterly series with +missing quarters. + +The detection logic is implementation-specific and worth stating explicitly: + +1. During filing-date discovery, 60-135 day duration facts from `10-Q` + filings are treated as quarterly candidates, while 150-200 day duration + facts from `6-K` filings are treated as semi-annual candidates. +2. For quarterly-mode extraction, canonical annual FY-end dates from + `20-F` / `40-F` are still added to the date set, because those FY-end + dates become the `H2` anchors for semi-annual reporters. +3. In fiscal-metadata assignment, an FY-end date is labeled `H2` instead of + `Q4` when the company has no quarterly stream but does have semi-annual + interim data. + +For monetary duration rows, the derivation rule is: + +``` +H2 = FY - H1 +``` + +But that subtraction is guarded. The engine only derives `H2` when exactly +one interim duration fact exists between the fiscal-year start and the FY-end +and that interim date lies near the fiscal midpoint (within ±45 days of half +the fiscal-year length). This midpoint guard prevents a quarterly filer with +only one available interim fact, such as an isolated Q3, from being +misclassified as a semi-annual reporter and producing a false `H2` residual. + +The annual total remains authoritative here for the same reason it does in +Q4 reconstruction: the audited full-year duration fact is the anchor, and the +second-half value is the residual needed to make the annual series internally +consistent. Shares and per-share rows are excluded for the same reason they +are excluded from Q4 derivation: those units do not aggregate additively +across subannual periods. + +For maintainers, the practical implication is that IFRS support is not only a +matter of adding `ifrs-full` tags to the chains. It also requires preserving +the semi-annual period model itself: `6-K` interim discovery, `H1` / `H2` +labeling, and audited-year anchoring. BHP is the current corpus exemplar for +this pattern. + +This is also why the quarterly validation criterion in Section 17 should be +read in two forms: `Q1 + Q2 + Q3 + Q4 = FY` for quarterly monetary duration +series, and `H1 + H2 = FY` for semi-annual monetary duration series. Those +equalities are the operational tests that the reconstruction method is using +the correct filing vintage and the correct annual anchor. + +### 13.5 Point-in-Time Considerations + +**Design trade-off:** The 10-K vintage override (Section 13.2) optimizes for +*accounting consistency* — ensuring `Q1 + Q2 + Q3 + Q4 = FY` — rather than +*point-in-time (PIT) fidelity*. For a completed fiscal year, the Q1 record +reflects the restated value from the annual audit, not the preliminary value +that was publicly available at the end of Q1. + +**Who is affected:** Quantitative finance practitioners who backtest trading +strategies against this data. Using the default (consistency) mode, a +backtest would have access to information that was not available at the time +of the decision — a form of look-ahead bias. + +**Mitigation: `pit_mode`** + +Both `resolve_company_facts()` and `get_standardized_financials()` accept a +`pit_mode=True` parameter. When enabled: + +1. The 10-K vintage override is **skipped** for quarterly IS and CF data. +2. Each quarter's values reflect the filing vintage of the original 10-Q. +3. Q4 values may not reconcile to the FY total (because Q1–Q3 values may + differ between the preliminary 10-Q and the restated 10-K comparatives). + +**When to use each mode:** + +| Use Case | Mode | Rationale | +|----------|------|-----------| +| Financial analysis, screening, dashboards | Default (`pit_mode=False`) | Internal consistency matters more than temporal accuracy | +| Backtesting, event studies, PIT databases | `pit_mode=True` | Temporal accuracy matters more than arithmetic consistency | +| Academic research | Depends on methodology | PIT for asset pricing; default for accounting studies | + +The `pit_mode` flag does not affect annual data (annual values are inherently +per-filing) or balance sheet data (BS values are always per-filing because +instant snapshots are only available from the filing that reported them). + +Additionally, `pit_mode` changes filing-date selection from *latest* to +*earliest* in `compute_ref_filings`, and disables the 450-day filing cap +(Section 6.1), since the goal is to capture the original filing regardless +of when later amendments were filed. + +**Combining with `include_preliminary`.** When both `pit_mode=True` and +`include_preliminary=True` are set, 8-K filings are eligible for reference +filing selection. This can capture preliminary earnings data released before +the 10-Q is filed — the most temporally accurate view available. Use this +combination for PIT databases that need to reflect what the market saw at the +earliest possible date. + +--- + +## 14. Final Output Format + +### 14.1 Record Schema + +`company_facts.py` converts each `StatementResult` into long-format +records and applies the final output-layer source rewrites used by the public +API: + +| Field | Type | Description | +|-------|------|-------------| +| `period_ending` | `str` | ISO date of the period end | +| `fiscal_year` | `int` | SEC-sourced fiscal year, monotonicity-corrected | +| `fiscal_period` | `str` | `"FY"`, `"Q1"`–`"Q4"`, `"H1"` / `"H2"` | +| `calendar_year` | `int` | Calendar year from the period-ending date | +| `calendar_period` | `str` | Calendar quarter `"Q1"`–`"Q4"` | +| `tag` | `str` | Standardized snake_case tag | +| `label` | `str` | Display label | +| `description` | `str` | Long-form schema description for the row | +| `sequence` | `int | float` | Display order within the statement | +| `factor` | `str` | `"+"`, `"-"`, or `"0"` | +| `balance` | `str` | `"debit"` or `"credit"` | +| `unit` | `str` | `"monetary"`, `"per_share"`, or `"shares"` | +| `currency` | `str` | ISO currency code | +| `value` | `float` | The extracted, derived, or enforced value | +| `source` | `str` | Full provenance string | +| `frequency` | `str` | `"annual"` or `"quarterly"` | + +The public container also retains `entity_name`, `cik`, `company_type`, +`currency`, and an aggregated `diagnostics` list. These metadata live on +`StandardizedStatements`, not on each record row. + +### 14.2 Null Handling + +Rows where `value` is `None` are excluded from output. The record list +is sparse — not every tag appears in every period. This sparsity is applied in +the output layer after extraction, date pruning, and frequency filtering. + +--- + +## 15. Zero-Value and Null-Value Policy + +### 15.1 The Zero Problem + +An imputed zero is a strong signal of either an error or a non-applicable +row: + +- **False derivation**: Two sources resolve to the same value from different + tag chains or filing vintages; their subtraction produces 0 spuriously. +- **Non-applicable row**: An imputation fires because all source tags happen + to have values, but the target concept doesn't apply to this company. + +### 15.2 Current Behavior + +The suspect-zero policy is applied in the **output-building layer**, not in +the core extraction engine. When `company_facts.py` converts a +`StatementResult` into long-format records, any exact zero whose source begins +with `"imputed"`, `"corrected"`, `"reconciled"`, `"Q4:"`, or `"H2:"` is +rewritten to an `imputed-zero` source label. If the source already begins +with `"imputed"`, the prefix is replaced in place; otherwise the output layer +wraps the existing source as `imputed-zero: ...`. + +Direct XBRL zeros are unaffected. This distinction is important for +maintainers: the extraction engine does not discard or suppress these values; +it emits them normally, and the public API marks only the exact-zero outputs +that came from a derivation or correction path. + +--- + +## 16. Schema Maintenance Workflow + +The schema is maintained across three distinct control surfaces: + +1. **Declarative structure** in `statement_schema/schemas/`: row definitions, + tag chains, company-type detection signals, and presentation metadata, + split across `_meta.json`, `income_statement.json`, `balance_sheet.json`, + and `cash_flow.json`. +2. **Runtime logic** in the `statement_schema/` package: `_detection.py` + (classification, filing dates), `_extraction.py` (row extraction, + reference filings), `_rules.py` (imputation/verification rule data), + `_imputation.py` (multi-pass imputation, articulation, enforcement), + and `_schema.py` (pipeline orchestration via `StatementSchema`). +3. **Public output assembly** in `company_facts.py`: record shaping, + suspect-zero labeling, period selection, multi-CIK ticker mapping, and + public container semantics. + +Maintainers should treat these surfaces differently. Tag additions, label +changes, sequence changes, and detection-signal changes belong in the schema +JSON files. Algebraic rules belong in `_rules.py`. Scope corrections, +filing-vintage behavior, and verification logic belong in `_imputation.py` +or `_extraction.py`. Record-level semantics and public container metadata +belong in `company_facts.py`. The most common maintenance error is making a +schema-level change to solve a runtime problem, or a runtime change to +compensate for a schema gap. + +### 16.1 Change Types and Control Points + +| Change Type | Primary File(s) | Secondary Review Surface | Notes | +|-------------|-----------------|--------------------------|-------| +| Add or reorder XBRL tags for an existing concept | `schemas/*.json` | `_extraction.py` behavior | Use when a filer reports the same economic concept under a missing or poorly prioritized tag. | +| Add a new standardized row | `schemas/*.json` | `_imputation.py` articulation and imputation logic | New rows often require parent/factor decisions and may need new rules or verification identities. | +| Adjust company classification signals | `schemas/_meta.json` | Validation corpus and `detect_type()` in `_detection.py` | Only change when the classification rule itself is wrong, not because one filer needs a tag-chain fix. | +| Add an imputation or verification rule | `_rules.py` | `_imputation.py`, validation corpus, and output diagnostics | Use only when the underlying economic identity is stable and cross-filer safe. | +| Add a targeted correction | `_imputation.py` | Validation corpus and output diagnostics | Encode filer-behavior patterns with explicit guard conditions. | +| Change output semantics or suspect-zero handling | `company_facts.py` | Downstream consumers | These are public-contract changes and should be treated as API-facing. | +| Add merged history for a multi-CIK ticker | `company_facts.py` | `merge_facts()` behavior | Update the explicit multi-CIK mapping used by the async fetch helper. | + +### 16.2 Tag-Chain Maintenance + +Tag-chain work should be the default response when a known standardized row +is missing data for a company that clearly reports the concept. The workflow +is: + +1. Confirm the concept already exists as a standardized row. +2. Inspect the raw Company Facts JSON for the missing period and identify the + actual XBRL tag being used. +3. Determine whether the tag is truly the same economic concept or only a + superficially similar label with different scope. +4. Insert the tag at the correct place in the chain based on specificity, + recency, and cross-filer prevalence. +5. Re-run validation across the corpus to ensure the new tag does not cause + historical scope bleed or interrupt an existing time series. + +Tag-chain changes should be preferred over runtime corrections whenever the +problem is simply that the engine is not seeing an available direct fact. +They should **not** be used to paper over scope mismatches. If adding a tag +causes a top-level series to jump, flip sign, or stop tying to a verified +identity, the issue is likely semantic rather than coverage-related. + +### 16.3 Rule and Correction Maintenance + +Runtime rule changes should be made only when the failure mode is structural +rather than lexical. Imputation and verification rule *data* belongs in +`_rules.py`; the *logic* that applies those rules belongs in +`_imputation.py`. Targeted corrections (scope-mismatch fixes, NCI swaps, +disc-ops adjustments) also live in `_imputation.py`. The decision path is: + +1. **Missing direct fact for a known concept** → tag-chain change. +2. **Parent-child articulation gap** → parent/factor review or articulation-aware row change. +3. **Stable accounting identity can safely derive the value** → imputation rule. +4. **A known XBRL pattern creates a false identity failure** → targeted correction. +5. **A check is useful for diagnostics but unsafe for derivation** → verification rule only. + +Corrections are the highest-risk maintenance surface because they encode +filer-behavior patterns, not just accounting identities. Any new correction +should document: + +1. The exact XBRL pattern it targets. +2. Why the pattern cannot be solved by tag-chain ordering alone. +3. The guard conditions that prevent it from firing on unrelated companies. +4. The specific issuers or periods used to validate it. + +### 16.4 Acceptance Criteria for Schema Changes + +No schema or rule change should be accepted without clearing the following +bar: + +1. No new unresolved `ValidationWarning` diagnostics across the validation corpus unless explicitly documented and accepted. +2. No regression in major top-level totals for previously validated periods. +3. No new discontinuity across historical tag transitions for major rows such as revenue, net income, total assets, operating cash flow, and net change in cash. +4. No new scope bleed introduced by broadening a tag chain with a semantically wider concept. +5. Any new standardized row must have a clear statement-level purpose and at least one validated extraction path. +6. Any new correction rule must show that the rule is narrower than the problem it fixes. +7. Any change that fixes a newly discovered failure mode should preserve or extend executable regression coverage in `test_company_facts.py` so the behavior becomes part of the maintained evidence chain. + +### 16.5 Recommended Review Checklist + +Before finalizing a maintenance change, reviewers should ask: + +1. Is this a schema problem, a runtime problem, or an output-contract problem? +2. Does the change improve coverage without weakening scope discipline? +3. Does it preserve filing-vintage consistency and cross-statement alignment? +4. Does it create a new silent override path where a diagnostic would be safer? +5. Is the rationale discoverable for the next maintainer without reading git history? + +The last point matters. This system accumulates institutional knowledge about +how SEC XBRL actually behaves in the wild. If a maintainer adds a tag, row, +or correction without recording the failure pattern it addresses, the next +maintainer has to rediscover the same edge case empirically. + +--- + +## 17. Reconstructing the Schema from Scratch + +If the `statement_schema/schemas/` JSON files were lost or a complete rebuild +were needed (e.g., for a new jurisdiction's GAAP), the following procedure +reproduces them from primary sources. The tooling to execute most of these +steps already exists in `xbrl_taxonomy_helper.py`. + +### 17.1 Phase 1: Obtain the Canonical Statement Trees + +The FASB taxonomy defines the official hierarchical layout of each financial +statement as **presentation linkbases** — XML files that specify which +elements appear on each statement, their nesting (parent-child), and their +display order. + +**What to fetch.** For the current taxonomy year (e.g., 2026), the three +core components are: + +| Component Key | Statement | Presentation Linkbase | +|---------------|-----------|----------------------| +| `sfp-classified` | Balance Sheet (classified) | `us-gaap-stm-sfp-classified-pre-{year}.xml` | +| `soi` | Income Statement (single-step) | `us-gaap-stm-soi-pre-{year}.xml` | +| `scf-indirect` | Cash Flow (indirect method) | `us-gaap-stm-scf-indirect-pre-{year}.xml` | + +Additional variants matter for specific company types: + +| Component Key | Used By | Purpose | +|---------------|---------|---------| +| `sfp-unclassified` | Financial / Insurance | No current/noncurrent split | +| `soi-insurance` | Insurance | Premium revenue, benefits & claims structure | +| `soi-bank` | Financial | Net interest income, provision, noninterest structure | +| `scf-direct` | Rare filers | Direct-method operating activities | +| `soc` | All | Statement of changes in stockholders' equity | + +**How to fetch.** Using the `XBRLManager`: + +```python +from xbrl_taxonomy_helper import XBRLManager + +mgr = XBRLManager() +nodes = mgr.get_structure("us-gaap", 2026, "sfp-classified") +``` + +This returns a tree of `XBRLNode` objects. Each node carries: +- `element_id` — the XBRL element name (e.g., `us-gaap_Assets`) +- `label` — human-readable name (e.g., "Assets, Total") +- `level` — nesting depth (0 = root, 1 = top-level subtotal, etc.) +- `parent_id` — the parent node's element ID +- `balance_type` — `"debit"` or `"credit"` +- `period_type` — `"instant"` or `"duration"` +- `abstract` — `True` for grouping headers (no data), `False` for taggable items +- `children` — nested child nodes in display order + +**What to do with it.** Walk the tree and make two decisions per non-abstract +node: + +1. **Keep or skip?** Many XBRL elements are too granular for a standardized + template (e.g., individual inventory components like + `InventoryFinishedGoods`, `InventoryWorkInProcess`, `InventoryRawMaterials`). + Keep elements at the level of aggregation that matches SEC 10-K face + statements — typically 15–25 monetary line items per statement per + company type. + +2. **Name it.** Choose a stable snake_case tag. Naming conventions: + - Subtotals: prefix with `total_` (e.g., `total_current_assets`) + - Supplemental: prefix with the parent concept (e.g., `basic_earnings_per_share`) + - Mirror the XBRL concept, not the label (labels vary across years) + +After this step you have four variant row lists: + +- **Industrial** (`sfp-classified` + `soi` + `scf-indirect`): Classified + balance sheet with current/noncurrent split. Income statement with + Revenue → COGS → Gross Profit → OpEx → Operating Income. Cash flow + indirect method. + +- **Financial** (`sfp-unclassified` + `soi-bank` + `scf-indirect`): + Unclassified balance sheet (loans, deposits, securities instead of + current/noncurrent). Income statement starting with Interest Income → + Interest Expense → Net Interest Income → Provision → Noninterest Income. + +- **Insurance** (`sfp-unclassified` + `soi-insurance` + `scf-indirect`): + Unclassified balance sheet with policy liabilities, deferred acquisition + costs, separate account assets. Income statement with Premium Revenue → + Benefits & Claims → Cost of revenue for non-insurance lines. + +- **Diversified** (Industrial structure minus Gross Profit + COGS): Revenue → + Costs & Expenses → Operating Income. No gross-profit decomposition because + conglomerates with mixed revenue streams (manufacturing + financial + + services) cannot split costs into COGS vs. SG&A. + +The [xbrlsite Report Frame](http://www.xbrlsite.com/2015/fro/us-gaap/html/ReportFrames/) provides +pre-built standardized templates per company type. Cross-reference these +with the FASB presentation trees to ensure coverage. + +### 17.2 Phase 2: Build Tag Chains from Empirical Data + +Each standardized row needs an ordered list of XBRL tags to try during +extraction (the "tag chain"). This cannot be derived from the taxonomy +alone — it requires empirical analysis of what companies actually report. + +**Step 2a: Assemble a test corpus.** Download Company Facts JSON for at +least 5–8 companies per type. Choose companies with long XBRL histories +(10+ years), diverse tag usage, and known complexity (e.g., companies that +changed their revenue recognition tag mid-series). The current validation +corpus covers 970 companies across all four company types. + +**Step 2b: For each standardized row, search every test company's data.** + +For a row like `total_revenue`, the search procedure: + +1. Start with the XBRL element from the FASB presentation tree (e.g., + `Revenues`). +2. Search the Company Facts JSON for all tags with matching values for + known revenue periods. This surfaces alternate tags the company used + in earlier taxonomy years. +3. Check the calculation linkbase — FASB defines which elements roll up + into `Revenues` (these are potential more-specific alternatives). +4. Search the full SEC EDGAR XBRL taxonomy for elements whose labels + contain the concept (e.g., "Revenue" in the label text). + +The calculation linkbase is fetched with: + +```python +# Calculation relationships for the income statement, year 2026 +calc_url = mgr.client.find_file( + "https://xbrl.fasb.org/us-gaap/2026/stm/", + "soi", "cal", "2026" +) +content = mgr.client.fetch_file(calc_url) +calculations = mgr.parser.parse_calculation(content, TaxonomyStyle.FASB_STANDARD) +# Returns: {child_element_id: {order, weight (+1/-1), parent_tag}} +``` + +**Step 2c: Order the chain.** Within each chain: + +1. **Most specific first.** `RevenueFromContractWithCustomerExcludingAssessedTax` + (ASC 606, excludes sales tax) before `Revenues` (catch-all). +2. **Current before deprecated.** Tags present in the latest taxonomy year + precede those removed in earlier years. Set `last_year` on deprecated tags. +3. **US GAAP before IFRS.** Most SEC filers use US GAAP. IFRS equivalents + go last as fallbacks for foreign private issuers (20-F filers). +4. **Higher cross-filer prevalence as tiebreaker.** If two tags are equally + specific, prefer the one used by more test companies. + +For IFRS tags, fetch element definitions from the IFRS taxonomy: + +```python +ifrs_nodes = mgr.get_structure("ifrs", 2025, "ias_1") +# Returns the IAS 1 (Presentation of Financial Statements) hierarchy +``` + +**Step 2d: Record year bounds.** If a tag existed only in certain taxonomy +years (US GAAP deprecates tags periodically), set `first_year` / `last_year` +as documentation. These are not enforcement filters — the extraction engine +tries all tags regardless — but they help future maintenance by flagging +which tags are sunset. + +**Step 2e: Validate by back-extraction.** For each test company, run the +extraction engine with the candidate chain and verify that: +- Every period where the company reported the concept produces a value +- Values match the company's actual filings (spot-check 3–5 periods + against the SEC EDGAR interactive viewer) +- The full time series isn't interrupted by tag transitions + +Typical chain sizes: + +| Row Type | Chain Length | Example | +|----------|-------------|---------| +| Revenue | 10–80+ entries | Covers ASC 606, legacy `SalesRevenueNet`, industry variants, IFRS | +| Subtotals (GP, OpInc) | 2–5 entries | Primary + IFRS + legacy variant | +| Simple items (D&A, Tax) | 1–3 entries | Primary us-gaap + ifrs-full | +| No XBRL tag | 0 entries | `cash_at_beginning_of_period` (always derived from prior period) | + +### 17.3 Phase 3: Populate Element Properties + +Each row needs `balance`, `period_type`, and `unit` fields — these come from +the XBRL element definitions in the FASB XSD schema, not from the +presentation linkbase. + +**How to obtain them.** The `XBRLManager` loads these automatically via +`_ensure_element_properties()`, but for manual inspection: + +```python +mgr = XBRLManager() +# Load properties for us-gaap 2026 +mgr._ensure_element_properties("us-gaap", 2026) + +# Check a specific element +props = mgr.parser.element_properties.get("us-gaap_Assets", {}) +# {'name': 'Assets', 'xbrl_type': 'monetaryItemType', +# 'period_type': 'instant', 'balance_type': 'debit', 'abstract': False, ...} +``` + +**Mapping rules:** + +| XBRL Property | Schema Field | Values | +|---------------|-------------|--------| +| `balance_type` | `balance` | `"debit"` or `"credit"` | +| `period_type` | `period_type` | `"instant"` (BS) or `"duration"` (IS, CF) | +| `xbrl_type` → `monetaryItemType` | `unit` | `"monetary"` | +| `xbrl_type` → `perShareItemType` | `unit` | `"per_share"` | +| `xbrl_type` → `sharesItemType` | `unit` | `"shares"` | + +**The `factor` field.** This is not in the taxonomy — it's application-level +metadata that defines how a row relates to its parent in the schema tree: +- `"+"`: adds to parent total (children that are additive components) +- `"-"`: subtracts from parent total (contra items like COGS, tax expense) +- `"0"`: supplemental disclosure (EPS, shares outstanding — don't roll up) + +Factors are determined from: (a) the calculation linkbase `weight` (+1/−1), +(b) the `balance_type` relative to the parent's `balance_type` (credit child +of debit parent = subtractive), and (c) accounting knowledge for items not +in the calculation linkbase. + +### 17.4 Phase 4: Set Up the Parent-Child Tree + +Each row's `parent` field defines the rollup hierarchy: + +``` +total_revenue (parent: null) +├── operating_revenue (parent: total_revenue, factor: "+") +├── other_revenue (parent: total_revenue, factor: "+") +total_cost_of_revenue (parent: null) +├── cost_of_goods_and_services (parent: total_cost_of_revenue, factor: "+") +total_gross_profit (parent: null) +``` + +For subtotals that are identity-linked (GP = Revenue − COGS), the parent +is `null` — they're handled by imputation rules, not tree rollup. + +For subtotals that are component-linked (Total OpEx = SG&A + D&A + R&D + +Other OpEx), the parent is `total_operating_expenses` and each child has +`factor: "+"`. The hierarchical articulation engine (Section 8) then +computes the parent from children or generates a plug row for the gap. + +### 17.5 Phase 5: Build Detection Signals + +Company type classification uses the presence/absence of specific XBRL tags +in the Company Facts data. The signals must satisfy: + +1. **Present in all companies of the type** — if `GrossProfit` exists, it's + industrial (or possibly insurance with non-insurance subsidiaries). +2. **Absent from other types** — `NetInterestIncome` shouldn't appear for + pure industrials. +3. **Available early in XBRL history** — signals that only appear post-2017 + won't classify older filings. + +**How to find them.** For each test company, compute the set of unique XBRL +tag names present in its Company Facts. Group by known company type. Take +set intersections within each type (tags common to all members) and set +differences across types (tags unique to one type). The intersection of +within-type frequency and cross-type absence gives the signal candidates. + +The current schema's detection block: + +```json +{ + "insurance_is_signals": ["PremiumsEarnedNet", "PolicyholderBenefitsAndClaimsIncurredNet", + "PolicyholderBenefitsAndClaimsIncurredHealthCare", + "BenefitsLossesAndExpenses", "InsuranceRevenue", + "InsuranceServiceResult", + "InsuranceServiceExpensesFromInsuranceContractsIssued", + "NetEarnedPremium"], + "insurance_bs_signals": ["LiabilityForFuturePolicyBenefits", "DeferredPolicyAcquisitionCosts", + "InsuranceContractsThatAreLiabilities", + "LiabilitiesArisingFromInsuranceContracts", "UnearnedPremiums"], + "financial_signals": ["InterestIncomeExpenseNet", "NoninterestIncome", + "ProvisionForLoanAndLeaseLosses", ...], + "industrial_signals": ["CostOfGoodsAndServicesSold", "CostOfRevenue", + "CostOfGoodsSold", "GrossProfit", "CostOfSales"], + "diversified_signals": ["CostsAndExpenses", "OperatingIncomeLoss", + "OperatingExpense", "ProfitLossFromOperatingActivities", + "OtherOperatingIncomeExpense"], + "min_financial_signals": 2 +} +``` + +The priority cascade (Section 4.2) prevents misclassification — e.g., +UnitedHealth reports `GrossProfit` because of its Optum subsidiary, but the +insurance signals fire first. + +### 17.6 Phase 6: Define Imputation Rules + +Imputation rules are algebraic rearrangements of fundamental accounting +identities (Appendix A). For each identity that applies to a company type, +write one rule per solvable variable: + +**From the identity `Gross Profit = Revenue − COGS`:** + +```python +# Rule 1: Solve for GP +("total_gross_profit", [("total_revenue", +1), ("total_cost_of_revenue", -1)]) + +# Rule 2: Solve for COGS +("total_cost_of_revenue", [("total_revenue", +1), ("total_gross_profit", -1)]) +``` + +**Rule ordering within a type matters.** Rules are tried in definition order +and the first applicable rule for a target tag wins. The current schema +places `CostsAndExpenses`-based rules before `GrossProfit`-based rules for +COGS derivation (Section 7.2) because C&E is more frequently available in +combination with OpEx from hierarchical rollup. + +**Derivation sources:** + +| Source | What It Tells You | +|--------|-------------------| +| FASB calculation linkbase | Which elements sum to which parent, with weights | +| xbrlsite ImputeRules | Pre-built identity-based derivation rules per company type | +| SEC 10-K face statements | What filers actually present — the practical minimum row set | +| Company Facts empirical gaps | Which derived values are needed — run extraction without imputation and see which rows are NULL that shouldn't be | + +**Common pitfall: circular rules.** If Rule A derives X from Y and Rule B +derives Y from X, the multi-pass engine could loop. The current system +avoids this by: (a) first-rule-wins semantics (once X is computed, Rule B +is skipped), and (b) 10-pass hard limit with early exit on no new +derivations. + +### 17.7 Phase 7: Define Verification Rules + +Verification rules (Section 11.2) are a *subset* of imputation rules. Not +every imputation identity should be verified — some have known scope +mismatches or competing definitions. + +**Inclusion criteria:** + +1. Both sides of the identity are commonly reported at the same scope. +2. The identity doesn't create circular enforcement (overriding X based on + Y, then checking Y based on X). +3. Empirical validation: the identity passes for ≥ 95% of company-periods + in the test corpus. Persistent failures indicate a scope mismatch pattern + that needs a targeted correction (Sections 9–11), not a verification rule. + +**Exclusion examples:** +- `Net Income = NI_continuing + NI_discontinued` — excluded from IS because + `ProfitLoss` vs `NetIncomeLoss` scope differences (NCI) cause persistent + mismatches for companies with disc ops. +- `D&A = Depreciation + Amortization` — excluded from CF because + `DepreciationDepletionAndAmortization` includes depletion but the + components don't. +- `StockholdersEquity = Common Equity + Preferred Equity` — excluded because + many filers include preferred equity within `StockholdersEquity` rather + than reporting it separately. + +### 17.8 Phase 8: Validate + +Run the complete pipeline against the full corpus for both annual and +quarterly frequencies. The validation checklist: + +**Completeness:** +1. No all-NaN rows — every row in the schema has data for at least one + company. If a row is always empty, its tag chain is wrong or the concept + doesn't apply. +2. Spot-check 5+ key totals per company (Revenue, Net Income, Total Assets, + Operating Cash Flow, Net Change in Cash) against the SEC EDGAR interactive + viewer for at least 3 periods. + +**Identity compliance:** +3. Zero `ValidationWarning` diagnostics across the full test corpus. Any + remaining diagnostics indicate either: (a) a wrong tag chain producing + an incorrect value, (b) a missing scope-mismatch correction, or (c) a + verification rule that shouldn't be checked for that pattern. + +**Cross-filer consistency:** +4. For each standardized tag, the sign convention is consistent across + companies. Revenue is positive. COGS is positive (presented as a cost, + not a negative revenue). Tax expense is positive in profitable years. +5. For each company type, the same rows are populated. An industrial company + should not have `net_interest_income` populated. + +**Time-series integrity:** +6. No discontinuities in total-level rows (Revenue, Assets, Operating CF) + across tag transitions. If Apple switched from `SalesRevenueNet` to + `RevenueFromContractWithCustomerExcludingAssessedTax` in 2018, the + chain should produce a continuous series. +7. Reasonable year-over-year movements — no 10x jumps without explanation. + These usually indicate a tag chain that crosses scope boundaries. + +**Quarterly consistency:** +8. `Q1 + Q2 + Q3 + Q4 = FY` for all monetary duration items. Failures + here indicate the quarterly reference filing date override (Section 13.2) + isn't working correctly for that company's fiscal calendar. For + semi-annual IFRS filers, the analogous check is `H1 + H2 = FY`. + +**Edge cases:** +9. Non-December fiscal year-ends (Apple September, Walmart January, + Microsoft June) produce correct fiscal year/period metadata. +10. Multi-CIK companies (BlackRock changed CIK in 2024) produce continuous + time series after `merge_facts()`. + + **Multi-CIK merge limitations:** The `merge_facts()` method performs a + pure concatenation with deduplication on `(end, start, val, form, filed)`. + It does **not** perform continuity checks across the CIK transition seam + (e.g., verifying that `total_assets` from the last period of the old CIK + naturally bridges to the first period of the new CIK). Corporate + restructurings that trigger a CIK change can involve spin-offs, + reclassifications, or consolidation changes that create genuine + discontinuities. Users should be aware that merged histories near the + transition date may reflect structural breaks in the underlying entity. + Currently, only three tickers use multi-CIK merging: Disney + (`0001744489` + `0001001039`), BlackRock (`0002012383` + `0001364742`), + and Alphabet (`0001652044` + `0001288776`). +11. IFRS filers (BHP) populate the IFRS tag chain entries correctly. + +--- + +## 18. Taxonomy Maintenance + +### 18.1 New Taxonomy Years + +When FASB or IFRS publishes a new taxonomy: + +1. Discover the new year via `FASBClient.get_available_years()`. +2. Parse the new schema for element definitions. +3. Check for deprecated tags — set `last_year` on affected chains. +4. Identify new candidate tags — add to front of chains with `first_year`. +5. Update metadata (year ranges, tag counts). +6. Validate against the full corpus and review the generated + `corpus_validation_report` outputs. + +### 18.2 Tag Chain Fixes + +If a company reports a value the schema doesn't capture: + +1. Download the company's facts JSON and search for the raw XBRL tag. +2. Determine where it belongs in the chain (specificity, recency, namespace). +3. Insert at the correct position. +4. Validate against all test companies to ensure no regressions. + +--- + +## Appendix A: Accounting Identities + +### Income Statement + +``` +Revenue − COGS = Gross Profit [Industrial] +Gross Profit − OpEx = Operating Income [Industrial] +Revenue − Costs & Expenses = Operating Income [Diversified] +Operating Income + Other Income = Pretax Income +Pretax Income − Tax = Net Income (Continuing) +Net Income (Continuing) + Discontinued Ops = Net Income +NII = Interest Income − Interest Expense [Financial] +NII After Provision = NII − Provision [Financial] +Revenue = NII + Noninterest Income [Financial] +Revenue = Pretax + Noninterest Expense [Financial fallback] +Revenue − Benefits/Costs/Expenses = Pretax [Insurance] +Tax = Current Tax + Deferred Tax +Pretax = Before-Equity-Method + Equity Method Income +CI = CI (Parent) + CI (NCI) +``` + +### Balance Sheet + +``` +Total Assets = Total Liabilities and Equity +L&E = Total Liabilities + Total Equity (incl NCI) + Redeemable NCI +Total Liabilities = L&E − E_nci − Redeemable NCI +Total Liabilities = L&E − E_nci [no mezzanine] +Redeemable NCI = L&E − L − E_nci +Total Assets = Current Assets + Noncurrent Assets +Total Liabilities = Current Liabilities + Noncurrent Liabilities +E_nci = Total Equity + Noncontrolling Interests +E_nci = Total Equity [no NCI] +Total Equity = Common Equity + Preferred Equity +Common Equity = Total Equity [no preferred] +``` + +### Cash Flow + +``` +Net Change = Operating + Investing + Financing + FX Effect +Net Change = Operating + Investing + Financing [FX embedded in net change] +FX Effect = Net Change − Operating − Investing − Financing +D&A = Depreciation + Amortization +``` + +--- + +## Appendix B: Validation Corpus + +The validation corpus contains **970 companies** across all four company +types: 619 industrial, 231 diversified, 68 financial, and 52 insurance. Three +merged multi-CIK histories (Disney, BlackRock, Alphabet) account for the +difference between 973 on-disk CIK files and 970 validated entities. The +authoritative machine-readable corpus lives in `validate_corpus.py`, and the +current run results live in `corpus_validation_report.txt` and +`corpus_validation_report.json`. + +Coverage is near-complete for the Russell 1000 index. The 30 included REITs +confirmed that no separate REIT template is needed: most classify as +diversified, with a small number classifying as industrial. + +### Appendix B.1 CIK Inventory + +The full corpus comprises 973 CIK entries (970 after multi-CIK merging). The +authoritative machine-readable inventory is maintained in `validate_corpus.py`. +A representative subset is listed below: +| CIK | Company / File Identity | Validation Mode | Edge Case | +|-----|--------------------------|-----------------|----------| +| 0000012927 | Boeing Co | Standalone | NCI scope mismatch | +| 0000018230 | Caterpillar Inc | Standalone | OpEx overloading | +| 0000019617 | JPMorgan Chase & Co | Standalone | Bank (financial template) | +| 0000050863 | Intel | Standalone | Long XBRL history | +| 0000066740 | 3M Company | Standalone | Discontinued operations | +| 0000080424 | Procter & Gamble Co | Standalone | Industrial reference | +| 0000086312 | The Travelers Companies, Inc. | Standalone | Insurance variant | +| 0000093410 | Chevron Corp | Standalone | Industrial reference | +| 0000104169 | Walmart Inc. | Standalone | Non-Dec FY (Jan) | +| 0000200406 | Johnson & Johnson | Standalone | Discontinued operations | +| 0000310158 | Merck & Co., Inc. | Standalone | Disc-ops CF | +| 0000320193 | Apple Inc. | Standalone | Non-Dec FY (Sep), long history | +| 0000731766 | UnitedHealth Group Incorporated | Standalone | Insurance, disposal-group fallback | +| 0000732712 | Verizon Communications Inc | Standalone | Narrow COGS tag | +| 0000789019 | MICROSOFT CORPORATION | Standalone | Non-Dec FY (Jun) | +| 0000811809 | BHP GROUP LIMITED | Standalone | IFRS semi-annual | +| 0000886982 | GOLDMAN SACHS GROUP INC | Standalone | Bank (financial template) | +| 0000937966 | ASML Holding | Standalone | IFRS filer | +| 0001001039 | Legacy Walt Disney Co | Merged into DIS | Multi-CIK, disc-ops | +| 0001018724 | AMAZON COM INC | Standalone | Large industrial | +| 0001045810 | NVIDIA CORP | Standalone | Non-Dec FY (Jan) | +| 0001050446 | MicroStrategy Inc. | Standalone | Mezzanine equity | +| 0001063761 | Simon Property Group, Inc. | Standalone | REIT (diversified) | +| 0001045609 | Prologis, Inc. | Standalone | REIT (diversified) | +| 0000726728 | Realty Income Corporation | Standalone | REIT (diversified) | +| 0001067983 | BERKSHIRE HATHAWAY INC | Standalone | Diversified conglomerate | +| 0001288776 | Google Inc. | Merged into GOOG | Multi-CIK | +| 0001318605 | Tesla, Inc. | Standalone | Industrial reference | +| 0001326801 | Meta Platforms | Standalone | Industrial reference | +| 0001364742 | BLACKROCK FINANCE, INC. | Merged into BLK | Multi-CIK, mezzanine | +| 0001468522 | Ferrovial SE | Standalone | IFRS filer | +| 0001639920 | Spotify Technology S.A. | Standalone | IFRS filer | +| 0001652044 | Alphabet Inc. | Merged into GOOG | Multi-CIK | +| 0001707925 | Linde plc | Standalone | IFRS filer | +| 0001744489 | Walt Disney Co | Merged into DIS | Multi-CIK, disc-ops | +| 0002012383 | BlackRock, Inc. | Merged into BLK | Multi-CIK, diversified | +| 0000947263 | TORONTO DOMINION BANK | Standalone | IFRS filer (bank) | + +The remaining ~938 entries span the breadth of the Russell 1000 index and are +enumerated in `validate_corpus.py`. + +### Appendix B.2 Merged Validation Histories + +| Merged Ticker | Raw CIK Chain | Combined Company History | +|---------------|---------------|--------------------------| +| DIS | 0001744489, 0001001039 | Walt Disney Co + Legacy Walt Disney Co | +| BLK | 0002012383, 0001364742 | BlackRock, Inc. + BLACKROCK FINANCE, INC. | +| GOOG | 0001652044, 0001288776 | Alphabet Inc. + Google Inc. | + +Selected edge cases from the inventory are discussed throughout the +paper and in Appendix C. The appendix's purpose is inventory completeness: +the full raw corpus membership is documented here, while the executable corpus +definition and merged-history behavior remain in code and generated reports. + +--- + +## Appendix C: Resolution of Known XBRL Patterns + +This appendix documents the specific XBRL data patterns that cause identity +failures and how each is resolved. These patterns were discovered through +empirical investigation of the validation corpus and retained because they +continue to recur across the 970-company regression set. + +### Pattern 1: ProfitLoss vs. NetIncomeLoss (NCI Scope) + +**XBRL Reality:** `ProfitLoss` = Net Income attributable to *all* +shareholders (parent + NCI). `NetIncomeLoss` = Net Income attributable to +*parent* shareholders only. Difference = NCI income. + +**Companies Affected:** Boeing ($2M–$41M NCI income). + +**Why It Causes Failure:** When the pretax tag is before-NCI scope and NI +comes from `ProfitLoss`, the identity `Pretax = NI + Tax` fails by the NCI +amount. + +**Resolution:** NCI correction (Section 11.7). The engine checks +`NetIncomeLoss` from the same filing and switches if the identity holds. + +### Pattern 2: ContinuingOperations Activity Tags (CF Scope) + +**XBRL Reality:** FASB provides both total-scope and continuing-ops-scope +variants of operating/investing/financing activity totals. Many filers +across the corpus use only the continuing-ops variants. The net-change tag +is always total-scope. + +**Why It Causes Failure:** `Activities(continuing) + FX ≠ NetChange(total)` +when discontinued operations generated cash flows. + +**Resolution:** Proceed with verification (Section 12.1). For most +companies, continuing = total. For disc-ops companies, the disc-ops row +or disposal-group fallback bridges the gap. + +### Pattern 3: Narrow Pretax Tag (Equity Method Exclusion) + +**XBRL Reality:** The long-form pretax tag +`...BeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments` +excludes equity-method income. `ProfitLoss` includes it. + +**Resolution:** Three-way branch in pre-imputation (Section 9.1). + +### Pattern 4: OperatingExpenses Overloading + +**XBRL Reality:** Some industrial filers tag `OperatingExpenses` as their +total costs including COGS, not just the SG&A/D&A subtotal. The tag is +semantically valid for both interpretations. + +**Companies Affected:** Caterpillar, others. + +**Resolution:** OpEx disambiguation (Section 10.3). + +### Pattern 5: Narrow COGS Tag + +**XBRL Reality:** `CostOfGoodsSold` at some filers is product-only, +excluding service costs. `CostsAndExpenses` (total) is also reported. + +**Companies Affected:** Verizon (2015–2017). + +**Resolution:** COGS disambiguation (Section 10.2). + +### Pattern 6: Cash Basis Transition + +**XBRL Reality:** Pre-2017, most filers used `CashAndCashEquivalents...` +tags. Post-2017, filers transitioned to +`CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents...` tags. +During the transition, activity components may use the old basis while the +net-change tag uses the new basis. + +**Resolution:** Both CF rules compete (Section 11.5). The FX-inclusive +variant gets tolerance for basis-mismatch differences. + +### Pattern 7: Discontinued Operations CF (Three Subtypes) + +**XBRL Reality:** Companies with disc ops may report them in three ways: + +1. **Separate disc-ops line** (`NetCashProvidedByUsedInDiscontinuedOperations`): + Disney, Merck, Coca-Cola. +2. **Disposal-group net-change variant**: UnitedHealth. +3. **No disc-ops tags at all** but net-change embeds them. + +**Resolution:** Three-stage fallback in verification (Section 11.8, 11.9). + +### Pattern 8: IFRS Semi-Annual H1/H2 Reporting + +**XBRL Reality:** Many foreign private issuers do not publish a quarterly +10-Q stream. Instead, interim duration facts appear in `6-K` filings as +roughly half-year periods, while the audited annual total appears in the +`20-F` or `40-F`. In the date series, this looks like one mid-year duration +point plus one FY-end duration point rather than Q1/Q2/Q3 plus FY. + +**Companies Affected:** BHP and other IFRS semi-annual filers. + +**Why It Causes Failure:** If the engine assumes a quarterly model, the FY-end +date would be mislabeled as `Q4`, and a lone interim fact could be mistaken +for partial quarterly coverage. That can produce an incorrect residual or a +misleading fiscal-period series. + +**Resolution:** Treat 150-200 day `6-K` durations as semi-annual candidates, +relabel FY-end dates to `H2` when no `10-Q` stream exists, and derive +`H2 = FY − H1` only when the lone interim date is near the fiscal midpoint. +This preserves a coherent `H1` / `H2` series without confusing semi-annual +reporters with quarterly reporters that have missing interim data. + +--- + +## Appendix D: File Reference + +| File | Lines | Purpose | +|------|-------|---------| +| `statement_schema/schemas/_meta.json` | ~73 | Metadata: version, generated date, taxonomy sources, detection signals | +| `statement_schema/schemas/income_statement.json` | ~10,470 | Row definitions and tag chains for 4 company types | +| `statement_schema/schemas/balance_sheet.json` | ~9,410 | Row definitions and tag chains for 4 company types | +| `statement_schema/schemas/cash_flow.json` | ~8,810 | Row definitions and tag chains for 4 company types | +| `statement_schema/__init__.py` | ~33 | Package init: re-exports all public names for backward-compatible imports | +| `statement_schema/_types.py` | ~88 | Dataclasses (`RowDef`, `RowResult`, `StatementResult`, `ValidationWarning`), enums, constants | +| `statement_schema/_detection.py` | ~420 | Company-type classification, filing-date discovery, fiscal metadata, currency detection | +| `statement_schema/_extraction.py` | ~730 | Row-level XBRL value extraction, reference filing computation | +| `statement_schema/_rules.py` | ~310 | Pure data: imputation and verification rule dictionaries | +| `statement_schema/_imputation.py` | ~1,800 | Multi-pass imputation, hierarchical articulation, identity enforcement, scope corrections | +| `statement_schema/_schema.py` | ~660 | `StatementSchema` class: pipeline orchestration, `extract`, `extract_all`, `merge_facts` | +| `company_facts.py` | ~580 | Public API: `resolve_company_facts`, `get_standardized_financials`, record formatting | +| `tests/test_company_facts.py` | ~2,650 | Executable regression evidence: synthetic edge cases plus the BlackRock real-data fixture | +| `xbrl_taxonomy_helper.py` | ~3,440 | Taxonomy access: `FASBClient`, `XBRLParser`, `XBRLManager`, `TAXONOMIES` registry | + +--- + +## Appendix E: External Resource URLs + +| Resource | URL | Purpose | +|----------|-----|---------| +| SEC Company Facts API | `https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json` | Raw XBRL data | +| SEC EDGAR Taxonomies | `https://www.sec.gov/info/edgar/edgartaxonomies.xml` | Taxonomy index | +| FASB US GAAP Taxonomy | `https://xbrl.fasb.org/us-gaap/{year}/` | Element definitions, hierarchies | +| IFRS Full Taxonomy | `https://xbrl.ifrs.org/taxonomy/{YYYY-MM-DD}/` | IFRS element definitions | +| xbrlsite Report Frame | `http://www.xbrlsite.com/2015/fro/us-gaap/html/ReportFrames/` | Statement structures, ImputeRules, company types | diff --git a/openbb_platform/providers/sec/openbb_sec/utils/company_facts.py b/openbb_platform/providers/sec/openbb_sec/utils/company_facts.py new file mode 100644 index 00000000000..066a37b7bd7 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/company_facts.py @@ -0,0 +1,581 @@ +"""Company Facts — Standardized Financial Statements from SEC XBRL Data.""" + +# pylint: disable=R0917 + +from __future__ import annotations + +from collections import defaultdict +from dataclasses import dataclass, field +from typing import Any, Literal + +from openbb_sec.utils.statement_schema import ( + Frequency, + StatementSchema, + ValidationWarning, +) +from pydantic import BaseModel + +PeriodType = Literal[ + "annual", "quarterly", "both", "ttm", "yoy", "yoy_quarterly", "pop" +] + + +def normalize_period_fields( + periods: dict[str, dict], + model_cls: type[BaseModel], +) -> None: + """Rebuild every period dict in model-field declaration order. + + After pivoting long-format records into per-period dicts, each dict + only contains the tags that had values for that period — and Python + dict key order follows insertion order from the pivot loop, not the + model's field declaration. Downstream serialisation (``model_dump``, + ``to_df``) preserves that insertion order, producing misaligned + columns when different periods report different fields. + + This function collects the union of all tags seen across *every* + period, then **rebuilds** each dict from scratch in model-field + declaration order, back-filling absent tags with ``float('nan')``. + NaN (rather than None) survives ``exclude_none=True`` and + ``exclude_unset=True`` in downstream ``model_dump`` calls, ensuring + every period carries the same keys in the same order. + + Fields whose annotation does not accept ``float`` (e.g. ``int | None``) + are back-filled with ``None`` instead, because ``float('nan')`` would + fail Pydantic validation for non-float types. + """ + _NAN = float("nan") + + int_fields: set[str] = set() + for fname, finfo in model_cls.model_fields.items(): + ann = finfo.annotation + if ann is int or ( + hasattr(ann, "__args__") and int in getattr(ann, "__args__", ()) + ): + int_fields.add(fname) + + all_tags: set[str] = set() + for d in periods.values(): + all_tags.update(d) + + model_fields = list(model_cls.model_fields) + ordered_tags = [f for f in model_fields if f in all_tags] + + for key, old in periods.items(): + periods[key] = { + tag: old.get(tag, None if tag in int_fields else _NAN) + for tag in ordered_tags + } + + +def order_field_meta( + field_meta: dict[str, dict], + model_cls: type[BaseModel], +) -> dict[str, dict]: + """Reorder field_meta by model field declaration order with sequential sequence.""" + ordered: dict[str, dict] = {} + seq = 1 + for fname in model_cls.model_fields: + if fname in field_meta: + entry = field_meta[fname] + entry["sequence"] = seq + ordered[fname] = entry + seq += 1 + for fname, entry in field_meta.items(): + if fname not in ordered: + entry["sequence"] = seq + ordered[fname] = entry + seq += 1 + return ordered + + +# Module-level schema instance (loaded once, reused for all calls) +_schema = StatementSchema() + +_STATEMENT_NAMES = ("income_statement", "balance_sheet", "cash_flow") + +# Tickers whose full history requires merging facts from multiple CIKs. +# Order: newest CIK first (used for entityName / primary cik metadata). +MULTI_CIK_TICKERS: dict[str, list[str]] = { + "DIS": ["0001744489", "0001001039"], + "BLK": ["0002012383", "0001364742"], + "GOOG": ["0001652044", "0001288776"], +} + + +@dataclass +class StandardizedStatements: + """Container for all three standardized financial statements. + + Each statement is a list of dicts (records) in **long format**: one + record per (period × line-item), carrying full metadata. Suitable for + direct conversion to a DataFrame. + """ + + entity_name: str + cik: int | str + company_type: str = "industrial" + currency: str = "USD" + income_statement: list[dict[str, Any]] = field(default_factory=list) + balance_sheet: list[dict[str, Any]] = field(default_factory=list) + cash_flow: list[dict[str, Any]] = field(default_factory=list) + diagnostics: list[ValidationWarning] = field(default_factory=list) + + +def _calendar_quarter(date_str: str) -> str: + """Map a period-ending date to its calendar quarter (Q1–Q4).""" + month = int(date_str[5:7]) + return f"Q{(month - 1) // 3 + 1}" + + +def _build_records( + result: Any, + fiscal_years: list[int] | None = None, +) -> list[dict[str, Any]]: + """Convert a StatementResult into long-format records. + + Each record represents one **line-item in one period** and includes: + fiscal_year, fiscal_period, calendar_year, calendar_period, + period_ending, tag, label, description, sequence, factor, + balance, unit, currency, value, source + """ + records: list[dict[str, Any]] = [] + currency = result.currency + + all_zero_tags: set[str] = set() + for r in result.rows: + if ( + r.values + and all(v == 0 for v in r.values.values()) + and ( + not r.sources + or not any( + s.startswith(("imputed", "corrected", "reconciled")) + for s in r.sources.values() + ) + ) + ): + all_zero_tags.add(r.tag) + + for date in result.dates: + # Fiscal metadata from SEC fy/fp fields + fm = result.fiscal_data.get(date, {}) + fiscal_year = fm.get("fiscal_year", int(date[:4])) + fiscal_period = fm.get("fiscal_period", "FY") + + if fiscal_years and fiscal_year not in fiscal_years: + continue + + calendar_year = int(date[:4]) + calendar_period = _calendar_quarter(date) + + for r in result.rows: + if r.tag in all_zero_tags: + continue + val = r.values.get(date) + if val is None: + continue + + source_str = r.sources.get(date, "") + + # Suspect Zero policy: Imputed/derived exact zeros are highly likely false + # identities rather than true $0 reported economics, especially for complex rules. + if val == 0 and any( + source_str.startswith(p) + for p in ("imputed", "corrected", "reconciled", "Q4:", "H2:") + ): + if source_str.startswith("imputed"): + source_str = source_str.replace("imputed", "imputed-zero", 1) + else: + source_str = f"imputed-zero: {source_str}" + + records.append( + { + "period_ending": date, + "fiscal_year": fiscal_year, + "fiscal_period": ( + f"{fiscal_period} (Preliminary)" + if date in result.preliminary_dates + else fiscal_period + ), + "calendar_year": calendar_year, + "calendar_period": calendar_period, + "tag": r.tag, + "label": r.label, + "description": r.description, + "parent": r.parent, + "sequence": r.sequence, + "factor": r.factor, + "balance": r.balance, + "unit": r.unit, + "period_type": r.period_type, + "currency": currency, + "value": val, + "source": source_str, + } + ) + + return records + + +_SHARES_TAGS = frozenset( + { + "weighted_average_shares_outstanding", + "weighted_average_shares_outstanding_diluted", + } +) + + +def _compute_ttm(records: list[dict[str, Any]]) -> list[dict[str, Any]]: + """Compute trailing-twelve-month records from quarterly data. + + Duration monetary/per_share items are summed over 4 quarters. + Instant items, shares, and BS snapshots are averaged. + """ + by_tag: dict[str, list[dict[str, Any]]] = defaultdict(list) + for rec in records: + by_tag[rec["tag"]].append(rec) + + ttm_records: list[dict[str, Any]] = [] + + for tag, tag_recs in by_tag.items(): + sorted_recs = sorted(tag_recs, key=lambda r: r["period_ending"]) + if len(sorted_recs) < 4: + continue + + period_type = sorted_recs[0].get("period_type", "duration") + use_avg = period_type == "instant" or tag in _SHARES_TAGS + + for i in range(3, len(sorted_recs)): + window = sorted_recs[i - 3 : i + 1] + vals = [w["value"] for w in window] + dates = [w["period_ending"] for w in window] + + if use_avg: + ttm_val = sum(vals) / 4 + method = "avg" + else: + ttm_val = sum(vals) + method = "sum" + + anchor = window[-1] + ttm_records.append( + { + "period_ending": anchor["period_ending"], + "fiscal_year": anchor["fiscal_year"], + "fiscal_period": "TTM", + "calendar_year": anchor["calendar_year"], + "calendar_period": anchor["calendar_period"], + "tag": tag, + "label": anchor["label"], + "description": anchor["description"], + "parent": anchor["parent"], + "sequence": anchor["sequence"], + "factor": anchor["factor"], + "balance": anchor["balance"], + "unit": anchor["unit"], + "period_type": anchor["period_type"], + "currency": anchor["currency"], + "value": ttm_val, + "source": f"TTM: {method}({' + '.join(dates)})", + "frequency": "ttm", + } + ) + + return ttm_records + + +def _compute_pct_change( + records: list[dict[str, Any]], + mode: Literal["yoy", "pop"], +) -> list[dict[str, Any]]: + """Compute period-over-period percentage change. + + mode='yoy': same fiscal_period, prior fiscal_year + mode='pop': immediately preceding period by date order + """ + by_tag: dict[str, list[dict[str, Any]]] = defaultdict(list) + + for rec in records: + by_tag[rec["tag"]].append(rec) + + pct_records: list[dict[str, Any]] = [] + + for tag_recs in by_tag.values(): + sorted_recs = sorted(tag_recs, key=lambda r: r["period_ending"]) + + if mode == "yoy": + lookup: dict[tuple[int, str], dict[str, Any]] = {} + + for rec in sorted_recs: + lookup[(rec["fiscal_year"], rec["fiscal_period"])] = rec + + for rec in sorted_recs: + prior = lookup.get((rec["fiscal_year"] - 1, rec["fiscal_period"])) + + if prior is None or prior["value"] == 0: + continue + + pct = (rec["value"] - prior["value"]) / abs(prior["value"]) + pct_records.append(_pct_record(rec, prior, pct, "yoy")) + else: + for i in range(1, len(sorted_recs)): + cur = sorted_recs[i] + prior = sorted_recs[i - 1] + + if prior["value"] == 0: + continue + + pct = (cur["value"] - prior["value"]) / abs(prior["value"]) * 100 + pct_records.append(_pct_record(cur, prior, pct, "pop")) + + return pct_records + + +def _pct_record( + current: dict[str, Any], + prior: dict[str, Any], + pct: float, + freq: str, +) -> dict[str, Any]: + return { + "period_ending": current["period_ending"], + "fiscal_year": current["fiscal_year"], + "fiscal_period": current["fiscal_period"], + "calendar_year": current["calendar_year"], + "calendar_period": current["calendar_period"], + "tag": current["tag"], + "label": current["label"], + "description": current["description"], + "parent": current["parent"], + "sequence": current["sequence"], + "factor": current["factor"], + "balance": current["balance"], + "unit": "percent", + "period_type": current["period_type"], + "currency": "", + "value": round(pct, 4), + "source": ( + f"{freq}: ({current['period_ending']}: {current['value']}" + f" / {prior['period_ending']}: {prior['value']} - 1)" + f" = {round(pct, 2)}%" + ), + "frequency": freq, + } + + +def resolve_company_facts( + facts_json: dict[str, Any], + fiscal_years: list[int] | None = None, + period: PeriodType = "both", + pit_mode: bool = False, + include_preliminary: bool = False, +) -> StandardizedStatements: + """Parse an SEC company-facts JSON and produce standardized statements. + + Parameters + ---------- + facts_json : dict + The raw JSON response from + ``https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json`` + fiscal_years : list[int] | None + Restrict to specific fiscal years. ``None`` means all available. + period : PeriodType + Which periods to include in the output tables. + pit_mode : bool + If True, skip the 10-K vintage override for quarterly data. + Quarterly values will reflect the original 10-Q filing vintage, + preserving point-in-time fidelity for backtesting. Note: + Q4 values may not reconcile to FY totals in this mode. + + Returns + ------- + StandardizedStatements + Contains ``.income_statement``, ``.balance_sheet``, ``.cash_flow`` + as list-of-dicts ready for DataFrame conversion. + """ + entity_name = facts_json.get("entityName", "") + cik = facts_json.get("cik", "") + facts = facts_json.get("facts", {}) + + company_type = _schema.detect_type(facts) + + output = StandardizedStatements( + entity_name=entity_name, + cik=cik, + company_type=company_type, + ) + + derived = period in ("ttm", "yoy", "yoy_quarterly", "pop") + + if derived: + freq: Frequency = ( + "quarterly" if period in ("ttm", "yoy_quarterly", "pop") else "annual" + ) + stmts = _schema.extract_all( + facts_json, + frequency=freq, + company_type=company_type, + pit_mode=pit_mode, # type: ignore + include_preliminary=include_preliminary, + ) + for stmt_result in stmts.values(): + output.currency = stmt_result.currency + break + + for stmt_name in _STATEMENT_NAMES: + stmt_result = stmts[stmt_name] + records = _build_records(stmt_result, fiscal_years) + for rec in records: + rec["frequency"] = freq + + if period == "ttm": + records = _compute_ttm(records) + elif period == "yoy": + records = _compute_pct_change(records, mode="yoy") + elif period == "yoy_quarterly": + pct = _compute_pct_change(records, mode="yoy") + for rec in pct: + rec["frequency"] = "yoy_quarterly" + records = pct + elif period == "pop": + records = _compute_pct_change(records, mode="pop") + + getattr(output, stmt_name).extend(records) + output.diagnostics.extend(stmt_result.diagnostics) + else: + frequencies: list[Frequency] = [] + if period in ("annual", "both"): + frequencies.append("annual") + if period in ("quarterly", "both"): + frequencies.append("quarterly") + + for freq in frequencies: + stmts = _schema.extract_all( + facts_json, + frequency=freq, + company_type=company_type, + pit_mode=pit_mode, # type: ignore + include_preliminary=include_preliminary, + ) + for stmt_result in stmts.values(): + output.currency = stmt_result.currency + break + + for stmt_name in _STATEMENT_NAMES: + stmt_result = stmts[stmt_name] + records = _build_records(stmt_result, fiscal_years) + for rec in records: + rec["frequency"] = freq + existing = getattr(output, stmt_name) + existing.extend(records) + output.diagnostics.extend(stmt_result.diagnostics) + + return output + + +async def get_standardized_financials( + symbol: str | None = None, + cik: str | int | None = None, + fiscal_years: list[int] | None = None, + period: PeriodType = "both", + use_cache: bool = True, + pit_mode: bool = False, + include_preliminary: bool = False, +) -> StandardizedStatements: + """Fetch company facts from SEC and return standardized financial statements. + + Provide either ``symbol`` (ticker) or ``cik`` (10-digit zero-padded or integer). + + For tickers in ``MULTI_CIK_TICKERS``, facts are fetched for every CIK and + merged via ``StatementSchema.merge_facts`` so the full history is available. + + Parameters + ---------- + symbol : str | None + Ticker symbol (e.g. "AAPL"). + cik : str | int | None + CIK number (e.g. 320193 or "0000320193"). + fiscal_years : list[int] | None + Filter to specific fiscal years. + period : PeriodType + Which periods to return. + use_cache : bool + Whether to use in-memory HTTP caching (6-hour TTL). + pit_mode : bool + If True, skip the 10-K vintage override for quarterly data, + preserving point-in-time fidelity for backtesting. + include_preliminary : bool + If True, include 8-K filing data for periods not yet covered + by a 10-Q/K. + + Returns + ------- + StandardizedStatements + """ + # pylint: disable=import-outside-toplevel + from openbb_core.app.model.abstract.error import OpenBBError + from openbb_core.provider.utils.helpers import amake_request + from openbb_sec.utils.definitions import HEADERS + from openbb_sec.utils.helpers import symbol_map + + if symbol and not cik: + cik = await symbol_map(symbol, use_cache=use_cache) + if not cik: + raise OpenBBError(f"Could not find CIK for symbol: {symbol}") + + # Determine the list of CIKs to fetch. + symbol_upper = symbol.upper() if symbol else "" + if symbol_upper in MULTI_CIK_TICKERS: + cik_list = MULTI_CIK_TICKERS[symbol_upper] + elif isinstance(cik, int): + cik_list = [str(cik).zfill(10)] + elif isinstance(cik, str): + cik_list = [cik.lstrip("0").zfill(10)] if cik else [] + else: + raise OpenBBError("Either symbol or cik must be provided.") + + if not cik_list: + raise OpenBBError("Either symbol or cik must be provided.") + + async def _fetch(cik_str: str) -> dict: + url = f"https://data.sec.gov/api/xbrl/companyfacts/CIK{cik_str}.json" + if use_cache: + from aiohttp_client_cache.session import ( + CachedSession, + ) # pylint: disable=import-outside-toplevel + + async with CachedSession(expire_after=3600 * 6) as session: + try: + resp = await amake_request( + url, headers=HEADERS, session=session, timeout=300 + ) + finally: + await session.close() + else: + resp = await amake_request(url, headers=HEADERS, timeout=300) + if not isinstance(resp, dict) or "facts" not in resp: + raise OpenBBError(f"Unexpected response from SEC for CIK {cik_str}") + return resp # type: ignore[return-value] + + responses = [await _fetch(c) for c in cik_list] + + if len(responses) == 1: + facts_json = responses[0] + else: + # Use the first (newest) CIK's metadata, merge all facts. + primary = responses[0] + merged_facts = _schema.merge_facts(*(r for r in responses)) + facts_json = { + "entityName": primary.get("entityName", ""), + "cik": primary.get("cik", ""), + "facts": merged_facts, + } + + return resolve_company_facts( + facts_json, + fiscal_years=fiscal_years, + period=period, + pit_mode=pit_mode, + include_preliminary=include_preliminary, + ) diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/__init__.py b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/__init__.py new file mode 100644 index 00000000000..92e8fae0244 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/__init__.py @@ -0,0 +1,33 @@ +"""Standardized financial statement schema package.""" + +from openbb_sec.utils.statement_schema._schema import StatementSchema +from openbb_sec.utils.statement_schema._types import ( + ALL_FORMS, + ANNUAL_FORMS, + PRELIMINARY_FORMS, + QUARTERLY_FORMS, + SEMI_ANNUAL_FORMS, + CompanyType, + Frequency, + RowDef, + RowResult, + StatementName, + StatementResult, + ValidationWarning, +) + +__all__ = [ + "ALL_FORMS", + "ANNUAL_FORMS", + "CompanyType", + "Frequency", + "PRELIMINARY_FORMS", + "QUARTERLY_FORMS", + "RowDef", + "RowResult", + "SEMI_ANNUAL_FORMS", + "StatementName", + "StatementResult", + "StatementSchema", + "ValidationWarning", +] diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_detection.py b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_detection.py new file mode 100644 index 00000000000..ee000d19ed8 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_detection.py @@ -0,0 +1,419 @@ +"""Company type detection, filing-date resolution, and fiscal metadata.""" + +# pylint: disable=R0912,R0914 + +from __future__ import annotations + +from collections import Counter +from datetime import datetime +from typing import Any + +from openbb_sec.utils.statement_schema._types import ( + ALL_FORMS, + ANNUAL_FORMS, + PRELIMINARY_FORMS, + QUARTERLY_FORMS, + SEMI_ANNUAL_FORMS, + CompanyType, + Frequency, +) + + +def detect_type( + facts: dict[str, Any], + *, + insurance_is_signals: list[str], + insurance_bs_signals: list[str], + financial_signals: list[str], + min_financial_signals: int, + industrial_signals: list[str], + diversified_signals: list[str], +) -> CompanyType: + """Classify a company as industrial, financial, diversified, or insurance.""" + company_tags: set[str] = set() + + for ns_data in facts.values(): + if isinstance(ns_data, dict): + company_tags.update(ns_data.keys()) + + ins_is = sum(1 for s in insurance_is_signals if s in company_tags) + ins_bs = sum(1 for s in insurance_bs_signals if s in company_tags) + ins_total = ins_is + ins_bs + is_insurance = ins_is >= 1 and ins_total >= 2 + fin_count = sum(1 for s in financial_signals if s in company_tags) + is_financial = fin_count >= min_financial_signals + + if is_insurance and is_financial: + return "insurance" if ins_total > fin_count else "financial" + if is_insurance: + return "insurance" + if is_financial: + return "financial" + + has_cogs = any( + s in company_tags and _has_recent_data(facts, s) for s in industrial_signals + ) + + if has_cogs: + return "industrial" + + has_cne = any(s in company_tags for s in diversified_signals) + + if has_cne: + return "diversified" + + return "industrial" + + +def _has_recent_data(facts: dict[str, Any], tag: str, max_age_years: int = 5) -> bool: + """Check if a tag has data from a recent 10-K filing.""" + cutoff_year = datetime.now().year - max_age_years + + for ns_data in facts.values(): + if not isinstance(ns_data, dict) or tag not in ns_data: + continue + + tag_data = ns_data[tag] + + for entries in tag_data.get("units", {}).values(): + for entry in entries: + if entry.get("form", "") in ("10-K", "10-K/A", "20-F", "20-F/A"): + end = entry.get("end", "") + if end and int(end[:4]) >= cutoff_year: + return True + + return False + + +def get_filing_dates( # noqa: PLR0912 + facts: dict[str, Any], + frequency: Frequency = "annual", + include_preliminary: bool = False, +) -> set[str]: + """Determine canonical period-end dates from actual filings.""" + filing_dates: set[str] = set() + preliminary_candidates: set[str] = set() + + for ns_facts in facts.values(): + for tag_data in ns_facts.values(): + for entries in tag_data.get("units", {}).values(): + for entry in entries: + form = entry.get("form", "") + start = entry.get("start", "") + end = entry.get("end", "") + + if not start or not end or start == end: + continue + try: + days = ( + datetime.strptime(end, "%Y-%m-%d") + - datetime.strptime(start, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if frequency == "annual": + if form in ANNUAL_FORMS and 300 <= days <= 400: + filing_dates.add(end) + elif ( + include_preliminary + and form in PRELIMINARY_FORMS + and 300 <= days <= 400 + ): + preliminary_candidates.add(end) + else: + if form in QUARTERLY_FORMS and 60 <= days <= 135: + filing_dates.add(end) + if form in SEMI_ANNUAL_FORMS and ( + 60 <= days <= 135 or 150 <= days <= 200 + ): + filing_dates.add(end) + if ( + include_preliminary + and form in PRELIMINARY_FORMS + and 60 <= days <= 135 + ): + preliminary_candidates.add(end) + + if include_preliminary: + filing_dates |= preliminary_candidates - filing_dates + + if frequency != "annual" and filing_dates: + canonical_annual = get_filing_dates( + facts, "annual", include_preliminary=include_preliminary + ) + filing_dates |= canonical_annual + + if frequency == "annual" and len(filing_dates) > 3: + parsed = [(d, datetime.strptime(d, "%Y-%m-%d")) for d in filing_dates] + md_counts: Counter[tuple[int, int]] = Counter() + + for _, dt in parsed: + md_counts[(dt.month, dt.day)] += 1 + + dominant_md, dom_freq = md_counts.most_common(1)[0] + dom_m, dom_d = dominant_md + + if dom_freq >= max(3, len(parsed) * 0.4): + canonical: set[str] = set() + canonical_dts: list[datetime] = [] + non_canonical: list[tuple[str, datetime]] = [] + + for d, dt in parsed: + is_match = False + + for y in (dt.year - 1, dt.year, dt.year + 1): + try: + anchor = datetime(y, dom_m, dom_d) + except ValueError: + anchor = datetime(y, dom_m, min(dom_d, 28)) + if abs((dt - anchor).days) <= 5: + is_match = True + break + + if is_match: + canonical.add(d) + canonical_dts.append(dt) + else: + non_canonical.append((d, dt)) + + canonical_sorted = sorted(canonical) + + for i in range(len(canonical_sorted) - 1): + d1 = canonical_sorted[i] + d2 = canonical_sorted[i + 1] + dt1 = datetime.strptime(d1, "%Y-%m-%d") + dt2 = datetime.strptime(d2, "%Y-%m-%d") + + if (dt2 - dt1).days <= 10: + exact1 = dt1.month == dom_m and dt1.day == dom_d + exact2 = dt2.month == dom_m and dt2.day == dom_d + if exact2 and not exact1: + canonical.discard(d1) + elif exact1 and not exact2: + canonical.discard(d2) + + filtered = set(canonical) + + for d, dt in non_canonical: + has_nearby = any(abs((dt - ct).days) <= 200 for ct in canonical_dts) + if not has_nearby: + filtered.add(d) + + filing_dates = filtered + + assets_forms = ALL_FORMS if frequency == "quarterly" else ANNUAL_FORMS + if include_preliminary: + assets_forms = assets_forms | PRELIMINARY_FORMS + + while len(filing_dates) > 1: + earliest = min(filing_dates) + has_assets = False + + for ns_facts in facts.values(): + assets_data = ns_facts.get("Assets", {}) + + for entries in assets_data.get("units", {}).values(): + for entry in entries: + if ( + entry.get("form", "") in assets_forms + and entry.get("end") == earliest + and not entry.get("start") + ): + has_assets = True + break + + if has_assets: + break + + if has_assets: + break + + if not has_assets: + filing_dates.discard(earliest) + else: + break + + return filing_dates + + +def get_fiscal_meta( # noqa: PLR0912 + facts: dict[str, Any], + frequency: Frequency, + filing_dates: set[str], +) -> dict[str, dict[str, Any]]: + """Build fiscal metadata for each period-end date.""" + annual_dates = get_filing_dates(facts, "annual") + best_annual: dict[str, tuple[str, int, str]] = {} + best_quarterly: dict[str, tuple[str, int, str]] = {} + best_semi: dict[str, tuple[str, int, str]] = {} + best_preliminary: dict[str, tuple[str, int, str]] = {} + + for ns_facts in facts.values(): + for tag_data in ns_facts.values(): + for entries_list in tag_data.get("units", {}).values(): + for entry in entries_list: + end = entry.get("end", "") + + if end not in filing_dates: + continue + + filed = entry.get("filed", "") + fy = entry.get("fy") + fp = entry.get("fp", "") + form = entry.get("form", "") + + if not filed: + continue + + if form in ANNUAL_FORMS: + if fy is None or not fp: + continue + if end not in best_annual or filed < best_annual[end][0]: + best_annual[end] = (filed, fy, fp) + elif form in QUARTERLY_FORMS: + if fy is None or not fp: + continue + if end not in best_quarterly or filed < best_quarterly[end][0]: + best_quarterly[end] = (filed, fy, fp) + elif form in SEMI_ANNUAL_FORMS: + if fy is None or not fp: + continue + if end not in best_semi or filed < best_semi[end][0]: + best_semi[end] = (filed, fy, fp) + elif form in PRELIMINARY_FORMS: + if fy is not None and fp: + if ( + end not in best_preliminary + or filed < best_preliminary[end][0] + ): + best_preliminary[end] = (filed, fy, fp) + elif end not in best_preliminary: + month = int(end[5:7]) + cal_q = f"Q{(month - 1) // 3 + 1}" + best_preliminary[end] = ( + filed, + int(end[:4]), + cal_q, + ) + + result: dict[str, dict[str, Any]] = {} + + for date in filing_dates: + if frequency == "annual": + info = best_annual.get(date) + result[date] = { + "fiscal_year": info[1] if info else int(date[:4]), + "fiscal_period": "FY", + } + elif date in annual_dates: + info = best_annual.get(date) + period = "Q4" + if not best_quarterly and best_semi: + non_annual = {d for d in filing_dates if d not in annual_dates} + period = "Q4" if len(non_annual) > len(annual_dates) else "H2" + result[date] = { + "fiscal_year": info[1] if info else int(date[:4]), + "fiscal_period": period, + } + else: + q_info = best_quarterly.get(date) + + if q_info: + result[date] = { + "fiscal_year": q_info[1], + "fiscal_period": q_info[2], + } + else: + s_info = best_semi.get(date) + if s_info: + result[date] = { + "fiscal_year": s_info[1], + "fiscal_period": s_info[2], + } + else: + p_info = best_preliminary.get(date) + if p_info: + result[date] = { + "fiscal_year": p_info[1], + "fiscal_period": p_info[2], + } + else: + result[date] = { + "fiscal_year": int(date[:4]), + "fiscal_period": "Q4", + } + + if frequency == "annual" and result: + sorted_dates = sorted(result.keys()) + for i in range(len(sorted_dates) - 2, -1, -1): + cur = sorted_dates[i] + nxt = sorted_dates[i + 1] + if result[cur]["fiscal_year"] >= result[nxt]["fiscal_year"]: + result[cur]["fiscal_year"] = result[nxt]["fiscal_year"] - 1 + + elif frequency == "quarterly" and result: + sorted_dates = sorted(result.keys()) + annual_set = set(annual_dates) + + for i, date in enumerate(sorted_dates): + if ( + date in annual_set + and result[date]["fiscal_period"] in ("Q4", "H2") + and i > 0 + ): + prev = sorted_dates[i - 1] + prev_meta = result[prev] + if prev_meta["fiscal_period"] in ("Q1", "Q2", "Q3", "H1"): + prev_fy = prev_meta["fiscal_year"] + if result[date]["fiscal_year"] != prev_fy: + result[date]["fiscal_year"] = prev_fy + + return result + + +def detect_reporting_currency(facts: dict[str, Any]) -> str: + """Detect the reporting currency from the SEC facts data.""" + currency_counts: dict[str, int] = {} + skip = frozenset( + { + "shares", + "pure", + } + ) + + for ns_facts in facts.values(): + for tag_data in ns_facts.values(): + for unit_key in tag_data.get("units", {}): + + if unit_key in skip or "/" in unit_key: + continue + + if len(unit_key) == 3 and unit_key.isalpha() and unit_key.isupper(): + currency_counts[unit_key] = currency_counts.get(unit_key, 0) + 1 + + if not currency_counts: + return "USD" + + return max(currency_counts, key=currency_counts.get) # type: ignore[arg-type] + + +def prior_period_end(date: str) -> str | None: + """Return the prior quarter-end date string for a given period end.""" + _PRIOR = { + 3: lambda y: f"{y - 1}-12-31", + 6: lambda y: f"{y}-03-31", + 9: lambda y: f"{y}-06-30", + 12: lambda y: f"{y}-09-30", + 1: lambda y: f"{y - 1}-10-31", + 4: lambda y: f"{y}-01-31", + } + + try: + dt = datetime.strptime(date, "%Y-%m-%d") + except (ValueError, TypeError): + return None + + fn = _PRIOR.get(dt.month) + + return fn(dt.year) if fn else None diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_extraction.py b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_extraction.py new file mode 100644 index 00000000000..6c49b6047a0 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_extraction.py @@ -0,0 +1,733 @@ +"""Row-level value extraction from SEC XBRL facts.""" + +# pylint: disable=R0912,R0914,R0915,R0917 + +from __future__ import annotations + +from collections import defaultdict +from datetime import datetime +from math import isclose +from typing import Any + +from openbb_sec.utils.statement_schema._types import ( + ALL_FORMS, + ANNUAL_FORMS, + PRELIMINARY_FORMS, + SEMI_ANNUAL_FORMS, + Frequency, + RowDef, +) + + +def _get_unit_data( + tag_data: dict, + unit_type: str = "monetary", + currency: str = "USD", +) -> list[dict] | None: + """Find the best unit data array from a tag's units dict.""" + units = tag_data.get("units", {}) + + if unit_type == "shares": + if "shares" in units: + return units["shares"] + elif unit_type == "per_share": + per_share_key = f"{currency}/shares" + if per_share_key in units: + return units[per_share_key] + for key in units: + if key.startswith(f"{currency}/"): + return units[key] + elif currency in units: + return units[currency] + + if units: + return next(iter(units.values())) + + return None + + +def _get_annual_values( + facts: dict[str, Any], + row: RowDef, + currency: str = "USD", + include_preliminary: bool = False, +) -> dict[str, tuple[str, float, str]]: + """Return {fy_end_date: (fy_start_date, value, xbrl_source)} for annual periods.""" + if row.period_type != "duration": + return {} + + tag_candidates: list[dict[str, dict[str, tuple[str, float]]]] = [] + + for xbrl_entry in row.xbrl_tags: + ns_facts = facts.get(xbrl_entry["namespace"], {}) + tag_data = ns_facts.get(xbrl_entry["tag"]) + + if not tag_data: + tag_candidates.append({}) + continue + + unit_data = _get_unit_data(tag_data, row.unit, currency) + + if not unit_data: + tag_candidates.append({}) + continue + + entries_by_date: dict[str, dict[str, tuple[str, float]]] = {} + + for entry in unit_data: + + _av_allowed = ( + ANNUAL_FORMS | PRELIMINARY_FORMS + if include_preliminary + else ANNUAL_FORMS + ) + if entry.get("form", "") not in _av_allowed: + continue + start, end = entry.get("start", ""), entry.get("end", "") + + if not start or not end or start == end: + continue + + try: + days = ( + datetime.strptime(end, "%Y-%m-%d") + - datetime.strptime(start, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if not 300 <= days <= 400: + continue + + val = entry.get("val") + + if val is None: + continue + + filed = entry.get("filed", "") + + if end not in entries_by_date: + entries_by_date[end] = {} + + if filed not in entries_by_date[end]: + entries_by_date[end][filed] = (start, val) + + tag_candidates.append(entries_by_date) + + all_dates: set[str] = set() + + for tc in tag_candidates: + all_dates.update(tc.keys()) + + result: dict[str, tuple[str, float, str]] = {} + + for end_date in all_dates: + ref_filed = None + + for tc in tag_candidates: + filings = tc.get(end_date) + + if filings: + earliest = min(filings) + + if ref_filed is None or earliest < ref_filed: + ref_filed = earliest + + if ref_filed is None: + continue + + for i, tc in enumerate(tag_candidates): + filings = tc.get(end_date) + + if filings and ref_filed in filings: + start, val = filings[ref_filed] + xbrl_e = row.xbrl_tags[i] + xbrl_src = f"{xbrl_e['namespace']}:{xbrl_e['tag']}" + result[end_date] = (start, val, xbrl_src) + break + + return result + + +def _get_ytd9_values( + facts: dict[str, Any], + row: RowDef, + currency: str = "USD", +) -> dict[str, float]: + """Return {fy_end_date: Q4_value} derived via FY - YTD_9mo.""" + if row.period_type != "duration": + return {} + + annual_entries: dict[str, dict[str, tuple[str, float]]] = {} + ytd9_entries: dict[str, dict[str, float]] = {} + + for xbrl_entry in row.xbrl_tags: + ns_facts = facts.get(xbrl_entry["namespace"], {}) + tag_data = ns_facts.get(xbrl_entry["tag"]) + + if not tag_data: + continue + + unit_data = _get_unit_data(tag_data, row.unit, currency) + + if not unit_data: + continue + + for entry in unit_data: + start = entry.get("start", "") + end = entry.get("end", "") + + if not start or not end or start == end: + continue + + try: + days = ( + datetime.strptime(end, "%Y-%m-%d") + - datetime.strptime(start, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + val = entry.get("val") + + if val is None: + continue + + filed = entry.get("filed", "") + + if 300 <= days <= 400: + if end not in annual_entries: + annual_entries[end] = {} + if filed not in annual_entries[end]: + annual_entries[end][filed] = (start, val) + elif 240 <= days <= 310: + if end not in ytd9_entries: + ytd9_entries[end] = {} + if filed not in ytd9_entries[end]: + ytd9_entries[end][filed] = val + + if annual_entries or ytd9_entries: + break + + if not annual_entries or not ytd9_entries: + return {} + + result: dict[str, float] = {} + + for fy_end, fy_filings in annual_entries.items(): + ytd_end_match = None + + for ytd_end in ytd9_entries: + for filed, (fy_start, _) in fy_filings.items(): + if fy_start < ytd_end < fy_end: + ytd_end_match = ytd_end + break + + if ytd_end_match: + break + + if not ytd_end_match: + continue + + ytd_filings = ytd9_entries[ytd_end_match] + + common = set(fy_filings) & set(ytd_filings) + + if common: + best = max(common) + _, fy_val = fy_filings[best] + ytd_val = ytd_filings[best] + else: + latest_fy = max(fy_filings) + _, fy_val = fy_filings[latest_fy] + ytd_val = ytd_filings[max(ytd_filings)] + + result[fy_end] = fy_val - ytd_val + + return result + + +def extract_row_values( # noqa: PLR0912 + facts: dict[str, Any], + row: RowDef, + frequency: Frequency = "annual", + currency: str = "USD", + ref_filed_map: dict[str, str] | None = None, + cross_targets: dict[str, float] | None = None, + statement: str = "", + include_preliminary: bool = False, +) -> tuple[dict[str, float], dict[str, str]]: + """Extract values for a single schema row across all periods.""" + period_type = row.period_type + values_by_date: dict[str, float] = {} + sources_by_date: dict[str, str] = {} + _base_forms = ANNUAL_FORMS if frequency == "annual" else ALL_FORMS + allowed_forms = ( + _base_forms | PRELIMINARY_FORMS if include_preliminary else _base_forms + ) + tag_candidates: list[dict[str, dict[str, float]]] = [] + collect_ytd = ( + frequency == "quarterly" and period_type == "duration" and row.unit != "shares" + ) + ytd_tag_candidates: list[dict[str, dict[str, tuple[str, float]]]] = [] + + for xbrl_entry in row.xbrl_tags: + ns_facts = facts.get(xbrl_entry["namespace"], {}) + tag_data = ns_facts.get(xbrl_entry["tag"]) + + if not tag_data: + tag_candidates.append({}) + + if collect_ytd: + ytd_tag_candidates.append({}) + + continue + + unit_data = _get_unit_data(tag_data, row.unit, currency) + + if not unit_data: + tag_candidates.append({}) + + if collect_ytd: + ytd_tag_candidates.append({}) + + continue + + entries_by_date: dict[str, dict[str, float]] = {} + _dur_by_date: dict[str, dict[str, int]] = {} + ytd_entries_by_date: dict[str, dict[str, tuple[str, float]]] = {} + + for entry in unit_data: + form = entry.get("form", "") + + if form not in allowed_forms: + continue + + end_date = entry.get("end", "") + + if not end_date: + continue + + days = 0 + + if period_type == "duration": + start_date = entry.get("start", "") + + if not start_date or start_date == end_date: + continue + try: + days = ( + datetime.strptime(end_date, "%Y-%m-%d") + - datetime.strptime(start_date, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if frequency == "annual": + if not 300 <= days <= 400: + continue + elif form in SEMI_ANNUAL_FORMS: + if not (60 <= days <= 135 or 150 <= days <= 200): + continue + elif not 60 <= days <= 135: + if collect_ytd and 136 <= days <= 310: + ytd_val = entry.get("val") + if ytd_val is not None: + filed = entry.get("filed", "") + if end_date not in ytd_entries_by_date: + ytd_entries_by_date[end_date] = {} + if filed not in ytd_entries_by_date[end_date]: + ytd_entries_by_date[end_date][filed] = ( + start_date, + ytd_val, + ) + continue + + val = entry.get("val") + + if val is None: + continue + + filed = entry.get("filed", "") + + if end_date not in entries_by_date: + entries_by_date[end_date] = {} + _dur_by_date[end_date] = {} + if filed not in entries_by_date[end_date] or days < _dur_by_date[ + end_date + ].get(filed, 9999): + entries_by_date[end_date][filed] = val + _dur_by_date[end_date][filed] = days + + tag_candidates.append(entries_by_date) + + if collect_ytd: + ytd_tag_candidates.append(ytd_entries_by_date) + + all_dates: set[str] = set() + + for tc in tag_candidates: + all_dates.update(tc.keys()) + + for end_date in all_dates: + if ref_filed_map is not None: + ref_filed = ref_filed_map.get(end_date) + else: + ref_filed = None + + for tc in tag_candidates: + filings = tc.get(end_date) + if filings: + earliest = min(filings) + if ref_filed is None or earliest < ref_filed: + ref_filed = earliest + + if ref_filed is None: + continue + + matched_identity = False + + if cross_targets and end_date in cross_targets: + target_val = cross_targets[end_date] + for i, tc in enumerate(tag_candidates): + filings = tc.get(end_date) + if not filings: + continue + for val in filings.values(): + if isclose(val, target_val, rel_tol=1e-5, abs_tol=1.0): + values_by_date[end_date] = val + xbrl_e = row.xbrl_tags[i] + sources_by_date[end_date] = ( + f"{xbrl_e['namespace']}:{xbrl_e['tag']}(identity_lock:{statement})" + ) + matched_identity = True + break + + if matched_identity: + break + + if matched_identity: + continue + + if frequency == "quarterly" and period_type == "duration": + for i, tc in enumerate(tag_candidates): + filings = tc.get(end_date) + + if not filings: + continue + + xbrl_e = row.xbrl_tags[i] + + if ref_filed in filings: + values_by_date[end_date] = filings[ref_filed] + sources_by_date[end_date] = f"{xbrl_e['namespace']}:{xbrl_e['tag']}" + else: + before = [f for f in filings if f <= ref_filed] + best = max(before) if before else min(filings) + values_by_date[end_date] = filings[best] + sources_by_date[end_date] = ( + f"{xbrl_e['namespace']}:{xbrl_e['tag']}(fallback)" + ) + break + else: + for i, tc in enumerate(tag_candidates): + filings = tc.get(end_date) + + if filings and ref_filed in filings: + values_by_date[end_date] = filings[ref_filed] + xbrl_e = row.xbrl_tags[i] + sources_by_date[end_date] = f"{xbrl_e['namespace']}:{xbrl_e['tag']}" + break + else: + for i, tc in enumerate(tag_candidates): + filings = tc.get(end_date) + + if filings: + before = [f for f in filings if f <= ref_filed] + best = max(before) if before else min(filings) + values_by_date[end_date] = filings[best] + xbrl_e = row.xbrl_tags[i] + sources_by_date[end_date] = ( + f"{xbrl_e['namespace']}:{xbrl_e['tag']}(fallback)" + ) + break + + if frequency == "quarterly" and period_type == "duration": + annual_vals = _get_annual_values( + facts, row, currency, include_preliminary=include_preliminary + ) + + if collect_ytd and ytd_tag_candidates: + ytd_resolved: dict[str, tuple[str, float, str]] = {} + ytd_all_dates: set[str] = set() + + for ytc in ytd_tag_candidates: + ytd_all_dates.update(ytc.keys()) + + for end_date in ytd_all_dates: + if ref_filed_map is not None: + ref = ref_filed_map.get(end_date) + else: + ref = None + for ytc in ytd_tag_candidates: + ytd_fdata = ytc.get(end_date) + + if ytd_fdata: + earliest = min(ytd_fdata) + if ref is None or earliest < ref: + ref = earliest + + if ref is None: + continue + + for i, ytc in enumerate(ytd_tag_candidates): + ytd_fdata = ytc.get(end_date) + + if not ytd_fdata: + continue + + if ref in ytd_fdata: + start_d, val = ytd_fdata[ref] + else: + before = [f for f in ytd_fdata if f <= ref] + best = max(before) if before else min(ytd_fdata) + start_d, val = ytd_fdata[best] + + xbrl_e = row.xbrl_tags[i] + ytd_resolved[end_date] = ( + start_d, + val, + f"{xbrl_e['namespace']}:{xbrl_e['tag']}", + ) + break + + if ytd_resolved: + by_fy_start: dict[str, list[tuple[str, float, str]]] = defaultdict(list) + for end_d, (start_d, val, src) in ytd_resolved.items(): + by_fy_start[start_d].append((end_d, val, src)) + + fy_boundaries = { + fy_start: fy_end for fy_end, (fy_start, _, _) in annual_vals.items() + } + + for fy_start, ytd_list in by_fy_start.items(): + ytd_list.sort() + ytd_map = {d: (v, s) for d, v, s in ytd_list} + fy_end = fy_boundaries.get(fy_start) + + if fy_end: + fy_q_dates = sorted( + d for d in values_by_date if fy_start < d < fy_end + ) + else: + latest_ytd = ytd_list[-1][0] + fy_q_dates = sorted( + d for d in values_by_date if fy_start < d <= latest_ytd + ) + + all_q_dates = sorted(set(fy_q_dates) | set(ytd_map.keys())) + + prev_cum = 0.0 + for d in all_q_dates: + has_standalone = d in values_by_date + has_ytd = d in ytd_map + + if not has_standalone and has_ytd: + ytd_val, ytd_src = ytd_map[d] + values_by_date[d] = ytd_val - prev_cum + sources_by_date[d] = f"ytd_derived({ytd_src})" + + if has_ytd: + prev_cum = ytd_map[d][0] + elif has_standalone: + prev_cum += values_by_date[d] + + if row.unit == "shares": + for fy_end, (fy_start, fy_val, fy_xbrl_src) in annual_vals.items(): + if fy_end not in values_by_date: + values_by_date[fy_end] = fy_val + sources_by_date[fy_end] = f"Q4: FY[{fy_xbrl_src}]" + + else: + for fy_end, (fy_start, fy_val, fy_xbrl_src) in annual_vals.items(): + q_sum = 0.0 + q_count = 0 + for q_end, q_val in values_by_date.items(): + if fy_start < q_end < fy_end: + q_sum += q_val + q_count += 1 + if q_count == 3: + q_srcs = [ + sources_by_date.get(q_end, "") + for q_end in sorted(values_by_date) + if fy_start < q_end < fy_end + ] + q_labels = "+".join(f"Q{i+1}[{s}]" for i, s in enumerate(q_srcs)) + values_by_date[fy_end] = fy_val - q_sum + sources_by_date[fy_end] = ( + f"Q4: FY[{fy_xbrl_src}] \u2212 ({q_labels})" + ) + elif q_count == 1: + interim_date = next( + q_end for q_end in values_by_date if fy_start < q_end < fy_end + ) + fy_days = ( + datetime.strptime(fy_end, "%Y-%m-%d") + - datetime.strptime(fy_start, "%Y-%m-%d") + ).days + interim_days = ( + datetime.strptime(interim_date, "%Y-%m-%d") + - datetime.strptime(fy_start, "%Y-%m-%d") + ).days + if abs(interim_days - fy_days / 2) <= 45: + h1_src = sources_by_date.get(interim_date, "") + values_by_date[fy_end] = fy_val - q_sum + sources_by_date[fy_end] = ( + f"H2: FY[{fy_xbrl_src}] \u2212 H1[{h1_src}]" + ) + + return values_by_date, sources_by_date + + +def compute_ref_filings( + facts: dict[str, Any], + rows_def: list, + frequency: Frequency, + currency: str, + include_preliminary: bool = False, + pit_mode: bool = False, +) -> dict[str, str]: + """Compute the reference filing date per end_date across all rows.""" + _base_forms = ANNUAL_FORMS if frequency == "annual" else ALL_FORMS + allowed_forms = ( + _base_forms | PRELIMINARY_FORMS if include_preliminary else _base_forms + ) + ref_map: dict[str, str] = {} + + for row_def in rows_def: + period_type = row_def.period_type + + for xbrl_entry in row_def.xbrl_tags: + ns_facts = facts.get(xbrl_entry["namespace"], {}) + tag_data = ns_facts.get(xbrl_entry["tag"]) + + if not tag_data: + continue + + unit_data = _get_unit_data(tag_data, row_def.unit, currency) + + if not unit_data: + continue + + for entry in unit_data: + form = entry.get("form", "") + + if form not in allowed_forms: + continue + + end_date = entry.get("end", "") + + if not end_date: + continue + + if period_type == "duration": + start_date = entry.get("start", "") + + if not start_date or start_date == end_date: + continue + + try: + days = ( + datetime.strptime(end_date, "%Y-%m-%d") + - datetime.strptime(start_date, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if frequency == "annual": + if not 300 <= days <= 400: + continue + elif form in SEMI_ANNUAL_FORMS: + if not (60 <= days <= 135 or 150 <= days <= 200): + continue + elif not 60 <= days <= 135: + continue + + filed = entry.get("filed", "") + + if not filed: + continue + + if not pit_mode: + try: + _gap = ( + datetime.strptime(filed, "%Y-%m-%d") + - datetime.strptime(end_date, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + if _gap > 450: + continue + + if ( + end_date not in ref_map + or pit_mode + and filed < ref_map[end_date] + or not pit_mode + and filed > ref_map[end_date] + ): + ref_map[end_date] = filed + + return ref_map + + +def quarterly_ref_filings( + facts: dict[str, Any], + base_ref_map: dict[str, str], +) -> dict[str, str]: + """Override quarterly ref filings to prefer 10-K vintage.""" + fy_filings: dict[str, tuple[str, str]] = {} + + for ns_facts in facts.values(): + for tag_data in ns_facts.values(): + for entries in tag_data.get("units", {}).values(): + for entry in entries: + form = entry.get("form", "") + + if form not in ANNUAL_FORMS: + continue + + start = entry.get("start", "") + end = entry.get("end", "") + filed = entry.get("filed", "") + + if not start or not end or not filed or start == end: + continue + + try: + days = ( + datetime.strptime(end, "%Y-%m-%d") + - datetime.strptime(start, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if 300 <= days <= 400 and ( + end not in fy_filings or filed < fy_filings[end][1] + ): + fy_filings[end] = (start, filed) + + if not fy_filings: + return base_ref_map + + result = dict(base_ref_map) + sorted_fys = sorted(fy_filings.keys()) + + for date in base_ref_map: + for fy_end in sorted_fys: + fy_start, fy_filed = fy_filings[fy_end] + if fy_start < date <= fy_end: + result[date] = fy_filed + break + + return result diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_imputation.py b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_imputation.py new file mode 100644 index 00000000000..184c8025128 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_imputation.py @@ -0,0 +1,1796 @@ +"""Imputation logic: multi-pass derivation, hierarchical articulation, and verification.""" + +# pylint: disable=C0302,R0912,R0913,R0914,R0915,R0916,R0917 +# flake8: noqa: PLR0912 + +from __future__ import annotations + +from datetime import datetime +from typing import Any + +from openbb_sec.utils.statement_schema._detection import ( + detect_reporting_currency, + prior_period_end, +) +from openbb_sec.utils.statement_schema._rules import ( + BS_IMPUTE, + BS_VERIFY, + CF_IMPUTE, + CF_VERIFY, + IS_IMPUTE, + IS_IMPUTE_COMMON, + IS_VERIFY, + MAX_IMPUTE_PASSES, +) +from openbb_sec.utils.statement_schema._types import ( + CompanyType, + Frequency, + RowResult, + StatementName, + ValidationWarning, + _tolerance, +) + + +def _format_impute_source(prefix: str, sources: list[tuple[str, int]]) -> str: + """Build a human-readable source string for an imputation rule.""" + parts: list[str] = [] + + for i, (src_tag, sign) in enumerate(sources): + if i == 0: + parts.append(f"{'-' if sign < 0 else ''}{src_tag}") + else: + parts.append(f"{'+' if sign > 0 else '-'} {src_tag}") + + return f"{prefix}: {' '.join(parts)}" + + +def _run_imputation_passes( + rows: list[RowResult], + rules: list[tuple[str, list[tuple[str, int]]]], + tag_idx: dict[str, int], + filing_dates: set[str], +) -> bool: + """Run up to MAX_IMPUTE_PASSES imputation passes over all rules. + + Returns True if any value was derived across all passes. + """ + any_changed = False + + for _pass in range(MAX_IMPUTE_PASSES): + changed = False + + for target_tag, sources in rules: + target_i = tag_idx.get(target_tag) + + if target_i is None: + continue + + target_row = rows[target_i] + + for date in filing_dates: + + if target_row.values.get(date) is not None: + continue + + val = 0.0 + all_present = True + + for src_tag, sign in sources: + src_i = tag_idx.get(src_tag) + + if src_i is None: + all_present = False + break + + src_val = rows[src_i].values.get(date) + + if src_val is None: + all_present = False + break + + val += src_val * sign + + if all_present: + target_row.values[date] = val + target_row.sources[date] = _format_impute_source("imputed", sources) + changed = True + + if not changed: + break + + any_changed = True + + return any_changed + + +def _apply_hierarchical_articulation( + rows: list[RowResult], + filing_dates: set[str], +) -> None: + """Enforce parent-child math by rolling up missing parents or generating plugs.""" + tag_to_row = {r.tag: r for r in rows} + children_by_parent: dict[str, list[RowResult]] = {} + depth_map: dict[str, int] = {} + + def get_depth(tag: str) -> int: + if tag in depth_map: + return depth_map[tag] + row = tag_to_row.get(tag) + if not row or not row.parent or row.parent not in tag_to_row: + depth_map[tag] = 0 + return 0 + depth_map[tag] = 0 + d = 1 + get_depth(row.parent) + depth_map[tag] = d + return d + + for row in rows: + get_depth(row.tag) + + if row.parent and row.factor in ("+", "-"): + if row.parent not in children_by_parent: + children_by_parent[row.parent] = [] + + children_by_parent[row.parent].append(row) + + parents = list(children_by_parent.keys()) + parents.sort(key=get_depth, reverse=True) + new_rows: list[RowResult] = [] + + for parent_tag in parents: + parent_row = tag_to_row[parent_tag] + children = children_by_parent[parent_tag] + + for date in filing_dates: + children_sum = 0.0 + has_child_val = False + contributing_children: list[str] = [] + + for child in children: + if child.tag.startswith( + "other_" + ) and "imputed-plug" in child.sources.get(date, ""): + continue + + c_val = child.values.get(date) + + if c_val is not None: + has_child_val = True + sign = 1.0 if child.factor == "+" else -1.0 + children_sum += c_val * sign + contributing_children.append(f"{child.tag}({child.factor})") + + if not has_child_val: + continue + + p_val = parent_row.values.get(date) + children_detail = " + ".join(contributing_children) + + if p_val is None: + parent_row.values[date] = children_sum + parent_row.sources[date] = f"imputed-rollup: {children_detail}" + else: + diff = p_val - children_sum + + if abs(diff) > _tolerance(p_val, children_sum): + base = parent_tag.removeprefix("total_") + plug_tag = f"other_{base}" + + if plug_tag not in tag_to_row: + plug_seq = parent_row.sequence + base_label = parent_row.label.removeprefix("Total ") + plug_row = RowResult( + tag=plug_tag, + label=f"Other {base_label}", + description="Synthetic balancing plug derived from " + + f"{parent_row.label} minus explicitly mapped children.", + parent=parent_tag, + sequence=plug_seq - 0.01, + factor="+", + balance=parent_row.balance, + unit=parent_row.unit, + period_type=parent_row.period_type, + values={}, + sources={}, + ) + tag_to_row[plug_tag] = plug_row + new_rows.append(plug_row) + + plug_row = tag_to_row[plug_tag] + existing_source = plug_row.sources.get(date, "") + + if date in plug_row.values and "imputed" not in existing_source: + continue + + plug_row.values[date] = diff + plug_row.sources[date] = ( + f"imputed-plug: {parent_tag} - ({children_detail})" + ) + + if new_rows: + rows.extend(new_rows) + rows.sort(key=lambda r: float(r.sequence)) + + +def impute( + rows: list[RowResult], + statement: StatementName, + company_type: CompanyType, + filing_dates: set[str], + facts: dict[str, Any] | None = None, + frequency: Frequency = "annual", + currency: str = "USD", + *, + get_rows_fn=None, + get_annual_values_fn=None, +) -> tuple[list[RowResult], list[ValidationWarning]]: + """Apply imputation rules to derive missing values, then validate. + + Parameters + ---------- + get_rows_fn : callable, optional + Function(statement, company_type) -> list[RowDef] for Q4 correction. + get_annual_values_fn : callable, optional + Function(facts, row_def, currency) -> dict for Q4 correction. + """ + if statement == "income_statement": + rules = IS_IMPUTE.get(company_type, []) + IS_IMPUTE_COMMON + elif statement == "balance_sheet": + rules = BS_IMPUTE + elif statement == "cash_flow": + rules = CF_IMPUTE + else: + return rows, [] + + if not rules: + return rows, [] + + tag_idx: dict[str, int] = {r.tag: i for i, r in enumerate(rows)} + + if statement == "income_statement": + _ptx_i = tag_idx.get("total_pretax_income") + _beq_i = tag_idx.get("income_before_equity_method") + _eqm_i = tag_idx.get("equity_method_investments") + _nic_i = tag_idx.get("net_income_continuing") + _tax_i = tag_idx.get("income_tax_expense") + + if _ptx_i is not None: + _ptx = rows[_ptx_i] + + for _d in list(filing_dates): + _s = _ptx.sources.get(_d, "") + + if "EquityMethodInvestments" not in _s: + continue + if _beq_i is not None and _d not in rows[_beq_i].values: + rows[_beq_i].values[_d] = _ptx.values[_d] + rows[_beq_i].sources[_d] = _s + _ni_v = rows[_nic_i].values.get(_d) if _nic_i is not None else None + _tx_v = rows[_tax_i].values.get(_d) if _tax_i is not None else None + _ni_src = rows[_nic_i].sources.get(_d, "") if _nic_i is not None else "" + + if ( + _ni_v is not None + and _tx_v is not None + and abs(_ptx.values[_d] - _ni_v - _tx_v) + <= _tolerance(_ptx.values[_d], _ni_v, _tx_v) + ): + continue + if "ProfitLoss" in _ni_src and "FromContinuing" not in _ni_src: + del _ptx.values[_d] + del _ptx.sources[_d] + continue + + _eqv = rows[_eqm_i].values.get(_d) if _eqm_i is not None else None + + if _eqv is not None and _eqv != 0: + _ptx.values[_d] += _eqv + _ptx.sources[_d] = ( + "corrected: income_before_equity_method" + " + equity_method_investments" + ) + else: + del _ptx.values[_d] + del _ptx.sources[_d] + + if statement == "income_statement": + _nic_i = tag_idx.get("net_income_continuing") + _disc_i = tag_idx.get("net_income_discontinued") + _tax_i = tag_idx.get("income_tax_expense") + + if _nic_i is not None and _disc_i is not None: + _nic = rows[_nic_i] + _disc = rows[_disc_i] + + for _d in list(filing_dates): + _s = _nic.sources.get(_d, "") + + if "ProfitLoss" not in _s: + continue + if "ProfitLossFrom" in _s or "ProfitLossBefore" in _s: + continue + if _tax_i is not None: + _tax_src = rows[_tax_i].sources.get(_d, "") + + if _tax_src and "ContinuingOperations" not in _tax_src: + continue + + _dv = _disc.values.get(_d) + + if _dv is not None and _dv != 0: + _nic.values[_d] -= _dv + _nic.sources[_d] = _s + "(disc-adjusted)" + + _apply_hierarchical_articulation(rows, filing_dates) + tag_idx = {r.tag: i for i, r in enumerate(rows)} + + if ( + frequency == "quarterly" + and facts is not None + and get_rows_fn is not None + and get_annual_values_fn is not None + ): + rows_def = get_rows_fn(statement, company_type) + row_def_by_tag = {rd.tag: rd for rd in rows_def} + tag_to_row = {r.tag: r for r in rows} + children_by_parent: dict[str, list[RowResult]] = {} + for r in rows: + if r.parent and r.factor in ("+", "-") and r.parent in tag_to_row: + children_by_parent.setdefault(r.parent, []).append(r) + + for parent_tag, children in children_by_parent.items(): + parent_row = tag_to_row[parent_tag] + parent_def = row_def_by_tag.get(parent_tag) + if parent_def is None or parent_def.period_type != "duration": + continue + if parent_def.unit == "shares": + continue + annual_vals = get_annual_values_fn(facts, parent_def, currency) + if not annual_vals: + continue + for fy_end, (fy_start, fy_val, fy_src) in annual_vals.items(): + p_src = parent_row.sources.get(fy_end, "") + if "imputed-rollup" not in p_src: + continue + q_dates = sorted(d for d in parent_row.values if fy_start < d < fy_end) + if len(q_dates) != 3: + continue + q_sum = sum(parent_row.values[d] for d in q_dates) + q4_val = fy_val - q_sum + if fy_val != 0 and q4_val * fy_val < 0: + continue + q_srcs = [parent_row.sources.get(d, "") for d in q_dates] + q_labels = "+".join(f"Q{i+1}[{s}]" for i, s in enumerate(q_srcs)) + parent_row.values[fy_end] = q4_val + parent_row.sources[fy_end] = f"Q4: FY[{fy_src}] \u2212 ({q_labels})" + missing_children = [] + sibling_sum = 0.0 + for child in children: + c_val = child.values.get(fy_end) + if c_val is None: + missing_children.append(child) + else: + sign = 1.0 if child.factor == "+" else -1.0 + sibling_sum += c_val * sign + if len(missing_children) == 1: + mc = missing_children[0] + mc_sign = 1.0 if mc.factor == "+" else -1.0 + mc.values[fy_end] = (q4_val - sibling_sum) * mc_sign + mc.sources[fy_end] = f"Q4-derived: {parent_tag}" f" \u2212 siblings" + tag_idx = {r.tag: i for i, r in enumerate(rows)} + + _run_imputation_passes(rows, rules, tag_idx, filing_dates) + + if statement == "income_statement": + gp_i = tag_idx.get("total_gross_profit") + rev_i = tag_idx.get("total_revenue") + cogs_i = tag_idx.get("total_cost_of_revenue") + + if gp_i is not None and rev_i is not None and cogs_i is not None: + gp_row = rows[gp_i] + rev_row = rows[rev_i] + cogs_row = rows[cogs_i] + gp_corrected = False + + for date in filing_dates: + gp_src = gp_row.sources.get(date, "") + cogs_val = cogs_row.values.get(date) + rev_val = rev_row.values.get(date) + + if ( + "imputed-rollup" in gp_src + and cogs_val is not None + and cogs_val != 0 + and rev_val is not None + ): + gp_row.values[date] = rev_val - cogs_val + gp_row.sources[date] = ( + "imputed: total_revenue - total_cost_of_revenue" + ) + gp_corrected = True + + if gp_corrected: + _run_imputation_passes(rows, rules, tag_idx, filing_dates) + + if statement == "income_statement": + cogs_i = tag_idx.get("total_cost_of_revenue") + ce_i = tag_idx.get("costs_and_expenses") + opex_i = tag_idx.get("total_operating_expenses") + opinc_i = tag_idx.get("total_operating_income") + rev_i = tag_idx.get("total_revenue") + + if all(i is not None for i in [cogs_i, ce_i, opex_i, opinc_i, rev_i]): + cogs_row = rows[cogs_i] # type: ignore + ce_row = rows[ce_i] # type: ignore + opex_row = rows[opex_i] # type: ignore + opinc_row = rows[opinc_i] # type: ignore + rev_row = rows[rev_i] # type: ignore + cogs_corrected = False + + for date in filing_dates: + cogs_val = cogs_row.values.get(date) + ce_val = ce_row.values.get(date) + opex_val = opex_row.values.get(date) + opinc_val = opinc_row.values.get(date) + rev_val = rev_row.values.get(date) + cogs_src = cogs_row.sources.get(date, "") + + if ( + cogs_val is not None + and ce_val is not None + and opex_val is not None + and opinc_val is not None + and rev_val is not None + and "imputed" not in cogs_src + and abs(ce_val - (rev_val - opinc_val)) + <= _tolerance(ce_val, rev_val, opinc_val) + and (cogs_val + opex_val) < ce_val * 0.95 + ): + new_cogs = ce_val - opex_val + cogs_row.values[date] = new_cogs + cogs_row.sources[date] = ( + "corrected: costs_and_expenses - total_operating_expenses" + ) + cogs_corrected = True + + if cogs_corrected: + gp_i2 = tag_idx.get("total_gross_profit") + + if gp_i2 is not None: + gp_row2 = rows[gp_i2] + + for date in filing_dates: + rev_v = rev_row.values.get(date) + cogs_v = cogs_row.values.get(date) + + if rev_v is not None and cogs_v is not None: + gp_row2.values[date] = rev_v - cogs_v + gp_row2.sources[date] = ( + "imputed: total_revenue - total_cost_of_revenue" + ) + _run_imputation_passes(rows, rules, tag_idx, filing_dates) + + if statement == "income_statement": + cogs_i = tag_idx.get("total_cost_of_revenue") + gp_i = tag_idx.get("total_gross_profit") + rev_i = tag_idx.get("total_revenue") + + if cogs_i is not None and gp_i is not None and rev_i is not None: + cogs_row = rows[cogs_i] + gp_row = rows[gp_i] + rev_row = rows[rev_i] + gp_corrected = False + + for date in filing_dates: + gp_val = gp_row.values.get(date) + rev_val = rev_row.values.get(date) + cogs_val = cogs_row.values.get(date) + gp_src = gp_row.sources.get(date, "") + + if ( + gp_val is not None + and rev_val is not None + and cogs_val is not None + and "imputed" not in gp_src + and abs(rev_val - cogs_val - gp_val) + > _tolerance(rev_val, cogs_val, gp_val) + ): + cogs_row.values[date] = rev_val - gp_val + cogs_row.sources[date] = ( + "corrected: total_revenue - total_gross_profit" + ) + gp_corrected = True + + if gp_corrected: + _run_imputation_passes(rows, rules, tag_idx, filing_dates) + + if statement == "income_statement": + opex_i = tag_idx.get("total_operating_expenses") + gp_i = tag_idx.get("total_gross_profit") + opinc_i = tag_idx.get("total_operating_income") + + if opex_i is not None and gp_i is not None and opinc_i is not None: + opex_row = rows[opex_i] + gp_row = rows[gp_i] + opinc_row = rows[opinc_i] + cleared = False + + for date in filing_dates: + opex_val = opex_row.values.get(date) + gp_val = gp_row.values.get(date) + opinc_val = opinc_row.values.get(date) + + if opex_val is None or gp_val is None or opinc_val is None: + continue + + if ( + opex_val > gp_val + or abs(gp_val - opex_val - opinc_val) + > _tolerance(gp_val, opex_val, opinc_val) + and "imputed" not in opinc_row.sources.get(date, "") + ): + opex_row.values[date] = gp_val - opinc_val + opex_row.sources[date] = ( + "corrected: total_gross_profit - total_operating_income" + ) + cleared = True + + if cleared: + _run_imputation_passes(rows, rules, tag_idx, filing_dates) + + if statement == "balance_sheet": + enci_i = tag_idx.get("total_equity_and_noncontrolling_interests") + ep_i = tag_idx.get("total_equity") + nci_i = tag_idx.get("noncontrolling_interests") + le_i = tag_idx.get("total_liabilities_and_equity") + l_i = tag_idx.get("total_liabilities") + rnci_i = tag_idx.get("redeemable_noncontrolling_interest") + + if all(i is not None for i in [enci_i, ep_i, nci_i, le_i, l_i]): + for date in filing_dates: + enci_v = rows[enci_i].values.get(date) # type: ignore + ep_v = rows[ep_i].values.get(date) # type: ignore + nci_v = rows[nci_i].values.get(date, 0) # type: ignore + le_v = rows[le_i].values.get(date) # type: ignore + l_v = rows[l_i].values.get(date) # type: ignore + rnci_v = rows[rnci_i].values.get(date, 0) if rnci_i is not None else 0 + + if any(v is None for v in [enci_v, ep_v, le_v, l_v]): + continue + + if abs(enci_v - ep_v - nci_v) <= _tolerance(enci_v, ep_v, nci_v): # type: ignore[operator] + continue + + if abs(l_v + enci_v + rnci_v - le_v) > _tolerance(le_v, l_v, enci_v, rnci_v): # type: ignore[operator] + continue + + rows[ep_i].values[date] = enci_v - nci_v # type: ignore + rows[ep_i].sources[date] = ( # type: ignore + "reconciled: total_equity_and_noncontrolling" + "_interests - noncontrolling_interests" + ) + + _apply_hierarchical_articulation(rows, filing_dates) + tag_idx = {r.tag: i for i, r in enumerate(rows)} + + if statement == "income_statement": + verify_rules = IS_VERIFY + elif statement == "balance_sheet": + verify_rules = BS_VERIFY + elif statement == "cash_flow": + verify_rules = CF_VERIFY + else: + verify_rules = [] + + _SRC_SOFT_MARKERS = ( + "imputed-rollup", + "imputed-plug", + "(fallback)", + ) + _TGT_SOFT_MARKERS = _SRC_SOFT_MARKERS + ("imputed:",) + + def _is_target_soft(src: str) -> bool: + return any(m in src for m in _TGT_SOFT_MARKERS) + + def _is_source_soft(src: str) -> bool: + return any(m in src for m in _SRC_SOFT_MARKERS) + + diagnostics: list[ValidationWarning] = [] + verified_pairs: set[tuple[str, str]] = set() + pending_diagnostics: dict[tuple[str, str], ValidationWarning] = {} + + _NCI_VALID_FORMS = ( + "10-K", + "10-K/A", + "10-Q", + "10-Q/A", + "20-F", + "20-F/A", + "40-F", + "40-F/A", + "6-K", + "6-K/A", + ) + + for target_tag, sources in verify_rules: + target_i = tag_idx.get(target_tag) + + if target_i is None: + continue + + target_row = rows[target_i] + + for date in filing_dates: + if (target_tag, date) in verified_pairs: + continue + + if date not in target_row.values: + continue + + nc_includes_fx: bool | None = True + _cf_scope_mismatch = False + + if target_tag == "net_change_in_cash": + nc_src = target_row.sources.get(date, "") + has_fx_in_rule = any( + s == "effect_of_exchange_rate_changes" for s, _ in sources + ) + if "ExcludingExchangeRateEffect" in nc_src: + nc_includes_fx = False + elif "IncludingExchangeRateEffect" in nc_src: + nc_includes_fx = True + else: + nc_includes_fx = None + + if nc_includes_fx is not None: + if not has_fx_in_rule and nc_includes_fx: + continue + + if has_fx_in_rule and not nc_includes_fx: + continue + + for src_tag, _sign in sources: + if src_tag in ( + "effect_of_exchange_rate_changes", + "other_net_changes_in_cash", + ): + continue + + src_i = tag_idx.get(src_tag) + + if src_i is not None: + src_src = rows[src_i].sources.get(date, "") + + if "ContinuingOperations" in src_src: + _cf_scope_mismatch = True + break + + if ( + target_tag in ("total_pretax_income", "net_income_continuing") + and statement == "income_statement" + ): + _nic_tag_i = tag_idx.get("net_income_continuing") + _tax_tag_i = tag_idx.get("income_tax_expense") + + if _nic_tag_i is not None and _tax_tag_i is not None: + _nic_src = rows[_nic_tag_i].sources.get(date, "") + _tax_src = rows[_tax_tag_i].sources.get(date, "") + if ( + "(disc-adjusted)" in _nic_src + and "ContinuingOperations" not in _tax_src + ): + _ptx_tag_i = tag_idx.get("total_pretax_income") + + if _ptx_tag_i is not None: + _pv = rows[_ptx_tag_i].values.get(date) + _nv = rows[_nic_tag_i].values.get(date) + _tv = rows[_tax_tag_i].values.get(date) + + if ( + _pv is not None + and _nv is not None + and _tv is not None + and abs(_pv - _nv - _tv) > _tolerance(_pv, _nv, _tv) + ): + verified_pairs.add(("total_pretax_income", date)) + verified_pairs.add(("net_income_continuing", date)) + continue + + val = 0.0 + all_present = True + + for src_tag, sign in sources: + src_i = tag_idx.get(src_tag) + + if src_i is None: + all_present = False + break + + src_val = rows[src_i].values.get(date) + + if src_val is None: + all_present = False + break + + val += src_val * sign + + if not all_present: + continue + + diff = abs(val - target_row.values[date]) + _tol = _tolerance(val, target_row.values[date]) + + if diff <= _tol: + verified_pairs.add((target_tag, date)) + continue + + if ( + target_tag == "total_assets" + and statement == "balance_sheet" + and len(sources) == 1 + and sources[0][0] == "total_liabilities_and_equity" + ): + _le_src_i = tag_idx.get("total_liabilities_and_equity") + + if _le_src_i is not None: + _le_src_val = rows[_le_src_i].values.get(date) + + if ( + _le_src_val is not None + and _le_src_val < 0 + and abs(target_row.values[date] + _le_src_val) + <= _tolerance(target_row.values[date], _le_src_val) + ): + rows[_le_src_i].values[date] = -_le_src_val + rows[_le_src_i].sources[date] = ( + rows[_le_src_i].sources.get(date, "") + " (sign-corrected)" + ) + verified_pairs.add((target_tag, date)) + continue + + if ( + statement == "income_statement" + and target_tag in ("total_pretax_income", "net_income_continuing") + and facts is not None + ): + _nic_idx = tag_idx.get("net_income_continuing") + + if _nic_idx is not None: + _nic_src = rows[_nic_idx].sources.get(date, "") + + def _pick_entries( + raw_entries: list[dict], + target_date: str, + ) -> list[tuple[str, float]]: + candidates: dict[str, float] = {} + + for _e in raw_entries: + if ( + _e.get("end") != target_date + or _e.get("form") not in _NCI_VALID_FORMS + or "start" not in _e + ): + continue + + try: + _d = ( + datetime.strptime(target_date, "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if not ( + (60 <= _d <= 135) + or (150 <= _d <= 200) + or (300 <= _d <= 400) + ): + continue + + _f = _e.get("filed", "") + + if _f not in candidates: + candidates[_f] = _e["val"] + + return sorted(candidates.items(), key=lambda x: x[0]) + + def _try_nci_swap( + alt_val: float, + alt_tag_label: str, + *, + _date: str = date, + _nic_idx: int = _nic_idx, # type: ignore[assignment] + ) -> bool: + """Test identity with alt NI and apply if passes.""" + _tax_idx = tag_idx.get("income_tax_expense") + _ptx_idx = tag_idx.get("total_pretax_income") + + if _tax_idx is None or _ptx_idx is None: + return False + + _tv = rows[_tax_idx].values.get(_date) + _pv = rows[_ptx_idx].values.get(_date) + + if _tv is None or _pv is None: + return False + + if abs(_pv - alt_val - _tv) <= _tolerance(_pv, alt_val, _tv): + rows[_nic_idx].values[_date] = alt_val + rows[_nic_idx].sources[_date] = alt_tag_label + verified_pairs.add(("total_pretax_income", _date)) + verified_pairs.add(("net_income_continuing", _date)) + return True + + return False + + if "ProfitLoss" in _nic_src and "ProfitLossFrom" not in _nic_src: + _nil_raw = ( + facts.get("us-gaap", {}) + .get("NetIncomeLoss", {}) + .get("units", {}) + .get("USD", []) + ) + for _, _val in _pick_entries(_nil_raw, date): + if _try_nci_swap( + _val, + "us-gaap:NetIncomeLoss(NCI-corrected)", + ): + break + + elif "NetIncomeLoss" in _nic_src: + _ptx_idx = tag_idx.get("total_pretax_income") + _ptx_src = ( + rows[_ptx_idx].sources.get(date, "") + if _ptx_idx is not None + else "" + ) + if "NoncontrollingInterest" in _ptx_src: + _pl_raw = ( + facts.get("us-gaap", {}) + .get("ProfitLoss", {}) + .get("units", {}) + .get("USD", []) + ) + for _, _val in _pick_entries(_pl_raw, date): + if _try_nci_swap( + _val, + "us-gaap:ProfitLoss(NCI-corrected)", + ): + break + + if (target_tag, date) not in verified_pairs: + _nic_src_q4 = ( + rows[_nic_idx].sources.get(date, "") + if _nic_idx is not None + else "" + ) + if "Q4:" in _nic_src_q4: + for _alt_tag in ("NetIncomeLoss", "ProfitLoss"): + _alt_raw = ( + facts.get("us-gaap", {}) + .get(_alt_tag, {}) + .get("units", {}) + .get("USD", []) + ) + _fy_val = None + _fy_best_filed = None + _fy_start_date = None + + for _e in _alt_raw: + if ( + _e.get("end") != date + or "start" not in _e + or _e.get("form") not in _NCI_VALID_FORMS + ): + continue + + try: + _days = ( + datetime.strptime(date, "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if 300 <= _days <= 400: + _ef = _e.get("filed", "") + + if ( + _fy_best_filed is None + or _ef < _fy_best_filed + ): + _fy_best_filed = _ef + _fy_val = _e["val"] + _fy_start_date = _e["start"] + + if _fy_val is None or _fy_start_date is None: + continue + + _q_by_end: dict[str, tuple[str, float]] = {} + + for _e in _alt_raw: + if ( + "start" not in _e + or _e.get("form") not in _NCI_VALID_FORMS + ): + continue + + try: + _qd = ( + datetime.strptime(_e["end"], "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if not 60 <= _qd <= 135: + continue + + _e_end = _e["end"] + + if not _fy_start_date <= _e_end < date: + continue + + _ef = _e.get("filed", "") + + if ( + _e_end not in _q_by_end + or _ef < _q_by_end[_e_end][0] + ): + _q_by_end[_e_end] = (_ef, _e["val"]) + + if len(_q_by_end) == 3: + _q4_alt = _fy_val - sum( + v for _, v in _q_by_end.values() + ) + + if _nic_idx is not None and _try_nci_swap( + _q4_alt, + f"us-gaap:{_alt_tag}(Q4-NCI-corrected)", + ): + break + + if (target_tag, date) in verified_pairs: + continue + + if ( + statement == "income_statement" + and target_tag in ("total_pretax_income", "net_income_continuing") + and (target_tag, date) not in verified_pairs + ): + _scope_formula = _format_impute_source("", sources).lstrip(": ") + target_row.values[date] = val + target_row.sources[date] = f"scope-aligned: {_scope_formula}" + verified_pairs.add(("total_pretax_income", date)) + verified_pairs.add(("net_income_continuing", date)) + continue + + if target_tag == "net_change_in_cash": + disc_i = tag_idx.get("net_cash_from_discontinued_operations") + disc_val = rows[disc_i].values.get(date) if disc_i is not None else None + _DISC_FX_TAGS = [ + "EffectOfExchangeRateOnCashAndCashEquivalentsDiscontinuedOperations", + "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCash" + + "EquivalentsDisposalGroupIncludingDiscontinuedOperations", + ] + _disc_fx = 0.0 + + if disc_val is not None and facts is not None: + _us = facts.get("us-gaap", {}) + + for _dft in _DISC_FX_TAGS: + for _e in _us.get(_dft, {}).get("units", {}).get("USD", []): + if _e.get("end") == date and "start" in _e: + try: + _days = ( + datetime.strptime(date, "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if (60 <= _days <= 135) or (300 <= _days <= 400): + _disc_fx = _e["val"] + break + + if _disc_fx != 0.0: + break + + if disc_val is not None: + adj_diff = abs(val + disc_val + _disc_fx - target_row.values[date]) + if adj_diff <= _tolerance( + val, disc_val, _disc_fx, target_row.values[date] + ): + verified_pairs.add((target_tag, date)) + continue + if _disc_fx != 0.0: + adj_diff = abs(val + disc_val - target_row.values[date]) + if adj_diff <= _tolerance( + val, disc_val, target_row.values[date] + ): + verified_pairs.add((target_tag, date)) + continue + + _DISC_INDIVIDUAL_TAGS = [ + "CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations", + "CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations", + "CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations", + ] + if facts is not None and (target_tag, date) not in verified_pairs: + _us_fb0b = facts.get("us-gaap", {}) + + for _dit in _DISC_INDIVIDUAL_TAGS: + for _e in ( + _us_fb0b.get(_dit, {}).get("units", {}).get("USD", []) + ): + if _e.get("end") == date and "start" in _e: + try: + _days = ( + datetime.strptime(date, "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if ((60 <= _days <= 135) or (300 <= _days <= 400)) and ( + abs(val + _e["val"] - target_row.values[date]) + <= _tolerance( + val, _e["val"], target_row.values[date] + ) + ): + verified_pairs.add((target_tag, date)) + break + + if (target_tag, date) in verified_pairs: + break + + if (target_tag, date) in verified_pairs: + continue + + if disc_val is None and facts is not None: + _DISC_OPS_TAGS = [ + "CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations", + "CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations", + "CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations", + "NetCashProvidedByUsedInDiscontinuedOperations", + ] + _DISC_OPS_IFRS = [ + "CashFlowsFromUsedInOperatingActivitiesDiscontinuedOperations", + "CashFlowsFromUsedInInvestingActivitiesDiscontinuedOperations", + "CashFlowsFromUsedInFinancingActivitiesDiscontinuedOperations", + ] + _ccy = detect_reporting_currency(facts) + _disc_sum = 0.0 + _disc_found = False + + for _ns_key, _tags, _unit in ( + ("us-gaap", _DISC_OPS_TAGS, "USD"), + ("ifrs-full", _DISC_OPS_IFRS, _ccy), + ): + _ns = facts.get(_ns_key, {}) + + for _dt in _tags: + _entries = _ns.get(_dt, {}).get("units", {}).get(_unit, []) + for _e in _entries: + if _e.get("end") == date and "start" in _e: + try: + _days = ( + datetime.strptime(date, "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if (60 <= _days <= 135) or (300 <= _days <= 400): + _disc_sum += _e["val"] + _disc_found = True + break + + if _disc_found: + break + + if _disc_found: + _disc_fx_fb1 = 0.0 + + for _dft in _DISC_FX_TAGS: + for _e in _ns.get(_dft, {}).get("units", {}).get(_unit, []): + if _e.get("end") == date and "start" in _e: + try: + _days = ( + datetime.strptime(date, "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if (60 <= _days <= 135) or (300 <= _days <= 400): + _disc_fx_fb1 = _e["val"] + break + + if _disc_fx_fb1 != 0.0: + break + + adj_diff = abs( + val + _disc_sum + _disc_fx_fb1 - target_row.values[date] + ) + + if adj_diff <= _tolerance( + val, _disc_sum, _disc_fx_fb1, target_row.values[date] + ): + verified_pairs.add((target_tag, date)) + continue + + if disc_val is None and facts is not None: + _disposal_tags = [ + "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" + "PeriodIncreaseDecreaseIncludingExchangeRateEffect" + "DisposalGroupIncludingDiscontinuedOperations", + "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" + "PeriodIncreaseDecreaseExcludingExchangeRateEffect" + "DisposalGroupIncludingDiscontinuedOperations", + "CashAndCashEquivalentsPeriodIncreaseDecrease" + "DisposalGroupIncludingDiscontinuedOperations", + ] + _us = facts.get("us-gaap", {}) + + for _dt in _disposal_tags: + _entries = _us.get(_dt, {}).get("units", {}).get("USD", []) + + for _e in _entries: + if ( + _e.get("end") == date + and _e.get("form") in ("10-K", "10-Q", "20-F", "40-F") + and "start" in _e + ): + _start = _e["start"] + + try: + _days = ( + datetime.strptime(date, "%Y-%m-%d") + - datetime.strptime(_start, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if (60 <= _days <= 135) or (300 <= _days <= 400): + _disposal_nc = _e["val"] + _derived_disc = ( + target_row.values[date] - _disposal_nc + ) + adj_diff = abs( + val + _derived_disc - target_row.values[date] + ) + + if adj_diff <= _tolerance( + val, _derived_disc, target_row.values[date] + ): + verified_pairs.add((target_tag, date)) + break + else: + continue + + break + + if (target_tag, date) in verified_pairs: + continue + + if ( + facts is not None + and disc_val is None + and (target_tag, date) not in verified_pairs + ): + _DISP_CASH_TAGS = [ + "DisposalGroupIncludingDiscontinuedOperationCashAndCashEquivalents", + "DisposalGroupIncludingDiscontinuedOperationCash", + ] + _us = facts.get("us-gaap", {}) + _disp_end = None + + for _dct in _DISP_CASH_TAGS: + for _e in _us.get(_dct, {}).get("units", {}).get("USD", []): + if _e.get("end") == date and "start" not in _e: + _disp_end = _e["val"] + break + + if _disp_end is not None: + break + + if _disp_end is not None: + _disp_start = 0.0 + _prior = prior_period_end(date) + + if _prior: + for _dct in _DISP_CASH_TAGS: + for _e in ( + _us.get(_dct, {}).get("units", {}).get("USD", []) + ): + if _e.get("end") == _prior and "start" not in _e: + _disp_start = _e["val"] + break + + if _disp_start != 0.0: + break + + _disp_delta = _disp_end - _disp_start + + if abs(_disp_delta) > 0: + adj_diff = abs(val - _disp_delta - target_row.values[date]) + + if adj_diff <= _tolerance( + val, _disp_delta, target_row.values[date] + ): + verified_pairs.add((target_tag, date)) + continue + + if facts is not None and (target_tag, date) not in verified_pairs: + _RESTRICTED_TAGS = [ + "IncreaseDecreaseInRestrictedCashAndRestrictedCashEquivalents", + "IncreaseDecreaseInRestrictedCash", + "IncreaseDecreaseInRestrictedCashAndInvestments", + ] + _us = facts.get("us-gaap", {}) + + for _rt in _RESTRICTED_TAGS: + _entries = _us.get(_rt, {}).get("units", {}).get("USD", []) + + for _e in _entries: + if _e.get("end") == date and "start" in _e: + try: + _days = ( + datetime.strptime(date, "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if (60 <= _days <= 135) or (300 <= _days <= 400): + adj_diff = abs( + val + _e["val"] - target_row.values[date] + ) + + if adj_diff <= _tolerance( + val, _e["val"], target_row.values[date] + ): + verified_pairs.add((target_tag, date)) + break + + if (target_tag, date) in verified_pairs: + break + + if (target_tag, date) in verified_pairs: + continue + + if facts is not None and (target_tag, date) not in verified_pairs: + _ACTIVITY_PAIRS = [ + ( + "NetCashProvidedByUsedInOperatingActivities", + "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + ), + ( + "NetCashProvidedByUsedInInvestingActivities", + "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + ), + ( + "NetCashProvidedByUsedInFinancingActivities", + "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + ), + ] + _FX_ALT = [ + "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "EffectOfExchangeRateOnCashAndCashEquivalents", + "EffectOfExchangeRateOnCashAndCashEquivalentsContinuingOperations", + ] + _NC_ALT = [ + "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriod" + + "IncreaseDecreaseIncludingExchangeRateEffect", + "CashAndCashEquivalentsPeriodIncreaseDecrease", + "CashAndCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect", + ] + _IFRS_ACTIVITY_PAIRS = [ + ( + "CashFlowsFromUsedInOperatingActivities", + "CashFlowsFromUsedInOperatingActivitiesContinuingOperations", + ), + ( + "CashFlowsFromUsedInInvestingActivities", + "CashFlowsFromUsedInInvestingActivitiesContinuingOperations", + ), + ( + "CashFlowsFromUsedInFinancingActivities", + "CashFlowsFromUsedInFinancingActivitiesContinuingOperations", + ), + ] + _IFRS_FX_ALT = [ + "EffectOfExchangeRateChangesOnCashAndCashEquivalents", + ] + _IFRS_NC_ALT = [ + "IncreaseDecreaseInCashAndCashEquivalents", + ] + _us = facts.get("us-gaap", {}) + _ifrs = facts.get("ifrs-full", {}) + _ccy = detect_reporting_currency(facts) + + def _cf_vals( + tag_name: str, ns: dict, unit: str, *, _date: str = date + ) -> set: + out: set = set() + for _e in ns.get(tag_name, {}).get("units", {}).get(unit, []): + if _e.get("end") == _date and "start" in _e: + try: + _d = ( + datetime.strptime(_date, "%Y-%m-%d") + - datetime.strptime(_e["start"], "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + if (60 <= _d <= 135) or (300 <= _d <= 400): + out.add(_e["val"]) + return out + + _act_opts = [] + + for _tot, _cont in _ACTIVITY_PAIRS: + _act_opts.append( + _cf_vals(_tot, _us, "USD") | _cf_vals(_cont, _us, "USD") + ) + + for idx, (_tot, _cont) in enumerate(_IFRS_ACTIVITY_PAIRS): + _act_opts[idx] |= _cf_vals(_tot, _ifrs, _ccy) | _cf_vals( + _cont, _ifrs, _ccy + ) + + _fx_opts = {0.0} + + for _ft in _FX_ALT: + _fx_opts |= _cf_vals(_ft, _us, "USD") + + for _ft in _IFRS_FX_ALT: + _fx_opts |= _cf_vals(_ft, _ifrs, _ccy) + + _disc_fx_vals: set = set() + + for _dft in _DISC_FX_TAGS: + _disc_fx_vals |= _cf_vals(_dft, _us, "USD") + + if _disc_fx_vals: + for _fv in list(_fx_opts): + for _dfv in _disc_fx_vals: + _fx_opts.add(_fv + _dfv) + + _nc_opts: set = set() + + for _nt in _NC_ALT: + _nc_opts |= _cf_vals(_nt, _us, "USD") + + for _nt in _IFRS_NC_ALT: + _nc_opts |= _cf_vals(_nt, _ifrs, _ccy) + + if ( + all(_act_opts) + and _nc_opts + and any( + abs(_o + _i + _f + _fx - _nc) + <= _tolerance(_o, _i, _f, _fx, _nc) + for _o in _act_opts[0] + for _i in _act_opts[1] + for _f in _act_opts[2] + for _fx in _fx_opts + for _nc in _nc_opts + ) + ): + verified_pairs.add((target_tag, date)) + continue + + if facts is not None and (target_tag, date) not in verified_pairs: + _us = facts.get("us-gaap", {}) + _ifrs = facts.get("ifrs-full", {}) + _ccy = detect_reporting_currency(facts) + _nc_val = target_row.values.get(date) + _CASH_BAL_TAGS = [ + ( + "us-gaap", + "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "USD", + ), + ("us-gaap", "CashAndCashEquivalentsAtCarryingValue", "USD"), + ("us-gaap", "Cash", "USD"), + ("ifrs-full", "CashAndCashEquivalents", _ccy), + ] + + for _ns_key, _cbt, _unit in _CASH_BAL_TAGS: + _ns = _ifrs if _ns_key == "ifrs-full" else _us + _entries = _ns.get(_cbt, {}).get("units", {}).get(_unit, []) + _end_vals: set = set() + _start_vals: set = set() + + for _e in _entries: + if "start" in _e: + continue + + _edate = _e.get("end", "") + + if _edate == date: + _end_vals.add(_e["val"]) + elif _edate: + try: + _dd = ( + datetime.strptime(date, "%Y-%m-%d") + - datetime.strptime(_edate, "%Y-%m-%d") + ).days + except (ValueError, TypeError): + continue + + if 60 <= _dd <= 400: + _start_vals.add(_e["val"]) + + if ( + _end_vals + and _start_vals + and _nc_val is not None + and any( + abs((ev - sv) - _nc_val) <= _tolerance(ev, sv, _nc_val) + for ev in _end_vals + for sv in _start_vals + ) + ): + verified_pairs.add((target_tag, date)) + break + + if (target_tag, date) in verified_pairs: + continue + + if ( + target_tag == "total_liabilities" + and facts is not None + and (target_tag, date) not in verified_pairs + and diff > 0 + ): + _MEZZ_TAGS = ( + "RedeemableNoncontrollingInterestEquityCarryingAmount", + "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "RedeemablePreferredStockCarryingAmountOrRedemptionValue", + "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "TemporaryEquityCarryingAmountAttributableToParent", + "TemporaryEquityCarryingAmountAttributableToNoncontrollingInterest", + "TemporaryEquityCarryingAmount", + ) + _us = facts.get("us-gaap", {}) + _mezz_total = 0.0 + + for _mt in _MEZZ_TAGS: + _entries = _us.get(_mt, {}).get("units", {}).get("USD", []) + + for _e in _entries: + if _e.get("end") == date and "start" not in _e: + _mezz_total += _e["val"] + break + + _le_i = tag_idx.get("total_liabilities_and_equity") + _enci_i = tag_idx.get("total_equity_and_noncontrolling_interests") + _le_v = rows[_le_i].values.get(date) if _le_i is not None else None + _enci_v = ( + rows[_enci_i].values.get(date) if _enci_i is not None else None + ) + _l_v = target_row.values.get(date) + + if _le_v is not None and _enci_v is not None and _l_v is not None: + _total_mezz_computed = _le_v - _l_v - _enci_v + + if _total_mezz_computed > 0: + verified_pairs.add((target_tag, date)) + continue + + if abs(_total_mezz_computed) <= _tolerance(_le_v, _l_v, _enci_v): + verified_pairs.add((target_tag, date)) + continue + + _rnci_i2 = tag_idx.get("redeemable_noncontrolling_interest") + if _rnci_i2 is not None: + _rnci_src2 = rows[_rnci_i2].sources.get(date, "") + if "imputed" in _rnci_src2: + rows[_rnci_i2].values[date] = _total_mezz_computed + rows[_rnci_i2].sources[date] = _rnci_src2 + " (re-imputed)" + verified_pairs.add((target_tag, date)) + continue + + if ( + target_tag + in ( + "total_equity_and_noncontrolling_interests", + "total_equity", + ) + and facts is not None + and (target_tag, date) not in verified_pairs + ): + _rnci_i = tag_idx.get("redeemable_noncontrolling_interest") + _rnci_val = ( + rows[_rnci_i].values.get(date, 0) if _rnci_i is not None else 0 + ) + if abs(_rnci_val) > 0 or diff > _tolerance(diff, _rnci_val): + _MEZZ_TAGS_EQ = ( + "RedeemableNoncontrollingInterestEquityCarryingAmount", + "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "TemporaryEquityCarryingAmountAttributableToParent", + "TemporaryEquityCarryingAmountAttributableToNoncontrollingInterest", + "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "TemporaryEquityCarryingAmount", + "RedeemablePreferredStockCarryingAmountOrRedemptionValue", + "PreferredStockValue", + ) + _us = facts.get("us-gaap", {}) + _eq_resolved = False + _mezz_sum = 0.0 + + for _mt in _MEZZ_TAGS_EQ: + _entries = _us.get(_mt, {}).get("units", {}).get("USD", []) + + for _e in _entries: + if _e.get("end") == date and "start" not in _e: + if abs(diff - _e["val"]) <= _tolerance(diff, _e["val"]): + _eq_resolved = True + _mezz_sum += _e["val"] + break + + if _eq_resolved: + break + + if not _eq_resolved and abs(diff - _mezz_sum) <= _tolerance( + diff, _mezz_sum + ): + _eq_resolved = True + + if _eq_resolved: + verified_pairs.add((target_tag, date)) + continue + + _nci_i = tag_idx.get("noncontrolling_interests") + _nci_val = rows[_nci_i].values.get(date) if _nci_i is not None else None + + if ( + _nci_val is not None + and _nci_val < 0 + and abs(diff - 2 * abs(_nci_val)) <= _tolerance(diff, _nci_val) + ): + verified_pairs.add((target_tag, date)) + continue + + if ( + target_tag == "total_operating_income" + and statement == "income_statement" + and facts is not None + and (target_tag, date) not in verified_pairs + ): + _signed_gap = target_row.values[date] - val + _us = facts.get("us-gaap", {}) + _OTHER_OP_TAGS = ( + "GainLossOnDispositionOfAssets", + "GainLossOnSaleOfPropertyPlantEquipment", + "GainLossOnDispositionOfProperty", + "OtherOperatingIncomeExpenseNet", + ) + _oi_bridge_resolved = False + + for _ot in _OTHER_OP_TAGS: + _entries = _us.get(_ot, {}).get("units", {}).get("USD", []) + + for _e in _entries: + if ( + _e.get("end") == date + and "start" in _e + and _e["val"] != 0 + and abs(_signed_gap - _e["val"]) + <= _tolerance(_signed_gap, _e["val"]) + ): + _oi_bridge_resolved = True + break + + if _oi_bridge_resolved: + break + + if not _oi_bridge_resolved: + _gp_i = tag_idx.get("total_gross_profit") + _opex_i = tag_idx.get("total_operating_expenses") + _opinc_i = tag_idx.get("total_operating_income") + _vals = [] + for _idx in (_gp_i, _opex_i, _opinc_i): + if _idx is not None: + _v = rows[_idx].values.get(date) + if _v is not None: + _vals.append(abs(int(_v))) + if ( + len(_vals) == 3 + and all(v % 1_000_000 == 0 for v in _vals) + and diff <= 1_000_000 + ): + _oi_bridge_resolved = True + + if _oi_bridge_resolved: + verified_pairs.add((target_tag, date)) + continue + + target_src = target_row.sources.get(date, "") + _formula = _format_impute_source("", sources).lstrip(": ") + _ambiguous_cf = ( + target_tag == "net_change_in_cash" + and nc_includes_fx is None # noqa: F821 + ) + _skip_enforce = _ambiguous_cf or _cf_scope_mismatch + + if _is_target_soft(target_src) and not _skip_enforce: + target_row.values[date] = val + target_row.sources[date] = ( + f"identity-enforced: {_formula} [solving {target_tag}]" + ) + verified_pairs.add((target_tag, date)) + continue + + if not _skip_enforce: + soft_src_tags = [] + + for src_tag, _sign in sources: + src_i = tag_idx.get(src_tag) + + if src_i is not None: + src_src = rows[src_i].sources.get(date, "") + if _is_source_soft(src_src): + soft_src_tags.append((src_tag, _sign)) + + if len(soft_src_tags) == 1: + fix_tag, fix_sign = soft_src_tags[0] + fix_i = tag_idx[fix_tag] + other_sum = 0.0 + + for src_tag, sign in sources: + if src_tag == fix_tag: + continue + other_sum += rows[tag_idx[src_tag]].values[date] * sign + + rows[fix_i].values[date] = ( + target_row.values[date] - other_sum + ) / fix_sign + rows[fix_i].sources[date] = ( + f"identity-enforced: derived from {target_tag}" + f" [solving {fix_tag}]" + ) + verified_pairs.add((target_tag, date)) + continue + + if ( + target_tag == "net_change_in_cash" + and (target_tag, date) not in verified_pairs + ): + _DERIVED_MARKERS = ( + "ytd_derived", + "Q4:", + "H2:", + "q4_h2_derived", + ) + _nc_is_derived = any(m in target_src for m in _DERIVED_MARKERS) + _any_src_derived = False + + if not _nc_is_derived: + for _st, _ in sources: + _si = tag_idx.get(_st) + + if _si is not None: + _ss = rows[_si].sources.get(date, "") + + if any(m in _ss for m in _DERIVED_MARKERS): + _any_src_derived = True + break + + if _nc_is_derived or _any_src_derived: + if _cf_scope_mismatch: + target_row.values[date] = val + target_row.sources[date] = ( + f"scope-aligned: {_formula}" f" [solving {target_tag}]" + ) + else: + target_row.values[date] = val + target_row.sources[date] = ( + f"identity-enforced: {_formula}" f" [solving {target_tag}]" + ) + verified_pairs.add((target_tag, date)) + continue + + if _ambiguous_cf: + _new_warning = ValidationWarning( + date=date, + tag=target_tag, + expected=val, + actual=target_row.values[date], + formula=_formula, + identity=f"{target_tag} = {_formula}", + ) + _existing = pending_diagnostics.get((target_tag, date)) + if _existing is not None: + if diff < abs(_existing.actual - _existing.expected): + pending_diagnostics[(target_tag, date)] = _new_warning + else: + pending_diagnostics[(target_tag, date)] = _new_warning + continue + + if _cf_scope_mismatch: + target_row.values[date] = val + target_row.sources[date] = ( + f"scope-aligned: {_formula} [solving {target_tag}]" + ) + verified_pairs.add((target_tag, date)) + continue + + if ( + facts is not None + and ":" in target_src + and "identity-enforced" not in target_src + and "imputed" not in target_src + ): + _parts = target_src.split(":") + _tgt_ns = _parts[0] + _tgt_xbrl = _parts[1].split()[0] + _ns_facts = facts.get(_tgt_ns, {}) + _tgt_entries = _ns_facts.get(_tgt_xbrl, {}).get("units", {}) + _vintage_match = False + for _unit_entries in _tgt_entries.values(): + for _e in _unit_entries: + if ( + _e.get("end") == date + and "start" not in _e + and abs(_e["val"] - val) <= _tolerance(val, _e["val"]) + ): + _vintage_match = True + break + if _vintage_match: + break + if _vintage_match: + target_row.values[date] = val + target_row.sources[date] = target_src + " (vintage-corrected)" + verified_pairs.add((target_tag, date)) + continue + + _any_src_soft = any( + _is_source_soft(rows[tag_idx[st]].sources.get(date, "")) + for st, _ in sources + if tag_idx.get(st) is not None + ) + if not _any_src_soft: + diagnostics.append( + ValidationWarning( + date=date, + tag=target_tag, + expected=val, + actual=target_row.values[date], + formula=_formula, + identity=f"{target_tag} = {_formula}", + ) + ) + else: + target_row.values[date] = val + target_row.sources[date] = ( + f"identity-enforced: {_formula} [solving {target_tag}]" + ) + verified_pairs.add((target_tag, date)) + continue + + for key, warning in pending_diagnostics.items(): + if key not in verified_pairs: + _tag, _date = key + _ti = tag_idx.get(_tag) + if _ti is not None: + rows[_ti].values[_date] = warning.expected + rows[_ti].sources[_date] = ( + f"identity-enforced: {warning.formula}" f" [solving {_tag}]" + ) + verified_pairs.add(key) + + if any( + "identity-enforced" in r.sources.get(d, "") + or "scope-aligned" in r.sources.get(d, "") + for r in rows + for d in filing_dates + ): + _apply_hierarchical_articulation(rows, filing_dates) + + return rows, diagnostics diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_rules.py b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_rules.py new file mode 100644 index 00000000000..dc1d37805b2 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_rules.py @@ -0,0 +1,306 @@ +"""Imputation and verification rule constants for financial statements.""" + +from __future__ import annotations + +IS_IMPUTE: dict[str, list[tuple[str, list[tuple[str, int]]]]] = { + "industrial": [ + ( + "total_cost_of_revenue", + [("costs_and_expenses", 1), ("total_operating_expenses", -1)], + ), + ( + "total_operating_expenses", + [("costs_and_expenses", 1), ("total_cost_of_revenue", -1)], + ), + ( + "costs_and_expenses", + [("total_revenue", 1), ("total_operating_income", -1)], + ), + ( + "total_gross_profit", + [("total_revenue", 1), ("total_cost_of_revenue", -1)], + ), + ( + "total_cost_of_revenue", + [("total_revenue", 1), ("total_gross_profit", -1)], + ), + ( + "total_operating_expenses", + [("total_gross_profit", 1), ("total_operating_income", -1)], + ), + ( + "total_operating_income", + [("total_gross_profit", 1), ("total_operating_expenses", -1)], + ), + ( + "total_other_income", + [("total_pretax_income", 1), ("total_operating_income", -1)], + ), + ], + "diversified": [ + ( + "total_operating_income", + [("total_pretax_income", 1), ("total_other_income", -1)], + ), + ( + "total_operating_income", + [("total_revenue", 1), ("costs_and_expenses", -1)], + ), + ( + "costs_and_expenses", + [("total_revenue", 1), ("total_operating_income", -1)], + ), + ( + "total_other_income", + [("total_pretax_income", 1), ("total_operating_income", -1)], + ), + ], + "financial": [ + ( + "total_interest_income", + [("net_interest_income", 1), ("total_interest_expense", 1)], + ), + ( + "net_interest_income_after_provision", + [("net_interest_income", 1), ("provision_for_credit_losses", -1)], + ), + ( + "total_revenue", + [("net_interest_income", 1), ("total_noninterest_income", 1)], + ), + ( + "total_revenue", + [("total_pretax_income", 1), ("total_noninterest_expense", 1)], + ), + ], + "insurance": [ + ( + "total_pretax_income", + [("total_revenue", 1), ("benefits_costs_expenses", -1)], + ), + ( + "benefits_costs_expenses", + [("total_revenue", 1), ("total_pretax_income", -1)], + ), + ], +} + +IS_VERIFY: list[tuple[str, list[tuple[str, int]]]] = [ + ( + "total_pretax_income", + [("net_income_continuing", 1), ("income_tax_expense", 1)], + ), + ( + "net_income_continuing", + [("total_pretax_income", 1), ("income_tax_expense", -1)], + ), + ( + "total_gross_profit", + [("total_revenue", 1), ("total_cost_of_revenue", -1)], + ), + ( + "total_operating_income", + [("total_gross_profit", 1), ("total_operating_expenses", -1)], + ), +] + +BS_VERIFY: list[tuple[str, list[tuple[str, int]]]] = [ + ("total_assets", [("total_liabilities_and_equity", 1)]), + ( + "total_equity_and_noncontrolling_interests", + [("total_equity", 1), ("noncontrolling_interests", 1)], + ), + ( + "total_equity", + [ + ("total_equity_and_noncontrolling_interests", 1), + ("noncontrolling_interests", -1), + ], + ), + ( + "total_liabilities", + [ + ("total_liabilities_and_equity", 1), + ("total_equity_and_noncontrolling_interests", -1), + ("redeemable_noncontrolling_interest", -1), + ], + ), + ( + "total_liabilities", + [ + ("total_liabilities_and_equity", 1), + ("total_equity_and_noncontrolling_interests", -1), + ], + ), +] + +CF_VERIFY: list[tuple[str, list[tuple[str, int]]]] = [ + ( + "net_change_in_cash", + [ + ("net_cash_from_operating_activities", 1), + ("net_cash_from_investing_activities", 1), + ("net_cash_from_financing_activities", 1), + ("effect_of_exchange_rate_changes", 1), + ], + ), + ( + "net_change_in_cash", + [ + ("net_cash_from_operating_activities", 1), + ("net_cash_from_investing_activities", 1), + ("net_cash_from_financing_activities", 1), + ], + ), + ( + "net_change_in_cash", + [ + ("net_cash_from_operating_activities", 1), + ("net_cash_from_investing_activities", 1), + ("net_cash_from_financing_activities", 1), + ("effect_of_exchange_rate_changes", 1), + ("other_net_changes_in_cash", 1), + ], + ), + ( + "net_change_in_cash", + [ + ("net_cash_from_operating_activities", 1), + ("net_cash_from_investing_activities", 1), + ("net_cash_from_financing_activities", 1), + ("other_net_changes_in_cash", 1), + ], + ), +] + +IS_IMPUTE_COMMON: list[tuple[str, list[tuple[str, int]]]] = [ + ( + "total_pretax_income", + [("net_income_continuing", 1), ("income_tax_expense", 1)], + ), + ( + "net_income_continuing", + [("total_pretax_income", 1), ("income_tax_expense", -1)], + ), + ("net_income", [("net_income_continuing", 1), ("net_income_discontinued", 1)]), + ( + "comprehensive_income", + [("comprehensive_income_parent", 1), ("comprehensive_income_nci", 1)], + ), + ( + "comprehensive_income_parent", + [("comprehensive_income", 1), ("comprehensive_income_nci", -1)], + ), + ( + "comprehensive_income_nci", + [("comprehensive_income", 1), ("comprehensive_income_parent", -1)], + ), + ( + "income_tax_expense", + [("income_tax_current", 1), ("income_tax_deferred", 1)], + ), + ( + "income_tax_current", + [("income_tax_expense", 1), ("income_tax_deferred", -1)], + ), + ( + "income_tax_deferred", + [("income_tax_expense", 1), ("income_tax_current", -1)], + ), + ( + "total_pretax_income", + [("income_before_equity_method", 1), ("equity_method_investments", 1)], + ), + ( + "income_before_equity_method", + [("total_pretax_income", 1), ("equity_method_investments", -1)], + ), + ( + "net_income_to_noncontrolling_interest", + [("net_income_nci_redeemable", 1), ("net_income_nci_nonredeemable", 1)], + ), +] + +BS_IMPUTE: list[tuple[str, list[tuple[str, int]]]] = [ + ( + "total_noncurrent_assets", + [("total_assets", 1), ("total_current_assets", -1)], + ), + ( + "total_noncurrent_liabilities", + [("total_liabilities", 1), ("total_current_liabilities", -1)], + ), + ("total_liabilities_and_equity", [("total_assets", 1)]), + ( + "total_liabilities", + [ + ("total_liabilities_and_equity", 1), + ("total_equity_and_noncontrolling_interests", -1), + ("redeemable_noncontrolling_interest", -1), + ], + ), + ( + "total_liabilities", + [ + ("total_liabilities_and_equity", 1), + ("total_equity_and_noncontrolling_interests", -1), + ], + ), + ( + "total_equity_and_noncontrolling_interests", + [("total_equity", 1), ("noncontrolling_interests", 1)], + ), + ( + "total_equity", + [ + ("total_equity_and_noncontrolling_interests", 1), + ("noncontrolling_interests", -1), + ], + ), + ("total_common_equity", [("total_equity", 1), ("total_preferred_equity", -1)]), + ("total_common_equity", [("total_equity", 1)]), + ("total_equity_and_noncontrolling_interests", [("total_equity", 1)]), + ( + "redeemable_noncontrolling_interest", + [ + ("redeemable_nci_common", 1), + ("redeemable_nci_preferred", 1), + ("redeemable_nci_other", 1), + ], + ), + ( + "redeemable_noncontrolling_interest", + [ + ("total_liabilities_and_equity", 1), + ("total_liabilities", -1), + ("total_equity_and_noncontrolling_interests", -1), + ], + ), +] + +CF_IMPUTE: list[tuple[str, list[tuple[str, int]]]] = [ + ( + "net_change_in_cash", + [ + ("net_cash_from_operating_activities", 1), + ("net_cash_from_investing_activities", 1), + ("net_cash_from_financing_activities", 1), + ("effect_of_exchange_rate_changes", 1), + ], + ), + ( + "effect_of_exchange_rate_changes", + [ + ("net_change_in_cash", 1), + ("net_cash_from_operating_activities", -1), + ("net_cash_from_investing_activities", -1), + ("net_cash_from_financing_activities", -1), + ], + ), + ( + "depreciation_and_amortization", + [("depreciation_expense", 1), ("amortization_expense", 1)], + ), +] + +MAX_IMPUTE_PASSES: int = 10 diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_schema.py b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_schema.py new file mode 100644 index 00000000000..0fdc0d08ec5 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_schema.py @@ -0,0 +1,656 @@ +"""StatementSchema class: loads the split JSON schema and orchestrates extraction.""" + +# pylint: disable=R0912,R0913,R0914,R0915,R0917 + +from __future__ import annotations + +import json +from collections import Counter +from typing import Any + +from openbb_core.app.model.abstract.error import OpenBBError +from openbb_sec.utils.statement_schema._detection import ( + detect_reporting_currency, + detect_type, + get_filing_dates, + get_fiscal_meta, +) +from openbb_sec.utils.statement_schema._extraction import ( + _get_annual_values, + compute_ref_filings, + extract_row_values, + quarterly_ref_filings, +) +from openbb_sec.utils.statement_schema._imputation import impute +from openbb_sec.utils.statement_schema._types import ( + _SCHEMAS_DIR, + QUARTERLY_FORMS, + SEMI_ANNUAL_FORMS, + CompanyType, + Frequency, + RowDef, + RowResult, + StatementName, + StatementResult, + ValidationWarning, + _tolerance, +) + + +class StatementSchema: + """Schema for standardized financial statement extraction.""" + + def __init__(self) -> None: + with open(_SCHEMAS_DIR / "_meta.json") as f: + meta = json.load(f) + + self._version: str = meta.get("version", "unknown") + self._generated: str = meta.get("generated", "unknown") + self._detection: dict = meta.get("detection", {}) + + self._statements: dict = {} + for stmt_file in ("income_statement", "balance_sheet", "cash_flow"): + with open(_SCHEMAS_DIR / f"{stmt_file}.json") as f: + self._statements[stmt_file] = json.load(f) + + self._row_defs: dict[str, dict[str, list[RowDef]]] = {} + + for stmt_name, types in self._statements.items(): + self._row_defs[stmt_name] = {} + + for stype, rows in types.items(): + self._row_defs[stmt_name][stype] = [ + RowDef( + tag=r["tag"], + label=r["label"], + description=r.get("description", ""), + parent=r.get("parent"), + sequence=r.get("sequence", 0), + factor=r.get("factor", "+"), + balance=r.get("balance", ""), + unit=r.get("unit", "monetary"), + period_type=r["period_type"], + xbrl_tags=tuple( + {"tag": x["tag"], "namespace": x["namespace"]} + for x in r["xbrl_tags"] + ), + ) + for r in rows + ] + + self._insurance_is_signals: list[str] = self._detection.get( + "insurance_is_signals", [] + ) + self._insurance_bs_signals: list[str] = self._detection.get( + "insurance_bs_signals", [] + ) + self._financial_signals: list[str] = self._detection.get( + "financial_signals", [] + ) + self._diversified_signals: list[str] = self._detection.get( + "diversified_signals", [] + ) + self._industrial_signals: list[str] = self._detection.get( + "industrial_signals", [] + ) + self._min_financial_signals: int = self._detection.get( + "min_financial_signals", 2 + ) + + @property + def version(self) -> str: + return self._version + + @property + def generated(self) -> str: + return self._generated + + def get_rows( + self, statement: StatementName, company_type: CompanyType + ) -> list[RowDef]: + return self._row_defs.get(statement, {}).get(company_type, []) + + def get_row( + self, tag: str, statement: StatementName, company_type: CompanyType + ) -> RowDef | None: + for row in self.get_rows(statement, company_type): + if row.tag == tag: + return row + return None + + def get_tag_chain( + self, tag: str, statement: StatementName, company_type: CompanyType + ) -> tuple[dict[str, str], ...]: + row = self.get_row(tag, statement, company_type) + return row.xbrl_tags if row else () + + def get_period_type( + self, tag: str, statement: StatementName, company_type: CompanyType + ) -> str | None: + row = self.get_row(tag, statement, company_type) + return row.period_type if row else None + + def detect_type(self, facts: dict[str, Any]) -> CompanyType: + return detect_type( + facts, + insurance_is_signals=self._insurance_is_signals, + insurance_bs_signals=self._insurance_bs_signals, + financial_signals=self._financial_signals, + diversified_signals=self._diversified_signals, + industrial_signals=self._industrial_signals, + min_financial_signals=self._min_financial_signals, + ) + + def get_filing_dates( + self, + facts: dict[str, Any], + frequency: Frequency = "annual", + include_preliminary: bool = False, + ) -> set[str]: + return get_filing_dates( + facts, frequency, include_preliminary=include_preliminary + ) + + def get_fiscal_meta( + self, + facts: dict[str, Any], + frequency: Frequency, + dates: set[str], + ) -> dict[str, dict[str, Any]]: + return get_fiscal_meta(facts, frequency, dates) + + def _detect_reporting_currency(self, facts: dict[str, Any]) -> str: + return detect_reporting_currency(facts) + + def _compute_ref_filings( + self, + facts: dict[str, Any], + rows_def: list[RowDef], + frequency: Frequency, + currency: str, + include_preliminary: bool = False, + pit_mode: bool = False, + ) -> dict[str, str]: + return compute_ref_filings( + facts, + rows_def, + frequency, + currency, + include_preliminary=include_preliminary, + pit_mode=pit_mode, + ) + + def _quarterly_ref_filings( + self, + facts: dict[str, Any], + ref_filed_map: dict[str, str], + ) -> dict[str, str]: + return quarterly_ref_filings(facts, ref_filed_map) + + def extract_row_values( + self, + facts: dict[str, Any], + row_def: RowDef, + frequency: Frequency, + currency: str, + ref_filed_map: dict[str, str] | None = None, + cross_targets: dict[str, float] | None = None, + statement: StatementName | None = None, + include_preliminary: bool = False, + ) -> tuple[dict[str, float], dict[str, str]]: + return extract_row_values( + facts, + row_def, + frequency, + currency, + ref_filed_map=ref_filed_map, + cross_targets=cross_targets, + statement=statement or "", + include_preliminary=include_preliminary, + ) + + def extract( # noqa: PLR0912 + self, + company_facts: dict[str, Any], + statement: StatementName, + *, + frequency: Frequency = "annual", + company_type: CompanyType | None = None, + filing_dates: set[str] | None = None, + skip_imputation: bool = False, + ref_filed_map: dict[str, str] | None = None, + cross_identities: dict[str, dict[str, float]] | None = None, + pit_mode: bool = False, + include_preliminary: bool = False, + ) -> StatementResult: + facts = company_facts.get("facts", company_facts) + + if company_type is None: + company_type = self.detect_type(facts) + + if filing_dates is None: + filing_dates = self.get_filing_dates( + facts, frequency, include_preliminary=include_preliminary + ) + + _preliminary_dates: set[str] = set() + if include_preliminary: + confirmed_dates = self.get_filing_dates(facts, frequency) + _preliminary_dates = filing_dates - confirmed_dates + + currency = self._detect_reporting_currency(facts) + rows_def = self.get_rows(statement, company_type) + result_rows: list[RowResult] = [] + + if ref_filed_map is None: + ref_filed_map = self._compute_ref_filings( + facts, + rows_def, + frequency, + currency, + include_preliminary=include_preliminary, + pit_mode=pit_mode, + ) + if ( + frequency == "quarterly" + and statement != "balance_sheet" + and not pit_mode + ): + ref_filed_map = self._quarterly_ref_filings(facts, ref_filed_map) + + _CF_SIGN_KEEP = frozenset( + {"net_income", "net_income_continuing", "net_income_discontinued"} + ) + apply_cf_sign = statement == "cash_flow" + + for row_def in rows_def: + cross_targets = ( + cross_identities.get(row_def.tag) if cross_identities else None + ) + values, sources = self.extract_row_values( + facts, + row_def, + frequency, + currency, + ref_filed_map, + cross_targets, + statement, + include_preliminary=include_preliminary, + ) + values = {d: v for d, v in values.items() if d in filing_dates} + sources = {d: s for d, s in sources.items() if d in filing_dates} + + if ( + apply_cf_sign + and row_def.balance == "credit" + and row_def.factor != "0" + and row_def.tag not in _CF_SIGN_KEEP + ): + values = {d: (-v or 0.0) for d, v in values.items()} + + result_rows.append( + RowResult( + tag=row_def.tag, + label=row_def.label, + description=row_def.description, + parent=row_def.parent, + sequence=row_def.sequence, + factor=row_def.factor, + balance=row_def.balance, + unit=row_def.unit, + period_type=row_def.period_type, + values=values, + sources=sources, + ) + ) + + diagnostics: list[ValidationWarning] = [] + + if not skip_imputation: + result_rows, diagnostics = impute( + result_rows, + statement, + company_type, + filing_dates, + facts, + frequency=frequency, + currency=currency, + get_rows_fn=self.get_rows, + get_annual_values_fn=_get_annual_values, + ) + + if statement == "cash_flow": + tag_map = {r.tag: r for r in result_rows} + eop_row = tag_map.get("cash_at_end_of_period") + bop_row = tag_map.get("cash_at_beginning_of_period") + + if eop_row: + eop_def = None + + for rd in rows_def: + if rd.tag == "cash_at_end_of_period": + eop_def = rd + break + + if eop_def: + standalone, standalone_src = extract_row_values( + facts, eop_def, frequency, currency + ) + for date in filing_dates: + if date not in eop_row.values and date in standalone: + eop_row.values[date] = standalone[date] + eop_row.sources[date] = standalone_src.get( + date, "standalone" + ) + + if eop_row and bop_row: + sorted_dates = sorted(filing_dates) + + for i, date in enumerate(sorted_dates): + if i > 0: + prev_date = sorted_dates[i - 1] + prev_val = eop_row.values.get(prev_date) + if prev_val is not None: + bop_row.values[date] = prev_val + bop_row.sources[date] = ( + f"derived: cash_at_end_of_period({prev_date})" + ) + + if statement == "cash_flow" and not skip_imputation: + tag_map = {r.tag: r for r in result_rows} + _eop = tag_map.get("cash_at_end_of_period") + _bop = tag_map.get("cash_at_beginning_of_period") + _nc = tag_map.get("net_change_in_cash") + + if _eop and _bop and _nc: + for date in filing_dates: + _ev = _eop.values.get(date) + _bv = _bop.values.get(date) + _nv = _nc.values.get(date) + + if _ev is None or _bv is None or _nv is None: + continue + + _diff = abs(_bv + _nv - _ev) + + if _diff > _tolerance(_ev, _bv, _nv): + _bop_src = _bop.sources.get(date, "") + _nc_src = _nc.sources.get(date, "") + _eop_src = _eop.sources.get(date, "") + + if "derived:" in _bop_src: + _bop.values[date] = _ev - _nv + _bop.sources[date] = ( + "identity-enforced: cash_at_end_of_period" + " - net_change_in_cash" + ) + elif "imputed:" in _nc_src: + _nc.values[date] = _ev - _bv + _nc.sources[date] = ( + "identity-enforced: cash_at_end_of_period" + " - cash_at_beginning_of_period" + ) + elif "standalone" in _eop_src: + _eop.values[date] = _bv + _nv + _eop.sources[date] = ( + "identity-enforced: cash_at_beginning_of_period" + " + net_change_in_cash" + ) + else: + diagnostics.append( + ValidationWarning( + date=date, + tag="cash_at_end_of_period", + expected=_bv + _nv, + actual=_ev, + formula="cash_at_beginning_of_period + net_change_in_cash", + identity="cash_at_end_of_period = cash_at_beginning_of_period + net_change_in_cash", + ) + ) + + pruned_dates = set() + + for date in filing_dates: + if any(r.values.get(date) is not None for r in result_rows): + pruned_dates.add(date) + + result_rows = [ + r + for r in result_rows + if not r.values + or any(v != 0 for v in r.values.values()) + or any( + s.startswith(("imputed", "corrected", "reconciled", "derived")) + for s in r.sources.values() + ) + ] + + fiscal_data = self.get_fiscal_meta(facts, frequency, pruned_dates) + + final_preliminary = _preliminary_dates & pruned_dates + if final_preliminary: + for row in result_rows: + for date in final_preliminary: + if date in row.sources and not row.sources[date].startswith( + "preliminary:" + ): + row.sources[date] = f"preliminary:{row.sources[date]}" + + return StatementResult( + statement=statement, + company_type=company_type, + frequency=frequency, + currency=currency, + dates=sorted(pruned_dates), + rows=result_rows, + fiscal_data=fiscal_data, + diagnostics=diagnostics, + preliminary_dates=final_preliminary, + ) + + def extract_all( # noqa: PLR0912 + self, + company_facts: dict[str, Any], + *, + frequency: Frequency = "annual", + company_type: CompanyType | None = None, + skip_imputation: bool = False, + pit_mode: bool = False, + include_preliminary: bool = False, + ) -> dict[str, StatementResult]: + facts = company_facts.get("facts", company_facts) + + if company_type is None: + company_type = self.detect_type(facts) + + filing_dates = self.get_filing_dates( + facts, frequency, include_preliminary=include_preliminary + ) + + if not filing_dates and frequency == "quarterly": + forms_seen: set[str] = set() + + for ns_facts in facts.values(): + for tag_data in ns_facts.values(): + for entries in tag_data.get("units", {}).values(): + for entry in entries: + f = entry.get("form", "") + if f: + forms_seen.add(f) + annual_only = forms_seen & {"20-F", "20-F/A", "40-F", "40-F/A"} + has_interim = forms_seen & (QUARTERLY_FORMS | SEMI_ANNUAL_FORMS) + entity = company_facts.get("entityName", "this company") + + if annual_only and not has_interim: + ftype = "20-F" if forms_seen & {"20-F", "20-F/A"} else "40-F" + raise OpenBBError( + f"{entity} files {ftype} (annual only) and does not " + "report interim (quarterly/semi-annual) data via " + "10-Q or 6-K filings. Only period='annual' is available." + ) + + raise OpenBBError( + f"No quarterly filing dates found for {entity}. " + "Only period='annual' may be available." + ) + + _STMTS: tuple[StatementName, ...] = ( + "income_statement", + "balance_sheet", + "cash_flow", + ) + + currency = self._detect_reporting_currency(facts) + all_rows = [] + + for stmt in _STMTS: + all_rows.extend(self.get_rows(stmt, company_type)) + + shared_ref_map = self._compute_ref_filings( + facts, + all_rows, + frequency, + currency, + include_preliminary=include_preliminary, + pit_mode=pit_mode, + ) + + if frequency == "quarterly" and not pit_mode: + shared_ref_map_q = self._quarterly_ref_filings(facts, shared_ref_map) + else: + shared_ref_map_q = shared_ref_map + + results: dict[str, StatementResult] = {} + cross_identities: dict[str, dict[str, float]] = {} + + for stmt in _STMTS: + ref = shared_ref_map if stmt == "balance_sheet" else shared_ref_map_q + results[stmt] = self.extract( + facts, + stmt, + skip_imputation=skip_imputation, + frequency=frequency, + company_type=company_type, + filing_dates=filing_dates, + ref_filed_map=ref, + cross_identities=cross_identities, + pit_mode=pit_mode, + include_preliminary=include_preliminary, + ) + + for r in results[stmt].rows: + if r.tag not in cross_identities: + cross_identities[r.tag] = {} + cross_identities[r.tag].update(r.values) + + date_sets = [set(r.dates) for r in results.values()] + common_dates = date_sets[0] & date_sets[1] & date_sets[2] + + if frequency == "quarterly" and common_dates: + annual_dates = sorted(self.get_filing_dates(facts, "annual")) + + if annual_dates: + sorted_q = sorted(common_dates) + fy_groups: dict[str, list[str]] = {} + + for qd in sorted_q: + fy_end = None + for ad in annual_dates: + if qd <= ad: + fy_end = ad + break + if fy_end: + fy_groups.setdefault(fy_end, []).append(qd) + + completed = dict(fy_groups) + + if len(completed) > 2: + size_counts = Counter(len(v) for v in completed.values()) + expected = size_counts.most_common(1)[0][0] + + for fy_end in sorted(completed.keys()): + if len(completed[fy_end]) < expected: + for qd in completed[fy_end]: + common_dates.discard(qd) + else: + break + + aligned = sorted(common_dates) + aligned_fiscal = self.get_fiscal_meta(facts, frequency, common_dates) + + all_preliminary: set[str] = set() + for stmt_result in results.values(): + all_preliminary |= stmt_result.preliminary_dates + aligned_preliminary = all_preliminary & common_dates + + for stmt_result in results.values(): + stmt_result.dates = aligned + stmt_result.fiscal_data = aligned_fiscal + stmt_result.preliminary_dates = aligned_preliminary + + for row in stmt_result.rows: + row.values = {d: v for d, v in row.values.items() if d in common_dates} + row.sources = { + d: s for d, s in row.sources.items() if d in common_dates + } + + return results + + @staticmethod + def merge_facts(*facts_list: dict[str, Any]) -> dict[str, Any]: + merged: dict[str, dict] = {} + + for raw in facts_list: + facts = raw.get("facts", raw) + + for ns, tags in facts.items(): + if ns not in merged: + merged[ns] = {} + + for tag_name, tag_data in tags.items(): + if tag_name not in merged[ns]: + merged[ns][tag_name] = {} + src_label = tag_data.get("label", "") + src_desc = tag_data.get("description", "") + + if "label" not in merged[ns][tag_name] and src_label: + merged[ns][tag_name]["label"] = src_label + + if "description" not in merged[ns][tag_name] and src_desc: + merged[ns][tag_name]["description"] = src_desc + + src_units = tag_data.get("units", {}) + + if "units" not in merged[ns][tag_name]: + merged[ns][tag_name]["units"] = {} + + for unit_key, entries in src_units.items(): + if unit_key not in merged[ns][tag_name]["units"]: + merged[ns][tag_name]["units"][unit_key] = [] + + existing = merged[ns][tag_name]["units"][unit_key] + seen = set() + + for e in existing: + key = ( + e.get("end", ""), + e.get("start", ""), + e.get("val"), + e.get("form", ""), + e.get("filed", ""), + ) + seen.add(key) + + for e in entries: + key = ( + e.get("end", ""), + e.get("start", ""), + e.get("val"), + e.get("form", ""), + e.get("filed", ""), + ) + if key not in seen: + existing.append(e) + seen.add(key) + + return merged diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_types.py b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_types.py new file mode 100644 index 00000000000..31796816435 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/_types.py @@ -0,0 +1,88 @@ +"""Shared types, constants, and dataclasses for statement_schema.""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Literal + +ANNUAL_FORMS = frozenset({"10-K", "10-K/A", "20-F", "20-F/A", "40-F", "40-F/A"}) +QUARTERLY_FORMS = frozenset({"10-Q", "10-Q/A"}) +SEMI_ANNUAL_FORMS = frozenset({"6-K", "6-K/A"}) +PRELIMINARY_FORMS = frozenset({"8-K", "8-K/A"}) +ALL_FORMS = ANNUAL_FORMS | QUARTERLY_FORMS | SEMI_ANNUAL_FORMS +Frequency = Literal["annual", "quarterly"] +StatementName = Literal["income_statement", "balance_sheet", "cash_flow"] +CompanyType = Literal["industrial", "financial", "diversified", "insurance"] +_TOLERANCE_FLOOR = 100_000 +_TOLERANCE_CAP = 1_000_000 + +_SCHEMAS_DIR = Path(__file__).resolve().parent / "schemas" + + +def _tolerance(*values: float | None) -> float: + """Scale-adaptive tolerance: 0.1% of max magnitude, floored at 100k, capped at 1M.""" + scale = max((abs(v) for v in values if v is not None), default=0) + return max(_TOLERANCE_FLOOR, min(_TOLERANCE_CAP, scale * 0.001)) + + +@dataclass(frozen=True) +class RowDef: + """A single row definition from the schema.""" + + tag: str + label: str + description: str + parent: str | None + sequence: int + factor: str + balance: str + unit: str # "monetary", "per_share", or "shares" + period_type: str # "duration" or "instant" + xbrl_tags: tuple[dict[str, str], ...] # ({"tag": ..., "namespace": ...}, ...) + + +@dataclass +class RowResult: + """Extracted values for one standardized row.""" + + tag: str + label: str + description: str + parent: str | None + sequence: int | float + factor: str + balance: str + unit: str + period_type: str + values: dict[str, float] # {period_end_date: value} + sources: dict[str, str] = field( + default_factory=dict + ) # {date: "ns:Tag" or "imputed: ..."} + + +@dataclass +class ValidationWarning: + """A discrepancy detected during post-extraction validation.""" + + date: str + tag: str + expected: float + actual: float + formula: str + identity: str + + +@dataclass +class StatementResult: + """A fully extracted statement.""" + + statement: str + company_type: str + frequency: str + currency: str + dates: list[str] + rows: list[RowResult] + fiscal_data: dict[str, dict[str, Any]] = field(default_factory=dict) + diagnostics: list[ValidationWarning] = field(default_factory=list) + preliminary_dates: set[str] = field(default_factory=set) diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/_meta.json b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/_meta.json new file mode 100644 index 00000000000..759b1973b77 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/_meta.json @@ -0,0 +1,73 @@ +{ + "version": "2.0", + "generated": "2026-03-17", + "taxonomy_sources": { + "us_gaap": { + "years": [ + 2011, + 2026 + ], + "tags_indexed": 3753 + }, + "ifrs": { + "years": [ + 2020, + 2025 + ], + "tags_indexed": 3979 + } + }, + "detection": { + "insurance_is_signals": [ + "PremiumsEarnedNet", + "PolicyholderBenefitsAndClaimsIncurredNet", + "PolicyholderBenefitsAndClaimsIncurredHealthCare", + "BenefitsLossesAndExpenses", + "InsuranceRevenue", + "InsuranceServiceResult", + "InsuranceServiceExpensesFromInsuranceContractsIssued", + "NetEarnedPremium" + ], + "insurance_bs_signals": [ + "LiabilityForFuturePolicyBenefits", + "DeferredPolicyAcquisitionCosts", + "InsuranceContractsThatAreLiabilities", + "LiabilitiesArisingFromInsuranceContracts", + "UnearnedPremiums" + ], + "financial_signals": [ + "InterestIncomeExpenseNet", + "NoninterestIncome", + "ProvisionForLoanAndLeaseLosses", + "NetInterestIncome", + "InterestAndDividendIncomeOperating", + "FederalFundsSoldAndSecuritiesPurchasedUnderAgreementsToResell", + "FinancingReceivableExcludingAccruedInterestBeforeAllowanceForCreditLoss", + "InterestRevenueCalculatedUsingEffectiveInterestMethod", + "FinancialAssetsAtAmortisedCost", + "DepositsFromBanks", + "ReverseRepurchaseAgreementsAndCashCollateralOnSecuritiesBorrowed", + "SubordinatedLiabilities", + "InterestIncomeOnLoansAndReceivables", + "CreditrelatedFeeAndCommissionIncome", + "TradingIncomeExpense", + "BankAcceptanceAssets" + ], + "diversified_signals": [ + "CostsAndExpenses", + "OperatingIncomeLoss", + "OperatingExpense", + "ProfitLossFromOperatingActivities", + "OtherOperatingIncomeExpense" + ], + "industrial_signals": [ + "CostOfGoodsAndServicesSold", + "CostOfRevenue", + "CostOfGoodsSold", + "GrossProfit", + "CostOfSales" + ], + "min_financial_signals": 2, + "description": "Priority: insurance (>=1 IS + total>=2) > financial (>=2 fin) > industrial (has COGS/GP) > diversified (CostsAndExpenses). Includes both us-gaap and ifrs-full tag names." + } +} diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/balance_sheet.json b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/balance_sheet.json new file mode 100644 index 00000000000..911869f5f24 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/balance_sheet.json @@ -0,0 +1,9412 @@ +{ + "industrial": [ + { + "tag": "cash_and_equivalents", + "label": "Cash & Equivalents", + "description": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.", + "parent": "total_current_assets", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CashAndCashEquivalentsAtCarryingValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "Cash", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Cash", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "restricted_cash", + "label": "Restricted Cash", + "description": "Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.", + "parent": "total_current_assets", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RestrictedCash", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "RestrictedCashAndCashEquivalents", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RestrictedCashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CashAndCashEquivalentsClassifiedAsPartOfDisposalGroupHeldForSale", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "short_term_investments", + "label": "Short-Term Investments", + "description": "Amount of investment in marketable security, classified as current.", + "parent": "total_current_assets", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "MarketableSecuritiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ShortTermInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AvailableForSaleSecuritiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "OtherCurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentFinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAtFairValue", + "namespace": "ifrs-full" + }, + { + "tag": "DerivativeFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermInvestmentsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermDepositsNotClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "DebtSecurities", + "namespace": "ifrs-full" + }, + { + "tag": "DebtInstrumentsHeld", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "note_receivable", + "label": "Note & Lease Receivable", + "description": "Amortized cost, after allowance for credit loss, of financing receivable classified as current. Excludes net investment in lease.", + "parent": "total_current_assets", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "NotesAndLoansReceivableNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NotesReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccountsNotesAndLoansReceivableNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoncurrentReceivables", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "accounts_receivable", + "label": "Accounts Receivable", + "description": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", + "parent": "total_current_assets", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsReceivableNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccountsReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ReceivablesNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TradeAndOtherCurrentReceivables", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "TradeReceivables", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "TradeAndOtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTradeReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "OtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherCurrentReceivablesDueFromRelatedParties", + "namespace": "ifrs-full" + }, + { + "tag": "AllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "AdditionalAllowanceRecognisedInProfitOrLossAllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "UtilisationAllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "nontrade_receivables", + "label": "Vendor Non-trade Receivables", + "description": "The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer.", + "parent": "total_current_assets", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "NontradeReceivablesCurrent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_inventory", + "label": "Inventories, net", + "description": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", + "parent": "total_current_assets", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InventoryNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InventoryFinishedGoodsAndWorkInProcess", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Inventories", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CurrentRawMaterialsAndCurrentProductionSupplies", + "namespace": "ifrs-full" + }, + { + "tag": "FinishedGoods", + "namespace": "ifrs-full" + }, + { + "tag": "SpareParts", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "prepaid_expenses", + "label": "Prepaid Expenses", + "description": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", + "parent": "total_current_assets", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PrepaidExpenseCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PrepaidExpense", + "namespace": "us-gaap" + }, + { + "tag": "CurrentPrepaidExpenses", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPrepaymentsAndOtherCurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "Prepayments", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPrepayments", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_deferred_tax_assets", + "label": "Current Deferred & Refundable Income Taxes", + "description": "The current portion of the aggregate tax effects as of the balance sheet date of all future tax deductions arising from temporary differences between tax basis and generally accepted accounting principles basis recognition of assets, liabilities, revenues and expenses, which can only be deducted for tax purposes when permitted under enacted tax laws; after deducting the allocated valuation allowance, if any, to reduce such amount to net realizable value. Deferred tax liabilities and assets are classified as current or noncurrent based on the classification of the related asset or liability for financial reporting. A deferred tax liability or asset that is not related to an asset or liability for financial reporting, including deferred tax assets related to carryforwards, are classified according to the expected reversal date of the temporary difference. An unrecognized tax benefit that is directly related to a position taken in a tax year that results in a net operating loss carryforward is presented as a reduction of the related deferred tax asset.", + "parent": "total_current_assets", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredTaxAssetsNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "CurrentTaxAssetsCurrent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_current_assets", + "label": "Other Current Assets", + "description": "Amount of current assets classified as other.", + "parent": "total_current_assets", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherAssetsCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Prepayments", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxAssetsCurrent", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentDerivativeFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentNonfinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPrepaymentsAndCurrentAccruedIncome", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentValueAddedTaxReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "HedgingInstrumentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentInterestReceivable", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentAssetsOtherThanAssetsOrDisposalGroupsClassifiedAsHeldForSaleOrAsHeldForDistributionToOwners", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentAssetsOrDisposalGroupsClassifiedAsHeldForSale", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentFinanceLeaseReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "DerivativeFinancialAssetsHeldForHedging", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialInstrumentsDesignatedAsHedgingInstrumentsAtFairValue", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_current_nonoperating_assets", + "label": "Other Current Nonoperating Assets", + "description": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.", + "parent": "total_current_assets", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PrepaidExpenseAndOtherAssetsCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + } + ] + }, + { + "tag": "total_current_assets", + "label": "Total Current Assets", + "description": "Amount of asset recognized for present right to economic benefit, classified as current.", + "parent": "total_assets", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetsCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "gross_ppe", + "label": "Plant, Property & Equipment, gross", + "description": "Amount, before accumulated depreciation, depletion, and amortization, of property, plant, and equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + "parent": "net_ppe", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PropertyPlantAndEquipmentGross", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Land", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "accumulated_depreciation", + "label": "Accumulated Depreciation", + "description": "Amount of accumulated depreciation, depletion, and amortization of property, plant, and equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + "parent": "net_ppe", + "sequence": 2, + "factor": "-", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_ppe", + "label": "Plant, Property, & Equipment, net", + "description": "Amount, after accumulated depreciation, depletion, and amortization, of property, plant, and equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + "parent": "total_noncurrent_assets", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PropertyPlantAndEquipmentNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "PropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "PropertyPlantAndEquipmentIncludingRightofuseAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "operating_lease_right_of_use_asset", + "label": "Operating Lease, Right-of-Use Asset", + "description": "Amount of lessee's right to use underlying asset under operating lease.", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseRightOfUseAsset", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "RightofuseAssets", + "namespace": "ifrs-full" + } + ], + "parent": "total_noncurrent_assets", + "sequence": 11 + }, + { + "tag": "finance_lease_right_of_use_asset", + "label": "Finance Lease, Right-of-Use Asset", + "description": "Amount, after accumulated amortization, of right-of-use asset from finance lease.", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseRightOfUseAsset", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ], + "parent": "total_noncurrent_assets", + "sequence": 12 + }, + { + "tag": "long_term_investments", + "label": "Long-Term Investments", + "description": "Amount of investment in marketable security, classified as noncurrent.", + "parent": "total_noncurrent_assets", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "MarketableSecuritiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AvailableForSaleSecuritiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentProperty", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentsInAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentFinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncurrent_note_receivables", + "label": "Noncurrent Note & Lease Receivables", + "description": "Amount, after allowance for credit loss, of financing receivable, classified as noncurrent.", + "parent": "total_noncurrent_assets", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "NotesAndLoansReceivableNetNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NotesReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "goodwill", + "label": "Goodwill", + "description": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.", + "parent": "total_noncurrent_assets", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Goodwill", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Goodwill", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "GoodwillAndIntangibleAssetsGoodwill", + "namespace": "us-gaap" + }, + { + "tag": "IntangibleAssetsAndGoodwill", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "intangible_assets", + "label": "Intangible Assets", + "description": "Amount, after accumulated amortization, of finite- and indefinite-lived intangible assets and capitalized cost for software to be sold, leased, or marketed. Excludes goodwill.", + "parent": "total_noncurrent_assets", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "IntangibleAssetsNetExcludingGoodwill", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FiniteLivedIntangibleAssetsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "ComputerSoftware", + "namespace": "ifrs-full" + }, + { + "tag": "OtherIntangibleAssets", + "namespace": "ifrs-full" + }, + { + "tag": "BrandNames", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncurrent_deferred_tax_assets", + "label": "Noncurrent Deferred & Refundable Income Taxes", + "description": "The noncurrent portion as of the balance sheet date of the aggregate carrying amount of all future tax deductions arising from temporary differences between tax basis and generally accepted accounting principles basis recognition of assets, liabilities, revenues and expenses, which can only be deducted for tax purposes when permitted under enacted tax laws; after the valuation allowance, if any, to reduce such amount to net realizable value. Deferred tax liabilities and assets are classified as current or noncurrent based on the classification of the related asset or liability for financial reporting. A deferred tax liability or asset that is not related to an asset or liability for financial reporting, including deferred tax assets related to carryforwards, is classified according to the expected reversal date of the temporary difference.", + "parent": "total_noncurrent_assets", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredTaxAssetsNetNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "DeferredTaxAssetsLiabilitiesNetNoncurrent", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2018 + }, + { + "tag": "DeferredIncomeTaxAssetsNet", + "namespace": "us-gaap", + "first_year": 2015, + "last_year": 2026 + }, + { + "tag": "NetDeferredTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "employee_benefit_assets", + "label": "Employee Benefit Assets", + "description": "This represents the entire assets recognized in the balance sheet that are associated with the defined benefit plans.", + "parent": "total_noncurrent_assets", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DefinedBenefitPlanAssetsForPlanBenefitsCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2016 + }, + { + "tag": "DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RecognisedAssetsDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentRecognisedAssetsDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "PlanAssetsAtFairValue", + "namespace": "ifrs-full" + }, + { + "tag": "SurplusDeficitInPlan", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_assets", + "label": "Other Noncurrent Operating Assets", + "description": "Amount of noncurrent assets classified as other.", + "parent": "total_noncurrent_assets", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherAssetsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAssetsMiscellaneousNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "DeferredTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentNonfinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentDerivativeFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentRestrictedCashAndCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentValueAddedTaxReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "AssetsRecognisedFromCostsToObtainOrFulfilContractsWithCustomers", + "namespace": "ifrs-full" + }, + { + "tag": "FinanceLeaseReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentFinanceLeaseReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "NetInvestmentInFinanceLease", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentAssetsOtherThanFinancialInstrumentsDeferredTaxAssetsPostemploymentBenefitAssetsAndRightsArisingUnderInsuranceContracts", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_nonoperating_assets", + "label": "Other Noncurrent Nonoperating Assets", + "description": "Amount of investments, and noncurrent assets classified as other.", + "parent": "total_noncurrent_assets", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InvestmentsAndOtherNoncurrentAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_noncurrent_assets_excl_ppe", + "label": "Other Than Fixed Noncurrent Assets", + "description": "Noncurrent assets other than investments and PP&E.", + "parent": "total_noncurrent_assets", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetsNoncurrentOtherThanNoncurrentInvestmentsAndPropertyPlantAndEquipment", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_noncurrent_assets", + "label": "Total Noncurrent Assets", + "description": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold or consumed after one year or beyond the normal operating cycle, if longer.", + "parent": "total_assets", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoncurrentAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_assets", + "label": "Total Assets", + "description": "Amount of asset recognized for present right to economic benefit.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Assets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Assets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "short_term_debt", + "label": "Short-Term Debt", + "description": "Reflects the total carrying amount as of the balance sheet date of debt having initial terms less than one year or the normal operating cycle, if longer.", + "parent": "total_current_liabilities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "ShortTermBorrowings", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommercialPaper", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ShortTermDebtCurrent", + "namespace": "us-gaap" + }, + { + "tag": "ShorttermBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CommercialPapersIssued", + "namespace": "ifrs-full" + }, + { + "tag": "BankOverdraftsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentCommercialPapersIssuedAndCurrentPortionOfNoncurrentCommercialPapersIssued", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_portion_of_long_term_debt", + "label": "Current Portion of Long-Term Debt", + "description": "Amount of long-term debt due within one year or within the normal operating cycle, if longer.", + "parent": "total_current_liabilities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermDebtCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentPortionOfLongTermDebt", + "namespace": "us-gaap" + }, + { + "tag": "CurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentBorrowingsAndCurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPortionOfLongtermBorrowings", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "operating_lease_liability_current", + "label": "Operating Lease, Liability, Current", + "description": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CurrentLeaseLiabilities", + "namespace": "ifrs-full" + } + ], + "parent": "total_current_liabilities", + "sequence": 12 + }, + { + "tag": "finance_lease_liability_current", + "label": "Finance Lease, Liability, Current", + "description": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ], + "parent": "total_current_liabilities", + "sequence": 13 + }, + { + "tag": "accounts_payable", + "label": "Accounts Payable", + "description": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "total_current_liabilities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccountsPayable", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableAndAccruedLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TradeAndOtherCurrentPayables", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "TradeAndOtherPayablesToTradeSuppliers", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "TradeAndOtherPayables", + "namespace": "ifrs-full" + }, + { + "tag": "TradePayables", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTradePayables", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherCurrentPayablesToTradeSuppliers", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherCurrentPayablesToRelatedParties", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "accrued_expenses", + "label": "Accrued Expenses", + "description": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "total_current_liabilities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccruedLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccruedAndOtherLiabilitiesCurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccrualsClassifiedAsCurrent", + "namespace": "ifrs-full" + }, + { + "tag": "Accruals", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentAccruedExpensesAndOtherCurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermEmployeeBenefitsAccruals", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPayablesOnSocialSecurityAndTaxesOtherThanIncomeTax", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "customer_deposits", + "label": "Customer Deposits", + "description": "Carrying amount of liabilities for customer deposits received and held, classified as current. Includes cash received in advance for undelivered goods or services and refundable security deposits.", + "parent": "total_current_liabilities", + "sequence": 5, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CustomerDepositsCurrent", + "namespace": "us-gaap" + }, + { + "tag": "CustomerDepositsLiability", + "namespace": "us-gaap" + }, + { + "tag": "DepositsFromCustomers", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentDepositsFromCustomers", + "namespace": "ifrs-full" + }, + { + "tag": "LongtermDeposits", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "dividends_payable", + "label": "Dividends Payable", + "description": "Carrying value as of the balance sheet date of dividends declared but unpaid on equity securities issued by the entity and outstanding.", + "parent": "total_current_liabilities", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DividendsPayableCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPayable", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsRecognisedAsDistributionsToOwnersOfParent", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsRecognisedAsDistributionsToNoncontrollingInterests", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_deferred_revenue", + "label": "Current Deferred Revenue", + "description": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current.", + "parent": "total_current_liabilities", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredRevenueCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ContractWithCustomerLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "DeferredRevenue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ContractLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentContractLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredIncomeClassifiedAsCurrent", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredIncomeIncludingContractLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_deferred_tax_liabilities", + "label": "Current Deferred & Payable Income Tax Liabilities", + "description": "Represents the current portion of deferred tax liabilities, which result from applying the applicable tax rate to net taxable temporary differences pertaining to each jurisdiction to which the entity is obligated to pay income tax. A current taxable temporary difference is a difference between the tax basis and the carrying amount of a current asset or liability in the financial statements prepared in accordance with generally accepted accounting principles. In a classified statement of financial position, an enterprise separates deferred tax liabilities and assets into a current amount and a noncurrent amount. Deferred tax liabilities and assets are classified as current or noncurrent based on the classification of the related asset or liability for financial reporting. A deferred tax liability or asset that is not related to an asset or liability for financial reporting, including deferred tax assets related to carryforwards, is classified according to the expected reversal date of the temporary difference.", + "parent": "total_current_liabilities", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredTaxLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2018 + } + ] + }, + { + "tag": "current_employee_benefit_liabilities", + "label": "Current Employee Benefit Liabilities", + "description": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "total_current_liabilities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "EmployeeRelatedLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities", + "namespace": "us-gaap" + }, + { + "tag": "CurrentProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermRestructuringProvision", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_taxes_payable", + "label": "Other Taxes Payable", + "description": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "other_current_liabilities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TaxesPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccruedIncomeTaxesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SalesAndExciseTaxPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentTaxLiabilitiesCurrent", + "namespace": "ifrs-full" + }, + { + "tag": "ValueAddedTaxPayables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_current_liabilities", + "label": "Other Current Liabilities", + "description": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.", + "parent": "total_current_liabilities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAccruedLiabilitiesCurrent", + "namespace": "us-gaap" + }, + { + "tag": "OtherCurrentPayables", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentDerivativeFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialLiabilitiesAtFairValue", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "HedgingInstrumentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherShorttermProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "LegalProceedingsProvision", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialLiabilitiesAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilitiesFromSharebasedPaymentTransactions2011", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilitiesIncludedInDisposalGroupsClassifiedAsHeldForSale", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentRetentionPayables", + "namespace": "ifrs-full" + }, + { + "tag": "ExciseTaxPayables", + "namespace": "ifrs-full" + }, + { + "tag": "DerivativeFinancialLiabilitiesHeldForHedging", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_current_nonoperating_liabilities", + "label": "Other Current Nonoperating Liabilities", + "description": "Amount of current liabilities from nonoperating activities, classified as other. Includes accrued liabilities and other liabilities not separately disclosed.", + "parent": "total_current_liabilities", + "sequence": 11, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccruedLiabilitiesAndOtherLiabilities", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_current_liabilities", + "label": "Total Current Liabilities", + "description": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", + "parent": "total_liabilities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "long_term_debt", + "label": "Long-Term Debt", + "description": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.", + "parent": "total_noncurrent_liabilities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermDebtNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermDebtAndCapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Borrowings", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NoncurrentPortionOfNoncurrentNotesAndDebenturesIssued", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "NotesAndDebenturesIssued", + "namespace": "ifrs-full" + }, + { + "tag": "LongtermBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "NetDebt", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "capital_lease_obligations", + "label": "Capital Lease Obligations", + "description": "Present value of lessee's discounted obligation for lease payments from finance lease.", + "parent": "total_noncurrent_liabilities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseLiability", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2018 + }, + { + "tag": "FinanceLeaseLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ] + }, + { + "tag": "operating_lease_liability_noncurrent", + "label": "Operating Lease, Liability, Noncurrent", + "description": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "NoncurrentLeaseLiabilities", + "namespace": "ifrs-full" + } + ], + "parent": "total_noncurrent_liabilities", + "sequence": 9 + }, + { + "tag": "asset_retirement_and_litigation_obligation", + "label": "Asset Retirement Reserve & Litigation Obligation", + "description": "Noncurrent portion of the carrying amount of a liability for an asset retirement obligation. An asset retirement obligation is a legal obligation associated with the disposal or retirement of a tangible long-lived asset that results from the acquisition, construction or development, or the normal operations of a long-lived asset, except for certain obligations of lessees.", + "parent": "total_noncurrent_liabilities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetRetirementObligationsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AssetRetirementObligation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LitigationReserve", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "noncurrent_deferred_revenue", + "label": "Noncurrent Deferred Revenue", + "description": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent.", + "parent": "total_noncurrent_liabilities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredRevenueNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ContractWithCustomerLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "DeferredIncomeClassifiedAsNoncurrent", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentContractLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "RentDeferredIncomeClassifiedAsNoncurrent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncurrent_deferred_tax_liabilities", + "label": "Noncurrent Deferred & Payable Income Tax Liabilities", + "description": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", + "parent": "total_noncurrent_liabilities", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxLiabilitiesNet", + "namespace": "us-gaap", + "first_year": 2015, + "last_year": 2026 + }, + { + "tag": "DeferredTaxLiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2018 + }, + { + "tag": "DeferredIncomeTaxLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "DeferredTaxLiabilities", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2014 + }, + { + "tag": "DeferredTaxLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CurrentTaxLiabilitiesNoncurrent", + "namespace": "ifrs-full" + }, + { + "tag": "NetDeferredTaxLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughBusinessCombinationsDeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughNetExchangeDifferencesDeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + }, + { + "tag": "UnusedTaxLossesForWhichNoDeferredTaxAssetRecognised", + "namespace": "ifrs-full" + }, + { + "tag": "DeductibleTemporaryDifferencesForWhichNoDeferredTaxAssetIsRecognised", + "namespace": "ifrs-full" + }, + { + "tag": "TemporaryDifferencesAssociatedWithInvestmentsInSubsidiariesBranchesAndAssociatesAndInterestsInJointVentures", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncurrent_employee_benefit_liabilities", + "label": "Noncurrent Employee Benefit Liabilities", + "description": "Amount of liability, recognized in statement of financial position, for defined benefit pension and other postretirement plans, classified as noncurrent.", + "parent": "total_noncurrent_liabilities", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EmployeeRelatedLiabilitiesCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "NetDefinedBenefitLiability", + "namespace": "ifrs-full" + }, + { + "tag": "RecognisedLiabilitiesDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilityAssetOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentRecognisedLiabilitiesDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "DefinedBenefitObligationAtPresentValue", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_liabilities", + "label": "Other Noncurrent Operating Liabilities", + "description": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", + "parent": "total_noncurrent_liabilities", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherLiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNoncurrentPayables", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "ProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "Provisions", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentDerivativeFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherLongtermProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredIncome", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "AdditionalProvisionsOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "ProvisionUsedOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "UnusedProvisionReversedOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughNetExchangeDifferencesOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "AcquisitionsThroughBusinessCombinationsOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "DerivativeFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "FinanceLeaseLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "GrossLeaseLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_nonoperating_liabilities", + "label": "Other Noncurrent Nonoperating Liabilities", + "description": "Amount of noncurrent liabilities from nonoperating activities, classified as other. Includes deferred income taxes and other liabilities not separately disclosed.", + "parent": "total_noncurrent_liabilities", + "sequence": 8, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxesAndOtherLiabilitiesNoncurrent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_noncurrent_liabilities", + "label": "Total Noncurrent Liabilities", + "description": "Amount of obligation due after one year or beyond the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoncurrentLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_liabilities", + "label": "Total Liabilities", + "description": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.", + "parent": "total_liabilities_and_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Liabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Liabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "commitments_and_contingencies", + "label": "Commitments & Contingencies", + "description": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", + "parent": "total_liabilities_and_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CommitmentsAndContingencies", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "redeemable_nci_common", + "label": "Redeemable NCI - Common", + "description": "Equity carrying amount of the common stock component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_nci_preferred", + "label": "Redeemable NCI - Preferred", + "description": "Equity carrying amount of the preferred stock component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_nci_other", + "label": "Redeemable NCI - Other", + "description": "Equity carrying amount of the other component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityOtherCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_noncontrolling_interest", + "label": "Redeemable Noncontrolling Interest", + "description": "As of the reporting date, the aggregate carrying amount of all noncontrolling interests which are redeemable by the (parent) entity (1) at a fixed or determinable price on a fixed or determinable date, (2) at the option of the holder of the noncontrolling interest, or (3) upon occurrence of an event that is not solely within the control of the (parent) entity. This item includes noncontrolling interest holder's ownership (or holders' ownership) regardless of the type of equity interest (common, preferred, other) including all potential organizational (legal) forms of the investee entity.", + "parent": "total_liabilities_and_equity", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityOtherFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemablePreferredStockCarryingAmountOrRedemptionValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityRedemptionValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityValueExcludingAdditionalPaidInCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityCarryingAmountAttributableToParent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "total_preferred_equity", + "label": "Preferred Stock", + "description": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", + "parent": "total_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PreferredStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "common_equity", + "label": "Common Stock", + "description": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", + "parent": "total_common_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CommonStocksIncludingAdditionalPaidInCapital", + "namespace": "us-gaap" + }, + { + "tag": "CommonStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommonStockValueOutstanding", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IssuedCapital", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NumberOfSharesOutstanding", + "namespace": "ifrs-full" + }, + { + "tag": "NumberOfSharesIssued", + "namespace": "ifrs-full" + }, + { + "tag": "NumberOfSharesIssuedAndFullyPaid", + "namespace": "ifrs-full" + }, + { + "tag": "ParValuePerShare", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "additional_paid_in_capital", + "label": "Additional Paid-In Capital", + "description": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", + "parent": "total_common_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AdditionalPaidInCapitalCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdditionalPaidInCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdditionalPaidinCapital", + "namespace": "ifrs-full" + }, + { + "tag": "SharePremium", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "retained_earnings", + "label": "Retained Earnings", + "description": "Amount of accumulated undistributed earnings (deficit).", + "parent": "total_common_equity", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RetainedEarningsAccumulatedDeficit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RetainedEarningsUnappropriated", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RetainedEarnings", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "treasury_stock", + "label": "Treasury Stock", + "description": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.", + "parent": "total_common_equity", + "sequence": 4, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TreasuryStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TreasuryShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SharesInEntityHeldByEntityOrByItsSubsidiariesOrAssociates", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "accumulated_other_comprehensive_income", + "label": "Accumulated Other Comprehensive Income / (Loss)", + "description": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.", + "parent": "total_common_equity", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccumulatedOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfCashFlowHedges", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_equity", + "label": "Other Equity Adjustments", + "description": "This element represents movements included in the statement of changes in stockholders' equity which are not separately disclosed or provided for elsewhere in the taxonomy.", + "parent": "total_common_equity", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "StockholdersEquityOther", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAdditionalCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherReserves", + "namespace": "ifrs-full" + }, + { + "tag": "OtherEquityInterest", + "namespace": "ifrs-full" + }, + { + "tag": "MergerReserve", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfSharebasedPayments", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfGainsAndLossesOnHedgingInstrumentsThatHedgeInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "CapitalRedemptionReserve", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughSharebasedPaymentTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughTreasuryShareTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughChangesInOwnershipInterestsInSubsidiariesThatDoNotResultInLossOfControl", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughTransfersAndOtherChangesEquity", + "namespace": "ifrs-full" + }, + { + "tag": "ChangesInEquity", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughOtherDistributionsToOwners", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughOtherContributionsByOwners", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughAppropriationOfRetainedEarnings", + "namespace": "ifrs-full" + }, + { + "tag": "ReductionOfIssuedCapital", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_common_equity", + "label": "Total Common Equity", + "description": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", + "parent": "total_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "EquityAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_equity", + "label": "Total Preferred & Common Equity", + "description": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", + "parent": "total_equity_and_noncontrolling_interests", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "StockholdersEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquityAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "noncontrolling_interests", + "label": "Noncontrolling Interest", + "description": "Amount of equity (deficit) attributable to noncontrolling interest. Excludes temporary equity.", + "parent": "total_equity_and_noncontrolling_interests", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "MinorityInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterests", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_equity_and_noncontrolling_interests", + "label": "Total Equity & Noncontrolling Interests", + "description": "Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity.", + "parent": "total_liabilities_and_equity", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Equity", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "temporary_equity_parent", + "label": "Temporary Equity Attributable to Parent", + "description": "Carrying amount of temporary equity attributable to parent.", + "parent": "temporary_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TemporaryEquityCarryingAmountAttributableToParent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "temporary_equity", + "label": "Temporary Equity", + "description": "Carrying amount of the equity component of securities that are redeemable.", + "parent": "total_liabilities_and_equity", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "namespace": "us-gaap" + }, + { + "tag": "RedeemablePreferredStockCarryingAmount", + "namespace": "us-gaap" + }, + { + "tag": "TemporaryEquityValueExcludingAdditionalPaidInCapital", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_liabilities_and_equity", + "label": "Total Liabilities & Shareholders' Equity", + "description": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilitiesAndStockholdersEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquityAndLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "LiabilitiesAndPartnersCapital", + "namespace": "us-gaap" + } + ] + } + ], + "financial": [ + { + "tag": "cash_and_equivalents", + "label": "Cash and Due from Banks", + "description": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.", + "parent": "total_assets", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CashAndCashEquivalentsAtCarryingValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "Cash", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Cash", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "restricted_cash", + "label": "Restricted Cash", + "description": "Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.", + "parent": "total_assets", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RestrictedCash", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "RestrictedCashAndCashEquivalents", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RestrictedCashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "short_term_investments", + "label": "Short-term Investments", + "description": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.", + "parent": "total_assets", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "ShortTermInvestments", + "namespace": "us-gaap" + }, + { + "tag": "AvailableForSaleSecuritiesDebtSecuritiesCurrent", + "namespace": "us-gaap" + }, + { + "tag": "MarketableSecuritiesCurrent", + "namespace": "us-gaap" + }, + { + "tag": "OtherShortTermInvestments", + "namespace": "us-gaap" + }, + { + "tag": "ShorttermDepositsNotClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "OtherShorttermFinancialAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "fed_funds_sold", + "label": "Federal Funds Sold", + "description": "Includes: (1) the amount outstanding of funds lent to other depository institutions, securities brokers, or securities dealers in the form of Federal Funds sold; for example, immediately available funds lent under agreements or contracts that mature in one business day or roll over under a continuing contract, regardless of the nature of the transaction or the collateral involved, excluding overnight lending for commercial and industrial purposes. Also include Federal Funds sold under agreements to resell on a gross basis, excluding (1) sales of term Federal Funds, (2) due bills representing purchases of securities or other assets by the reporting bank that have not yet been delivered and similar instruments, (3) resale agreements that mature in more than one business day involving assets other than securities, and (4) yield maintenance dollar repurchase agreements (Federal Funds Sold) and (2) the dollar amount outstanding of funds lent in the form of security resale agreements regardless of maturity, if the agreement requires the bank to resell the identical security purchased or a security that meets the definition of substantially the same in the case of a dollar roll. Also include purchases of participations in pools of securities, regardless of maturity (Securities Purchased Under Agreements to Re-sell).", + "parent": "total_assets", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FederalFundsSoldAndSecuritiesPurchasedUnderAgreementsToResell", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResell", + "namespace": "us-gaap" + }, + { + "tag": "ReverseRepurchaseAgreementsAndCashCollateralOnSecuritiesBorrowed", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "interest_bearing_deposits_at_other_banks", + "label": "Interest Bearing Deposits at Other Banks", + "description": "For banks and other depository institutions (including Federal Reserve Banks, if applicable): Interest-bearing deposits in other financial institutions for relatively short periods of time including, for example, certificates of deposits, which are presented separately from cash on the balance sheet.", + "parent": "total_assets", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InterestBearingDepositsInBanks", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "time_deposits_placed", + "label": "Time Deposits Placed and Other Short-Term Investments", + "description": "Amount of time deposit liabilities, including certificates of deposit.", + "parent": "total_assets", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TimeDepositsAtCarryingValue", + "namespace": "us-gaap" + }, + { + "tag": "TimeDeposits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "trading_account_securities", + "label": "Trading Account Securities", + "description": "Amount of investment in debt security measured at fair value with change in fair value recognized in net income (trading) and investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI).", + "parent": "total_assets", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TradingSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "TradingSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TradingSecuritiesPledgedAsCollateral", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "DerivativeFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "loans_and_leases", + "label": "Loans and Leases", + "description": "Amortized cost excluding accrued interest, before allowance for credit loss, of financing receivable. Excludes net investment in lease.", + "parent": "net_loans_and_leases", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinancingReceivableExcludingAccruedInterestBeforeAllowanceForCreditLoss", + "namespace": "us-gaap", + "first_year": 2021, + "last_year": 2026 + }, + { + "tag": "LoansAndLeasesReceivableGrossCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "FinancialAssetsAtAmortisedCost", + "namespace": "ifrs-full" + }, + { + "tag": "ConsumerLoans", + "namespace": "ifrs-full" + }, + { + "tag": "CreditCardLoans", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherReceivables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "allowance_for_loan_and_lease_losses", + "label": "Allowance for Loan and Lease Losses", + "description": "Amount of allowance for credit loss on financing receivable. Excludes allowance for financing receivable covered under loss sharing agreement.", + "parent": "net_loans_and_leases", + "sequence": 2, + "factor": "-", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinancingReceivableAllowanceForCreditLosses", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "AllowanceForLoanAndLeaseLossesRealEstate", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_loans_and_leases", + "label": "Loans and Leases, Net of Allowance", + "description": "Amortized cost excluding accrued interest, after allowance for credit loss, of financing receivable. Excludes net investment in lease.", + "parent": "total_assets", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinancingReceivableExcludingAccruedInterestAfterAllowanceForCreditLoss", + "namespace": "us-gaap", + "first_year": 2021, + "last_year": 2026 + }, + { + "tag": "LoansAndLeasesReceivableNetReportedAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "NotesReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "loans_held_for_sale", + "label": "Loans Held for Sale", + "description": "Amount before allowance and after deduction of deferred interest and fees, unamortized costs and premiums and discounts from face amounts, of loans and leases held in portfolio, including but not limited to, commercial and consumer loans. Excludes loans and leases covered under loss sharing agreements.", + "parent": "total_assets", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LoansAndLeasesReceivableNetOfDeferredIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + } + ] + }, + { + "tag": "accrued_investment_income", + "label": "Accrued Investment Income", + "description": "Interest, dividends, rents, ancillary and other revenues earned but not yet received by the entity on its investments.", + "parent": "total_assets", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccruedInvestmentIncomeReceivable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestReceivable", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "accounts_receivable", + "label": "Accounts Receivable", + "description": "Amount due from customers for goods/services in the normal course of business.", + "parent": "total_assets", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsReceivableNetCurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsReceivableNet", + "namespace": "us-gaap" + }, + { + "tag": "ReceivablesNetCurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsNotesAndLoansReceivableNetCurrent", + "namespace": "us-gaap" + }, + { + "tag": "PremiumsReceivableAtCarryingValue", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "customer_and_other_receivables", + "label": "Customer and Other Receivables", + "description": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business.", + "parent": "total_assets", + "sequence": 12, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ReceivablesNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccountsAndOtherReceivablesNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TradeAndOtherReceivables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_premises_and_equipment", + "label": "Premises and Equipment, Net", + "description": "Amount, after accumulated depreciation, depletion, and amortization, of property, plant, and equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + "parent": "total_assets", + "sequence": 13, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PropertyPlantAndEquipmentNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "PropertyPlantAndEquipmentIncludingRightofuseAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_ppe", + "label": "Property, Plant and Equipment, Net", + "description": "Amount after accumulated depreciation, depletion and amortization of physical assets.", + "parent": "total_assets", + "sequence": 14, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PropertyPlantAndEquipmentNet", + "namespace": "us-gaap" + }, + { + "tag": "PublicUtilitiesPropertyPlantAndEquipmentNet", + "namespace": "us-gaap" + }, + { + "tag": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "PropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "PropertyPlantAndEquipmentIncludingRightofuseAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "operating_lease_right_of_use_asset", + "label": "Operating Lease, Right-of-Use Asset", + "description": "Amount of lessee's right to use underlying asset under operating lease.", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseRightOfUseAsset", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "RightofuseAssets", + "namespace": "ifrs-full" + } + ], + "parent": "total_assets", + "sequence": 23 + }, + { + "tag": "finance_lease_right_of_use_asset", + "label": "Finance Lease, Right-of-Use Asset", + "description": "Amount, after accumulated amortization, of right-of-use asset from finance lease.", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseRightOfUseAsset", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ], + "parent": "total_assets", + "sequence": 24 + }, + { + "tag": "mortgage_servicing_rights", + "label": "Mortgage Servicing Rights", + "description": "Fair value of an asset representing net future revenue from contractually specified servicing fees, late charges, and other ancillary revenues, in excess of future costs related to servicing arrangements.", + "parent": "total_assets", + "sequence": 15, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "ServicingAssetAtFairValueAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ServicingAssetAtAmortizedValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ServicingAsset", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + } + ] + }, + { + "tag": "long_term_investments", + "label": "Long-term Investments", + "description": "Amount of long-term investments including equity method investees and available for sale securities.", + "parent": "total_assets", + "sequence": 16, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermInvestments", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentsAndOtherNoncurrentAssets", + "namespace": "us-gaap" + }, + { + "tag": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "HeldToMaturitySecuritiesNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "FinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "HeldtomaturityInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAvailableforsale", + "namespace": "ifrs-full" + }, + { + "tag": "FairValueOfInvestmentsInEquityInstrumentsDesignatedAsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "deferred_acquisition_cost", + "label": "Deferred Acquisition Cost", + "description": "Amount of deferred policy acquisition cost capitalized on contract remaining in force.", + "parent": "total_assets", + "sequence": 17, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredPolicyAcquisitionCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DeferredPolicyAcquisitionCostsNet", + "namespace": "us-gaap" + }, + { + "tag": "DeferredPolicyAcquisitionCostsAndValueOfBusinessAcquired", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "separate_account_business_assets", + "label": "Separate Account Business Assets", + "description": "Amount of asset at fair value held for benefit of separate account policyholder.", + "parent": "total_assets", + "sequence": 18, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "SeparateAccountAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "goodwill", + "label": "Goodwill", + "description": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.", + "parent": "total_assets", + "sequence": 19, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Goodwill", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Goodwill", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "GoodwillAndIntangibleAssetsGoodwill", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "intangible_assets", + "label": "Intangible Assets", + "description": "Amount, after accumulated amortization, of finite- and indefinite-lived intangible assets and capitalized cost for software to be sold, leased, or marketed. Excludes goodwill.", + "parent": "total_assets", + "sequence": 20, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "IntangibleAssetsNetExcludingGoodwill", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FiniteLivedIntangibleAssetsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_assets", + "label": "Other Assets", + "description": "Amount of assets classified as other.", + "parent": "total_assets", + "sequence": 21, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "OtherAssetsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DeferredTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "Prepayments", + "namespace": "ifrs-full" + }, + { + "tag": "ReinsuranceContractsHeldThatAreAssets", + "namespace": "ifrs-full" + }, + { + "tag": "RecognisedAssetsDefinedBenefitPlan", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_assets_excl_ppe", + "label": "Other Than Fixed Noncurrent Assets", + "description": "Noncurrent assets other than investments and PP&E.", + "parent": "total_assets", + "sequence": 22, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetsNoncurrentOtherThanNoncurrentInvestmentsAndPropertyPlantAndEquipment", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_assets", + "label": "Total Assets", + "description": "Amount of asset recognized for present right to economic benefit.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Assets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Assets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "noninterest_bearing_deposits", + "label": "Non-Interest Bearing Deposits", + "description": "The aggregate amount of all domestic and foreign noninterest-bearing deposits liabilities held by the entity.", + "parent": "total_liabilities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "NoninterestBearingDepositLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoninterestBearingDepositLiabilitiesDomestic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoninterestBearingDepositLiabilitiesForeign", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "interest_bearing_deposits", + "label": "Interest Bearing Deposits", + "description": "The aggregate of all domestic and foreign interest-bearing deposit liabilities.", + "parent": "total_liabilities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InterestBearingDepositLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestBearingDepositLiabilitiesDomestic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestBearingDepositLiabilitiesForeign", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestBearingDomesticDepositBrokered", + "namespace": "us-gaap" + }, + { + "tag": "DepositsFromBanks", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "fed_funds_purchased", + "label": "Federal Funds Purchased and Securities Sold", + "description": "Amount after offset of short term borrowing where a bank borrows, at the federal funds rate, from another bank and securities that an entity sells and agrees to repurchase at a specified date for a specified price.", + "parent": "total_liabilities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchase", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "short_term_debt", + "label": "Short-Term Debt", + "description": "Reflects the total carrying amount as of the balance sheet date of debt having initial terms less than one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "ShortTermBorrowings", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommercialPaper", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ShortTermDebtCurrent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "current_portion_of_long_term_debt", + "label": "Current Portion of Long-Term Debt", + "description": "Amount of long-term debt due within one year or within the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermDebtCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentPortionOfLongTermDebt", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "operating_lease_liability_current", + "label": "Operating Lease, Liability, Current", + "description": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CurrentLeaseLiabilities", + "namespace": "ifrs-full" + } + ], + "parent": "total_liabilities", + "sequence": 19 + }, + { + "tag": "finance_lease_liability_current", + "label": "Finance Lease, Liability, Current", + "description": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ], + "parent": "total_liabilities", + "sequence": 20 + }, + { + "tag": "bankers_acceptances", + "label": "Bankers Acceptance Outstanding", + "description": "Amount of short-term, negotiable time drafts drawn on and accepted by a financial institution. Bankers acceptances are a bank's promise to pay to the holder of the draft a stated amount on a specified date.", + "parent": "total_liabilities", + "sequence": 6, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "BankersAcceptanceOutstanding", + "namespace": "us-gaap" + }, + { + "tag": "BankersAcceptances", + "namespace": "us-gaap" + }, + { + "tag": "BankAcceptanceAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "accounts_payable", + "label": "Accounts Payable", + "description": "Amount of obligations incurred and payable for goods and services received.", + "parent": "total_liabilities", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsPayableCurrentAndNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableCurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableAndAccruedLiabilitiesCurrentAndNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableAndOtherAccruedLiabilities", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableTradeCurrent", + "namespace": "us-gaap" + }, + { + "tag": "TradeAndOtherPayables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "accrued_interest_payable", + "label": "Accrued Interest Payable", + "description": "Carrying value as of the balance sheet date of [accrued] interest payable on all forms of debt, including trade payables, that has been incurred and is unpaid. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "total_liabilities", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InterestPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPayableCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPayable", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_short_term_payables", + "label": "Other Short-Term Payables", + "description": "Amount of borrowings classified as other, maturing within one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherShortTermBorrowings", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DerivativeFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialLiabilitiesAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPayable", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "long_term_debt", + "label": "Long-Term Debt", + "description": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.", + "parent": "total_liabilities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermDebtNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermDebtAndCapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Borrowings", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NoncurrentPortionOfNoncurrentNotesAndDebenturesIssued", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SubordinatedLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "DatedSubordinatedLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "capital_lease_obligations", + "label": "Capital Lease Obligations", + "description": "Present value of lessee's discounted obligation for lease payments from finance lease.", + "parent": "total_liabilities", + "sequence": 11, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseLiability", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2018 + }, + { + "tag": "FinanceLeaseLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ] + }, + { + "tag": "operating_lease_liability_noncurrent", + "label": "Operating Lease, Liability, Noncurrent", + "description": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "NoncurrentLeaseLiabilities", + "namespace": "ifrs-full" + } + ], + "parent": "total_liabilities", + "sequence": 21 + }, + { + "tag": "claims_and_claim_expenses", + "label": "Claims and Claim Expense", + "description": "The amount needed to reflect the estimated ultimate cost of settling claims relating to insured events that have occurred on or before the balance sheet date, whether or not reported to the insurer at that date.", + "parent": "total_liabilities", + "sequence": 12, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilityForClaimsAndClaimsAdjustmentExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2023 + }, + { + "tag": "InsuranceContractsThatAreLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "future_policy_benefits", + "label": "Future Policy Benefits", + "description": "Amount, before effect of reinsurance, of present value of future benefit to be paid to or on behalf of policyholder and related expense less present value of future net premium receivable under insurance contract.", + "parent": "total_liabilities", + "sequence": 13, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilityForFuturePolicyBenefits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2023 + }, + { + "tag": "LiabilitiesArisingFromInsuranceContracts", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "unearned_premiums_credit", + "label": "Unearned Premiums Liability", + "description": "Carrying amount of premiums written on insurance contracts that have not been earned as of the balance sheet date.", + "parent": "total_liabilities", + "sequence": 14, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "UnearnedPremiums", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "UnearnedPremiums", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2022 + } + ] + }, + { + "tag": "policyholder_funds", + "label": "Policy Holder Funds", + "description": "Amount due to policyholders for funds held that are returnable under the terms of insurance contracts, classified as other.", + "parent": "total_liabilities", + "sequence": 15, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherPolicyholderFunds", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PolicyholderFunds", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "participating_policyholder_equity", + "label": "Participating Policy Holder Equity", + "description": "Amount due to policyholders for funds held that are returnable under the terms of insurance contracts, classified as other.", + "parent": "total_liabilities", + "sequence": 16, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PolicyholderFundsAndContractDeposits", + "namespace": "us-gaap" + }, + { + "tag": "OtherPolicyholderFunds", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PolicyholderFunds", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ParticipatingPoliciesAccountBalance", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "separate_account_business_liabilities", + "label": "Separate Account Business Liabilities", + "description": "Amount of liability for variable contract in which all or portion of contract holder's funds is allocated to specific separate account and supported by assets held in separate account.", + "parent": "total_liabilities", + "sequence": 17, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "SeparateAccountsLiability", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BankAcceptanceLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_long_term_liabilities", + "label": "Other Long-Term Liabilities", + "description": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 18, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherLiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DeferredIncomeTaxesAndOtherLiabilitiesNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "OtherLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "ProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "RecognisedLiabilitiesDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilityAssetOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "AdditionalProvisionsOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "ProvisionUsedOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "UnusedProvisionReversedOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughNetExchangeDifferencesOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "AcquisitionsThroughBusinessCombinationsOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughBusinessCombinationsDeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughNetExchangeDifferencesDeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + }, + { + "tag": "UnusedTaxLossesForWhichNoDeferredTaxAssetRecognised", + "namespace": "ifrs-full" + }, + { + "tag": "DeductibleTemporaryDifferencesForWhichNoDeferredTaxAssetIsRecognised", + "namespace": "ifrs-full" + }, + { + "tag": "TemporaryDifferencesAssociatedWithInvestmentsInSubsidiariesBranchesAndAssociatesAndInterestsInJointVentures", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_liabilities", + "label": "Total Liabilities", + "description": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.", + "parent": "total_liabilities_and_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Liabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Liabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "FinancialLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "commitments_and_contingencies", + "label": "Commitments & Contingencies", + "description": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", + "parent": "total_liabilities_and_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CommitmentsAndContingencies", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "redeemable_nci_common", + "label": "Redeemable NCI - Common", + "description": "Equity carrying amount of the common stock component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_nci_preferred", + "label": "Redeemable NCI - Preferred", + "description": "Equity carrying amount of the preferred stock component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_nci_other", + "label": "Redeemable NCI - Other", + "description": "Equity carrying amount of the other component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityOtherCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_noncontrolling_interest", + "label": "Redeemable Noncontrolling Interest", + "description": "As of the reporting date, the aggregate carrying amount of all noncontrolling interests which are redeemable by the (parent) entity (1) at a fixed or determinable price on a fixed or determinable date, (2) at the option of the holder of the noncontrolling interest, or (3) upon occurrence of an event that is not solely within the control of the (parent) entity. This item includes noncontrolling interest holder's ownership (or holders' ownership) regardless of the type of equity interest (common, preferred, other) including all potential organizational (legal) forms of the investee entity.", + "parent": "total_liabilities_and_equity", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityOtherFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemablePreferredStockCarryingAmountOrRedemptionValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityRedemptionValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityValueExcludingAdditionalPaidInCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityCarryingAmountAttributableToParent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "total_preferred_equity", + "label": "Preferred Stock", + "description": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", + "parent": "total_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PreferredStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "common_equity", + "label": "Common Stock", + "description": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", + "parent": "total_common_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CommonStocksIncludingAdditionalPaidInCapital", + "namespace": "us-gaap" + }, + { + "tag": "CommonStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommonStockValueOutstanding", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IssuedCapital", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NumberOfSharesOutstanding", + "namespace": "ifrs-full" + }, + { + "tag": "NumberOfSharesIssued", + "namespace": "ifrs-full" + }, + { + "tag": "NumberOfSharesIssuedAndFullyPaid", + "namespace": "ifrs-full" + }, + { + "tag": "ParValuePerShare", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "additional_paid_in_capital", + "label": "Additional Paid-In Capital", + "description": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", + "parent": "total_common_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AdditionalPaidInCapitalCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdditionalPaidInCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdditionalPaidinCapital", + "namespace": "ifrs-full" + }, + { + "tag": "SharePremium", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "retained_earnings", + "label": "Retained Earnings", + "description": "Amount of accumulated undistributed earnings (deficit).", + "parent": "total_common_equity", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RetainedEarningsAccumulatedDeficit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RetainedEarningsUnappropriated", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RetainedEarnings", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "treasury_stock", + "label": "Treasury Stock", + "description": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.", + "parent": "total_common_equity", + "sequence": 4, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TreasuryStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TreasuryShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "accumulated_other_comprehensive_income", + "label": "Accumulated Other Comprehensive Income / (Loss)", + "description": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.", + "parent": "total_common_equity", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccumulatedOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfCashFlowHedges", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_equity", + "label": "Other Equity Adjustments", + "description": "This element represents movements included in the statement of changes in stockholders' equity which are not separately disclosed or provided for elsewhere in the taxonomy.", + "parent": "total_common_equity", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "StockholdersEquityOther", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAdditionalCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherReserves", + "namespace": "ifrs-full" + }, + { + "tag": "OtherEquityInterest", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughSharebasedPaymentTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughTreasuryShareTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughChangesInOwnershipInterestsInSubsidiariesThatDoNotResultInLossOfControl", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughTransfersAndOtherChangesEquity", + "namespace": "ifrs-full" + }, + { + "tag": "ChangesInEquity", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughOtherDistributionsToOwners", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughOtherContributionsByOwners", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughAppropriationOfRetainedEarnings", + "namespace": "ifrs-full" + }, + { + "tag": "ReductionOfIssuedCapital", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_common_equity", + "label": "Total Common Equity", + "description": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", + "parent": "total_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "EquityAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_equity", + "label": "Total Preferred & Common Equity", + "description": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", + "parent": "total_equity_and_noncontrolling_interests", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "StockholdersEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquityAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "noncontrolling_interests", + "label": "Noncontrolling Interest", + "description": "Amount of equity (deficit) attributable to noncontrolling interest. Excludes temporary equity.", + "parent": "total_equity_and_noncontrolling_interests", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "MinorityInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterests", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_equity_and_noncontrolling_interests", + "label": "Total Equity & Noncontrolling Interests", + "description": "Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity.", + "parent": "total_liabilities_and_equity", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Equity", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "temporary_equity_parent", + "label": "Temporary Equity Attributable to Parent", + "description": "Carrying amount of temporary equity attributable to parent.", + "parent": "temporary_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TemporaryEquityCarryingAmountAttributableToParent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "temporary_equity", + "label": "Temporary Equity", + "description": "Carrying amount of the equity component of securities that are redeemable.", + "parent": "total_liabilities_and_equity", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "namespace": "us-gaap" + }, + { + "tag": "RedeemablePreferredStockCarryingAmount", + "namespace": "us-gaap" + }, + { + "tag": "TemporaryEquityValueExcludingAdditionalPaidInCapital", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_liabilities_and_equity", + "label": "Total Liabilities & Shareholders' Equity", + "description": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilitiesAndStockholdersEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquityAndLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "LiabilitiesAndPartnersCapital", + "namespace": "us-gaap" + } + ] + } + ], + "diversified": [ + { + "tag": "total_current_assets", + "label": "Total Current Assets", + "description": "Amount of asset recognized for present right to economic benefit, classified as current.", + "parent": null, + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetsCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_noncurrent_assets_excl_ppe", + "label": "Other Than Fixed Noncurrent Assets", + "description": "Noncurrent assets other than investments and PP&E.", + "parent": "total_noncurrent_assets", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetsNoncurrentOtherThanNoncurrentInvestmentsAndPropertyPlantAndEquipment", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_noncurrent_assets", + "label": "Total Noncurrent Assets", + "description": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold or consumed after one year or beyond the normal operating cycle, if longer.", + "parent": null, + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoncurrentAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_and_equivalents", + "label": "Cash & Equivalents", + "description": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.", + "parent": "total_assets", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CashAndCashEquivalentsAtCarryingValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "Cash", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Cash", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "restricted_cash", + "label": "Restricted Cash", + "description": "Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.", + "parent": "total_assets", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RestrictedCash", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "RestrictedCashAndCashEquivalents", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RestrictedCashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CashAndCashEquivalentsClassifiedAsPartOfDisposalGroupHeldForSale", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "short_term_investments", + "label": "Short-Term Investments", + "description": "Amount of investment in marketable security, classified as current.", + "parent": "total_assets", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "MarketableSecuritiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ShortTermInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AvailableForSaleSecuritiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "OtherCurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentFinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAtFairValue", + "namespace": "ifrs-full" + }, + { + "tag": "DerivativeFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermInvestmentsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermDepositsNotClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "DebtSecurities", + "namespace": "ifrs-full" + }, + { + "tag": "DebtInstrumentsHeld", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "note_receivable", + "label": "Note & Lease Receivable", + "description": "Amortized cost, after allowance for credit loss, of financing receivable classified as current. Excludes net investment in lease.", + "parent": "total_assets", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "NotesAndLoansReceivableNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NotesReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccountsNotesAndLoansReceivableNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoncurrentReceivables", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "accounts_receivable", + "label": "Accounts Receivable", + "description": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", + "parent": "total_assets", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsReceivableNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccountsReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ReceivablesNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TradeAndOtherCurrentReceivables", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "TradeReceivables", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "TradeAndOtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTradeReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "OtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherCurrentReceivablesDueFromRelatedParties", + "namespace": "ifrs-full" + }, + { + "tag": "AllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "AdditionalAllowanceRecognisedInProfitOrLossAllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "UtilisationAllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "nontrade_receivables", + "label": "Vendor Non-trade Receivables", + "description": "The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer.", + "parent": "total_assets", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "NontradeReceivablesCurrent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_inventory", + "label": "Inventories, net", + "description": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", + "parent": "total_assets", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InventoryNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InventoryFinishedGoodsAndWorkInProcess", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Inventories", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CurrentRawMaterialsAndCurrentProductionSupplies", + "namespace": "ifrs-full" + }, + { + "tag": "FinishedGoods", + "namespace": "ifrs-full" + }, + { + "tag": "SpareParts", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "prepaid_expenses", + "label": "Prepaid Expenses", + "description": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", + "parent": "total_assets", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PrepaidExpenseCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PrepaidExpense", + "namespace": "us-gaap" + }, + { + "tag": "CurrentPrepaidExpenses", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPrepaymentsAndOtherCurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "Prepayments", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPrepayments", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_deferred_tax_assets", + "label": "Current Deferred & Refundable Income Taxes", + "description": "The current portion of the aggregate tax effects as of the balance sheet date of all future tax deductions arising from temporary differences between tax basis and generally accepted accounting principles basis recognition of assets, liabilities, revenues and expenses, which can only be deducted for tax purposes when permitted under enacted tax laws; after deducting the allocated valuation allowance, if any, to reduce such amount to net realizable value. Deferred tax liabilities and assets are classified as current or noncurrent based on the classification of the related asset or liability for financial reporting. A deferred tax liability or asset that is not related to an asset or liability for financial reporting, including deferred tax assets related to carryforwards, are classified according to the expected reversal date of the temporary difference. An unrecognized tax benefit that is directly related to a position taken in a tax year that results in a net operating loss carryforward is presented as a reduction of the related deferred tax asset.", + "parent": "total_assets", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredTaxAssetsNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "CurrentTaxAssetsCurrent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_current_assets", + "label": "Other Current Assets", + "description": "Amount of current assets classified as other.", + "parent": "total_assets", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherAssetsCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Prepayments", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxAssetsCurrent", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentDerivativeFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentNonfinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPrepaymentsAndCurrentAccruedIncome", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentValueAddedTaxReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "HedgingInstrumentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentInterestReceivable", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentAssetsOtherThanAssetsOrDisposalGroupsClassifiedAsHeldForSaleOrAsHeldForDistributionToOwners", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentAssetsOrDisposalGroupsClassifiedAsHeldForSale", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentFinanceLeaseReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "DerivativeFinancialAssetsHeldForHedging", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialInstrumentsDesignatedAsHedgingInstrumentsAtFairValue", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_current_nonoperating_assets", + "label": "Other Current Nonoperating Assets", + "description": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.", + "parent": "total_assets", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PrepaidExpenseAndOtherAssetsCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + } + ] + }, + { + "tag": "gross_ppe", + "label": "Plant, Property & Equipment, gross", + "description": "Amount, before accumulated depreciation, depletion, and amortization, of property, plant, and equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + "parent": "net_ppe", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PropertyPlantAndEquipmentGross", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Land", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "accumulated_depreciation", + "label": "Accumulated Depreciation", + "description": "Amount of accumulated depreciation, depletion, and amortization of property, plant, and equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + "parent": "net_ppe", + "sequence": 2, + "factor": "-", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_ppe", + "label": "Plant, Property, & Equipment, net", + "description": "Amount, after accumulated depreciation, depletion, and amortization, of property, plant, and equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + "parent": "total_assets", + "sequence": 12, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PropertyPlantAndEquipmentNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "PropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "PropertyPlantAndEquipmentIncludingRightofuseAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "operating_lease_right_of_use_asset", + "label": "Operating Lease, Right-of-Use Asset", + "description": "Amount of lessee's right to use underlying asset under operating lease.", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseRightOfUseAsset", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "RightofuseAssets", + "namespace": "ifrs-full" + } + ], + "parent": "total_assets", + "sequence": 21 + }, + { + "tag": "finance_lease_right_of_use_asset", + "label": "Finance Lease, Right-of-Use Asset", + "description": "Amount, after accumulated amortization, of right-of-use asset from finance lease.", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseRightOfUseAsset", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ], + "parent": "total_assets", + "sequence": 22 + }, + { + "tag": "long_term_investments", + "label": "Long-Term Investments", + "description": "Amount of investment in marketable security, classified as noncurrent.", + "parent": "total_assets", + "sequence": 13, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "MarketableSecuritiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AvailableForSaleSecuritiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentProperty", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentsInAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentFinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncurrent_note_receivables", + "label": "Noncurrent Note & Lease Receivables", + "description": "Amount, after allowance for credit loss, of financing receivable, classified as noncurrent.", + "parent": "total_assets", + "sequence": 14, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "NotesAndLoansReceivableNetNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NotesReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "goodwill", + "label": "Goodwill", + "description": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.", + "parent": "total_assets", + "sequence": 15, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Goodwill", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Goodwill", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "GoodwillAndIntangibleAssetsGoodwill", + "namespace": "us-gaap" + }, + { + "tag": "IntangibleAssetsAndGoodwill", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "intangible_assets", + "label": "Intangible Assets", + "description": "Amount, after accumulated amortization, of finite- and indefinite-lived intangible assets and capitalized cost for software to be sold, leased, or marketed. Excludes goodwill.", + "parent": "total_assets", + "sequence": 16, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "IntangibleAssetsNetExcludingGoodwill", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FiniteLivedIntangibleAssetsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "ComputerSoftware", + "namespace": "ifrs-full" + }, + { + "tag": "OtherIntangibleAssets", + "namespace": "ifrs-full" + }, + { + "tag": "BrandNames", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncurrent_deferred_tax_assets", + "label": "Noncurrent Deferred & Refundable Income Taxes", + "description": "The noncurrent portion as of the balance sheet date of the aggregate carrying amount of all future tax deductions arising from temporary differences between tax basis and generally accepted accounting principles basis recognition of assets, liabilities, revenues and expenses, which can only be deducted for tax purposes when permitted under enacted tax laws; after the valuation allowance, if any, to reduce such amount to net realizable value. Deferred tax liabilities and assets are classified as current or noncurrent based on the classification of the related asset or liability for financial reporting. A deferred tax liability or asset that is not related to an asset or liability for financial reporting, including deferred tax assets related to carryforwards, is classified according to the expected reversal date of the temporary difference.", + "parent": "total_assets", + "sequence": 17, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredTaxAssetsNetNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "DeferredTaxAssetsLiabilitiesNetNoncurrent", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2018 + }, + { + "tag": "DeferredIncomeTaxAssetsNet", + "namespace": "us-gaap", + "first_year": 2015, + "last_year": 2026 + }, + { + "tag": "NetDeferredTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "employee_benefit_assets", + "label": "Employee Benefit Assets", + "description": "This represents the entire assets recognized in the balance sheet that are associated with the defined benefit plans.", + "parent": "total_assets", + "sequence": 18, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DefinedBenefitPlanAssetsForPlanBenefitsCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2016 + }, + { + "tag": "DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RecognisedAssetsDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentRecognisedAssetsDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "PlanAssetsAtFairValue", + "namespace": "ifrs-full" + }, + { + "tag": "SurplusDeficitInPlan", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_assets", + "label": "Other Noncurrent Operating Assets", + "description": "Amount of noncurrent assets classified as other.", + "parent": "total_assets", + "sequence": 19, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherAssetsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAssetsMiscellaneousNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "DeferredTaxAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentNonfinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentDerivativeFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentRestrictedCashAndCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentValueAddedTaxReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "AssetsRecognisedFromCostsToObtainOrFulfilContractsWithCustomers", + "namespace": "ifrs-full" + }, + { + "tag": "FinanceLeaseReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentFinanceLeaseReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "NetInvestmentInFinanceLease", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentAssetsOtherThanFinancialInstrumentsDeferredTaxAssetsPostemploymentBenefitAssetsAndRightsArisingUnderInsuranceContracts", + "namespace": "ifrs-full" + }, + { + "tag": "AssetsArisingFromInsuranceContracts", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_nonoperating_assets", + "label": "Other Noncurrent Nonoperating Assets", + "description": "Amount of investments, and noncurrent assets classified as other.", + "parent": "total_assets", + "sequence": 20, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InvestmentsAndOtherNoncurrentAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "total_assets", + "label": "Total Assets", + "description": "Amount of asset recognized for present right to economic benefit.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Assets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Assets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_current_liabilities", + "label": "Total Current Liabilities", + "description": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", + "parent": null, + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_noncurrent_liabilities", + "label": "Total Noncurrent Liabilities", + "description": "Amount of obligation due after one year or beyond the normal operating cycle, if longer.", + "parent": null, + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoncurrentLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "short_term_debt", + "label": "Short-Term Debt", + "description": "Reflects the total carrying amount as of the balance sheet date of debt having initial terms less than one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "ShortTermBorrowings", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommercialPaper", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ShortTermDebtCurrent", + "namespace": "us-gaap" + }, + { + "tag": "ShorttermBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CommercialPapersIssued", + "namespace": "ifrs-full" + }, + { + "tag": "BankOverdraftsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentCommercialPapersIssuedAndCurrentPortionOfNoncurrentCommercialPapersIssued", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_portion_of_long_term_debt", + "label": "Current Portion of Long-Term Debt", + "description": "Amount of long-term debt due within one year or within the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermDebtCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentPortionOfLongTermDebt", + "namespace": "us-gaap" + }, + { + "tag": "CurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentBorrowingsAndCurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPortionOfLongtermBorrowings", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "operating_lease_liability_current", + "label": "Operating Lease, Liability, Current", + "description": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CurrentLeaseLiabilities", + "namespace": "ifrs-full" + } + ], + "parent": "total_liabilities", + "sequence": 20 + }, + { + "tag": "finance_lease_liability_current", + "label": "Finance Lease, Liability, Current", + "description": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ], + "parent": "total_liabilities", + "sequence": 21 + }, + { + "tag": "accounts_payable", + "label": "Accounts Payable", + "description": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "total_liabilities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccountsPayable", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableAndAccruedLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TradeAndOtherCurrentPayables", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "TradeAndOtherPayablesToTradeSuppliers", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "TradeAndOtherPayables", + "namespace": "ifrs-full" + }, + { + "tag": "TradePayables", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTradePayables", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherCurrentPayablesToTradeSuppliers", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherCurrentPayablesToRelatedParties", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "accrued_expenses", + "label": "Accrued Expenses", + "description": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "total_liabilities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccruedLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccruedAndOtherLiabilitiesCurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccrualsClassifiedAsCurrent", + "namespace": "ifrs-full" + }, + { + "tag": "Accruals", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentAccruedExpensesAndOtherCurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermEmployeeBenefitsAccruals", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPayablesOnSocialSecurityAndTaxesOtherThanIncomeTax", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "customer_deposits", + "label": "Customer Deposits", + "description": "Carrying amount of liabilities for customer deposits received and held, classified as current. Includes cash received in advance for undelivered goods or services and refundable security deposits.", + "parent": "total_liabilities", + "sequence": 5, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CustomerDepositsCurrent", + "namespace": "us-gaap" + }, + { + "tag": "CustomerDepositsLiability", + "namespace": "us-gaap" + }, + { + "tag": "DepositsFromCustomers", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentDepositsFromCustomers", + "namespace": "ifrs-full" + }, + { + "tag": "LongtermDeposits", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "dividends_payable", + "label": "Dividends Payable", + "description": "Carrying value as of the balance sheet date of dividends declared but unpaid on equity securities issued by the entity and outstanding.", + "parent": "total_liabilities", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DividendsPayableCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPayable", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsRecognisedAsDistributionsToOwnersOfParent", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsRecognisedAsDistributionsToNoncontrollingInterests", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_deferred_revenue", + "label": "Current Deferred Revenue", + "description": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current.", + "parent": "total_liabilities", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredRevenueCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ContractWithCustomerLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "DeferredRevenue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ContractLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentContractLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredIncomeClassifiedAsCurrent", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredIncomeIncludingContractLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_deferred_tax_liabilities", + "label": "Current Deferred & Payable Income Tax Liabilities", + "description": "Represents the current portion of deferred tax liabilities, which result from applying the applicable tax rate to net taxable temporary differences pertaining to each jurisdiction to which the entity is obligated to pay income tax. A current taxable temporary difference is a difference between the tax basis and the carrying amount of a current asset or liability in the financial statements prepared in accordance with generally accepted accounting principles. In a classified statement of financial position, an enterprise separates deferred tax liabilities and assets into a current amount and a noncurrent amount. Deferred tax liabilities and assets are classified as current or noncurrent based on the classification of the related asset or liability for financial reporting. A deferred tax liability or asset that is not related to an asset or liability for financial reporting, including deferred tax assets related to carryforwards, is classified according to the expected reversal date of the temporary difference.", + "parent": "total_liabilities", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredTaxLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2018 + } + ] + }, + { + "tag": "current_employee_benefit_liabilities", + "label": "Current Employee Benefit Liabilities", + "description": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "total_liabilities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "EmployeeRelatedLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities", + "namespace": "us-gaap" + }, + { + "tag": "CurrentProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermRestructuringProvision", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_taxes_payable", + "label": "Other Taxes Payable", + "description": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "other_current_liabilities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TaxesPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccruedIncomeTaxesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SalesAndExciseTaxPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentTaxLiabilitiesCurrent", + "namespace": "ifrs-full" + }, + { + "tag": "ValueAddedTaxPayables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_current_liabilities", + "label": "Other Current Liabilities", + "description": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAccruedLiabilitiesCurrent", + "namespace": "us-gaap" + }, + { + "tag": "OtherCurrentPayables", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentDerivativeFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialLiabilitiesAtFairValue", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "HedgingInstrumentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherShorttermProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "LegalProceedingsProvision", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialLiabilitiesAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilitiesFromSharebasedPaymentTransactions2011", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilitiesIncludedInDisposalGroupsClassifiedAsHeldForSale", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentRetentionPayables", + "namespace": "ifrs-full" + }, + { + "tag": "ExciseTaxPayables", + "namespace": "ifrs-full" + }, + { + "tag": "DerivativeFinancialLiabilitiesHeldForHedging", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_current_nonoperating_liabilities", + "label": "Other Current Nonoperating Liabilities", + "description": "Amount of current liabilities from nonoperating activities, classified as other. Includes accrued liabilities and other liabilities not separately disclosed.", + "parent": "total_liabilities", + "sequence": 11, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccruedLiabilitiesAndOtherLiabilities", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "long_term_debt", + "label": "Long-Term Debt", + "description": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.", + "parent": "total_liabilities", + "sequence": 12, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermDebtNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermDebtAndCapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Borrowings", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NoncurrentPortionOfNoncurrentNotesAndDebenturesIssued", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "NotesAndDebenturesIssued", + "namespace": "ifrs-full" + }, + { + "tag": "LongtermBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "NetDebt", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "capital_lease_obligations", + "label": "Capital Lease Obligations", + "description": "Present value of lessee's discounted obligation for lease payments from finance lease.", + "parent": "total_liabilities", + "sequence": 13, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseLiability", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2018 + }, + { + "tag": "FinanceLeaseLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ] + }, + { + "tag": "operating_lease_liability_noncurrent", + "label": "Operating Lease, Liability, Noncurrent", + "description": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "NoncurrentLeaseLiabilities", + "namespace": "ifrs-full" + } + ], + "parent": "total_liabilities", + "sequence": 22 + }, + { + "tag": "asset_retirement_and_litigation_obligation", + "label": "Asset Retirement Reserve & Litigation Obligation", + "description": "Noncurrent portion of the carrying amount of a liability for an asset retirement obligation. An asset retirement obligation is a legal obligation associated with the disposal or retirement of a tangible long-lived asset that results from the acquisition, construction or development, or the normal operations of a long-lived asset, except for certain obligations of lessees.", + "parent": "total_liabilities", + "sequence": 14, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetRetirementObligationsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AssetRetirementObligation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LitigationReserve", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "noncurrent_deferred_revenue", + "label": "Noncurrent Deferred Revenue", + "description": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent.", + "parent": "total_liabilities", + "sequence": 15, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredRevenueNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ContractWithCustomerLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "DeferredIncomeClassifiedAsNoncurrent", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentContractLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "RentDeferredIncomeClassifiedAsNoncurrent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncurrent_deferred_tax_liabilities", + "label": "Noncurrent Deferred & Payable Income Tax Liabilities", + "description": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", + "parent": "total_liabilities", + "sequence": 16, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxLiabilitiesNet", + "namespace": "us-gaap", + "first_year": 2015, + "last_year": 2026 + }, + { + "tag": "DeferredTaxLiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2018 + }, + { + "tag": "DeferredIncomeTaxLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "DeferredTaxLiabilities", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2014 + }, + { + "tag": "DeferredTaxLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CurrentTaxLiabilitiesNoncurrent", + "namespace": "ifrs-full" + }, + { + "tag": "NetDeferredTaxLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughBusinessCombinationsDeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughNetExchangeDifferencesDeferredTaxLiabilityAsset", + "namespace": "ifrs-full" + }, + { + "tag": "UnusedTaxLossesForWhichNoDeferredTaxAssetRecognised", + "namespace": "ifrs-full" + }, + { + "tag": "DeductibleTemporaryDifferencesForWhichNoDeferredTaxAssetIsRecognised", + "namespace": "ifrs-full" + }, + { + "tag": "TemporaryDifferencesAssociatedWithInvestmentsInSubsidiariesBranchesAndAssociatesAndInterestsInJointVentures", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncurrent_employee_benefit_liabilities", + "label": "Noncurrent Employee Benefit Liabilities", + "description": "Amount of liability, recognized in statement of financial position, for defined benefit pension and other postretirement plans, classified as noncurrent.", + "parent": "total_liabilities", + "sequence": 17, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EmployeeRelatedLiabilitiesCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "NetDefinedBenefitLiability", + "namespace": "ifrs-full" + }, + { + "tag": "RecognisedLiabilitiesDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilityAssetOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentRecognisedLiabilitiesDefinedBenefitPlan", + "namespace": "ifrs-full" + }, + { + "tag": "DefinedBenefitObligationAtPresentValue", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_liabilities", + "label": "Other Noncurrent Operating Liabilities", + "description": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 18, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherLiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNoncurrentPayables", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "ProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "Provisions", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentDerivativeFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherLongtermProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredIncome", + "namespace": "ifrs-full" + }, + { + "tag": "LiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "AdditionalProvisionsOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "ProvisionUsedOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "UnusedProvisionReversedOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughNetExchangeDifferencesOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "AcquisitionsThroughBusinessCombinationsOtherProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "DerivativeFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "FinanceLeaseLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "GrossLeaseLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noncurrent_nonoperating_liabilities", + "label": "Other Noncurrent Nonoperating Liabilities", + "description": "Amount of noncurrent liabilities from nonoperating activities, classified as other. Includes deferred income taxes and other liabilities not separately disclosed.", + "parent": "total_liabilities", + "sequence": 19, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxesAndOtherLiabilitiesNoncurrent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_liabilities", + "label": "Total Liabilities", + "description": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.", + "parent": "total_liabilities_and_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Liabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Liabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "commitments_and_contingencies", + "label": "Commitments & Contingencies", + "description": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", + "parent": "total_liabilities_and_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CommitmentsAndContingencies", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "redeemable_nci_common", + "label": "Redeemable NCI - Common", + "description": "Equity carrying amount of the common stock component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_nci_preferred", + "label": "Redeemable NCI - Preferred", + "description": "Equity carrying amount of the preferred stock component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_nci_other", + "label": "Redeemable NCI - Other", + "description": "Equity carrying amount of the other component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityOtherCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_noncontrolling_interest", + "label": "Redeemable Noncontrolling Interest", + "description": "As of the reporting date, the aggregate carrying amount of all noncontrolling interests which are redeemable by the (parent) entity (1) at a fixed or determinable price on a fixed or determinable date, (2) at the option of the holder of the noncontrolling interest, or (3) upon occurrence of an event that is not solely within the control of the (parent) entity. This item includes noncontrolling interest holder's ownership (or holders' ownership) regardless of the type of equity interest (common, preferred, other) including all potential organizational (legal) forms of the investee entity.", + "parent": "total_liabilities_and_equity", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityOtherFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemablePreferredStockCarryingAmountOrRedemptionValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityRedemptionValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityValueExcludingAdditionalPaidInCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityCarryingAmountAttributableToParent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "total_preferred_equity", + "label": "Preferred Stock", + "description": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", + "parent": "total_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PreferredStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "common_equity", + "label": "Common Stock", + "description": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", + "parent": "total_common_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CommonStocksIncludingAdditionalPaidInCapital", + "namespace": "us-gaap" + }, + { + "tag": "CommonStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommonStockValueOutstanding", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IssuedCapital", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NumberOfSharesOutstanding", + "namespace": "ifrs-full" + }, + { + "tag": "NumberOfSharesIssued", + "namespace": "ifrs-full" + }, + { + "tag": "NumberOfSharesIssuedAndFullyPaid", + "namespace": "ifrs-full" + }, + { + "tag": "ParValuePerShare", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "additional_paid_in_capital", + "label": "Additional Paid-In Capital", + "description": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", + "parent": "total_common_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AdditionalPaidInCapitalCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdditionalPaidInCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdditionalPaidinCapital", + "namespace": "ifrs-full" + }, + { + "tag": "SharePremium", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "retained_earnings", + "label": "Retained Earnings", + "description": "Amount of accumulated undistributed earnings (deficit).", + "parent": "total_common_equity", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RetainedEarningsAccumulatedDeficit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RetainedEarningsUnappropriated", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RetainedEarnings", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "treasury_stock", + "label": "Treasury Stock", + "description": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.", + "parent": "total_common_equity", + "sequence": 4, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TreasuryStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TreasuryShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SharesInEntityHeldByEntityOrByItsSubsidiariesOrAssociates", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "accumulated_other_comprehensive_income", + "label": "Accumulated Other Comprehensive Income / (Loss)", + "description": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.", + "parent": "total_common_equity", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccumulatedOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfCashFlowHedges", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_equity", + "label": "Other Equity Adjustments", + "description": "This element represents movements included in the statement of changes in stockholders' equity which are not separately disclosed or provided for elsewhere in the taxonomy.", + "parent": "total_common_equity", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "StockholdersEquityOther", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAdditionalCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherReserves", + "namespace": "ifrs-full" + }, + { + "tag": "OtherEquityInterest", + "namespace": "ifrs-full" + }, + { + "tag": "MergerReserve", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfSharebasedPayments", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfGainsAndLossesOnHedgingInstrumentsThatHedgeInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "CapitalRedemptionReserve", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughSharebasedPaymentTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughTreasuryShareTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughChangesInOwnershipInterestsInSubsidiariesThatDoNotResultInLossOfControl", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughTransfersAndOtherChangesEquity", + "namespace": "ifrs-full" + }, + { + "tag": "ChangesInEquity", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughOtherDistributionsToOwners", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughOtherContributionsByOwners", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughAppropriationOfRetainedEarnings", + "namespace": "ifrs-full" + }, + { + "tag": "ReductionOfIssuedCapital", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_common_equity", + "label": "Total Common Equity", + "description": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", + "parent": "total_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "EquityAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_equity", + "label": "Total Preferred & Common Equity", + "description": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", + "parent": "total_equity_and_noncontrolling_interests", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "StockholdersEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquityAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "noncontrolling_interests", + "label": "Noncontrolling Interest", + "description": "Amount of equity (deficit) attributable to noncontrolling interest. Excludes temporary equity.", + "parent": "total_equity_and_noncontrolling_interests", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "MinorityInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterests", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_equity_and_noncontrolling_interests", + "label": "Total Equity & Noncontrolling Interests", + "description": "Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity.", + "parent": "total_liabilities_and_equity", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Equity", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "temporary_equity_parent", + "label": "Temporary Equity Attributable to Parent", + "description": "Carrying amount of temporary equity attributable to parent.", + "parent": "temporary_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TemporaryEquityCarryingAmountAttributableToParent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "temporary_equity", + "label": "Temporary Equity", + "description": "Carrying amount of the equity component of securities that are redeemable.", + "parent": "total_liabilities_and_equity", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "namespace": "us-gaap" + }, + { + "tag": "RedeemablePreferredStockCarryingAmount", + "namespace": "us-gaap" + }, + { + "tag": "TemporaryEquityValueExcludingAdditionalPaidInCapital", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_liabilities_and_equity", + "label": "Total Liabilities & Shareholders' Equity", + "description": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilitiesAndStockholdersEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquityAndLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "LiabilitiesAndPartnersCapital", + "namespace": "us-gaap" + } + ] + } + ], + "insurance": [ + { + "tag": "cash_and_equivalents", + "label": "Cash and Due from Banks", + "description": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.", + "parent": "total_assets", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CashAndCashEquivalentsAtCarryingValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "Cash", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Cash", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "restricted_cash", + "label": "Restricted Cash", + "description": "Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.", + "parent": "total_assets", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RestrictedCash", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "RestrictedCashAndCashEquivalents", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RestrictedCashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "short_term_investments", + "label": "Short-term Investments", + "description": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.", + "parent": "total_assets", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "ShortTermInvestments", + "namespace": "us-gaap" + }, + { + "tag": "AvailableForSaleSecuritiesDebtSecuritiesCurrent", + "namespace": "us-gaap" + }, + { + "tag": "MarketableSecuritiesCurrent", + "namespace": "us-gaap" + }, + { + "tag": "OtherShortTermInvestments", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "fed_funds_sold", + "label": "Federal Funds Sold", + "description": "Includes: (1) the amount outstanding of funds lent to other depository institutions, securities brokers, or securities dealers in the form of Federal Funds sold; for example, immediately available funds lent under agreements or contracts that mature in one business day or roll over under a continuing contract, regardless of the nature of the transaction or the collateral involved, excluding overnight lending for commercial and industrial purposes. Also include Federal Funds sold under agreements to resell on a gross basis, excluding (1) sales of term Federal Funds, (2) due bills representing purchases of securities or other assets by the reporting bank that have not yet been delivered and similar instruments, (3) resale agreements that mature in more than one business day involving assets other than securities, and (4) yield maintenance dollar repurchase agreements (Federal Funds Sold) and (2) the dollar amount outstanding of funds lent in the form of security resale agreements regardless of maturity, if the agreement requires the bank to resell the identical security purchased or a security that meets the definition of substantially the same in the case of a dollar roll. Also include purchases of participations in pools of securities, regardless of maturity (Securities Purchased Under Agreements to Re-sell).", + "parent": "total_assets", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FederalFundsSoldAndSecuritiesPurchasedUnderAgreementsToResell", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResell", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "interest_bearing_deposits_at_other_banks", + "label": "Interest Bearing Deposits at Other Banks", + "description": "For banks and other depository institutions (including Federal Reserve Banks, if applicable): Interest-bearing deposits in other financial institutions for relatively short periods of time including, for example, certificates of deposits, which are presented separately from cash on the balance sheet.", + "parent": "total_assets", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InterestBearingDepositsInBanks", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "time_deposits_placed", + "label": "Time Deposits Placed and Other Short-Term Investments", + "description": "Amount of time deposit liabilities, including certificates of deposit.", + "parent": "total_assets", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TimeDepositsAtCarryingValue", + "namespace": "us-gaap" + }, + { + "tag": "TimeDeposits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "trading_account_securities", + "label": "Trading Account Securities", + "description": "Amount of investment in debt security measured at fair value with change in fair value recognized in net income (trading) and investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI).", + "parent": "total_assets", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TradingSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "TradingSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TradingSecuritiesPledgedAsCollateral", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + } + ] + }, + { + "tag": "loans_and_leases", + "label": "Loans and Leases", + "description": "Amortized cost excluding accrued interest, before allowance for credit loss, of financing receivable. Excludes net investment in lease.", + "parent": "net_loans_and_leases", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinancingReceivableExcludingAccruedInterestBeforeAllowanceForCreditLoss", + "namespace": "us-gaap", + "first_year": 2021, + "last_year": 2026 + }, + { + "tag": "LoansAndLeasesReceivableGrossCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + } + ] + }, + { + "tag": "allowance_for_loan_and_lease_losses", + "label": "Allowance for Loan and Lease Losses", + "description": "Amount of allowance for credit loss on financing receivable. Excludes allowance for financing receivable covered under loss sharing agreement.", + "parent": "net_loans_and_leases", + "sequence": 2, + "factor": "-", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinancingReceivableAllowanceForCreditLosses", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "AllowanceForLoanAndLeaseLossesRealEstate", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_loans_and_leases", + "label": "Loans and Leases, Net of Allowance", + "description": "Amortized cost excluding accrued interest, after allowance for credit loss, of financing receivable. Excludes net investment in lease.", + "parent": "total_assets", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinancingReceivableExcludingAccruedInterestAfterAllowanceForCreditLoss", + "namespace": "us-gaap", + "first_year": 2021, + "last_year": 2026 + }, + { + "tag": "LoansAndLeasesReceivableNetReportedAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "NotesReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "loans_held_for_sale", + "label": "Loans Held for Sale", + "description": "Amount before allowance and after deduction of deferred interest and fees, unamortized costs and premiums and discounts from face amounts, of loans and leases held in portfolio, including but not limited to, commercial and consumer loans. Excludes loans and leases covered under loss sharing agreements.", + "parent": "total_assets", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LoansAndLeasesReceivableNetOfDeferredIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + } + ] + }, + { + "tag": "accrued_investment_income", + "label": "Accrued Investment Income", + "description": "Interest, dividends, rents, ancillary and other revenues earned but not yet received by the entity on its investments.", + "parent": "total_assets", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccruedInvestmentIncomeReceivable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "accounts_receivable", + "label": "Accounts Receivable", + "description": "Amount due from customers for goods/services in the normal course of business.", + "parent": "total_assets", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsReceivableNetCurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsReceivableNet", + "namespace": "us-gaap" + }, + { + "tag": "ReceivablesNetCurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsNotesAndLoansReceivableNetCurrent", + "namespace": "us-gaap" + }, + { + "tag": "PremiumsReceivableAtCarryingValue", + "namespace": "us-gaap" + }, + { + "tag": "TradeAndOtherCurrentReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "TradeReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTradeReceivables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "customer_and_other_receivables", + "label": "Customer and Other Receivables", + "description": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business.", + "parent": "total_assets", + "sequence": 12, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsReceivableNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ReceivablesNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccountsAndOtherReceivablesNetCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_premises_and_equipment", + "label": "Premises and Equipment, Net", + "description": "Amount, after accumulated depreciation, depletion, and amortization, of property, plant, and equipment. Includes, but is not limited to, land and land improvement; building; machinery and equipment; furniture and fixture; and work of art, historical treasure, or similar asset classified as collection.", + "parent": "total_assets", + "sequence": 13, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PropertyPlantAndEquipmentNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_ppe", + "label": "Property, Plant and Equipment, Net", + "description": "Amount after accumulated depreciation, depletion and amortization of physical assets.", + "parent": "total_assets", + "sequence": 14, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PropertyPlantAndEquipmentNet", + "namespace": "us-gaap" + }, + { + "tag": "PublicUtilitiesPropertyPlantAndEquipmentNet", + "namespace": "us-gaap" + }, + { + "tag": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "PropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "PropertyPlantAndEquipmentIncludingRightofuseAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "operating_lease_right_of_use_asset", + "label": "Operating Lease, Right-of-Use Asset", + "description": "Amount of lessee's right to use underlying asset under operating lease.", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseRightOfUseAsset", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "RightofuseAssets", + "namespace": "ifrs-full" + } + ], + "parent": "total_assets", + "sequence": 23 + }, + { + "tag": "finance_lease_right_of_use_asset", + "label": "Finance Lease, Right-of-Use Asset", + "description": "Amount, after accumulated amortization, of right-of-use asset from finance lease.", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseRightOfUseAsset", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ], + "parent": "total_assets", + "sequence": 24 + }, + { + "tag": "mortgage_servicing_rights", + "label": "Mortgage Servicing Rights", + "description": "Fair value of an asset representing net future revenue from contractually specified servicing fees, late charges, and other ancillary revenues, in excess of future costs related to servicing arrangements.", + "parent": "total_assets", + "sequence": 15, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "ServicingAssetAtFairValueAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ServicingAssetAtAmortizedValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ServicingAsset", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + } + ] + }, + { + "tag": "long_term_investments", + "label": "Long-term Investments", + "description": "Amount of long-term investments including equity method investees and available for sale securities.", + "parent": "total_assets", + "sequence": 16, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermInvestments", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentsAndOtherNoncurrentAssets", + "namespace": "us-gaap" + }, + { + "tag": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "HeldToMaturitySecuritiesNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "InvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "FinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "deferred_acquisition_cost", + "label": "Deferred Acquisition Cost", + "description": "Amount of deferred policy acquisition cost capitalized on contract remaining in force.", + "parent": "total_assets", + "sequence": 17, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredPolicyAcquisitionCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DeferredPolicyAcquisitionCostsNet", + "namespace": "us-gaap" + }, + { + "tag": "DeferredPolicyAcquisitionCostsAndValueOfBusinessAcquired", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "separate_account_business_assets", + "label": "Separate Account Business Assets", + "description": "Amount of asset at fair value held for benefit of separate account policyholder.", + "parent": "total_assets", + "sequence": 18, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "SeparateAccountAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "goodwill", + "label": "Goodwill", + "description": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.", + "parent": "total_assets", + "sequence": 19, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Goodwill", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Goodwill", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "GoodwillAndIntangibleAssetsGoodwill", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "intangible_assets", + "label": "Intangible Assets", + "description": "Amount, after accumulated amortization, of finite- and indefinite-lived intangible assets and capitalized cost for software to be sold, leased, or marketed. Excludes goodwill.", + "parent": "total_assets", + "sequence": 20, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "IntangibleAssetsNetExcludingGoodwill", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FiniteLivedIntangibleAssetsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_assets", + "label": "Other Assets", + "description": "Amount of assets classified as other.", + "parent": "total_assets", + "sequence": 21, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "OtherAssetsNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_noncurrent_assets_excl_ppe", + "label": "Other Than Fixed Noncurrent Assets", + "description": "Noncurrent assets other than investments and PP&E.", + "parent": "total_assets", + "sequence": 22, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AssetsNoncurrentOtherThanNoncurrentInvestmentsAndPropertyPlantAndEquipment", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_assets", + "label": "Total Assets", + "description": "Amount of asset recognized for present right to economic benefit.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Assets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Assets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "noninterest_bearing_deposits", + "label": "Non-Interest Bearing Deposits", + "description": "The aggregate amount of all domestic and foreign noninterest-bearing deposits liabilities held by the entity.", + "parent": "total_liabilities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "NoninterestBearingDepositLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoninterestBearingDepositLiabilitiesDomestic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoninterestBearingDepositLiabilitiesForeign", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "interest_bearing_deposits", + "label": "Interest Bearing Deposits", + "description": "The aggregate of all domestic and foreign interest-bearing deposit liabilities.", + "parent": "total_liabilities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InterestBearingDepositLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestBearingDepositLiabilitiesDomestic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestBearingDepositLiabilitiesForeign", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestBearingDomesticDepositBrokered", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "fed_funds_purchased", + "label": "Federal Funds Purchased and Securities Sold", + "description": "Amount after offset of short term borrowing where a bank borrows, at the federal funds rate, from another bank and securities that an entity sells and agrees to repurchase at a specified date for a specified price.", + "parent": "total_liabilities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchase", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "short_term_debt", + "label": "Short-Term Debt", + "description": "Reflects the total carrying amount as of the balance sheet date of debt having initial terms less than one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "ShortTermBorrowings", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommercialPaper", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ShortTermDebtCurrent", + "namespace": "us-gaap" + }, + { + "tag": "ShorttermBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "current_portion_of_long_term_debt", + "label": "Current Portion of Long-Term Debt", + "description": "Amount of long-term debt due within one year or within the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermDebtCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CurrentPortionOfLongTermDebt", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "operating_lease_liability_current", + "label": "Operating Lease, Liability, Current", + "description": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CurrentLeaseLiabilities", + "namespace": "ifrs-full" + } + ], + "parent": "total_liabilities", + "sequence": 19 + }, + { + "tag": "finance_lease_liability_current", + "label": "Finance Lease, Liability, Current", + "description": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseLiabilityCurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ], + "parent": "total_liabilities", + "sequence": 20 + }, + { + "tag": "bankers_acceptances", + "label": "Bankers Acceptance Outstanding", + "description": "Amount of short-term, negotiable time drafts drawn on and accepted by a financial institution. Bankers acceptances are a bank's promise to pay to the holder of the draft a stated amount on a specified date.", + "parent": "total_liabilities", + "sequence": 6, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "BankersAcceptanceOutstanding", + "namespace": "us-gaap" + }, + { + "tag": "BankersAcceptances", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "accounts_payable", + "label": "Accounts Payable", + "description": "Amount of obligations incurred and payable for goods and services received.", + "parent": "total_liabilities", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccountsPayableCurrentAndNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableCurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableAndAccruedLiabilitiesCurrentAndNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableAndOtherAccruedLiabilities", + "namespace": "us-gaap" + }, + { + "tag": "AccountsPayableTradeCurrent", + "namespace": "us-gaap" + }, + { + "tag": "TradeAndOtherCurrentPayables", + "namespace": "ifrs-full" + }, + { + "tag": "TradeAndOtherPayables", + "namespace": "ifrs-full" + }, + { + "tag": "TradePayables", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTradePayables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "accrued_interest_payable", + "label": "Accrued Interest Payable", + "description": "Carrying value as of the balance sheet date of [accrued] interest payable on all forms of debt, including trade payables, that has been incurred and is unpaid. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", + "parent": "total_liabilities", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "InterestPayableCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPayableCurrentAndNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPayable", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_short_term_payables", + "label": "Other Short-Term Payables", + "description": "Amount of borrowings classified as other, maturing within one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherShortTermBorrowings", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherLiabilitiesCurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherCurrentPayables", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCurrentFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "long_term_debt", + "label": "Long-Term Debt", + "description": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.", + "parent": "total_liabilities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LongTermDebtNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LongTermDebtAndCapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Borrowings", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NoncurrentPortionOfNoncurrentNotesAndDebenturesIssued", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentPortionOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "NotesAndDebenturesIssued", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "capital_lease_obligations", + "label": "Capital Lease Obligations", + "description": "Present value of lessee's discounted obligation for lease payments from finance lease.", + "parent": "total_liabilities", + "sequence": 11, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "FinanceLeaseLiability", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2018 + }, + { + "tag": "FinanceLeaseLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + } + ] + }, + { + "tag": "operating_lease_liability_noncurrent", + "label": "Operating Lease, Liability, Noncurrent", + "description": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OperatingLeaseLiabilityNoncurrent", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "NoncurrentLeaseLiabilities", + "namespace": "ifrs-full" + } + ], + "parent": "total_liabilities", + "sequence": 21 + }, + { + "tag": "claims_and_claim_expenses", + "label": "Claims and Claim Expense", + "description": "The amount needed to reflect the estimated ultimate cost of settling claims relating to insured events that have occurred on or before the balance sheet date, whether or not reported to the insurer at that date.", + "parent": "total_liabilities", + "sequence": 12, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilityForClaimsAndClaimsAdjustmentExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LiabilityForClaimsAndClaimsAdjustmentExpensePropertyCasualtyLiability", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2023 + } + ] + }, + { + "tag": "future_policy_benefits", + "label": "Future Policy Benefits", + "description": "Amount, before effect of reinsurance, of present value of future benefit to be paid to or on behalf of policyholder and related expense less present value of future net premium receivable under insurance contract.", + "parent": "total_liabilities", + "sequence": 13, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilityForFuturePolicyBenefits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2023 + } + ] + }, + { + "tag": "unearned_premiums_credit", + "label": "Unearned Premiums Liability", + "description": "Carrying amount of premiums written on insurance contracts that have not been earned as of the balance sheet date.", + "parent": "total_liabilities", + "sequence": 14, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "UnearnedPremiums", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "UnearnedPremiums", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2022 + } + ] + }, + { + "tag": "policyholder_funds", + "label": "Policy Holder Funds", + "description": "Amount due to policyholders for funds held that are returnable under the terms of insurance contracts, classified as other.", + "parent": "total_liabilities", + "sequence": 15, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherPolicyholderFunds", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PolicyholderFunds", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "participating_policyholder_equity", + "label": "Participating Policy Holder Equity", + "description": "Amount due to policyholders for funds held that are returnable under the terms of insurance contracts, classified as other.", + "parent": "total_liabilities", + "sequence": 16, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PolicyholderFundsAndContractDeposits", + "namespace": "us-gaap" + }, + { + "tag": "OtherPolicyholderFunds", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PolicyholderFunds", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ParticipatingPoliciesAccountBalance", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "separate_account_business_liabilities", + "label": "Separate Account Business Liabilities", + "description": "Amount of liability for variable contract in which all or portion of contract holder's funds is allocated to specific separate account and supported by assets held in separate account.", + "parent": "total_liabilities", + "sequence": 17, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "SeparateAccountsLiability", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_long_term_liabilities", + "label": "Other Long-Term Liabilities", + "description": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", + "parent": "total_liabilities", + "sequence": 18, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "OtherLiabilitiesNoncurrent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DeferredIncomeTaxesAndOtherLiabilitiesNoncurrent", + "namespace": "us-gaap" + }, + { + "tag": "OtherNoncurrentPayables", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentFinancialLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "NoncurrentProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "ProvisionsForEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNoncurrentLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_liabilities", + "label": "Total Liabilities", + "description": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.", + "parent": "total_liabilities_and_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "Liabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Liabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "commitments_and_contingencies", + "label": "Commitments & Contingencies", + "description": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", + "parent": "total_liabilities_and_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CommitmentsAndContingencies", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "redeemable_nci_common", + "label": "Redeemable NCI - Common", + "description": "Equity carrying amount of the common stock component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_nci_preferred", + "label": "Redeemable NCI - Preferred", + "description": "Equity carrying amount of the preferred stock component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_nci_other", + "label": "Redeemable NCI - Other", + "description": "Equity carrying amount of the other component of redeemable NCI.", + "parent": "redeemable_noncontrolling_interest", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityOtherCarryingAmount", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "redeemable_noncontrolling_interest", + "label": "Redeemable Noncontrolling Interest", + "description": "As of the reporting date, the aggregate carrying amount of all noncontrolling interests which are redeemable by the (parent) entity (1) at a fixed or determinable price on a fixed or determinable date, (2) at the option of the holder of the noncontrolling interest, or (3) upon occurrence of an event that is not solely within the control of the (parent) entity. This item includes noncontrolling interest holder's ownership (or holders' ownership) regardless of the type of equity interest (common, preferred, other) including all potential organizational (legal) forms of the investee entity.", + "parent": "total_liabilities_and_equity", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RedeemableNoncontrollingInterestEquityCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityOtherFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityCommonCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterestEquityPreferredCarryingAmount", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemablePreferredStockCarryingAmountOrRedemptionValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityRedemptionValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityValueExcludingAdditionalPaidInCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TemporaryEquityCarryingAmountAttributableToParent", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "total_preferred_equity", + "label": "Preferred Stock", + "description": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", + "parent": "total_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "PreferredStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "common_equity", + "label": "Common Stock", + "description": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", + "parent": "total_common_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CommonStocksIncludingAdditionalPaidInCapital", + "namespace": "us-gaap" + }, + { + "tag": "CommonStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommonStockValueOutstanding", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IssuedCapital", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NumberOfSharesOutstanding", + "namespace": "ifrs-full" + }, + { + "tag": "NumberOfSharesIssued", + "namespace": "ifrs-full" + }, + { + "tag": "NumberOfSharesIssuedAndFullyPaid", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "additional_paid_in_capital", + "label": "Additional Paid-In Capital", + "description": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", + "parent": "total_common_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AdditionalPaidInCapitalCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdditionalPaidInCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdditionalPaidinCapital", + "namespace": "ifrs-full" + }, + { + "tag": "SharePremium", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "retained_earnings", + "label": "Retained Earnings", + "description": "Amount of accumulated undistributed earnings (deficit).", + "parent": "total_common_equity", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "RetainedEarningsAccumulatedDeficit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RetainedEarningsUnappropriated", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RetainedEarnings", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "treasury_stock", + "label": "Treasury Stock", + "description": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.", + "parent": "total_common_equity", + "sequence": 4, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TreasuryStockValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "TreasuryShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "accumulated_other_comprehensive_income", + "label": "Accumulated Other Comprehensive Income / (Loss)", + "description": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.", + "parent": "total_common_equity", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AccumulatedOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "ReserveOfCashFlowHedges", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_equity", + "label": "Other Equity Adjustments", + "description": "This element represents movements included in the statement of changes in stockholders' equity which are not separately disclosed or provided for elsewhere in the taxonomy.", + "parent": "total_common_equity", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "StockholdersEquityOther", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherAdditionalCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherReserves", + "namespace": "ifrs-full" + }, + { + "tag": "OtherEquityInterest", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_common_equity", + "label": "Total Common Equity", + "description": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", + "parent": "total_equity", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "EquityAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_equity", + "label": "Total Preferred & Common Equity", + "description": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", + "parent": "total_equity_and_noncontrolling_interests", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "StockholdersEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquityAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "noncontrolling_interests", + "label": "Noncontrolling Interest", + "description": "Amount of equity (deficit) attributable to noncontrolling interest. Excludes temporary equity.", + "parent": "total_equity_and_noncontrolling_interests", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "MinorityInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RedeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterests", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_equity_and_noncontrolling_interests", + "label": "Total Equity & Noncontrolling Interests", + "description": "Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity.", + "parent": "total_liabilities_and_equity", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Equity", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "temporary_equity_parent", + "label": "Temporary Equity Attributable to Parent", + "description": "Carrying amount of temporary equity attributable to parent.", + "parent": "temporary_equity", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TemporaryEquityCarryingAmountAttributableToParent", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "temporary_equity", + "label": "Temporary Equity", + "description": "Carrying amount of the equity component of securities that are redeemable.", + "parent": "total_liabilities_and_equity", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests", + "namespace": "us-gaap" + }, + { + "tag": "RedeemablePreferredStockCarryingAmount", + "namespace": "us-gaap" + }, + { + "tag": "TemporaryEquityValueExcludingAdditionalPaidInCapital", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_liabilities_and_equity", + "label": "Total Liabilities & Shareholders' Equity", + "description": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "LiabilitiesAndStockholdersEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquityAndLiabilities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "LiabilitiesAndPartnersCapital", + "namespace": "us-gaap" + } + ] + } + ] +} diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/cash_flow.json b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/cash_flow.json new file mode 100644 index 00000000000..f36b4f44f72 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/cash_flow.json @@ -0,0 +1,8792 @@ +{ + "industrial": [ + { + "tag": "net_income", + "label": "Consolidated Net Income / (Loss)", + "description": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", + "parent": "net_income_continuing", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_income_discontinued", + "label": "Net Income / (Loss) Discontinued Operations", + "description": "Amount after tax of income (loss) from a discontinued operation including the portion attributable to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + "parent": "net_income_continuing", + "sequence": 2, + "factor": "-", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromDiscontinuedOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_income_continuing", + "label": "Net Income / (Loss) Continuing Operations", + "description": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossBeforeExtraordinaryItemsAndCumulativeEffectOfChangeInAccountingPrinciple", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "depreciation_expense", + "label": "Depreciation Expense", + "description": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", + "parent": "depreciation_and_amortization", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depreciation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationNonproduction", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAmortizationAndAccretionNet", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortisationExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DepreciationPropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "AdjustmentsForDepreciationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DepreciationRightofuseAssets", + "namespace": "ifrs-full" + }, + { + "tag": "DepreciationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AdditionsToRightofuseAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "amortization_expense", + "label": "Amortization Expense", + "description": "Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed.", + "parent": "depreciation_and_amortization", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AmortizationOfIntangibleAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Amortization", + "namespace": "us-gaap" + }, + { + "tag": "AmortisationIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForAmortisationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AmortisationAssetsRecognisedFromCostsIncurredToObtainOrFulfilContractsWithCustomers", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_and_amortization", + "label": "Depreciation and Amortization", + "description": "The aggregate expense recognized in the current period that allocates the cost of tangible and intangible assets over their useful lives.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "OtherDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "AdjustmentsForDepreciationAndAmortisationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DepreciationPropertyPlantAndEquipmentIncludingRightofuseAssets", + "namespace": "ifrs-full" + }, + { + "tag": "AmortisationAssetsRecognisedFromCostsIncurredToObtainOrFulfilContractsWithCustomers", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "stock_based_compensation", + "label": "Stock-Based Compensation", + "description": "Amount of noncash expense for share-based payment arrangement.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ShareBasedCompensation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AllocatedShareBasedCompensationExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "ExpenseFromSharebasedPaymentTransactionsWithEmployees", + "namespace": "ifrs-full" + }, + { + "tag": "SharebasedPaymentExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForSharebasedPayments", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseFromEquitysettledSharebasedPaymentTransactionsInWhichGoodsOrServicesReceivedDidNotQualifyForRecognitionAsAssets", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughSharebasedPaymentTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "StockIssuedDuringPeriodValueShareBasedCompensation", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "deferred_income_tax", + "label": "Deferred Income Tax", + "description": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxExpenseBenefit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + }, + { + "tag": "DeferredIncomeTaxesAndTaxCredits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForDeferredTaxExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncomeTaxExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_on_investments", + "label": "Gain / (Loss) on Investments", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "UnrealizedGainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquitySecuritiesFvNiGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "DebtAndEquitySecuritiesGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "GainsLossesOnFinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForFairValueGainsLosses", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainsLossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_on_sale_of_assets", + "label": "Gain / (Loss) on Sale of Assets", + "description": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfPropertyPlantEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets1", + "namespace": "us-gaap", + "first_year": 2013, + "last_year": 2026 + }, + { + "tag": "GainLossOnSaleOfBusiness", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "GainLossOnSaleOfOtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainLossOnDisposalsPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "GainsOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_loss_from_equity_method_investments", + "label": "Income / (Loss) from Equity Method Investments", + "description": "Amount of income (loss) for proportionate share of equity method investee's income (loss).", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForUndistributedProfitsOfInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAndJointVenturesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForUndistributedProfitsOfAssociates", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "asset_impairment_charges", + "label": "Asset Impairment Charges", + "description": "Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible assets and goodwill.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AssetImpairmentCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillImpairmentLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfLongLivedAssetsHeldForUse", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfIntangibleAssetsExcludingGoodwill", + "namespace": "us-gaap", + "first_year": 2025, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossInvestmentProperty", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossAssetsRecognisedFromCostsIncurredToObtainOrFulfilContractsWithCustomers", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncash_adjustments_to_net_income", + "label": "Non-Cash Adjustments To Reconcile Net Income", + "description": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 11, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherNoncashIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNoncashExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesOther", + "namespace": "us-gaap" + }, + { + "tag": "OtherAdjustmentsToReconcileProfitLoss", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForFinanceCosts", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForFinanceIncome", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForUnrealisedForeignExchangeLossesGains", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForInterestExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForInterestIncome", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForFinanceIncomeCost", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainsLossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_operating_activities", + "label": "Other Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, classified as other, in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 12, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingActivitiesCashFlowStatement", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsReceivedClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherAdjustmentsForNoncashItems", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInContractLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_accounts_receivable", + "label": "Change in Accounts Receivable", + "description": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInAccountsReceivable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInReceivables", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInTradeAndOtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "DecreaseIncreaseInTradeAccountReceivable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInTradeAccountReceivable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInTradeAndOtherReceivables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_nontrade_receivables", + "label": "Change in Vendor Non-trade Receivables", + "description": "Amount of increase (decrease) in receivables classified as other.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOtherReceivables", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "change_in_inventories", + "label": "Change in Inventories", + "description": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInInventories", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "DecreaseIncreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInInventories", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_accounts_payable", + "label": "Change in Accounts Payable", + "description": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInAccountsPayable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInTradeAndOtherPayables", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseInTradeAccountPayable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInTradeAccountPayable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInTradeAndOtherPayables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_other_operating_assets_and_liabilities", + "label": "Change in Other Operating Assets and Liabilities, net", + "description": "Amount of increase (decrease) in operating assets classified as other.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOtherOperatingAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInOtherOperatingLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInOtherOperatingCapitalNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInHealthCareInsuranceLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherCurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherOperatingPayables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInOtherOperatingReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInDeposits", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInReverseRepurchaseAgreementsAndCashCollateralOnSecuritiesBorrowed", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInRepurchaseAgreementsAndCashCollateralOnSecuritiesLent", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInOtherCurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInOtherAssets", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInDeferredIncome", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInDeferredIncomeIncludingContractLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInEmployeeBenefitLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherOperatingReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseInWorkingCapital", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "increase_decrease_in_operating_capital", + "label": "Changes in Operating Assets and Liabilities, net", + "description": "Amount of increase (decrease) in asset and (increase) decrease in liability, used in operating activity in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 13, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOperatingCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_continuing_operating_activities", + "label": "Net Cash From Continuing Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_cash_from_operating_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_operating_activities", + "label": "Net Cash From Discontinued Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity attributable to discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_cash_from_operating_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivitiesDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_operating_activities", + "label": "Net Cash From Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_change_in_cash", + "sequence": 1, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CashFlowsFromUsedInOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "purchase_of_plant_property_and_equipment", + "label": "Purchase of Property, Plant & Equipment", + "description": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquirePropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireProductiveAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PurchaseOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "PurchaseOfPropertyPlantAndEquipmentIntangibleAssetsOtherThanGoodwillInvestmentPropertyAndOtherNoncurrentAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "acquisitions", + "label": "Acquisitions", + "description": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireBusinessesNetOfCashAcquired", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireBusinessesGross", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AcquisitionsThroughBusinessCombinationsIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "CashAdvancesAndLoansMadeToOtherPartiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfIntangibleAssetsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CashFlowsUsedInObtainingControlOfSubsidiariesOrOtherBusinessesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "purchase_of_investments", + "label": "Purchase of Investments", + "description": "Amount of cash outflow to acquire investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireAvailableForSaleSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireMarketableSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PurchaseOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfFinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfFinancialInstrumentsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCashPaymentsToAcquireEquityOrDebtInstrumentsOfOtherEntitiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "purchase_of_held_to_maturity_investments", + "label": "Purchase of Held-to-Maturity Investments", + "description": "Amount of cash outflow through purchase of long-term held-to-maturity securities.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireHeldToMaturitySecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireHeldToMaturityInvestments", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "sale_of_plant_property_and_equipment", + "label": "Sale of Property, Plant & Equipment", + "description": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfPropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSalesOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfPropertyPlantAndEquipmentIntangibleAssetsOtherThanGoodwillInvestmentPropertyAndOtherNoncurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfIntangibleAssetsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromDisposalOfExplorationAndEvaluationAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "sale_of_productive_assets", + "label": "Sale of Productive Assets", + "description": "The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfProductiveAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfOtherAssetsInvestingActivities", + "namespace": "us-gaap", + "first_year": 2014, + "last_year": 2026 + } + ] + }, + { + "tag": "divestitures", + "label": "Divestitures", + "description": "The cash inflow associated with the amount received from the sale of a portion of the company's business, for example a segment, division, branch or other business, during the period.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromDivestitureOfBusinesses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromDivestitureOfInterestInSubsidiariesAndAffiliates", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromLosingControlOfSubsidiariesOrOtherBusinessesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "sale_of_investments", + "label": "Sale of Investments", + "description": "Amount of cash inflow from sale of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfAvailableForSaleSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfInvestments", + "namespace": "us-gaap" + }, + { + "tag": "ProceedsFromSaleAndMaturityOfMarketableSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfFinancialAssetsAtAmortisedCost", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfInterestsInAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCashReceiptsFromSalesOfEquityOrDebtInstrumentsOfOtherEntitiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsReceivedClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsReceivedFromInvestmentsAccountedForUsingEquityMethodClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "maturity_of_investments", + "label": "Maturity of Investments", + "description": "Amount of cash inflow from maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromMaturitiesPrepaymentsAndCallsOfHeldToMaturitySecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_investing_activities_net", + "label": "Other Investing Activities, net", + "description": "Amount of cash (inflow) outflow from investing activity, classified as other.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForProceedsFromOtherInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CashFlowsFromUsedInDecreaseIncreaseInShorttermDepositsAndInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "CashFlowsFromUsedInDecreaseIncreaseInRestrictedCashAndCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCashPaymentsToAcquireEquityOrDebtInstrumentsOfOtherEntitiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCashReceiptsFromSalesOfEquityOrDebtInstrumentsOfOtherEntitiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromOtherLongtermAssetsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_continuing_investing_activities", + "label": "Net Cash From Continuing Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_cash_from_investing_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_investing_activities", + "label": "Net Cash From Discontinued Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity attributable to discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_cash_from_investing_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivitiesDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_investing_activities", + "label": "Net Cash From Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_change_in_cash", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "repayment_of_debt", + "label": "Repayment of Debt", + "description": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RepaymentsOfLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfLongTermDebtAndCapitalSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfDebtAndCapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfOtherDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfBorrowingsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfSubordinatedLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "RedemptionOfPreferenceShares", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfLinesOfCredit", + "namespace": "us-gaap" + }, + { + "tag": "RepaymentsOfSecuredDebt", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "repurchase_of_preferred_equity", + "label": "Repurchase of Preferred Equity", + "description": "The cash outflow to reacquire preferred stock during the period.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForRepurchaseOfPreferredStockAndPreferenceStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsForRepurchaseOfRedeemablePreferredStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "repurchase_of_common_equity", + "label": "Repurchase of Common Equity", + "description": "The cash outflow to reacquire common stock during the period.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForRepurchaseOfCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsForRepurchaseOfEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireOrRedeemEntitysShares", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfTreasurySharesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfTreasuryShares", + "namespace": "ifrs-full" + }, + { + "tag": "CancellationOfTreasuryShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "payment_of_dividends", + "label": "Payment of Dividends", + "description": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsOfDividends", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfDividendsCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfOrdinaryDividends", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPaid", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsPaidToEquityHoldersOfParentClassifiedAsFinancingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsPaidClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidToNoncontrollingInterestsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidOrdinaryShares", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidOtherShares", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsCommonStockCash", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "issuance_of_debt", + "label": "Issuance of Debt", + "description": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromDebtNetOfIssuanceCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssuanceOfDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromBorrowingsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssuingOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfSubordinatedLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfBondsNotesAndDebentures", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromCurrentBorrowings", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "issuance_of_preferred_equity", + "label": "Issuance of Preferred Equity", + "description": "Proceeds from issuance of capital stock which provides for a specific dividend that is paid to the shareholders before any dividends to common stockholders and which takes precedence over common stockholders in the event of liquidation.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfPreferredStockAndPreferenceStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssueOfPreferenceShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "issuance_of_common_equity", + "label": "Issuance of Common Equity", + "description": "The cash inflow from the additional capital contribution to the entity.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromStockOptionsExercised", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssueOfOrdinaryShares", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfSharesOrOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSaleOrIssueOfTreasuryShares", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromExerciseOfOptions", + "namespace": "ifrs-full" + }, + { + "tag": "IssueOfEquity", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssuingShares", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromContributionsOfNoncontrollingInterests", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromExerciseOfWarrants", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "short_term_debt_net", + "label": "Short-Term Debt, net", + "description": "The net cash inflow or outflow for borrowing having initial term of repayment within one year or the normal operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromRepaymentsOfShortTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromRepaymentsOfCommercialPaper", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromRepaymentsOfShortTermDebtMaturingInMoreThanThreeMonths", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInIncreaseDecreaseInCurrentBorrowings", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "tax_withholding_share_based_compensation", + "label": "Tax Withholding for Share-Based Compensation", + "description": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DecreaseIncreaseThroughTaxOnSharebasedPaymentTransactions", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_financing_activities_net", + "label": "Other Financing Activities, net", + "description": "Amount of cash inflow (outflow) from financing activity, classified as other.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromPaymentsForOtherFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfLeaseLiabilitiesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CashOutflowForLeases", + "namespace": "ifrs-full" + }, + { + "tag": "PaymentsFromChangesInOwnershipInterestsInSubsidiaries", + "namespace": "ifrs-full" + }, + { + "tag": "PaymentsForDebtIssueCosts", + "namespace": "ifrs-full" + }, + { + "tag": "ShareIssueRelatedCost", + "namespace": "ifrs-full" + }, + { + "tag": "PaymentsOfFinanceLeaseLiabilitiesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "PaymentsOfOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughEffectOfChangesInForeignExchangeRatesLiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughFinancingCashFlowsLiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughOtherChangesLiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseThroughNewLeasesLiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfBondsNotesAndDebentures", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_continuing_financing_activities", + "label": "Net Cash From Continuing Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_cash_from_financing_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_financing_activities", + "label": "Net Cash From Discontinued Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity attributable to discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_cash_from_financing_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivitiesDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_financing_activities", + "label": "Net Cash From Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_change_in_cash", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "effect_of_exchange_rate_changes", + "label": "Effect of Exchange Rate Changes", + "description": "The effect of exchange rate changes on cash balances held in foreign currencies.", + "parent": "net_change_in_cash", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalents", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "EffectOfExchangeRateChangesOnCashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "EffectOfExchangeRateOnCash", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalentsContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalentsDiscontinuedOperations", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_cash_from_discontinued_operations", + "label": "Net Cash from Discontinued Operations", + "description": "The net change in cash and cash equivalents resulting from the cash inflows and outflows of discontinued operations.", + "parent": "net_change_in_cash", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ], + "sequence": 5 + }, + { + "tag": "other_net_changes_in_cash", + "label": "Other Net Changes in Cash", + "description": "Amount of other net changes in cash and cash equivalents not separately disclosed in the statement of cash flows.", + "parent": "net_change_in_cash", + "sequence": 6, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherCashEquivalentsAtCarryingValue", + "namespace": "us-gaap" + }, + { + "tag": "CashAndCashEquivalentsIfDifferentFromStatementOfFinancialPosition", + "namespace": "ifrs-full" + }, + { + "tag": "BankOverdraftsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "BankingArrangementsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermDepositsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermInvestmentsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "CashAndCashEquivalentsInSubsidiaryOrBusinessesAcquiredOrDisposed2013", + "namespace": "ifrs-full", + "first_year": 2013, + "last_year": 2026 + } + ] + }, + { + "tag": "net_change_in_cash", + "label": "Net Change in Cash & Equivalents", + "description": "The increase (decrease) during the reporting period in cash and cash equivalents. While for technical reasons this element has no balance attribute, the default assumption is a debit balance consistent with its label.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashAndCashEquivalentsPeriodIncreaseDecrease", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashPeriodIncreaseDecrease", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "CashAndCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect", + "namespace": "us-gaap" + }, + { + "tag": "IncreaseDecreaseInCashAndCashEquivalents", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_at_beginning_of_period", + "label": "Cash at Beginning of Period", + "description": "Cash, cash equivalents, restricted cash, and restricted cash equivalents at the beginning of the reporting period. Derived from the previous period's ending balance.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [] + }, + { + "tag": "cash_at_end_of_period", + "label": "Cash at End of Period", + "description": "Cash, cash equivalents, restricted cash, and restricted cash equivalents at the end of the reporting period.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalentsAtCarryingValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_interest_paid", + "label": "Cash Interest Paid", + "description": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.", + "parent": null, + "sequence": 4, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestPaidNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPaidClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestPaidClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_interest_received", + "label": "Cash Interest Received", + "description": "The cash inflow from interest received, classified as operating activities.", + "parent": null, + "sequence": 5, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestReceived", + "namespace": "us-gaap" + }, + { + "tag": "InterestReceivedClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestReceivedClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_income_taxes_paid", + "label": "Cash Income Taxes Paid", + "description": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeTaxesPaidNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxesPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxesPaidClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeTaxesPaidRefundClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxesPaidRefund", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxesPaidRefundClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + } + ], + "financial": [ + { + "tag": "net_income", + "label": "Consolidated Net Income / (Loss)", + "description": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", + "parent": "net_income_continuing", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_income_discontinued", + "label": "Net Income / (Loss) Discontinued Operations", + "description": "Amount after tax of income (loss) from a discontinued operation including the portion attributable to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + "parent": "net_income_continuing", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromDiscontinuedOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_income_continuing", + "label": "Net Income / (Loss) Continuing Operations", + "description": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossBeforeExtraordinaryItemsAndCumulativeEffectOfChangeInAccountingPrinciple", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "provision_for_loan_losses", + "label": "Provision For Loan Losses", + "description": "Amount of expense related to estimated loss from loan and lease transactions.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProvisionForLoanAndLeaseLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "ProvisionForCreditLosses", + "namespace": "us-gaap" + }, + { + "tag": "ProvisionForLoanLeaseAndOtherLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInAllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_expense", + "label": "Depreciation Expense", + "description": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", + "parent": "depreciation_and_amortization", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depreciation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationNonproduction", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAmortizationAndAccretionNet", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortisationExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DepreciationPropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "AdjustmentsForDepreciationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "amortization_expense", + "label": "Amortization Expense", + "description": "Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed.", + "parent": "depreciation_and_amortization", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AmortizationOfIntangibleAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Amortization", + "namespace": "us-gaap" + }, + { + "tag": "AmortisationIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForAmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_and_amortization", + "label": "Depreciation and Amortization", + "description": "The aggregate expense recognized in the current period that allocates the cost of tangible and intangible assets over their useful lives.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "OtherDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "AdjustmentsForDepreciationAndAmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "stock_based_compensation", + "label": "Stock-Based Compensation", + "description": "Amount of noncash expense for share-based payment arrangement.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ShareBasedCompensation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AllocatedShareBasedCompensationExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "ExpenseFromSharebasedPaymentTransactionsWithEmployees", + "namespace": "ifrs-full" + }, + { + "tag": "SharebasedPaymentExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForSharebasedPayments", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughSharebasedPaymentTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "StockIssuedDuringPeriodValueShareBasedCompensation", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "deferred_income_tax", + "label": "Deferred Income Tax", + "description": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxExpenseBenefit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + }, + { + "tag": "DeferredIncomeTaxesAndTaxCredits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForDeferredTaxExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_on_investments", + "label": "Gain / (Loss) on Investments", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "UnrealizedGainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquitySecuritiesFvNiGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "DebtAndEquitySecuritiesGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "GainsLossesOnFinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_on_sale_of_assets", + "label": "Gain / (Loss) on Sale of Assets", + "description": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfPropertyPlantEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets1", + "namespace": "us-gaap", + "first_year": 2013, + "last_year": 2026 + }, + { + "tag": "GainLossOnSaleOfBusiness", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "GainLossOnSaleOfOtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_loss_from_equity_method_investments", + "label": "Income / (Loss) from Equity Method Investments", + "description": "Amount of income (loss) for proportionate share of equity method investee's income (loss).", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForUndistributedProfitsOfInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAndJointVenturesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "asset_impairment_charges", + "label": "Asset Impairment Charges", + "description": "Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible assets and goodwill.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AssetImpairmentCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillImpairmentLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfLongLivedAssetsHeldForUse", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfIntangibleAssetsExcludingGoodwill", + "namespace": "us-gaap", + "first_year": 2025, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossGoodwill", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncash_adjustments_to_net_income", + "label": "Non-Cash Adjustments to Reconcile Net Income", + "description": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 12, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherNoncashIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNoncashExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesOther", + "namespace": "us-gaap" + }, + { + "tag": "OtherAdjustmentsToReconcileProfitLoss", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForProvisions", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_operating_activities", + "label": "Other Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, classified as other, in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 13, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingActivitiesCashFlowStatement", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsReceivedClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_insurance_reserves", + "label": "Change in Insurance Reserves", + "description": "The increase (decrease) in health care insurance liability balances during the period.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 14, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInHealthCareInsuranceLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInLiabilityForClaimsAndClaimsAdjustmentExpenseReserve", + "namespace": "us-gaap", + "first_year": 2015, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInUnearnedPremiums", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInInsuranceContractsLiabilityAsset", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_accounts_receivable", + "label": "Change in Accounts Receivable", + "description": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInAccountsReceivable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInReceivables", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInTradeAndOtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "DecreaseIncreaseInTradeAccountReceivable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInTradeAccountReceivable", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_nontrade_receivables", + "label": "Change in Vendor Non-trade Receivables", + "description": "Amount of increase (decrease) in receivables classified as other.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOtherReceivables", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "change_in_inventories", + "label": "Change in Inventories", + "description": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInInventories", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "DecreaseIncreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInInventories", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_accounts_payable", + "label": "Change in Accounts Payable", + "description": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInAccountsPayable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInTradeAndOtherPayables", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseInTradeAccountPayable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInTradeAccountPayable", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_other_operating_assets_and_liabilities", + "label": "Change in Other Operating Assets and Liabilities, net", + "description": "Amount of increase (decrease) in operating assets classified as other.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOtherOperatingAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInOtherOperatingLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInOtherOperatingCapitalNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInHealthCareInsuranceLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherCurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherOperatingPayables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInOtherOperatingReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInDeposits", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInReverseRepurchaseAgreementsAndCashCollateralOnSecuritiesBorrowed", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInRepurchaseAgreementsAndCashCollateralOnSecuritiesLent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "increase_decrease_in_operating_capital", + "label": "Changes in Operating Assets and Liabilities, net", + "description": "Amount of increase (decrease) in asset and (increase) decrease in liability, used in operating activity in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 15, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOperatingCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_continuing_operating_activities", + "label": "Net Cash From Continuing Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_cash_from_operating_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_operating_activities", + "label": "Net Cash From Discontinued Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity attributable to discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_cash_from_operating_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_operating_activities", + "label": "Net Cash From Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_change_in_cash", + "sequence": 1, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CashFlowsFromUsedInOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "purchase_of_plant_property_and_equipment", + "label": "Purchase of Property, Leasehold Improvements and Equipment", + "description": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquirePropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireProductiveAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PurchaseOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "PurchaseOfPropertyPlantAndEquipmentIntangibleAssetsOtherThanGoodwillInvestmentPropertyAndOtherNoncurrentAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "acquisitions", + "label": "Acquisitions", + "description": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireBusinessesNetOfCashAcquired", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireBusinessesGross", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AcquisitionsThroughBusinessCombinationsIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "CashAdvancesAndLoansMadeToOtherPartiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfIntangibleAssetsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "purchase_of_investments", + "label": "Purchase of Investment Securities", + "description": "Amount of cash outflow to acquire investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireAvailableForSaleSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireMarketableSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PurchaseOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfFinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "purchase_of_held_to_maturity_investments", + "label": "Purchase of Held-to-Maturity Investments", + "description": "Amount of cash outflow through purchase of long-term held-to-maturity securities.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireHeldToMaturitySecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireHeldToMaturityInvestments", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "sale_of_plant_property_and_equipment", + "label": "Sale of Property, Leasehold Improvements and Equipment", + "description": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfPropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSalesOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfPropertyPlantAndEquipmentIntangibleAssetsOtherThanGoodwillInvestmentPropertyAndOtherNoncurrentAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "sale_of_productive_assets", + "label": "Sale of Productive Assets", + "description": "The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfProductiveAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfOtherAssetsInvestingActivities", + "namespace": "us-gaap", + "first_year": 2014, + "last_year": 2026 + } + ] + }, + { + "tag": "divestitures", + "label": "Divestitures", + "description": "The cash inflow associated with the amount received from the sale of a portion of the company's business, for example a segment, division, branch or other business, during the period.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromDivestitureOfBusinesses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromDivestitureOfInterestInSubsidiariesAndAffiliates", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "sale_of_investments", + "label": "Sale of Investments", + "description": "Amount of cash inflow from sale of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfAvailableForSaleSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfInvestments", + "namespace": "us-gaap" + }, + { + "tag": "ProceedsFromSaleAndMaturityOfMarketableSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfFinancialAssetsAtAmortisedCost", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "maturity_of_investments", + "label": "Maturity of Investment Securities", + "description": "Amount of cash inflow from maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromMaturitiesPrepaymentsAndCallsOfHeldToMaturitySecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_increase_in_fed_funds_sold", + "label": "Net Increase in Fed Funds Sold", + "description": "The net cash inflow or outflow from the fund lent to other financial institution arising from the excess in reserve deposited at Federal Reserve Bank to meet legal requirement. This borrowing is usually contracted on an overnight basis at an agreed rate of interest.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInFederalFundsSold", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInFederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "loans_held_for_sale_net", + "label": "Loans Held for Sale, Net", + "description": "The net cash outflow or inflow for the increase (decrease) in the beginning and end of period of loan and lease balances which are not originated or purchased specifically for resale. Includes cash payments and proceeds associated with (a) loans held-for-investment, (b) leases held-for-investment, and (c) both.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 11, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForProceedsFromLoansAndLeases", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_investing_activities_net", + "label": "Other Investing Activities, net", + "description": "Amount of cash (inflow) outflow from investing activity, classified as other.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 12, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForProceedsFromOtherInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CashFlowsFromUsedInDecreaseIncreaseInShorttermDepositsAndInvestments", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_continuing_investing_activities", + "label": "Net Cash From Continuing Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_cash_from_investing_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_investing_activities", + "label": "Net Cash From Discontinued Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity attributable to discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_cash_from_investing_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_investing_activities", + "label": "Net Cash From Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_change_in_cash", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "repayment_of_debt", + "label": "Repayment of Debt", + "description": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RepaymentsOfLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfLongTermDebtAndCapitalSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfDebtAndCapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfOtherDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfBorrowingsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfSubordinatedLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "RedemptionOfPreferenceShares", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfLinesOfCredit", + "namespace": "us-gaap" + }, + { + "tag": "RepaymentsOfSecuredDebt", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "repurchase_of_preferred_equity", + "label": "Repurchase of Preferred Equity", + "description": "The cash outflow to reacquire preferred stock during the period.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForRepurchaseOfPreferredStockAndPreferenceStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsForRepurchaseOfRedeemablePreferredStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "repurchase_of_common_equity", + "label": "Repurchase of Common Equity", + "description": "The cash outflow to reacquire common stock during the period.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForRepurchaseOfCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsForRepurchaseOfEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireOrRedeemEntitysShares", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfTreasurySharesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "payment_of_dividends", + "label": "Payment of Dividends", + "description": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsOfDividends", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfDividendsCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfOrdinaryDividends", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPaid", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsPaidToEquityHoldersOfParentClassifiedAsFinancingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsPaidClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidToNoncontrollingInterestsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidOrdinaryShares", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsCommonStockCash", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "issuance_of_debt", + "label": "Issuance of Debt", + "description": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromDebtNetOfIssuanceCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssuanceOfDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromBorrowingsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssuingOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfSubordinatedLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "issuance_of_preferred_equity", + "label": "Issuance of Preferred Equity", + "description": "Proceeds from issuance of capital stock which provides for a specific dividend that is paid to the shareholders before any dividends to common stockholders and which takes precedence over common stockholders in the event of liquidation.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfPreferredStockAndPreferenceStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssueOfPreferenceShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "issuance_of_common_equity", + "label": "Issuance of Common Equity", + "description": "The cash inflow from the additional capital contribution to the entity.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromStockOptionsExercised", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssueOfOrdinaryShares", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfSharesOrOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSaleOrIssueOfTreasuryShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_change_in_deposits", + "label": "Net Change in Deposits", + "description": "The net cash inflow or outflow for the increase (decrease) in the beginning and end of period deposits balances.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInDeposits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "short_term_debt_net", + "label": "Short-Term Debt, net", + "description": "The net cash inflow or outflow for borrowing having initial term of repayment within one year or the normal operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromRepaymentsOfShortTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromRepaymentsOfCommercialPaper", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromRepaymentsOfShortTermDebtMaturingInMoreThanThreeMonths", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "tax_withholding_share_based_compensation", + "label": "Tax Withholding for Share-Based Compensation", + "description": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_financing_activities_net", + "label": "Other Financing Activities, Net", + "description": "Amount of cash inflow (outflow) from financing activity, classified as other.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromPaymentsForOtherFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfLeaseLiabilitiesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_continuing_financing_activities", + "label": "Net Cash From Continuing Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_cash_from_financing_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_financing_activities", + "label": "Net Cash From Discontinued Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity attributable to discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_cash_from_financing_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_financing_activities", + "label": "Net Cash From Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_change_in_cash", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "effect_of_exchange_rate_changes", + "label": "Effect of Exchange Rate Changes", + "description": "The effect of exchange rate changes on cash balances held in foreign currencies.", + "parent": "net_change_in_cash", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalents", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "EffectOfExchangeRateChangesOnCashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "EffectOfExchangeRateOnCash", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalentsContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalentsDiscontinuedOperations", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_cash_from_discontinued_operations", + "label": "Net Cash from Discontinued Operations", + "description": "The net change in cash and cash equivalents resulting from the cash inflows and outflows of discontinued operations.", + "parent": "net_change_in_cash", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ], + "sequence": 5 + }, + { + "tag": "other_net_changes_in_cash", + "label": "Other Net Changes in Cash", + "description": "Amount of other net changes in cash and cash equivalents not separately disclosed in the statement of cash flows.", + "parent": "net_change_in_cash", + "sequence": 6, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherCashEquivalentsAtCarryingValue", + "namespace": "us-gaap" + }, + { + "tag": "CashAndCashEquivalentsInSubsidiaryOrBusinessesAcquiredOrDisposed2013", + "namespace": "ifrs-full", + "first_year": 2013, + "last_year": 2026 + } + ] + }, + { + "tag": "net_change_in_cash", + "label": "Net Change in Cash & Equivalents", + "description": "The increase (decrease) during the reporting period in cash and cash equivalents. While for technical reasons this element has no balance attribute, the default assumption is a debit balance consistent with its label.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashAndCashEquivalentsPeriodIncreaseDecrease", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashPeriodIncreaseDecrease", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "CashAndCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect", + "namespace": "us-gaap" + }, + { + "tag": "IncreaseDecreaseInCashAndCashEquivalents", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_at_beginning_of_period", + "label": "Cash at Beginning of Period", + "description": "Cash, cash equivalents, restricted cash, and restricted cash equivalents at the beginning of the reporting period. Derived from the previous period's ending balance.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [] + }, + { + "tag": "cash_at_end_of_period", + "label": "Cash at End of Period", + "description": "Cash, cash equivalents, restricted cash, and restricted cash equivalents at the end of the reporting period.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalentsAtCarryingValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_interest_paid", + "label": "Cash Interest Paid", + "description": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.", + "parent": null, + "sequence": 4, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestPaidNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPaidClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_interest_received", + "label": "Cash Interest Received", + "description": "The cash inflow from interest received, classified as operating activities.", + "parent": null, + "sequence": 5, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestReceived", + "namespace": "us-gaap" + }, + { + "tag": "InterestReceivedClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_income_taxes_paid", + "label": "Cash Income Taxes Paid", + "description": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeTaxesPaidNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxesPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxesPaidClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeTaxesPaidRefundClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + } + ] + } + ], + "diversified": [ + { + "tag": "net_income", + "label": "Consolidated Net Income / (Loss)", + "description": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", + "parent": "net_income_continuing", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_income_discontinued", + "label": "Net Income / (Loss) Discontinued Operations", + "description": "Amount after tax of income (loss) from a discontinued operation including the portion attributable to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + "parent": "net_income_continuing", + "sequence": 2, + "factor": "-", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromDiscontinuedOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_income_continuing", + "label": "Net Income / (Loss) Continuing Operations", + "description": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossBeforeExtraordinaryItemsAndCumulativeEffectOfChangeInAccountingPrinciple", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "depreciation_expense", + "label": "Depreciation Expense", + "description": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", + "parent": "depreciation_and_amortization", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depreciation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationNonproduction", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAmortizationAndAccretionNet", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortisationExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DepreciationPropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "AdjustmentsForDepreciationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DepreciationRightofuseAssets", + "namespace": "ifrs-full" + }, + { + "tag": "DepreciationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AdditionsToRightofuseAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "amortization_expense", + "label": "Amortization Expense", + "description": "Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed.", + "parent": "depreciation_and_amortization", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AmortizationOfIntangibleAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Amortization", + "namespace": "us-gaap" + }, + { + "tag": "AmortisationIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForAmortisationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AmortisationAssetsRecognisedFromCostsIncurredToObtainOrFulfilContractsWithCustomers", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_and_amortization", + "label": "Depreciation and Amortization", + "description": "The aggregate expense recognized in the current period that allocates the cost of tangible and intangible assets over their useful lives.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "OtherDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "AdjustmentsForDepreciationAndAmortisationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DepreciationPropertyPlantAndEquipmentIncludingRightofuseAssets", + "namespace": "ifrs-full" + }, + { + "tag": "AmortisationAssetsRecognisedFromCostsIncurredToObtainOrFulfilContractsWithCustomers", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "stock_based_compensation", + "label": "Stock-Based Compensation", + "description": "Amount of noncash expense for share-based payment arrangement.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ShareBasedCompensation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AllocatedShareBasedCompensationExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "ExpenseFromSharebasedPaymentTransactionsWithEmployees", + "namespace": "ifrs-full" + }, + { + "tag": "SharebasedPaymentExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForSharebasedPayments", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseFromEquitysettledSharebasedPaymentTransactionsInWhichGoodsOrServicesReceivedDidNotQualifyForRecognitionAsAssets", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughSharebasedPaymentTransactions", + "namespace": "ifrs-full" + }, + { + "tag": "StockIssuedDuringPeriodValueShareBasedCompensation", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "deferred_income_tax", + "label": "Deferred Income Tax", + "description": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxExpenseBenefit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + }, + { + "tag": "DeferredIncomeTaxesAndTaxCredits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForDeferredTaxExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncomeTaxExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_on_investments", + "label": "Gain / (Loss) on Investments", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "UnrealizedGainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquitySecuritiesFvNiGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "DebtAndEquitySecuritiesGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "GainsLossesOnFinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForFairValueGainsLosses", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainsLossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_on_sale_of_assets", + "label": "Gain / (Loss) on Sale of Assets", + "description": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfPropertyPlantEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets1", + "namespace": "us-gaap", + "first_year": 2013, + "last_year": 2026 + }, + { + "tag": "GainLossOnSaleOfBusiness", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "GainLossOnSaleOfOtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainLossOnDisposalsPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "GainsOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_loss_from_equity_method_investments", + "label": "Income / (Loss) from Equity Method Investments", + "description": "Amount of income (loss) for proportionate share of equity method investee's income (loss).", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForUndistributedProfitsOfInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAndJointVenturesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForUndistributedProfitsOfAssociates", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "asset_impairment_charges", + "label": "Asset Impairment Charges", + "description": "Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible assets and goodwill.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AssetImpairmentCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillImpairmentLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfLongLivedAssetsHeldForUse", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfIntangibleAssetsExcludingGoodwill", + "namespace": "us-gaap", + "first_year": 2025, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossInvestmentProperty", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossAssetsRecognisedFromCostsIncurredToObtainOrFulfilContractsWithCustomers", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncash_adjustments_to_net_income", + "label": "Non-Cash Adjustments To Reconcile Net Income", + "description": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 11, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherNoncashIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNoncashExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesOther", + "namespace": "us-gaap" + }, + { + "tag": "OtherAdjustmentsToReconcileProfitLoss", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForProvisions", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForFinanceCosts", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForFinanceIncome", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForUnrealisedForeignExchangeLossesGains", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForInterestExpense", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForInterestIncome", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForFinanceIncomeCost", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainsLossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_operating_activities", + "label": "Other Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, classified as other, in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 12, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingActivitiesCashFlowStatement", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsReceivedClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherAdjustmentsForNoncashItems", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInContractLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_accounts_receivable", + "label": "Change in Accounts Receivable", + "description": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInAccountsReceivable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInReceivables", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInTradeAndOtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "DecreaseIncreaseInTradeAccountReceivable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInTradeAccountReceivable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInTradeAndOtherReceivables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_nontrade_receivables", + "label": "Change in Vendor Non-trade Receivables", + "description": "Amount of increase (decrease) in receivables classified as other.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOtherReceivables", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "change_in_inventories", + "label": "Change in Inventories", + "description": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInInventories", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "DecreaseIncreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInInventories", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_accounts_payable", + "label": "Change in Accounts Payable", + "description": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInAccountsPayable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInTradeAndOtherPayables", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseInTradeAccountPayable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInTradeAccountPayable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInTradeAndOtherPayables", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_other_operating_assets_and_liabilities", + "label": "Change in Other Operating Assets and Liabilities, net", + "description": "Amount of increase (decrease) in operating assets classified as other.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOtherOperatingAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInOtherOperatingLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInOtherOperatingCapitalNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInHealthCareInsuranceLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherCurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherOperatingPayables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInOtherOperatingReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInDeposits", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInReverseRepurchaseAgreementsAndCashCollateralOnSecuritiesBorrowed", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInRepurchaseAgreementsAndCashCollateralOnSecuritiesLent", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInOtherCurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInOtherAssets", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInDeferredIncome", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInDeferredIncomeIncludingContractLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInEmployeeBenefitLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherOperatingReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseInWorkingCapital", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "increase_decrease_in_operating_capital", + "label": "Changes in Operating Assets and Liabilities, net", + "description": "Amount of increase (decrease) in asset and (increase) decrease in liability, used in operating activity in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 13, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOperatingCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_continuing_operating_activities", + "label": "Net Cash From Continuing Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_cash_from_operating_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_operating_activities", + "label": "Net Cash From Discontinued Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity attributable to discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_cash_from_operating_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivitiesDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_operating_activities", + "label": "Net Cash From Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_change_in_cash", + "sequence": 1, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CashFlowsFromUsedInOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "purchase_of_plant_property_and_equipment", + "label": "Purchase of Property, Plant & Equipment", + "description": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquirePropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireProductiveAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PurchaseOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "PurchaseOfPropertyPlantAndEquipmentIntangibleAssetsOtherThanGoodwillInvestmentPropertyAndOtherNoncurrentAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "acquisitions", + "label": "Acquisitions", + "description": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireBusinessesNetOfCashAcquired", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireBusinessesGross", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AcquisitionsThroughBusinessCombinationsIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "CashAdvancesAndLoansMadeToOtherPartiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfIntangibleAssetsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CashFlowsUsedInObtainingControlOfSubsidiariesOrOtherBusinessesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "purchase_of_investments", + "label": "Purchase of Investments", + "description": "Amount of cash outflow to acquire investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireAvailableForSaleSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireMarketableSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PurchaseOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfFinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfFinancialInstrumentsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCashPaymentsToAcquireEquityOrDebtInstrumentsOfOtherEntitiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "purchase_of_held_to_maturity_investments", + "label": "Purchase of Held-to-Maturity Investments", + "description": "Amount of cash outflow through purchase of long-term held-to-maturity securities.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireHeldToMaturitySecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireHeldToMaturityInvestments", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "sale_of_plant_property_and_equipment", + "label": "Sale of Property, Plant & Equipment", + "description": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfPropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSalesOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfPropertyPlantAndEquipmentIntangibleAssetsOtherThanGoodwillInvestmentPropertyAndOtherNoncurrentAssets", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfIntangibleAssetsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromDisposalOfExplorationAndEvaluationAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "sale_of_productive_assets", + "label": "Sale of Productive Assets", + "description": "The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfProductiveAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfOtherAssetsInvestingActivities", + "namespace": "us-gaap", + "first_year": 2014, + "last_year": 2026 + } + ] + }, + { + "tag": "divestitures", + "label": "Divestitures", + "description": "The cash inflow associated with the amount received from the sale of a portion of the company's business, for example a segment, division, branch or other business, during the period.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromDivestitureOfBusinesses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromDivestitureOfInterestInSubsidiariesAndAffiliates", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromLosingControlOfSubsidiariesOrOtherBusinessesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "sale_of_investments", + "label": "Sale of Investments", + "description": "Amount of cash inflow from sale of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfAvailableForSaleSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfInvestments", + "namespace": "us-gaap" + }, + { + "tag": "ProceedsFromSaleAndMaturityOfMarketableSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfFinancialAssetsAtAmortisedCost", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfInterestsInAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "OtherCashReceiptsFromSalesOfEquityOrDebtInstrumentsOfOtherEntitiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsReceivedClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsReceivedFromInvestmentsAccountedForUsingEquityMethodClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "maturity_of_investments", + "label": "Maturity of Investments", + "description": "Amount of cash inflow from maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromMaturitiesPrepaymentsAndCallsOfHeldToMaturitySecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_investing_activities_net", + "label": "Other Investing Activities, net", + "description": "Amount of cash (inflow) outflow from investing activity, classified as other.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForProceedsFromOtherInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CashFlowsFromUsedInDecreaseIncreaseInShorttermDepositsAndInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromOtherLongtermAssetsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_continuing_investing_activities", + "label": "Net Cash From Continuing Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_cash_from_investing_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_investing_activities", + "label": "Net Cash From Discontinued Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity attributable to discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_cash_from_investing_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivitiesDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_investing_activities", + "label": "Net Cash From Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_change_in_cash", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "repayment_of_debt", + "label": "Repayment of Debt", + "description": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RepaymentsOfLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfLongTermDebtAndCapitalSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfDebtAndCapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfOtherDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfBorrowingsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfSubordinatedLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "RedemptionOfPreferenceShares", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfNoncurrentBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfLinesOfCredit", + "namespace": "us-gaap" + }, + { + "tag": "RepaymentsOfSecuredDebt", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "repurchase_of_preferred_equity", + "label": "Repurchase of Preferred Equity", + "description": "The cash outflow to reacquire preferred stock during the period.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForRepurchaseOfPreferredStockAndPreferenceStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsForRepurchaseOfRedeemablePreferredStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "repurchase_of_common_equity", + "label": "Repurchase of Common Equity", + "description": "The cash outflow to reacquire common stock during the period.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForRepurchaseOfCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsForRepurchaseOfEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireOrRedeemEntitysShares", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfTreasurySharesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CancellationOfTreasuryShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "payment_of_dividends", + "label": "Payment of Dividends", + "description": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsOfDividends", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfDividendsCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfOrdinaryDividends", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPaid", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsPaidToEquityHoldersOfParentClassifiedAsFinancingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsPaidClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidToNoncontrollingInterestsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidOrdinaryShares", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidOtherShares", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsCommonStockCash", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "issuance_of_debt", + "label": "Issuance of Debt", + "description": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromDebtNetOfIssuanceCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssuanceOfDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromBorrowingsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssuingOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfSubordinatedLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfBondsNotesAndDebentures", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromCurrentBorrowings", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "issuance_of_preferred_equity", + "label": "Issuance of Preferred Equity", + "description": "Proceeds from issuance of capital stock which provides for a specific dividend that is paid to the shareholders before any dividends to common stockholders and which takes precedence over common stockholders in the event of liquidation.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfPreferredStockAndPreferenceStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssueOfPreferenceShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "issuance_of_common_equity", + "label": "Issuance of Common Equity", + "description": "The cash inflow from the additional capital contribution to the entity.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromStockOptionsExercised", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssueOfOrdinaryShares", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfSharesOrOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSaleOrIssueOfTreasuryShares", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssuingShares", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromContributionsOfNoncontrollingInterests", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromExerciseOfWarrants", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "short_term_debt_net", + "label": "Short-Term Debt, net", + "description": "The net cash inflow or outflow for borrowing having initial term of repayment within one year or the normal operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromRepaymentsOfShortTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromRepaymentsOfCommercialPaper", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromRepaymentsOfShortTermDebtMaturingInMoreThanThreeMonths", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInIncreaseDecreaseInCurrentBorrowings", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "tax_withholding_share_based_compensation", + "label": "Tax Withholding for Share-Based Compensation", + "description": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DecreaseIncreaseThroughTaxOnSharebasedPaymentTransactions", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_financing_activities_net", + "label": "Other Financing Activities, net", + "description": "Amount of cash inflow (outflow) from financing activity, classified as other.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromPaymentsForOtherFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfLeaseLiabilitiesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CashOutflowForLeases", + "namespace": "ifrs-full" + }, + { + "tag": "PaymentsFromChangesInOwnershipInterestsInSubsidiaries", + "namespace": "ifrs-full" + }, + { + "tag": "PaymentsForDebtIssueCosts", + "namespace": "ifrs-full" + }, + { + "tag": "ShareIssueRelatedCost", + "namespace": "ifrs-full" + }, + { + "tag": "PaymentsOfFinanceLeaseLiabilitiesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "PaymentsOfOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughEffectOfChangesInForeignExchangeRatesLiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughFinancingCashFlowsLiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseThroughOtherChangesLiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseThroughNewLeasesLiabilitiesArisingFromFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfBondsNotesAndDebentures", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_continuing_financing_activities", + "label": "Net Cash From Continuing Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_cash_from_financing_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_financing_activities", + "label": "Net Cash From Discontinued Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity attributable to discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_cash_from_financing_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivitiesDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_financing_activities", + "label": "Net Cash From Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_change_in_cash", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "effect_of_exchange_rate_changes", + "label": "Effect of Exchange Rate Changes", + "description": "The effect of exchange rate changes on cash balances held in foreign currencies.", + "parent": "net_change_in_cash", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalents", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "EffectOfExchangeRateChangesOnCashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "EffectOfExchangeRateOnCash", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalentsContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalentsDiscontinuedOperations", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_cash_from_discontinued_operations", + "label": "Net Cash from Discontinued Operations", + "description": "The net change in cash and cash equivalents resulting from the cash inflows and outflows of discontinued operations.", + "parent": "net_change_in_cash", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ], + "sequence": 5 + }, + { + "tag": "other_net_changes_in_cash", + "label": "Other Net Changes in Cash", + "description": "Amount of other net changes in cash and cash equivalents not separately disclosed in the statement of cash flows.", + "parent": "net_change_in_cash", + "sequence": 6, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherCashEquivalentsAtCarryingValue", + "namespace": "us-gaap" + }, + { + "tag": "CashAndCashEquivalentsIfDifferentFromStatementOfFinancialPosition", + "namespace": "ifrs-full" + }, + { + "tag": "BankOverdraftsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "BankingArrangementsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermDepositsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "ShorttermInvestmentsClassifiedAsCashEquivalents", + "namespace": "ifrs-full" + }, + { + "tag": "CashAndCashEquivalentsInSubsidiaryOrBusinessesAcquiredOrDisposed2013", + "namespace": "ifrs-full", + "first_year": 2013, + "last_year": 2026 + } + ] + }, + { + "tag": "net_change_in_cash", + "label": "Net Change in Cash & Equivalents", + "description": "The increase (decrease) during the reporting period in cash and cash equivalents. While for technical reasons this element has no balance attribute, the default assumption is a debit balance consistent with its label.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashAndCashEquivalentsPeriodIncreaseDecrease", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashPeriodIncreaseDecrease", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "CashAndCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect", + "namespace": "us-gaap" + }, + { + "tag": "IncreaseDecreaseInCashAndCashEquivalents", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_at_beginning_of_period", + "label": "Cash at Beginning of Period", + "description": "Cash, cash equivalents, restricted cash, and restricted cash equivalents at the beginning of the reporting period. Derived from the previous period's ending balance.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [] + }, + { + "tag": "cash_at_end_of_period", + "label": "Cash at End of Period", + "description": "Cash, cash equivalents, restricted cash, and restricted cash equivalents at the end of the reporting period.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalentsAtCarryingValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_interest_paid", + "label": "Cash Interest Paid", + "description": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.", + "parent": null, + "sequence": 4, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestPaidNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPaidClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestPaidClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_interest_received", + "label": "Cash Interest Received", + "description": "The cash inflow from interest received, classified as operating activities.", + "parent": null, + "sequence": 5, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestReceived", + "namespace": "us-gaap" + }, + { + "tag": "InterestReceivedClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestReceivedClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_income_taxes_paid", + "label": "Cash Income Taxes Paid", + "description": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeTaxesPaidNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxesPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxesPaidClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeTaxesPaidRefundClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxesPaidRefund", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxesPaidRefundClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + } + ], + "insurance": [ + { + "tag": "net_income", + "label": "Consolidated Net Income / (Loss)", + "description": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", + "parent": "net_income_continuing", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_income_discontinued", + "label": "Net Income / (Loss) Discontinued Operations", + "description": "Amount after tax of income (loss) from a discontinued operation including the portion attributable to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + "parent": "net_income_continuing", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromDiscontinuedOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_income_continuing", + "label": "Net Income / (Loss) Continuing Operations", + "description": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossBeforeExtraordinaryItemsAndCumulativeEffectOfChangeInAccountingPrinciple", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "provision_for_loan_losses", + "label": "Provision For Loan Losses", + "description": "Amount of expense related to estimated loss from loan and lease transactions.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProvisionForLoanAndLeaseLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "ProvisionForCreditLosses", + "namespace": "us-gaap" + }, + { + "tag": "ProvisionForLoanLeaseAndOtherLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "depreciation_expense", + "label": "Depreciation Expense", + "description": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", + "parent": "depreciation_and_amortization", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depreciation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationNonproduction", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAmortizationAndAccretionNet", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortisationExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DepreciationPropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "AdjustmentsForDepreciationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "amortization_expense", + "label": "Amortization Expense", + "description": "Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed.", + "parent": "depreciation_and_amortization", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AmortizationOfIntangibleAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Amortization", + "namespace": "us-gaap" + }, + { + "tag": "AmortisationIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForAmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_and_amortization", + "label": "Depreciation and Amortization", + "description": "The aggregate expense recognized in the current period that allocates the cost of tangible and intangible assets over their useful lives.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "OtherDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "AdjustmentsForDepreciationAndAmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "stock_based_compensation", + "label": "Stock-Based Compensation", + "description": "Amount of noncash expense for share-based payment arrangement.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ShareBasedCompensation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AllocatedShareBasedCompensationExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2011 + }, + { + "tag": "ExpenseFromSharebasedPaymentTransactionsWithEmployees", + "namespace": "ifrs-full" + }, + { + "tag": "SharebasedPaymentExpense", + "namespace": "ifrs-full" + }, + { + "tag": "StockIssuedDuringPeriodValueShareBasedCompensation", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "deferred_income_tax", + "label": "Deferred Income Tax", + "description": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxExpenseBenefit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + }, + { + "tag": "DeferredIncomeTaxesAndTaxCredits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForDeferredTaxExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_on_investments", + "label": "Gain / (Loss) on Investments", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "UnrealizedGainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "EquitySecuritiesFvNiGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "DebtAndEquitySecuritiesGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "GainsLossesOnFinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_on_sale_of_assets", + "label": "Gain / (Loss) on Sale of Assets", + "description": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 9, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfPropertyPlantEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets1", + "namespace": "us-gaap", + "first_year": 2013, + "last_year": 2026 + }, + { + "tag": "GainLossOnSaleOfBusiness", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "GainLossOnSaleOfOtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_loss_from_equity_method_investments", + "label": "Income / (Loss) from Equity Method Investments", + "description": "Amount of income (loss) for proportionate share of equity method investee's income (loss).", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForUndistributedProfitsOfInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAndJointVenturesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "asset_impairment_charges", + "label": "Asset Impairment Charges", + "description": "Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible assets and goodwill.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AssetImpairmentCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillImpairmentLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfLongLivedAssetsHeldForUse", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfIntangibleAssetsExcludingGoodwill", + "namespace": "us-gaap", + "first_year": 2025, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossGoodwill", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "noncash_adjustments_to_net_income", + "label": "Non-Cash Adjustments to Reconcile Net Income", + "description": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 12, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherNoncashIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNoncashExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesOther", + "namespace": "us-gaap" + }, + { + "tag": "OtherAdjustmentsToReconcileProfitLoss", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForProvisions", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_operating_activities", + "label": "Other Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, classified as other, in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 13, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingActivitiesCashFlowStatement", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsReceivedClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_insurance_reserves", + "label": "Change in Insurance Reserves", + "description": "The increase (decrease) in health care insurance liability balances during the period.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 14, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInHealthCareInsuranceLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInLiabilityForClaimsAndClaimsAdjustmentExpenseReserve", + "namespace": "us-gaap", + "first_year": 2015, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInUnearnedPremiums", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInInsuranceContractsLiabilityAsset", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_accounts_receivable", + "label": "Change in Accounts Receivable", + "description": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInAccountsReceivable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInReceivables", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInTradeAndOtherReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "DecreaseIncreaseInTradeAccountReceivable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInTradeAccountReceivable", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_nontrade_receivables", + "label": "Change in Vendor Non-trade Receivables", + "description": "Amount of increase (decrease) in receivables classified as other.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOtherReceivables", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "change_in_inventories", + "label": "Change in Inventories", + "description": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInInventories", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "DecreaseIncreaseInInventories", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInInventories", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_accounts_payable", + "label": "Change in Accounts Payable", + "description": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInAccountsPayable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInTradeAndOtherPayables", + "namespace": "ifrs-full" + }, + { + "tag": "IncreaseDecreaseInTradeAccountPayable", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInTradeAccountPayable", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "change_in_other_operating_assets_and_liabilities", + "label": "Change in Other Operating Assets and Liabilities, net", + "description": "Amount of increase (decrease) in operating assets classified as other.", + "parent": "increase_decrease_in_operating_capital", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOtherOperatingAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInOtherOperatingLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInOtherOperatingCapitalNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInHealthCareInsuranceLiabilities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherCurrentLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInOtherOperatingPayables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInOtherOperatingReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInDeposits", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDecreaseIncreaseInReverseRepurchaseAgreementsAndCashCollateralOnSecuritiesBorrowed", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForIncreaseDecreaseInRepurchaseAgreementsAndCashCollateralOnSecuritiesLent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "increase_decrease_in_operating_capital", + "label": "Changes in Operating Assets and Liabilities, net", + "description": "Amount of increase (decrease) in asset and (increase) decrease in liability, used in operating activity in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied.", + "parent": "net_cash_from_continuing_operating_activities", + "sequence": 15, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInOperatingCapital", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_continuing_operating_activities", + "label": "Net Cash From Continuing Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_cash_from_operating_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_operating_activities", + "label": "Net Cash From Discontinued Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity attributable to discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_cash_from_operating_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_operating_activities", + "label": "Net Cash From Operating Activities", + "description": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.", + "parent": "net_change_in_cash", + "sequence": 1, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "CashFlowsFromUsedInOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "purchase_of_plant_property_and_equipment", + "label": "Purchase of Property, Leasehold Improvements and Equipment", + "description": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquirePropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireProductiveAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PurchaseOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "PurchaseOfPropertyPlantAndEquipmentIntangibleAssetsOtherThanGoodwillInvestmentPropertyAndOtherNoncurrentAssets", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "acquisitions", + "label": "Acquisitions", + "description": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireBusinessesNetOfCashAcquired", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireBusinessesGross", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AcquisitionsThroughBusinessCombinationsIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "CashAdvancesAndLoansMadeToOtherPartiesClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfIntangibleAssetsClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "purchase_of_investments", + "label": "Purchase of Investment Securities", + "description": "Amount of cash outflow to acquire investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireAvailableForSaleSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireMarketableSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PurchaseOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfFinancialAssetsAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "purchase_of_held_to_maturity_investments", + "label": "Purchase of Held-to-Maturity Investments", + "description": "Amount of cash outflow through purchase of long-term held-to-maturity securities.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsToAcquireHeldToMaturitySecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireHeldToMaturityInvestments", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "sale_of_plant_property_and_equipment", + "label": "Sale of Property, Leasehold Improvements and Equipment", + "description": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfPropertyPlantAndEquipment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSalesOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfPropertyPlantAndEquipmentIntangibleAssetsOtherThanGoodwillInvestmentPropertyAndOtherNoncurrentAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "sale_of_productive_assets", + "label": "Sale of Productive Assets", + "description": "The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfProductiveAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfOtherAssetsInvestingActivities", + "namespace": "us-gaap", + "first_year": 2014, + "last_year": 2026 + } + ] + }, + { + "tag": "divestitures", + "label": "Divestitures", + "description": "The cash inflow associated with the amount received from the sale of a portion of the company's business, for example a segment, division, branch or other business, during the period.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromDivestitureOfBusinesses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromDivestitureOfInterestInSubsidiariesAndAffiliates", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "sale_of_investments", + "label": "Sale of Investments", + "description": "Amount of cash inflow from sale of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromSaleOfAvailableForSaleSecuritiesDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfInvestments", + "namespace": "us-gaap" + }, + { + "tag": "ProceedsFromSaleAndMaturityOfMarketableSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleOfInvestmentsOtherThanInvestmentsAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSalesOfFinancialAssetsAtAmortisedCost", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "maturity_of_investments", + "label": "Maturity of Investment Securities", + "description": "Amount of cash inflow from maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromMaturitiesPrepaymentsAndCallsOfHeldToMaturitySecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_increase_in_fed_funds_sold", + "label": "Net Increase in Fed Funds Sold", + "description": "The net cash inflow or outflow from the fund lent to other financial institution arising from the excess in reserve deposited at Federal Reserve Bank to meet legal requirement. This borrowing is usually contracted on an overnight basis at an agreed rate of interest.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInFederalFundsSold", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInFederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchaseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "loans_held_for_sale_net", + "label": "Loans Held for Sale, Net", + "description": "The net cash outflow or inflow for the increase (decrease) in the beginning and end of period of loan and lease balances which are not originated or purchased specifically for resale. Includes cash payments and proceeds associated with (a) loans held-for-investment, (b) leases held-for-investment, and (c) both.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 11, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForProceedsFromLoansAndLeases", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_investing_activities_net", + "label": "Other Investing Activities, net", + "description": "Amount of cash (inflow) outflow from investing activity, classified as other.", + "parent": "net_cash_from_continuing_investing_activities", + "sequence": 12, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForProceedsFromOtherInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsInvestingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "CashFlowsFromUsedInDecreaseIncreaseInShorttermDepositsAndInvestments", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_continuing_investing_activities", + "label": "Net Cash From Continuing Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_cash_from_investing_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_investing_activities", + "label": "Net Cash From Discontinued Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity attributable to discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_cash_from_investing_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_investing_activities", + "label": "Net Cash From Investing Activities", + "description": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.", + "parent": "net_change_in_cash", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInInvestingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "repayment_of_debt", + "label": "Repayment of Debt", + "description": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RepaymentsOfLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfLongTermDebtAndCapitalSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfDebtAndCapitalLeaseObligations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfOtherDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RepaymentsOfBorrowingsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfSubordinatedLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "RedemptionOfPreferenceShares", + "namespace": "ifrs-full" + }, + { + "tag": "RepaymentsOfLinesOfCredit", + "namespace": "us-gaap" + }, + { + "tag": "RepaymentsOfSecuredDebt", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "repurchase_of_preferred_equity", + "label": "Repurchase of Preferred Equity", + "description": "The cash outflow to reacquire preferred stock during the period.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForRepurchaseOfPreferredStockAndPreferenceStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsForRepurchaseOfRedeemablePreferredStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "repurchase_of_common_equity", + "label": "Repurchase of Common Equity", + "description": "The cash outflow to reacquire common stock during the period.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsForRepurchaseOfCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsForRepurchaseOfEquity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsToAcquireOrRedeemEntitysShares", + "namespace": "ifrs-full" + }, + { + "tag": "PurchaseOfTreasurySharesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "payment_of_dividends", + "label": "Payment of Dividends", + "description": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsOfDividends", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfDividendsCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfOrdinaryDividends", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPaid", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsPaidToEquityHoldersOfParentClassifiedAsFinancingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DividendsPaidClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsPaidToNoncontrollingInterestsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "DividendsCommonStockCash", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "issuance_of_debt", + "label": "Issuance of Debt", + "description": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromDebtNetOfIssuanceCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssuanceOfDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromBorrowingsClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssuingOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfSubordinatedLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "issuance_of_preferred_equity", + "label": "Issuance of Preferred Equity", + "description": "Proceeds from issuance of capital stock which provides for a specific dividend that is paid to the shareholders before any dividends to common stockholders and which takes precedence over common stockholders in the event of liquidation.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfPreferredStockAndPreferenceStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssueOfPreferenceShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "issuance_of_common_equity", + "label": "Issuance of Common Equity", + "description": "The cash inflow from the additional capital contribution to the entity.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromIssuanceOfCommonStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromStockOptionsExercised", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromIssueOfOrdinaryShares", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromIssueOfSharesOrOtherEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "ProceedsFromSaleOrIssueOfTreasuryShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_change_in_deposits", + "label": "Net Change in Deposits", + "description": "The net cash inflow or outflow for the increase (decrease) in the beginning and end of period deposits balances.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncreaseDecreaseInDeposits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "short_term_debt_net", + "label": "Short-Term Debt, net", + "description": "The net cash inflow or outflow for borrowing having initial term of repayment within one year or the normal operating cycle, if longer.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromRepaymentsOfShortTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromRepaymentsOfCommercialPaper", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProceedsFromRepaymentsOfShortTermDebtMaturingInMoreThanThreeMonths", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "tax_withholding_share_based_compensation", + "label": "Tax Withholding for Share-Based Compensation", + "description": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 10, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_financing_activities_net", + "label": "Other Financing Activities, Net", + "description": "Amount of cash inflow (outflow) from financing activity, classified as other.", + "parent": "net_cash_from_continuing_financing_activities", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProceedsFromPaymentsForOtherFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PaymentsOfLeaseLiabilitiesClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + }, + { + "tag": "OtherInflowsOutflowsOfCashClassifiedAsFinancingActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_cash_from_continuing_financing_activities", + "label": "Net Cash From Continuing Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_cash_from_financing_activities", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivitiesContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_cash_from_discontinued_financing_activities", + "label": "Net Cash From Discontinued Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity attributable to discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_cash_from_financing_activities", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "net_cash_from_financing_activities", + "label": "Net Cash From Financing Activities", + "description": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.", + "parent": "net_change_in_cash", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashFlowsFromUsedInFinancingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "effect_of_exchange_rate_changes", + "label": "Effect of Exchange Rate Changes", + "description": "The effect of exchange rate changes on cash balances held in foreign currencies.", + "parent": "net_change_in_cash", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalents", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "EffectOfExchangeRateChangesOnCashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "EffectOfExchangeRateOnCash", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalentsContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "EffectOfExchangeRateOnCashAndCashEquivalentsDiscontinuedOperations", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_cash_from_discontinued_operations", + "label": "Net Cash from Discontinued Operations", + "description": "The net change in cash and cash equivalents resulting from the cash inflows and outflows of discontinued operations.", + "parent": "net_change_in_cash", + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetCashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashProvidedByUsedInDiscontinuedOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ], + "sequence": 5 + }, + { + "tag": "other_net_changes_in_cash", + "label": "Other Net Changes in Cash", + "description": "Amount of other net changes in cash and cash equivalents not separately disclosed in the statement of cash flows.", + "parent": "net_change_in_cash", + "sequence": 6, + "factor": "+", + "balance": "", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherCashEquivalentsAtCarryingValue", + "namespace": "us-gaap" + }, + { + "tag": "CashAndCashEquivalentsInSubsidiaryOrBusinessesAcquiredOrDisposed2013", + "namespace": "ifrs-full", + "first_year": 2013, + "last_year": 2026 + } + ] + }, + { + "tag": "net_change_in_cash", + "label": "Net Change in Cash & Equivalents", + "description": "The increase (decrease) during the reporting period in cash and cash equivalents. While for technical reasons this element has no balance attribute, the default assumption is a debit balance consistent with its label.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CashAndCashEquivalentsPeriodIncreaseDecrease", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashPeriodIncreaseDecrease", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "CashAndCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect", + "namespace": "us-gaap" + }, + { + "tag": "IncreaseDecreaseInCashAndCashEquivalents", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_at_beginning_of_period", + "label": "Cash at Beginning of Period", + "description": "Cash, cash equivalents, restricted cash, and restricted cash equivalents at the beginning of the reporting period. Derived from the previous period's ending balance.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [] + }, + { + "tag": "cash_at_end_of_period", + "label": "Cash at End of Period", + "description": "Cash, cash equivalents, restricted cash, and restricted cash equivalents at the end of the reporting period.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalentsAtCarryingValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CashAndCashEquivalents", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_interest_paid", + "label": "Cash Interest Paid", + "description": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.", + "parent": null, + "sequence": 4, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestPaidNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestPaidClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_interest_received", + "label": "Cash Interest Received", + "description": "The cash inflow from interest received, classified as operating activities.", + "parent": null, + "sequence": 5, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestReceived", + "namespace": "us-gaap" + }, + { + "tag": "InterestReceivedClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_income_taxes_paid", + "label": "Cash Income Taxes Paid", + "description": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeTaxesPaidNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxesPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxesPaidClassifiedAsOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeTaxesPaidRefundClassifiedAsOperatingActivities", + "namespace": "ifrs-full" + } + ] + } + ] +} diff --git a/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/income_statement.json b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/income_statement.json new file mode 100644 index 00000000000..0a2e2231af1 --- /dev/null +++ b/openbb_platform/providers/sec/openbb_sec/utils/statement_schema/schemas/income_statement.json @@ -0,0 +1,10466 @@ +{ + "industrial": [ + { + "tag": "costs_and_expenses", + "label": "Costs & Expenses", + "description": "Total costs of sales and operating expenses for the period.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CostsAndExpenses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostsAndExpenses", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "operating_revenue", + "label": "Operating Revenue", + "description": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", + "parent": "total_revenue", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", + "namespace": "us-gaap" + }, + { + "tag": "Revenues", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SalesRevenueNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "SalesRevenueGoodsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "RevenueFromContractWithCustomerIncludingAssessedTax", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "Revenue", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromContractsWithCustomers", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SalesRevenueServicesNet", + "namespace": "us-gaap" + }, + { + "tag": "RevenuesNetOfInterestExpense", + "namespace": "us-gaap" + }, + { + "tag": "RealEstateRevenueNet", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndDividendIncomeOperating", + "namespace": "us-gaap" + }, + { + "tag": "RevenueMineralSales", + "namespace": "us-gaap" + }, + { + "tag": "OilAndGasRevenue", + "namespace": "us-gaap" + }, + { + "tag": "FinancialServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RegulatedAndUnregulatedOperatingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ShippingAndHandlingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueFromEnergyCommoditiesAndServices", + "namespace": "us-gaap" + }, + { + "tag": "UtilityRevenue", + "namespace": "us-gaap" + }, + { + "tag": "PhaseInPlanAmountOfCapitalizedCostsRecovered", + "namespace": "us-gaap" + }, + { + "tag": "SecondaryProcessingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueSteamProductsAndServices", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromLeasedAndOwnedHotels", + "namespace": "us-gaap" + }, + { + "tag": "FranchisorRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SubscriptionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "AdvertisingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "AdmissionsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromEnrollmentAndRegistrationFeesExcludingHospitalityEnterprises", + "namespace": "us-gaap" + }, + { + "tag": "MembershipDuesRevenueOnGoing", + "namespace": "us-gaap" + }, + { + "tag": "LicensesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RoyaltyRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesOfOilAndGasProspects", + "namespace": "us-gaap" + }, + { + "tag": "ClearingFeesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ContractsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromGrants", + "namespace": "us-gaap" + }, + { + "tag": "RevenueOtherManufacturedProducts", + "namespace": "us-gaap" + }, + { + "tag": "ConstructionMaterialsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "TimberRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RecyclingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "PassengerRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SaleOfTrustAssetsToPayExpenses", + "namespace": "us-gaap" + }, + { + "tag": "VehicleTollRevenue", + "namespace": "us-gaap" + }, + { + "tag": "CargoAndFreightRevenue", + "namespace": "us-gaap" + }, + { + "tag": "NetInvestmentIncome", + "namespace": "us-gaap" + }, + { + "tag": "RevenuesExcludingInterestAndDividends", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentBankingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "UnderwritingIncomeLoss", + "namespace": "us-gaap" + }, + { + "tag": "MarketDataRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricUtilityRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ReimbursementRevenue", + "namespace": "us-gaap" + }, + { + "tag": "LicenseAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "OilAndGasSalesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RefiningAndMarketingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "GasDomesticRegulatedRevenue", + "namespace": "us-gaap" + }, + { + "tag": "GoldProductsAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "NaturalGasProductionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentAdvisoryManagementAndAdministrativeFees", + "namespace": "us-gaap" + }, + { + "tag": "AssetManagementFees1", + "namespace": "us-gaap" + }, + { + "tag": "RevenueOilAndGasServices", + "namespace": "us-gaap" + }, + { + "tag": "ElectricalGenerationRevenue", + "namespace": "us-gaap" + }, + { + "tag": "FoodAndBeverageRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromPurchasedOilAndGas", + "namespace": "us-gaap" + }, + { + "tag": "TechnologyServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "HomeBuildingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RetailRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricalTransmissionAndDistributionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueEnergyServices", + "namespace": "us-gaap" + }, + { + "tag": "OperatingLeasesIncomeStatementLeaseRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricDomesticRegulatedRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndFeeIncomeLoansConsumerInstallmentAutomobilesMarineAndOtherVehicles", + "namespace": "us-gaap" + }, + { + "tag": "FeesAndCommissions", + "namespace": "us-gaap" + }, + { + "tag": "LandSales", + "namespace": "us-gaap" + }, + { + "tag": "GasGatheringTransportationMarketingAndProcessingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromRelatedParties", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationRevenue", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationRevenueNetOfPatientServiceRevenueProvisions", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationPatientServiceRevenueLessProvisionForBadDebts", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationPatientServiceRevenue", + "namespace": "us-gaap" + }, + { + "tag": "OtherSalesRevenueNet", + "namespace": "us-gaap" + }, + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap" + }, + { + "tag": "CoalProductsAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesOfRealEstate", + "namespace": "us-gaap" + }, + { + "tag": "FranchiseRevenue", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_revenue", + "label": "Other Revenue", + "description": "Revenues from the sale of other goods or rendering of other services, not elsewhere specified in the taxonomy; net of (reduced by) sales adjustments, returns, allowances, and discounts.", + "parent": "total_revenue", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherSalesRevenueNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "OtherRevenue", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "OtherIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherIncome", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromRoyalties", + "namespace": "ifrs-full" + }, + { + "tag": "RevenueFromDividends", + "namespace": "ifrs-full" + }, + { + "tag": "RentalIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OperatingLeaseIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "excise_and_sales_taxes", + "label": "Excise and Sales Taxes", + "description": "Amount of excise and sales taxes included in revenue.", + "parent": "total_revenue", + "sequence": 3, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ExciseAndSalesTaxes", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_revenue", + "label": "Total Revenue", + "description": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", + "parent": "total_gross_profit", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SalesRevenueNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "Revenues", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueGoodsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "RevenueFromContractWithCustomerIncludingAssessedTax", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "Revenue", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromContractsWithCustomers", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SalesRevenueServicesNet", + "namespace": "us-gaap" + }, + { + "tag": "RevenuesNetOfInterestExpense", + "namespace": "us-gaap" + }, + { + "tag": "RealEstateRevenueNet", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndDividendIncomeOperating", + "namespace": "us-gaap" + }, + { + "tag": "RevenueMineralSales", + "namespace": "us-gaap" + }, + { + "tag": "OilAndGasRevenue", + "namespace": "us-gaap" + }, + { + "tag": "FinancialServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RegulatedAndUnregulatedOperatingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ShippingAndHandlingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueFromEnergyCommoditiesAndServices", + "namespace": "us-gaap" + }, + { + "tag": "UtilityRevenue", + "namespace": "us-gaap" + }, + { + "tag": "PhaseInPlanAmountOfCapitalizedCostsRecovered", + "namespace": "us-gaap" + }, + { + "tag": "SecondaryProcessingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueSteamProductsAndServices", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromLeasedAndOwnedHotels", + "namespace": "us-gaap" + }, + { + "tag": "FranchisorRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SubscriptionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "AdvertisingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "AdmissionsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromEnrollmentAndRegistrationFeesExcludingHospitalityEnterprises", + "namespace": "us-gaap" + }, + { + "tag": "MembershipDuesRevenueOnGoing", + "namespace": "us-gaap" + }, + { + "tag": "LicensesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RoyaltyRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesOfOilAndGasProspects", + "namespace": "us-gaap" + }, + { + "tag": "ClearingFeesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ContractsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromGrants", + "namespace": "us-gaap" + }, + { + "tag": "RevenueOtherManufacturedProducts", + "namespace": "us-gaap" + }, + { + "tag": "ConstructionMaterialsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "TimberRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RecyclingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "PassengerRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SaleOfTrustAssetsToPayExpenses", + "namespace": "us-gaap" + }, + { + "tag": "VehicleTollRevenue", + "namespace": "us-gaap" + }, + { + "tag": "CargoAndFreightRevenue", + "namespace": "us-gaap" + }, + { + "tag": "NetInvestmentIncome", + "namespace": "us-gaap" + }, + { + "tag": "RevenuesExcludingInterestAndDividends", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentBankingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "UnderwritingIncomeLoss", + "namespace": "us-gaap" + }, + { + "tag": "MarketDataRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricUtilityRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ReimbursementRevenue", + "namespace": "us-gaap" + }, + { + "tag": "LicenseAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "OilAndGasSalesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RefiningAndMarketingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "GasDomesticRegulatedRevenue", + "namespace": "us-gaap" + }, + { + "tag": "GoldProductsAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "NaturalGasProductionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentAdvisoryManagementAndAdministrativeFees", + "namespace": "us-gaap" + }, + { + "tag": "AssetManagementFees1", + "namespace": "us-gaap" + }, + { + "tag": "RevenueOilAndGasServices", + "namespace": "us-gaap" + }, + { + "tag": "ElectricalGenerationRevenue", + "namespace": "us-gaap" + }, + { + "tag": "FoodAndBeverageRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromPurchasedOilAndGas", + "namespace": "us-gaap" + }, + { + "tag": "TechnologyServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "HomeBuildingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RetailRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricalTransmissionAndDistributionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueEnergyServices", + "namespace": "us-gaap" + }, + { + "tag": "OperatingLeasesIncomeStatementLeaseRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricDomesticRegulatedRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndFeeIncomeLoansConsumerInstallmentAutomobilesMarineAndOtherVehicles", + "namespace": "us-gaap" + }, + { + "tag": "FeesAndCommissions", + "namespace": "us-gaap" + }, + { + "tag": "LandSales", + "namespace": "us-gaap" + }, + { + "tag": "GasGatheringTransportationMarketingAndProcessingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromRelatedParties", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationRevenue", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationRevenueNetOfPatientServiceRevenueProvisions", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationPatientServiceRevenueLessProvisionForBadDebts", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationPatientServiceRevenue", + "namespace": "us-gaap" + }, + { + "tag": "OtherSalesRevenueNet", + "namespace": "us-gaap" + }, + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap" + }, + { + "tag": "CoalProductsAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesOfRealEstate", + "namespace": "us-gaap" + }, + { + "tag": "FranchiseRevenue", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "operating_cost_of_revenue", + "label": "Operating Cost of Revenue", + "description": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.", + "parent": "total_cost_of_revenue", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CostOfGoodsAndServicesSold", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostOfRevenue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostOfGoodsSold", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "CostOfServices", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoodsSoldExcludingDepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoodsSoldElectric", + "namespace": "us-gaap" + }, + { + "tag": "DirectOperatingCosts", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoodsSoldOilAndGas", + "namespace": "us-gaap" + }, + { + "tag": "FinancialServicesCosts", + "namespace": "us-gaap" + }, + { + "tag": "ContractRevenueCost", + "namespace": "us-gaap" + }, + { + "tag": "CostOfRealEstateRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RefiningAndMarketingCosts", + "namespace": "us-gaap" + }, + { + "tag": "CostOfNaturalGasPurchases", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoldProductsAndServices", + "namespace": "us-gaap" + }, + { + "tag": "CostOfRealEstateSales", + "namespace": "us-gaap" + }, + { + "tag": "CostOfMerchandiseSalesBuyingAndOccupancyCosts", + "namespace": "us-gaap" + }, + { + "tag": "CostOfServicesExcludingDepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "CostOfServicesOilAndGas", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoodsSoldDirectMaterials", + "namespace": "us-gaap" + }, + { + "tag": "ExplorationExpenseMining", + "namespace": "us-gaap" + }, + { + "tag": "DirectCostsOfHotels", + "namespace": "us-gaap" + }, + { + "tag": "TechnologyServicesCosts", + "namespace": "us-gaap" + }, + { + "tag": "CostOfSales", + "namespace": "ifrs-full" + }, + { + "tag": "CostOfMerchandiseSoldAndServiceProvided", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_cost_of_revenue", + "label": "Other Cost of Revenue", + "description": "Other costs incurred during the reporting period related to other revenue generating activities.", + "parent": "total_cost_of_revenue", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherCostOfOperatingRevenue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostOfOtherPropertyOperatingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "total_cost_of_revenue", + "label": "Total Cost of Revenue", + "description": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.", + "parent": "total_gross_profit", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CostOfGoodsAndServicesSold", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostOfRevenue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostOfGoodsSold", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "CostOfPurchasedOilAndGas", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "CostOfServices", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoodsSoldExcludingDepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoodsSoldElectric", + "namespace": "us-gaap" + }, + { + "tag": "DirectOperatingCosts", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoodsSoldOilAndGas", + "namespace": "us-gaap" + }, + { + "tag": "FinancialServicesCosts", + "namespace": "us-gaap" + }, + { + "tag": "ContractRevenueCost", + "namespace": "us-gaap" + }, + { + "tag": "CostOfRealEstateRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RefiningAndMarketingCosts", + "namespace": "us-gaap" + }, + { + "tag": "CostOfNaturalGasPurchases", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoldProductsAndServices", + "namespace": "us-gaap" + }, + { + "tag": "CostOfRealEstateSales", + "namespace": "us-gaap" + }, + { + "tag": "CostOfMerchandiseSalesBuyingAndOccupancyCosts", + "namespace": "us-gaap" + }, + { + "tag": "CostOfServicesExcludingDepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "CostOfServicesOilAndGas", + "namespace": "us-gaap" + }, + { + "tag": "CostOfGoodsSoldDirectMaterials", + "namespace": "us-gaap" + }, + { + "tag": "ExplorationExpenseMining", + "namespace": "us-gaap" + }, + { + "tag": "DirectCostsOfHotels", + "namespace": "us-gaap" + }, + { + "tag": "TechnologyServicesCosts", + "namespace": "us-gaap" + }, + { + "tag": "CostOfSales", + "namespace": "ifrs-full" + }, + { + "tag": "CostOfInventoriesRecognisedAsExpenseDuringPeriod", + "namespace": "ifrs-full" + }, + { + "tag": "InventoryWritedown2011", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_gross_profit", + "label": "Total Gross Profit", + "description": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", + "parent": "total_operating_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GrossProfit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GrossProfit", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "sga_expense", + "label": "Selling, General & Admin Expense", + "description": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", + "parent": "total_operating_expenses", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SellingGeneralAndAdministrativeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SellingGeneralAndAdministrativeExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SellingAndMarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GeneralAndAdministrativeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GeneralAndAdministrativeExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SalesAndMarketingExpense", + "namespace": "ifrs-full" + }, + { + "tag": "EmployeeBenefitsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "WagesAndSalaries", + "namespace": "ifrs-full" + }, + { + "tag": "OtherEmployeeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "PostemploymentBenefitExpenseDefinedContributionPlans", + "namespace": "ifrs-full" + }, + { + "tag": "PostemploymentBenefitExpenseDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "AuditorsRemuneration", + "namespace": "ifrs-full" + }, + { + "tag": "AdministrativeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "CommunicationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DistributionCosts", + "namespace": "ifrs-full" + }, + { + "tag": "SocialSecurityContributions", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensation", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationShorttermEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationPostemploymentBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationSharebasedPayment", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationTerminationBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseFromEquitysettledSharebasedPaymentTransactionsInWhichGoodsOrServicesReceivedDidNotQualifyForRecognitionAsAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "rd_expense", + "label": "Research & Development Expense", + "description": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.", + "parent": "total_operating_expenses", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ResearchAndDevelopmentExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ResearchAndDevelopmentExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "exploration_expense", + "label": "Exploration Expense", + "description": "Exploration expenses (including prospecting) related to oil and gas producing entities and would be included in operating expenses of that entity. Costs incurred in identifying areas that may warrant examination and in examining specific areas that are considered to have prospects of containing oil and gas reserves, including costs of drilling exploratory wells and exploratory-type stratigraphic test wells. Exploration costs may be incurred both before acquiring the related property (sometimes referred to in part as prospecting costs) and after acquiring the property. Principal types of exploration costs, which include depreciation and applicable operating costs of support equipment and facilities and other costs of exploration activities, are: (i) Costs of topographical, geographical and geophysical studies, rights of access to properties to conduct those studies, and salaries and other expenses of geologists, geophysical crews, and others conducting those studies. Collectively, these are sometimes referred to as geological and geophysical or \"G&G\" costs. (ii) Costs of carrying and retaining undeveloped properties, such as delay rentals, ad valorem taxes on properties, legal costs for title defense, and the maintenance of land and lease records. (iii) Dry hole contributions and bottom hole contributions. (iv) Costs of drilling and equipping exploratory wells. (v) Costs of drilling exploratory-type stratigraphic test wells.", + "parent": "total_operating_expenses", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ExplorationExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ExplorationCosts", + "namespace": "us-gaap" + }, + { + "tag": "ResultsOfOperationsExplorationExpense", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "depreciation_expense", + "label": "Depreciation Expense", + "description": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", + "parent": "depreciation_and_amortization", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depreciation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationNonproduction", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationPropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "amortization_expense", + "label": "Amortization Expense", + "description": "Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed.", + "parent": "depreciation_and_amortization", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AmortizationOfIntangibleAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Amortization", + "namespace": "us-gaap" + }, + { + "tag": "AmortisationIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "AmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depletion_expense", + "label": "Depletion Expense", + "description": "The noncash expense charged against earnings to recognize the consumption of natural resources.", + "parent": "total_operating_expenses", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depletion", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostDepletion", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "DepletionOfOilAndGasProperties", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "depreciation_and_amortization", + "label": "Depreciation and Amortization", + "description": "The aggregate expense recognized in the current period that allocates the cost of tangible and intangible assets over their useful lives.", + "parent": "total_operating_expenses", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAmortizationAndAccretionNet", + "namespace": "us-gaap" + }, + { + "tag": "OtherDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_operating_expenses", + "label": "Other Operating Expenses / (Income)", + "description": "The net amount of other operating income and expenses, the components of which are not separately disclosed on the income statement, from items that are associated with the entity's normal revenue producing operations.", + "parent": "total_operating_expenses", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingIncomeExpenseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherCostAndExpenseOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherGeneralExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BankAndSimilarCharges", + "namespace": "ifrs-full" + }, + { + "tag": "RentalExpense", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseRelatingToShorttermLeasesForWhichRecognitionExemptionHasBeenUsed", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseRelatingToLeasesOfLowvalueAssetsForWhichRecognitionExemptionHasBeenUsed", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseRelatingToVariableLeasePaymentsNotIncludedInMeasurementOfLeaseLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "LeaseAndSubleasePaymentsRecognisedAsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DirectOperatingExpenseFromInvestmentProperty", + "namespace": "ifrs-full" + }, + { + "tag": "PostemploymentBenefitExpenseInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "TerminationBenefitsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "OtherExpenseByNature", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "impairment_expense", + "label": "Impairment Charge", + "description": "Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible assets and goodwill.", + "parent": "total_operating_expenses", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AssetImpairmentCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillImpairmentLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillAndIntangibleAssetImpairment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfLongLivedAssetsHeldForUse", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "ImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossPropertyPlantAndEquipment", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "restructuring_charge", + "label": "Restructuring Charge", + "description": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.", + "parent": "total_operating_expenses", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RestructuringCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RestructuringAndRelatedCostIncurredCost", + "namespace": "us-gaap" + }, + { + "tag": "ExpenseOfRestructuringActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_special_charges", + "label": "Other Special Charges / (Income)", + "description": "Amount of restructuring charges, remediation cost, and asset impairment loss.", + "parent": "total_operating_expenses", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RestructuringSettlementAndImpairmentProvisions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherRestructuringCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SpecialChargesGainLoss", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_operating_expenses", + "label": "Total Operating Expenses", + "description": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.", + "parent": "total_operating_income", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OperatingExpenses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OperatingExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "UtilitiesOperatingExpense", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_operating_income", + "label": "Total Operating Income", + "description": "The net result for the period of deducting operating expenses from operating revenues.", + "parent": "total_pretax_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OperatingIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet", + "namespace": "us-gaap" + }, + { + "tag": "OperatingProfit", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_interest_expense", + "label": "Interest Expense", + "description": "Amount of interest expense classified as operating.", + "parent": "total_other_income", + "sequence": 1, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseOperating", + "namespace": "us-gaap", + "first_year": 2024, + "last_year": 2026 + }, + { + "tag": "InterestExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestExpenseDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FinanceCosts", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestExpenseOnLeaseLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "InterestExpenseOnBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "BorrowingCostsRecognisedAsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "OtherFinanceCost", + "namespace": "ifrs-full" + }, + { + "tag": "InterestExpenseOnOtherFinancialLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_interest_income", + "label": "Interest & Investment Income", + "description": "Amount of operating interest income, including, but not limited to, amortization and accretion of premiums and discounts on securities.", + "parent": "total_other_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestAndDividendIncomeOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentIncomeInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentIncomeInterestAndDividend", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FinanceIncome", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromInterest", + "namespace": "ifrs-full" + }, + { + "tag": "InterestRevenueExpense", + "namespace": "ifrs-full" + }, + { + "tag": "InterestIncomeOnCashAndCashEquivalents", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_income", + "label": "Other Income / (Expense), net", + "description": "Amount of income (expense) related to nonoperating activities, classified as other.", + "parent": "total_other_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherNonoperatingIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNonoperatingIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherOperatingIncomeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNonoperatingIncomeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "FinanceIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherFinanceIncome", + "namespace": "ifrs-full" + }, + { + "tag": "FinanceIncomeCost", + "namespace": "ifrs-full" + }, + { + "tag": "OtherFinanceIncomeCost", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_gains", + "label": "Other Gains / (Losses), net", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": "total_other_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NonoperatingGainsLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets1", + "namespace": "us-gaap", + "first_year": 2013, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionStockInSubsidiaryOrEquityMethodInvestee", + "namespace": "us-gaap" + }, + { + "tag": "GainLossOnSaleOfPreviouslyUnissuedStockBySubsidiaryOrEquityInvesteeNonoperatingIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNonrecurringGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "OtherGainsLosses", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetForeignExchangeGain", + "namespace": "ifrs-full" + }, + { + "tag": "NetForeignExchangeLoss", + "namespace": "ifrs-full" + }, + { + "tag": "GainsOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + }, + { + "tag": "LossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgedItemAttributableToHedgedRisk", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_other_income", + "label": "Total Other Income / (Expense), net", + "description": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", + "parent": "total_pretax_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NonoperatingIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NonoperatingGainsLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "income_before_equity_method", + "label": "Income Before Equity Method Investments", + "description": "Amount of income/loss from continuing operations before income from equity method investments.", + "parent": "total_pretax_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "equity_method_investments", + "label": "Income from Equity Method Investments", + "description": "Amount of income (loss) for proportionate share of equity method investee's income (loss).", + "parent": "total_pretax_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "EquityMethodInvestmentSummarizedFinancialInformationNetIncomeLoss", + "namespace": "us-gaap" + }, + { + "tag": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", + "namespace": "us-gaap" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAndJointVenturesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodNetOfTax", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_pretax_income", + "label": "Total Pre-Tax Income ", + "description": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", + "parent": "net_income_continuing", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossBeforeTax", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "AccountingProfit", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_current", + "label": "Current Income Tax Expense (Benefit)", + "description": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.", + "parent": "income_tax_expense", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CurrentIncomeTaxExpenseBenefit", + "namespace": "us-gaap" + }, + { + "tag": "CurrentTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxExpenseIncomeAndAdjustmentsForCurrentTaxOfPriorPeriods", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForCurrentTaxOfPriorPeriod", + "namespace": "ifrs-full" + }, + { + "tag": "TaxExpenseIncomeAtApplicableTaxRate", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectOfForeignTaxRates", + "namespace": "ifrs-full" + }, + { + "tag": "OtherTaxEffectsForReconciliationBetweenAccountingProfitAndTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectFromChangeInTaxRate", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentAndDeferredTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "TaxBenefitArisingFromPreviouslyUnrecognisedTaxLossTaxCreditOrTemporaryDifferenceOfPriorPeriodUsedToReduceCurrentTaxExpense", + "namespace": "ifrs-full" + }, + { + "tag": "TaxExpenseRelatingToProfitLossFromOrdinaryActivitiesOfDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectOfExpenseNotDeductibleInDeterminingTaxableProfitTaxLoss", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_deferred", + "label": "Deferred Income Tax Expense (Benefit)", + "description": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", + "parent": "income_tax_expense", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxExpenseBenefit", + "namespace": "us-gaap" + }, + { + "tag": "DeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDeferredTaxOfPriorPeriods", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRelatingToOriginationAndReversalOfTemporaryDifferences", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRelatingToTaxRateChangesOrImpositionOfNewTaxes", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComponentsOfDeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseArisingFromWritedownOrReversalOfWritedownOfDeferredTaxAsset", + "namespace": "ifrs-full" + }, + { + "tag": "TaxBenefitArisingFromPreviouslyUnrecognisedTaxLossTaxCreditOrTemporaryDifferenceOfPriorPeriodUsedToReduceDeferredTaxExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_expense", + "label": "Income Tax Expense", + "description": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", + "parent": "net_income_continuing", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeTaxExpenseBenefit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxExpenseContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "FederalHomeLoanBankAssessments", + "namespace": "us-gaap" + }, + { + "tag": "FederalIncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "StateAndLocalIncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_continuing", + "label": "Net Income / (Loss) Continuing Operations", + "description": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", + "parent": "net_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossBeforeExtraordinaryItemsAndCumulativeEffectOfChangeInAccountingPrinciple", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperationsAttributableToOrdinaryEquityHoldersOfParentEntity", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income_discontinued", + "label": "Net Income / (Loss) Discontinued Operations", + "description": "Amount after tax of income (loss) from a discontinued operation including the portion attributable to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + "parent": "net_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromDiscontinuedOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "ProfitLossBeforeTaxDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "ProfitLossFromDiscontinuedOperationsAttributableToNoncontrollingInterests", + "namespace": "ifrs-full" + }, + { + "tag": "GainLossRecognisedOnMeasurementToFairValueLessCostsToSellOrOnDisposalOfAssetsOrDisposalGroupsConstitutingDiscontinuedOperation", + "namespace": "ifrs-full" + }, + { + "tag": "RevenueDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "ExpensesDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "TaxExpenseRelatingToGainLossOnDiscontinuance", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "extraordinary_income", + "label": "Extraordinary Income / (Loss), net", + "description": "Description of the gains (losses), after tax, arising from an event or transaction that is both unusual in nature and infrequent in occurrence when considered in relation to the environment in which the entity operates and which represents the portion assigned to noncontrolling interest, if any. This amount is the income statement amount which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest).", + "parent": "net_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ExtraordinaryItemNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "IncomeLossFromExtraordinaryItemsNetOfTax", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_adjustments_to_consolidated_net_income", + "label": "Other Adjustments to Consolidated Net Income / (Loss)", + "description": "Amount after tax and reclassification adjustments of other comprehensive income (loss).", + "parent": "net_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTax", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "gain_on_sale_properties", + "label": "Gain (Loss) on Sale of Properties, Net of Tax", + "description": "Amount of gain (loss) on sale or disposal of property, net of applicable income taxes.", + "parent": "net_income", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfPropertiesNetOfApplicableIncomeTaxes", + "namespace": "us-gaap" + }, + { + "tag": "GainsLossesOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnDisposalsOfInvestments", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_comprehensive_income_parent", + "label": "Other Comprehensive Income (Loss) Attributable to Parent", + "description": "Amount after tax and reclassification adjustments of OCI attributable to parent.", + "parent": "comprehensive_income_parent", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", + "namespace": "us-gaap" + }, + { + "tag": "OtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxCashFlowHedges", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxGainsLossesOnRemeasurementsOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxChangeInFairValueOfFinancialLiabilityAttributableToChangeInCreditRiskOfLiability", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxGainsLossesFromInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxHedgesOfNetInvestmentsInForeignOperations", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxChangeInValueOfForwardElementsOfForwardContracts", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeThatWillBeReclassifiedToProfitOrLossNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeThatWillNotBeReclassifiedToProfitOrLossNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxCashFlowHedges", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxGainsLossesOnRemeasurementsOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxGainsLossesFromInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxHedgesOfNetInvestmentsInForeignOperations", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxChangeInValueOfForwardElementsOfForwardContracts", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnCashFlowHedgesNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnCashFlowHedgesBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgesOfNetInvestmentsInForeignOperationsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgesOfNetInvestmentsInForeignOperationsBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnRemeasuringAvailableforsaleFinancialAssetsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHeldtomaturityInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnCashFlowHedgesNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnCashFlowHedgesBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnExchangeDifferencesOnTranslationNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnExchangeDifferencesOnTranslationBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnHedgesOfNetInvestmentsInForeignOperationsBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnHedgesOfNetInvestmentsInForeignOperationsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnAvailableforsaleFinancialAssetsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncomeThatWillBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncomeThatWillNotBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToCashFlowHedgesOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToHedgesOfNetInvestmentsInForeignOperationsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToRemeasurementsOfDefinedBenefitPlansOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToExchangeDifferencesOnTranslationOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToChangeInValueOfForwardElementsOfForwardContractsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToAvailableforsaleFinancialAssetsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToChangesInFairValueOfFinancialLiabilityAttributableToChangeInCreditRiskOfLiabilityOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToInvestmentsInEquityInstrumentsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillNotBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillBeReclassifiedToProfitOrLossBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillNotBeReclassifiedToProfitOrLossBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeAttributableToOwnersOfParent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "comprehensive_income_parent", + "label": "Comprehensive Income (Loss) Attributable to Parent", + "description": "Amount after tax of increase (decrease) in equity from transactions and other events, attributable to parent.", + "parent": "comprehensive_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTax", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncomeAttributableToOwnersOfParent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_comprehensive_income_nci", + "label": "Other Comprehensive Income (Loss) Attributable to NCI", + "description": "Amount after tax and reclassification adjustments of OCI attributable to noncontrolling interests.", + "parent": "comprehensive_income_nci", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "comprehensive_income_nci", + "label": "Comprehensive Income (Loss) Attributable to NCI", + "description": "Amount after tax of increase (decrease) in equity from transactions and other events, attributable to noncontrolling interests.", + "parent": "comprehensive_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncomeAttributableToNoncontrollingInterests", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "comprehensive_income", + "label": "Comprehensive Income (Loss)", + "description": "Amount after tax of increase (decrease) in equity from transactions and other events/circumstances from net income and OCI. Includes portion attributable to NCI.", + "parent": "net_income", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income", + "label": "Consolidated Net Income / (Loss)", + "description": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", + "parent": "net_income_to_common", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "preferred_dividends", + "label": "Preferred Stock Dividends Declared", + "description": "Amount of paid and unpaid preferred stock dividends declared with the form of settlement in cash, stock and payment-in-kind (PIK).", + "parent": "net_income_to_common", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DividendsPreferredStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PreferredStockDividendsAndOtherAdjustments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PreferredStockDividends", + "namespace": "us-gaap" + }, + { + "tag": "PreferredStockDividendsIncomeStatementImpact", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentToProfitLossForPreferenceShareDividends", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income_nci_redeemable", + "label": "Net Income Attributable to Redeemable NCI", + "description": "Amount after tax of income attributable to redeemable noncontrolling interest.", + "parent": "net_income_to_noncontrolling_interest", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToRedeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterestInNetIncomeLossOperatingPartnershipsRedeemable", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_nci_nonredeemable", + "label": "Net Income Attributable to Nonredeemable NCI", + "description": "Amount after tax of income attributable to nonredeemable noncontrolling interest.", + "parent": "net_income_to_noncontrolling_interest", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToNonredeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterestInNetIncomeLossPreferredUnitHoldersNonredeemable", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_to_noncontrolling_interest", + "label": "Net Income / (Loss) Attributable to Noncontrolling Interest", + "description": "Amount of Net Income (Loss) attributable to noncontrolling interest.", + "parent": "net_income_to_common", + "sequence": 3, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToNoncontrollingInterests", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_adjustments_to_net_income_to_common", + "label": "Other Adjustments to Net Income / (Loss) Attributable to Common Shareholders)", + "description": "The aggregate value of preferred stock dividends and other adjustments necessary to derive net income apportioned to common stockholders.", + "parent": "net_income_to_common", + "sequence": 4, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PreferredStockDividendsAndOtherAdjustments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic", + "namespace": "us-gaap" + }, + { + "tag": "UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + } + ] + }, + { + "tag": "net_income_to_common", + "label": "Net Income / (Loss) Attributable to Common Shareholders", + "description": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossAttributableToParent", + "namespace": "us-gaap" + }, + { + "tag": "ProfitLossAttributableToOrdinaryEquityHoldersOfParentEntity", + "namespace": "ifrs-full" + }, + { + "tag": "ProfitLossAttributableToOrdinaryEquityHoldersOfParentEntityIncludingDilutiveEffects", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "weighted_ave_basic_shares_os", + "label": "Weighted Average Basic Shares Outstanding", + "description": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", + "parent": "basic_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfSharesOutstandingBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "WeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "basic_eps", + "label": "Basic Earnings per Share", + "description": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BasicEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "BasicEarningsLossPerShareFromContinuingOperations", + "namespace": "ifrs-full" + }, + { + "tag": "BasicEarningsLossPerShareFromDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "weighted_ave_diluted_shares_os", + "label": "Weighted Average Diluted Shares Outstanding", + "description": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", + "parent": "diluted_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfDilutedSharesOutstanding", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustedWeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DilutiveEffectOfShareOptionsOnNumberOfOrdinaryShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "diluted_eps", + "label": "Diluted Earnings per Share", + "description": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + "parent": null, + "sequence": 4, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareDiluted", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DilutedEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DilutedEarningsLossPerShareFromContinuingOperations", + "namespace": "ifrs-full" + }, + { + "tag": "DilutedEarningsLossPerShareFromDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "weighted_ave_basic_diluted_shares_os", + "label": "Weighted Average Basic & Diluted Shares Outstanding", + "description": "Average number of shares or units issued and outstanding that are used in calculating basic and diluted earnings per share (EPS).", + "parent": "basic_diluted_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfShareOutstandingBasicAndDiluted", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2021 + }, + { + "tag": "WeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "basic_diluted_eps", + "label": "Basic & Diluted Earnings per Share", + "description": "The amount of net income or loss for the period per each share in instances when basic and diluted earnings per share are the same amount and reported as a single line item on the face of the financial statements. Basic earnings per share is the amount of net income or loss for the period per each share of common stock or unit outstanding during the reporting period. Diluted earnings per share includes the amount of net income or loss for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + "parent": null, + "sequence": 5, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareBasicAndDiluted", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "BasicEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "BasicAndDilutedEarningsLossPerShare", + "namespace": "ifrs-full" + }, + { + "tag": "BasicAndDilutedEarningsLossPerShareFromContinuingOperations", + "namespace": "ifrs-full" + }, + { + "tag": "BasicAndDilutedEarningsLossPerShareFromDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_dividends_per_share", + "label": "Cash Dividends to Common per Share", + "description": "Aggregate dividends declared during the period for each share of common stock outstanding.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CommonStockDividendsPerShareDeclared", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommonStockDividendsPerShareCashPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPaidOrdinarySharesPerShare", + "namespace": "ifrs-full" + } + ] + } + ], + "financial": [ + { + "tag": "other_gains", + "label": "Other Gains / (Losses), net", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": null, + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NonoperatingGainsLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets1", + "namespace": "us-gaap", + "first_year": 2013, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionStockInSubsidiaryOrEquityMethodInvestee", + "namespace": "us-gaap" + }, + { + "tag": "GainLossOnSaleOfPreviouslyUnissuedStockBySubsidiaryOrEquityInvesteeNonoperatingIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNonrecurringGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "OtherGainsLosses", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "loans_and_lease_interest_income", + "label": "Loans and Leases Interest Income", + "description": "The aggregate interest and fee income generated by: (1) loans the Entity has positive intent and ability to hold for the foreseeable future, or until maturity or payoff, including commercial and consumer loans, whether domestic or foreign, which may consist of: (a) industrial and agricultural; (b) real estate; and (c) real estate construction loans; (d) trade financing; (e) lease financing; (f) home equity lines-of-credit; (g) automobile and other vehicle loans; and (h) credit card and other revolving-type loans and (2) loans and leases held-for-sale which may include mortgage loans, direct financing, and sales-type leases.", + "parent": "total_interest_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestAndFeeIncomeLoansAndLeases", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestAndFeeIncomeLoansAndLeasesHeldInPortfolio", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestIncomeOnLoansAndReceivables", + "namespace": "ifrs-full" + }, + { + "tag": "InterestIncomeOnFinancialAssetsAtAmortisedCost", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "investment_securities_interest_income", + "label": "Investment Securities Interest Income", + "description": "Amount of operating interest income, including amortization and accretion of premiums and discounts, on securities subject to state, federal and other income tax.", + "parent": "total_interest_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeSecuritiesTaxable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestIncomeSecuritiesTaxExempt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestAndDividendIncomeSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetInvestmentIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "deposits_interest_income", + "label": "Deposits and Money Market Investments Interest Income", + "description": "Interest income derived from funds deposited with both domestic and foreign financial institutions including funds in money market and other accounts.", + "parent": "total_interest_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeDepositsWithFinancialInstitutions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestIncomeDepositsInBanks", + "namespace": "us-gaap" + }, + { + "tag": "InterestIncomeOnDeposits", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "fed_funds_and_repo_interest_income", + "label": "Federal Funds Sold and Securities Borrowed Interest Income", + "description": "The aggregate interest income earned from (1) the lending of excess federal funds to another commercial bank requiring such for its legal reserve requirements and (2) securities purchased under agreements to resell.", + "parent": "total_interest_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeFederalFundsSoldAndSecuritiesPurchasedUnderAgreementsToResell", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestIncomeFederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResell", + "namespace": "us-gaap" + }, + { + "tag": "InterestIncomeOnReverseRepurchaseAgreementsAndCashCollateralOnSecuritiesBorrowed", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "trading_account_interest_income", + "label": "Trading Account Interest Income", + "description": "Interest and dividend income on securities that are bought and held principally for the purpose of selling them in the near term (\"trading securities\") and on securities measured at fair value through earnings.", + "parent": "total_interest_income", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestAndDividendIncomeSecuritiesTradingOrMeasuredAtFairValue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "InterestAndFeeIncomeLoansAndLeasesTradingLoans", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_interest_income", + "label": "Other Interest Income", + "description": "Amount of interest income earned from interest bearing assets classified as other.", + "parent": "total_interest_income", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeOther", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "OtherInterestIncome", + "namespace": "ifrs-full" + }, + { + "tag": "InterestIncomeOnOtherFinancialAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_interest_income", + "label": "Total Interest Income", + "description": "Amount of operating interest income, including, but not limited to, amortization and accretion of premiums and discounts on securities.", + "parent": "net_interest_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestAndDividendIncomeOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentIncomeInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentIncomeInterestAndDividend", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FinanceIncome", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromInterest", + "namespace": "ifrs-full" + }, + { + "tag": "InterestRevenueCalculatedUsingEffectiveInterestMethod", + "namespace": "ifrs-full" + }, + { + "tag": "InterestRevenue", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "deposits_interest_expense", + "label": "Deposits Interest Expense", + "description": "Aggregate amount of interest expense on all deposits.", + "parent": "total_interest_expense", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseDeposits", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestExpenseOnDeposits", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "short_term_borrowing_interest_expense", + "label": "Short-Term Borrowings Interest Expense", + "description": "The aggregate interest expense incurred on short-term borrowings including commercial paper and Federal funds purchased and securities sold under agreements to repurchase.", + "parent": "total_interest_expense", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseShortTermBorrowings", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "long_term_debt_interest_expense", + "label": "Long-Term Debt Interest Expense", + "description": "Aggregate amount of interest paid or due on all long-term debt.", + "parent": "total_interest_expense", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestExpenseOnBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "InterestExpenseOnOtherFinancialLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "fed_funds_and_repo_interest_expense", + "label": "Federal Funds Purchased and Securities Sold Interest Expense", + "description": "The aggregate expense incurred on federal funds purchased and securities sold under agreements to repurchase. If amounts recognized as payables under repurchase agreements have been offset against amounts recognized as receivables under reverse repurchase agreements and reported as a net amount on the balance sheet, the income and expense from these agreements may be reported on a net basis.", + "parent": "total_interest_expense", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseFederalFundsPurchasedAndSecuritiesSoldUnderAgreementsToRepurchase", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestExpenseFederalFundsSoldAndSecuritiesPurchasedUnderAgreementsToResell", + "namespace": "us-gaap" + }, + { + "tag": "InterestExpenseOnRepurchaseAgreementsAndCashCollateralOnSecuritiesLent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "capitalized_lease_obligation_interest_expense", + "label": "Capitalized Lease Obligations Interest Expense", + "description": "Amount of interest expense on finance lease liability.", + "parent": "total_interest_expense", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "FinanceLeaseInterestExpense", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "FinanceLeaseInterestPaymentOnLiability", + "namespace": "us-gaap", + "first_year": 2019, + "last_year": 2026 + }, + { + "tag": "InterestExpenseOnLeaseLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_interest_expense", + "label": "Other Interest Expense", + "description": "Amount of interest expense classified as other.", + "parent": "total_interest_expense", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseOther", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestExpenseOtherLongTermDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherFinanceCost", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "total_interest_expense", + "label": "Total Interest Expense", + "description": "Amount of interest expense classified as operating.", + "parent": "net_interest_income", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseOperating", + "namespace": "us-gaap", + "first_year": 2024, + "last_year": 2026 + }, + { + "tag": "InterestExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestExpenseDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FinanceCosts", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "net_interest_income", + "label": "Net Interest Income / (Expense)", + "description": "Amount of interest income (expense) classified as operating.", + "parent": "total_revenue", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetInterestIncomeExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "revenues_excl_interest_dividends", + "label": "Revenues Excluding Interest and Dividends", + "description": "Revenue excluding interest and dividend income (securities firms).", + "parent": "total_noninterest_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RevenuesExcludingInterestAndDividends", + "namespace": "us-gaap" + }, + { + "tag": "BrokerageCommissionsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentBankingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromDividends", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "trust_fee_income", + "label": "Trust Fees by Commissions", + "description": "Revenue recognized in the period for (1) performance (incentive) fees based on the investment results achieved for management of certain institutional accounts and hedge funds, (2) schedule-based fees earned for management of mutual funds and closed-end funds, based either on average daily net assets or on a combination of the average daily net assets and gross income, and (3) other investment management and advisory fees.", + "parent": "total_noninterest_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "TrustFeesAndCommissions", + "namespace": "us-gaap" + }, + { + "tag": "FeesAndCommissionsFiduciaryActivities", + "namespace": "us-gaap" + }, + { + "tag": "AssetManagementFees", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + }, + { + "tag": "FeesAndCommissions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "FeeAndCommissionIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "service_charges_on_deposits_income", + "label": "Service Charges on Deposit Accounts", + "description": "Includes amounts charged depositors for: (1) maintenance of their accounts (maintenance charges); (2) failure to maintain specified minimum balances on account; (3) exceeding the number of checks or transactions allowed to be processed in a given period; (4) checks drawn on no minimum balance deposit accounts; (5) withdrawals from nontransaction deposit accounts; (6) closing savings accounts before a specified minimum period of time has elapsed; (7) accounts which have remained inactive for extended periods of time or which have become dormant; (8) use of automated teller machines or remote service units; (9) checks drawn against insufficient funds that the bank assesses regardless of whether it decides to pay, return or hold the check; (10) issuing stop payment orders; (11) certifying checks; and (12) accumulating or disbursing funds deposited in IRAs or Keogh Plan accounts when not handled by the bank's trust department. This item does not include penalties assessed on the early withdrawal of time deposits.", + "parent": "total_noninterest_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "FeesAndCommissionsDepositorAccounts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + }, + { + "tag": "CreditrelatedFeeAndCommissionIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_service_charge_income", + "label": "Other Service Charges", + "description": "Fee and commission revenue earned from sources not otherwise specified in the existing taxonomy.", + "parent": "total_noninterest_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "FeesAndCommissionsOther", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + }, + { + "tag": "FeesAndCommissions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "FeesAndCommissionsCreditAndDebitCards", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2012 + } + ] + }, + { + "tag": "net_realized_capital_gains", + "label": "Net Realized & Unrealized Capital Gains on Investments", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": "total_noninterest_income", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RealizedInvestmentGainsLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "AvailableForSaleSecuritiesGrossRealizedGainLossNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "TradingIncomeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsAtFairValueThroughProfitOrLoss", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "premiums_earned", + "label": "Premiums Earned", + "description": "Amount, after premiums ceded to other entities and premiums assumed by the entity, of premiums earned.", + "parent": "total_noninterest_income", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PremiumsEarnedNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PremiumsEarned", + "namespace": "us-gaap" + }, + { + "tag": "NetEarnedPremium", + "namespace": "ifrs-full" + }, + { + "tag": "InsuranceRevenue", + "namespace": "ifrs-full" + }, + { + "tag": "PremiumsWrittenNetOfReinsurance", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeArisingFromInsuranceContracts", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "investment_banking_income", + "label": "Investment Banking Income", + "description": "Amount of fees and commissions from banking, advisory, brokerage, and securities underwriting activities. Activities include, but are not limited to, underwriting securities, private placements of securities, investment advisory and management services, merger and acquisition services, sale and servicing of mutual funds, and other related consulting fees.", + "parent": "total_noninterest_income", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InvestmentBankingAdvisoryBrokerageAndUnderwritingFeesAndCommissions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentBankingRevenue", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BrokerageFeeExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_noninterest_income", + "label": "Other Non-Interest Income", + "description": "Represents the total of noninterest income derived from certain activities and assets including (for example): (1) venture capital investments; (2) bank owned life insurance; (3) foreign currency transactions; and (4) mortgage servicing rights.", + "parent": "total_noninterest_income", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NoninterestIncomeOther", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoninterestIncomeOtherOperatingIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherOperatingIncomeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "OtherIncome", + "namespace": "ifrs-full" + }, + { + "tag": "FeeAndCommissionExpense", + "namespace": "ifrs-full" + }, + { + "tag": "InsuranceServiceResult", + "namespace": "ifrs-full" + }, + { + "tag": "InsuranceFinanceIncomeExpenses", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeExpensesFromReinsuranceContractsHeldOtherThanFinanceIncomeExpenses", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_noninterest_income", + "label": "Total Non-Interest Income", + "description": "The total amount of noninterest income which may be derived from: (1) fees and commissions; (2) premiums earned; (3) insurance policy charges; (4) the sale or disposal of assets; and (5) other sources not otherwise specified.", + "parent": "total_revenue", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NoninterestIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoninterestIncomeOther", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_revenue", + "label": "Other Revenue", + "description": "Other revenue not classified elsewhere.", + "parent": "total_revenue", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingIncomeExpenseNet", + "namespace": "us-gaap" + }, + { + "tag": "OtherIncome", + "namespace": "us-gaap" + }, + { + "tag": "OtherOperatingIncome", + "namespace": "us-gaap" + }, + { + "tag": "OtherNonoperatingIncomeExpense", + "namespace": "us-gaap" + }, + { + "tag": "OtherRevenue", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_interest_income_after_provision", + "label": "Net Interest Income After Provision for Loan Losses", + "description": "Amount of net interest income after provision for credit losses.", + "parent": "total_revenue", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeExpenseAfterProvisionForLoanLoss", + "namespace": "us-gaap" + }, + { + "tag": "NetInterestIncomeLossAfterProvisionForLoanLosses", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_revenue", + "label": "Total Revenue", + "description": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", + "parent": "total_pretax_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SalesRevenueNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "Revenues", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RevenuesNetOfInterestExpense", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueGoodsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "RevenueFromContractWithCustomerIncludingAssessedTax", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "Revenue", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromContractsWithCustomers", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "provision_for_credit_losses", + "label": "Provision for Credit Losses", + "description": "Amount of expense related to estimated loss from loan and lease transactions.", + "parent": "total_pretax_income", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProvisionForLoanAndLeaseLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "ProvisionForCreditLosses", + "namespace": "us-gaap" + }, + { + "tag": "ProvisionForLoanLeaseAndOtherLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncreaseDecreaseInAllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossImpairmentGainAndReversalOfImpairmentLossDeterminedInAccordanceWithIFRS9", + "namespace": "ifrs-full" + }, + { + "tag": "AdditionalAllowanceRecognisedInProfitOrLossAllowanceAccountForCreditLossesOfFinancialAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "salaries_and_employee_benefits_expense", + "label": "Salaries and Employee Benefits", + "description": "Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit.", + "parent": "total_noninterest_expense", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "LaborAndRelatedExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SalariesAndWages", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + }, + { + "tag": "EmployeeBenefitsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "WagesAndSalaries", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensation", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationShorttermEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationPostemploymentBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationSharebasedPayment", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationTerminationBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "PostemploymentBenefitExpenseDefinedBenefitPlans", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_occupancy_equipment_expense", + "label": "Net Occupancy & Equipment Expense", + "description": "Amount of net occupancy expense that may include items, such as depreciation of facilities and equipment, lease expenses, property taxes and property and casualty insurance expense.", + "parent": "total_noninterest_expense", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OccupancyNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OccupancyExpense", + "namespace": "ifrs-full" + }, + { + "tag": "RentalExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "marketing_expense", + "label": "Marketing Expense", + "description": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.", + "parent": "total_noninterest_expense", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SellingAndMarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "MarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdvertisingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdvertisingExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SalesAndMarketingExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "property_liability_insurance_claims", + "label": "Property & Liability Insurance Claims", + "description": "Amount, after effects of policies assumed or ceded, of expense related to the provision for policy benefits and costs incurred.", + "parent": "total_noninterest_expense", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PolicyholderBenefitsAndClaimsIncurredNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LiabilityForClaimsAndClaimsAdjustmentExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncurredClaimsPropertyCasualtyAndLiability", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2023 + }, + { + "tag": "InsuranceServiceExpensesFromInsuranceContractsIssued", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseArisingFromInsuranceContracts", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "policy_acquisition_costs", + "label": "Insurance Policy Acquisition Costs", + "description": "Amount of deferred policy acquisition cost capitalized on contract remaining in force.", + "parent": "total_noninterest_expense", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredPolicyAcquisitionCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DeferredPolicyAcquisitionCostsNet", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "amortization_of_deferred_policy_acquisition_costs", + "label": "Amortization of Deferred Policy Acquisition Costs", + "description": "Amount of amortization expense (reversal of expense) for deferred policy acquisition costs.", + "parent": "total_noninterest_expense", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredPolicyAcquisitionCostAmortizationExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AmortizationOfAcquisitionCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "current_and_future_benefits", + "label": "Current and Future Benefits", + "description": "Amount, after effect of policies assumed or ceded, of expense related to provision for policy benefits and costs incurred for health insurance contracts.", + "parent": "total_noninterest_expense", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PolicyholderBenefitsAndClaimsIncurredHealthCare", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2023 + } + ] + }, + { + "tag": "other_operating_expenses", + "label": "Other Operating Expenses", + "description": "The net amount of other operating income and expenses, the components of which are not separately disclosed on the income statement, from items that are associated with the entity's normal revenue producing operations.", + "parent": "total_noninterest_expense", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingIncomeExpenseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherCostAndExpenseOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherGeneralExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfessionalFeesExpense", + "namespace": "ifrs-full" + }, + { + "tag": "OtherExpenseByNature", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_expense", + "label": "Depreciation Expense", + "description": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", + "parent": "depreciation_and_amortization", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depreciation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationNonproduction", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationPropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "amortization_expense", + "label": "Amortization Expense", + "description": "Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed.", + "parent": "depreciation_and_amortization", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AmortizationOfIntangibleAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Amortization", + "namespace": "us-gaap" + }, + { + "tag": "AmortisationIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "AmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_and_amortization", + "label": "Depreciation and Amortization", + "description": "The aggregate expense recognized in the current period that allocates the cost of tangible and intangible assets over their useful lives.", + "parent": "total_noninterest_expense", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAmortizationAndAccretionNet", + "namespace": "us-gaap" + }, + { + "tag": "OtherDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "impairment_expense", + "label": "Impairment Charge", + "description": "Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible assets and goodwill.", + "parent": "total_noninterest_expense", + "sequence": 12, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AssetImpairmentCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillImpairmentLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillAndIntangibleAssetImpairment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfLongLivedAssetsHeldForUse", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossGoodwill", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "restructuring_charge", + "label": "Restructuring Charge", + "description": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.", + "parent": "total_noninterest_expense", + "sequence": 12, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RestructuringCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RestructuringAndRelatedCostIncurredCost", + "namespace": "us-gaap" + }, + { + "tag": "ExpenseOfRestructuringActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_special_charges", + "label": "Other Special Charges", + "description": "Amount of restructuring charges, remediation cost, and asset impairment loss.", + "parent": "total_noninterest_expense", + "sequence": 13, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RestructuringSettlementAndImpairmentProvisions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherRestructuringCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SpecialChargesGainLoss", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_noninterest_expense", + "label": "Total Non-Interest Expense", + "description": "Total aggregate amount of all noninterest expense.", + "parent": "total_pretax_income", + "sequence": 3, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NoninterestExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BenefitsLossesAndExpenses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "non_operating_income", + "label": "Nonoperating Income / (Expense), net", + "description": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", + "parent": "total_pretax_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NonoperatingIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNonoperatingIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNonoperatingIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "income_before_equity_method", + "label": "Income Before Equity Method Investments", + "description": "Income before equity method investments.", + "parent": "total_pretax_income", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "equity_method_investments", + "label": "Income from Equity Method Investments", + "description": "Equity method investee's income.", + "parent": "total_pretax_income", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "EquityMethodInvestmentSummarizedFinancialInformationNetIncomeLoss", + "namespace": "us-gaap" + }, + { + "tag": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", + "namespace": "us-gaap" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAndJointVenturesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodNetOfTax", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_pretax_income", + "label": "Total Pre-Tax Income ", + "description": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", + "parent": "net_income_continuing", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossBeforeTax", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "AccountingProfit", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_current", + "label": "Current Income Tax Expense (Benefit)", + "description": "Current income tax expense.", + "parent": "income_tax_expense", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CurrentIncomeTaxExpenseBenefit", + "namespace": "us-gaap" + }, + { + "tag": "CurrentTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxExpenseIncomeAndAdjustmentsForCurrentTaxOfPriorPeriods", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForCurrentTaxOfPriorPeriod", + "namespace": "ifrs-full" + }, + { + "tag": "TaxExpenseIncomeAtApplicableTaxRate", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectOfForeignTaxRates", + "namespace": "ifrs-full" + }, + { + "tag": "OtherTaxEffectsForReconciliationBetweenAccountingProfitAndTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectFromChangeInTaxRate", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentAndDeferredTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "TaxBenefitArisingFromPreviouslyUnrecognisedTaxLossTaxCreditOrTemporaryDifferenceOfPriorPeriodUsedToReduceCurrentTaxExpense", + "namespace": "ifrs-full" + }, + { + "tag": "TaxExpenseRelatingToProfitLossFromOrdinaryActivitiesOfDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectOfExpenseNotDeductibleInDeterminingTaxableProfitTaxLoss", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_deferred", + "label": "Deferred Income Tax Expense (Benefit)", + "description": "Deferred income tax expense.", + "parent": "income_tax_expense", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxExpenseBenefit", + "namespace": "us-gaap" + }, + { + "tag": "DeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDeferredTaxOfPriorPeriods", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRelatingToOriginationAndReversalOfTemporaryDifferences", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRelatingToTaxRateChangesOrImpositionOfNewTaxes", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComponentsOfDeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseArisingFromWritedownOrReversalOfWritedownOfDeferredTaxAsset", + "namespace": "ifrs-full" + }, + { + "tag": "TaxBenefitArisingFromPreviouslyUnrecognisedTaxLossTaxCreditOrTemporaryDifferenceOfPriorPeriodUsedToReduceDeferredTaxExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_expense", + "label": "Income Tax Expense", + "description": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", + "parent": "net_income_continuing", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeTaxExpenseBenefit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxExpenseContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "FederalHomeLoanBankAssessments", + "namespace": "us-gaap" + }, + { + "tag": "FederalIncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "AffordableHousingProgramAssessments", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_continuing", + "label": "Net Income / (Loss) Continuing Operations", + "description": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", + "parent": "net_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossBeforeExtraordinaryItemsAndCumulativeEffectOfChangeInAccountingPrinciple", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperationsAttributableToOrdinaryEquityHoldersOfParentEntity", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income_discontinued", + "label": "Net Income / (Loss) Discontinued Operations", + "description": "Amount after tax of income (loss) from a discontinued operation including the portion attributable to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + "parent": "net_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromDiscontinuedOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "extraordinary_income", + "label": "Extraordinary Income / (Loss), net", + "description": "Description of the gains (losses), after tax, arising from an event or transaction that is both unusual in nature and infrequent in occurrence when considered in relation to the environment in which the entity operates and which represents the portion assigned to noncontrolling interest, if any. This amount is the income statement amount which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest).", + "parent": "net_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ExtraordinaryItemNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "IncomeLossFromExtraordinaryItemsNetOfTax", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_adjustments_to_consolidated_net_income", + "label": "Other Adjustments to Consolidated Net Income / (Loss)", + "description": "Amount after tax and reclassification adjustments of other comprehensive income (loss).", + "parent": "net_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTax", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "gain_on_sale_properties", + "label": "Gain (Loss) on Sale of Properties, Net of Tax", + "description": "Gain/loss on sale of property.", + "parent": "net_income", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfPropertiesNetOfApplicableIncomeTaxes", + "namespace": "us-gaap" + }, + { + "tag": "GainsLossesOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_comprehensive_income_parent", + "label": "OCI Attributable to Parent", + "description": "OCI attributable to parent.", + "parent": "comprehensive_income_parent", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", + "namespace": "us-gaap" + }, + { + "tag": "OtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxCashFlowHedges", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxGainsLossesOnRemeasurementsOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxChangeInFairValueOfFinancialLiabilityAttributableToChangeInCreditRiskOfLiability", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxGainsLossesFromInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxHedgesOfNetInvestmentsInForeignOperations", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxChangeInValueOfForwardElementsOfForwardContracts", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeThatWillBeReclassifiedToProfitOrLossNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeThatWillNotBeReclassifiedToProfitOrLossNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxCashFlowHedges", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxGainsLossesOnRemeasurementsOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxGainsLossesFromInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxHedgesOfNetInvestmentsInForeignOperations", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxChangeInValueOfForwardElementsOfForwardContracts", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnCashFlowHedgesNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnCashFlowHedgesBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgesOfNetInvestmentsInForeignOperationsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgesOfNetInvestmentsInForeignOperationsBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnRemeasuringAvailableforsaleFinancialAssetsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHeldtomaturityInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnCashFlowHedgesNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnCashFlowHedgesBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnExchangeDifferencesOnTranslationNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnExchangeDifferencesOnTranslationBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnHedgesOfNetInvestmentsInForeignOperationsBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnHedgesOfNetInvestmentsInForeignOperationsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnAvailableforsaleFinancialAssetsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncomeThatWillBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncomeThatWillNotBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToCashFlowHedgesOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToHedgesOfNetInvestmentsInForeignOperationsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToRemeasurementsOfDefinedBenefitPlansOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToExchangeDifferencesOnTranslationOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToChangeInValueOfForwardElementsOfForwardContractsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToAvailableforsaleFinancialAssetsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToChangesInFairValueOfFinancialLiabilityAttributableToChangeInCreditRiskOfLiabilityOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToInvestmentsInEquityInstrumentsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillNotBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillBeReclassifiedToProfitOrLossBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillNotBeReclassifiedToProfitOrLossBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeAttributableToOwnersOfParent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "comprehensive_income_parent", + "label": "Comprehensive Income (Loss) Attributable to Parent", + "description": "Comprehensive income attributable to parent.", + "parent": "comprehensive_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTax", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncomeAttributableToOwnersOfParent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_comprehensive_income_nci", + "label": "OCI Attributable to NCI", + "description": "OCI attributable to NCI.", + "parent": "comprehensive_income_nci", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "comprehensive_income_nci", + "label": "Comprehensive Income (Loss) Attributable to NCI", + "description": "Comprehensive income attributable to NCI.", + "parent": "comprehensive_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncomeAttributableToNoncontrollingInterests", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "comprehensive_income", + "label": "Comprehensive Income (Loss)", + "description": "Comprehensive income including NCI.", + "parent": "net_income", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income", + "label": "Consolidated Net Income / (Loss)", + "description": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", + "parent": "net_income_to_common", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "preferred_dividends", + "label": "Preferred Stock Dividends Declared", + "description": "Amount of paid and unpaid preferred stock dividends declared with the form of settlement in cash, stock and payment-in-kind (PIK).", + "parent": "net_income_to_common", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DividendsPreferredStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PreferredStockDividendsAndOtherAdjustments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PreferredStockDividends", + "namespace": "us-gaap" + }, + { + "tag": "PreferredStockDividendsIncomeStatementImpact", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentToProfitLossForPreferenceShareDividends", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income_nci_redeemable", + "label": "Net Income Attributable to Redeemable NCI", + "description": "Income attributable to redeemable NCI.", + "parent": "net_income_to_noncontrolling_interest", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToRedeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterestInNetIncomeLossOperatingPartnershipsRedeemable", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_nci_nonredeemable", + "label": "Net Income Attributable to Nonredeemable NCI", + "description": "Income attributable to nonredeemable NCI.", + "parent": "net_income_to_noncontrolling_interest", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToNonredeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterestInNetIncomeLossPreferredUnitHoldersNonredeemable", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_to_noncontrolling_interest", + "label": "Net Income / (Loss) Attributable to Noncontrolling Interest", + "description": "Amount of Net Income (Loss) attributable to noncontrolling interest.", + "parent": "net_income_to_common", + "sequence": 3, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToNoncontrollingInterests", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_adjustments_to_net_income_to_common", + "label": "Other Adjustment to Net Income / (Loss) Attributable to Common Shareholders)", + "description": "The aggregate value of preferred stock dividends and other adjustments necessary to derive net income apportioned to common stockholders.", + "parent": "net_income_to_common", + "sequence": 4, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PreferredStockDividendsAndOtherAdjustments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic", + "namespace": "us-gaap" + }, + { + "tag": "UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + } + ] + }, + { + "tag": "net_income_to_common", + "label": "Net Income / (Loss) Attributable to Common Shareholders", + "description": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLossAttributableToParentNetOfFederalHomeLoanBankAssessments", + "namespace": "us-gaap" + }, + { + "tag": "ProfitLossAttributableToOrdinaryEquityHoldersOfParentEntity", + "namespace": "ifrs-full" + }, + { + "tag": "ProfitLossAttributableToOrdinaryEquityHoldersOfParentEntityIncludingDilutiveEffects", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "weighted_ave_basic_shares_os", + "label": "Weighted Average Basic Shares Outstanding", + "description": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", + "parent": "basic_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfSharesOutstandingBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "WeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "basic_eps", + "label": "Basic Earnings per Share", + "description": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BasicEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "weighted_ave_diluted_shares_os", + "label": "Weighted Average Diluted Shares Outstanding", + "description": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", + "parent": "diluted_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfDilutedSharesOutstanding", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustedWeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DilutiveEffectOfShareOptionsOnNumberOfOrdinaryShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "diluted_eps", + "label": "Diluted Earnings per Share", + "description": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + "parent": null, + "sequence": 4, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareDiluted", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DilutedEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "weighted_ave_basic_diluted_shares_os", + "label": "Weighted Average Basic & Diluted Shares Outstanding", + "description": "Average number of shares or units issued and outstanding that are used in calculating basic and diluted earnings per share (EPS).", + "parent": "basic_diluted_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfShareOutstandingBasicAndDiluted", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2021 + }, + { + "tag": "WeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "basic_diluted_eps", + "label": "Basic & Diluted Earnings per Share", + "description": "The amount of net income or loss for the period per each share in instances when basic and diluted earnings per share are the same amount and reported as a single line item on the face of the financial statements. Basic earnings per share is the amount of net income or loss for the period per each share of common stock or unit outstanding during the reporting period. Diluted earnings per share includes the amount of net income or loss for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + "parent": null, + "sequence": 5, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareBasicAndDiluted", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "BasicEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_dividends_per_share", + "label": "Cash Dividends to Common per Share", + "description": "Aggregate dividends declared during the period for each share of common stock outstanding.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CommonStockDividendsPerShareDeclared", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommonStockDividendsPerShareCashPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPaidOrdinarySharesPerShare", + "namespace": "ifrs-full" + } + ] + } + ], + "diversified": [ + { + "tag": "sga_expense", + "label": "Selling, General & Admin Expense", + "description": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", + "parent": "costs_and_expenses", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SellingGeneralAndAdministrativeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SellingGeneralAndAdministrativeExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SellingAndMarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GeneralAndAdministrativeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GeneralAndAdministrativeExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SalesAndMarketingExpense", + "namespace": "ifrs-full" + }, + { + "tag": "EmployeeBenefitsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "WagesAndSalaries", + "namespace": "ifrs-full" + }, + { + "tag": "OtherEmployeeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "PostemploymentBenefitExpenseDefinedContributionPlans", + "namespace": "ifrs-full" + }, + { + "tag": "PostemploymentBenefitExpenseDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "AuditorsRemuneration", + "namespace": "ifrs-full" + }, + { + "tag": "AdministrativeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "CommunicationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DistributionCosts", + "namespace": "ifrs-full" + }, + { + "tag": "SocialSecurityContributions", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensation", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationShorttermEmployeeBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationPostemploymentBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationSharebasedPayment", + "namespace": "ifrs-full" + }, + { + "tag": "KeyManagementPersonnelCompensationTerminationBenefits", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseFromEquitysettledSharebasedPaymentTransactionsInWhichGoodsOrServicesReceivedDidNotQualifyForRecognitionAsAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "marketing_expense", + "label": "Marketing Expense", + "description": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.", + "parent": "costs_and_expenses", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SellingAndMarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "MarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdvertisingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdvertisingExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "rd_expense", + "label": "Research & Development Expense", + "description": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.", + "parent": "costs_and_expenses", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ResearchAndDevelopmentExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ResearchAndDevelopmentExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "exploration_expense", + "label": "Exploration Expense", + "description": "Exploration expenses (including prospecting) related to oil and gas producing entities and would be included in operating expenses of that entity. Costs incurred in identifying areas that may warrant examination and in examining specific areas that are considered to have prospects of containing oil and gas reserves, including costs of drilling exploratory wells and exploratory-type stratigraphic test wells. Exploration costs may be incurred both before acquiring the related property (sometimes referred to in part as prospecting costs) and after acquiring the property. Principal types of exploration costs, which include depreciation and applicable operating costs of support equipment and facilities and other costs of exploration activities, are: (i) Costs of topographical, geographical and geophysical studies, rights of access to properties to conduct those studies, and salaries and other expenses of geologists, geophysical crews, and others conducting those studies. Collectively, these are sometimes referred to as geological and geophysical or \"G&G\" costs. (ii) Costs of carrying and retaining undeveloped properties, such as delay rentals, ad valorem taxes on properties, legal costs for title defense, and the maintenance of land and lease records. (iii) Dry hole contributions and bottom hole contributions. (iv) Costs of drilling and equipping exploratory wells. (v) Costs of drilling exploratory-type stratigraphic test wells.", + "parent": "costs_and_expenses", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ExplorationExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ExplorationCosts", + "namespace": "us-gaap" + }, + { + "tag": "ResultsOfOperationsExplorationExpense", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "depreciation_expense", + "label": "Depreciation Expense", + "description": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", + "parent": "depreciation_and_amortization", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depreciation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationNonproduction", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationPropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DepreciationExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DepreciationRightofuseAssets", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "amortization_expense", + "label": "Amortization Expense", + "description": "Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed.", + "parent": "depreciation_and_amortization", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AmortizationOfIntangibleAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Amortization", + "namespace": "us-gaap" + }, + { + "tag": "AmortisationIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "AmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_and_amortization", + "label": "Depreciation and Amortization", + "description": "The aggregate expense recognized in the current period that allocates the cost of tangible and intangible assets over their useful lives.", + "parent": "costs_and_expenses", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAmortizationAndAccretionNet", + "namespace": "us-gaap" + }, + { + "tag": "OtherDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depletion_expense", + "label": "Depletion Expense", + "description": "The noncash expense charged against earnings to recognize the consumption of natural resources.", + "parent": "costs_and_expenses", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depletion", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostDepletion", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "DepletionOfOilAndGasProperties", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_operating_expenses", + "label": "Other Operating Expenses / (Income)", + "description": "The net amount of other operating income and expenses, the components of which are not separately disclosed on the income statement, from items that are associated with the entity's normal revenue producing operations.", + "parent": "costs_and_expenses", + "sequence": 8, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingIncomeExpenseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherCostAndExpenseOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherGeneralExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BankAndSimilarCharges", + "namespace": "ifrs-full" + }, + { + "tag": "RentalExpense", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseRelatingToShorttermLeasesForWhichRecognitionExemptionHasBeenUsed", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseRelatingToLeasesOfLowvalueAssetsForWhichRecognitionExemptionHasBeenUsed", + "namespace": "ifrs-full" + }, + { + "tag": "ExpenseRelatingToVariableLeasePaymentsNotIncludedInMeasurementOfLeaseLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "LeaseAndSubleasePaymentsRecognisedAsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "DirectOperatingExpenseFromInvestmentProperty", + "namespace": "ifrs-full" + }, + { + "tag": "PostemploymentBenefitExpenseInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "TerminationBenefitsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "OtherExpenseByNature", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "impairment_expense", + "label": "Impairment Charge", + "description": "Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible assets and goodwill.", + "parent": "costs_and_expenses", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AssetImpairmentCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillImpairmentLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillAndIntangibleAssetImpairment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfLongLivedAssetsHeldForUse", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "ImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ImpairmentLossRecognisedInProfitOrLossPropertyPlantAndEquipment", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "restructuring_charge", + "label": "Restructuring Charge", + "description": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.", + "parent": "costs_and_expenses", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RestructuringCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RestructuringAndRelatedCostIncurredCost", + "namespace": "us-gaap" + }, + { + "tag": "ExpenseOfRestructuringActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_special_charges", + "label": "Other Special Charges / (Income)", + "description": "Amount of restructuring charges, remediation cost, and asset impairment loss.", + "parent": "costs_and_expenses", + "sequence": 11, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RestructuringSettlementAndImpairmentProvisions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherRestructuringCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SpecialChargesGainLoss", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "costs_and_expenses", + "label": "Costs & Expenses", + "description": "Total costs of sales and operating expenses for the period.", + "parent": null, + "sequence": 1, + "factor": "0", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CostsAndExpenses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BenefitsLossesAndExpenses", + "namespace": "us-gaap" + }, + { + "tag": "CostsAndExpenses", + "namespace": "ifrs-full" + }, + { + "tag": "CostOfInventoriesRecognisedAsExpenseDuringPeriod", + "namespace": "ifrs-full" + }, + { + "tag": "InventoryWritedown2011", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "operating_revenue", + "label": "Operating Revenue", + "description": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", + "parent": "total_revenue", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", + "namespace": "us-gaap" + }, + { + "tag": "Revenues", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SalesRevenueNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "SalesRevenueGoodsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "RevenueFromContractWithCustomerIncludingAssessedTax", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "Revenue", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromContractsWithCustomers", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SalesRevenueServicesNet", + "namespace": "us-gaap" + }, + { + "tag": "RevenuesNetOfInterestExpense", + "namespace": "us-gaap" + }, + { + "tag": "RealEstateRevenueNet", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndDividendIncomeOperating", + "namespace": "us-gaap" + }, + { + "tag": "RevenueMineralSales", + "namespace": "us-gaap" + }, + { + "tag": "OilAndGasRevenue", + "namespace": "us-gaap" + }, + { + "tag": "FinancialServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RegulatedAndUnregulatedOperatingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ShippingAndHandlingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueFromEnergyCommoditiesAndServices", + "namespace": "us-gaap" + }, + { + "tag": "UtilityRevenue", + "namespace": "us-gaap" + }, + { + "tag": "PhaseInPlanAmountOfCapitalizedCostsRecovered", + "namespace": "us-gaap" + }, + { + "tag": "SecondaryProcessingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueSteamProductsAndServices", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromLeasedAndOwnedHotels", + "namespace": "us-gaap" + }, + { + "tag": "FranchisorRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SubscriptionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "AdvertisingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "AdmissionsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromEnrollmentAndRegistrationFeesExcludingHospitalityEnterprises", + "namespace": "us-gaap" + }, + { + "tag": "MembershipDuesRevenueOnGoing", + "namespace": "us-gaap" + }, + { + "tag": "LicensesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RoyaltyRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesOfOilAndGasProspects", + "namespace": "us-gaap" + }, + { + "tag": "ClearingFeesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ContractsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromGrants", + "namespace": "us-gaap" + }, + { + "tag": "RevenueOtherManufacturedProducts", + "namespace": "us-gaap" + }, + { + "tag": "ConstructionMaterialsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "TimberRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RecyclingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "PassengerRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SaleOfTrustAssetsToPayExpenses", + "namespace": "us-gaap" + }, + { + "tag": "VehicleTollRevenue", + "namespace": "us-gaap" + }, + { + "tag": "CargoAndFreightRevenue", + "namespace": "us-gaap" + }, + { + "tag": "NetInvestmentIncome", + "namespace": "us-gaap" + }, + { + "tag": "RevenuesExcludingInterestAndDividends", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentBankingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "UnderwritingIncomeLoss", + "namespace": "us-gaap" + }, + { + "tag": "MarketDataRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricUtilityRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ReimbursementRevenue", + "namespace": "us-gaap" + }, + { + "tag": "LicenseAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "OilAndGasSalesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RefiningAndMarketingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "GasDomesticRegulatedRevenue", + "namespace": "us-gaap" + }, + { + "tag": "GoldProductsAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "NaturalGasProductionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentAdvisoryManagementAndAdministrativeFees", + "namespace": "us-gaap" + }, + { + "tag": "AssetManagementFees1", + "namespace": "us-gaap" + }, + { + "tag": "RevenueOilAndGasServices", + "namespace": "us-gaap" + }, + { + "tag": "ElectricalGenerationRevenue", + "namespace": "us-gaap" + }, + { + "tag": "FoodAndBeverageRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromPurchasedOilAndGas", + "namespace": "us-gaap" + }, + { + "tag": "TechnologyServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "HomeBuildingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RetailRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricalTransmissionAndDistributionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueEnergyServices", + "namespace": "us-gaap" + }, + { + "tag": "OperatingLeasesIncomeStatementLeaseRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricDomesticRegulatedRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndFeeIncomeLoansConsumerInstallmentAutomobilesMarineAndOtherVehicles", + "namespace": "us-gaap" + }, + { + "tag": "FeesAndCommissions", + "namespace": "us-gaap" + }, + { + "tag": "LandSales", + "namespace": "us-gaap" + }, + { + "tag": "GasGatheringTransportationMarketingAndProcessingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromRelatedParties", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationRevenue", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationRevenueNetOfPatientServiceRevenueProvisions", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationPatientServiceRevenueLessProvisionForBadDebts", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationPatientServiceRevenue", + "namespace": "us-gaap" + }, + { + "tag": "OtherSalesRevenueNet", + "namespace": "us-gaap" + }, + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap" + }, + { + "tag": "CoalProductsAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesOfRealEstate", + "namespace": "us-gaap" + }, + { + "tag": "FranchiseRevenue", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_revenue", + "label": "Other Revenue", + "description": "Revenues from the sale of other goods or rendering of other services, not elsewhere specified in the taxonomy; net of (reduced by) sales adjustments, returns, allowances, and discounts.", + "parent": "total_revenue", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherSalesRevenueNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "OtherRevenue", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "OtherIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherIncome", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromRoyalties", + "namespace": "ifrs-full" + }, + { + "tag": "RevenueFromDividends", + "namespace": "ifrs-full" + }, + { + "tag": "RentalIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OperatingLeaseIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "excise_and_sales_taxes", + "label": "Excise and Sales Taxes", + "description": "Amount of excise and sales taxes.", + "parent": "total_revenue", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ExciseAndSalesTaxes", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_revenue", + "label": "Total Revenue", + "description": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", + "parent": "total_operating_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SalesRevenueNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "Revenues", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueGoodsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "RevenueFromContractWithCustomerIncludingAssessedTax", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "Revenue", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromContractsWithCustomers", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SalesRevenueServicesNet", + "namespace": "us-gaap" + }, + { + "tag": "RevenuesNetOfInterestExpense", + "namespace": "us-gaap" + }, + { + "tag": "RealEstateRevenueNet", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndDividendIncomeOperating", + "namespace": "us-gaap" + }, + { + "tag": "RevenueMineralSales", + "namespace": "us-gaap" + }, + { + "tag": "OilAndGasRevenue", + "namespace": "us-gaap" + }, + { + "tag": "FinancialServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RegulatedAndUnregulatedOperatingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ShippingAndHandlingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueFromEnergyCommoditiesAndServices", + "namespace": "us-gaap" + }, + { + "tag": "UtilityRevenue", + "namespace": "us-gaap" + }, + { + "tag": "PhaseInPlanAmountOfCapitalizedCostsRecovered", + "namespace": "us-gaap" + }, + { + "tag": "SecondaryProcessingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueSteamProductsAndServices", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromLeasedAndOwnedHotels", + "namespace": "us-gaap" + }, + { + "tag": "FranchisorRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SubscriptionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "AdvertisingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "AdmissionsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromEnrollmentAndRegistrationFeesExcludingHospitalityEnterprises", + "namespace": "us-gaap" + }, + { + "tag": "MembershipDuesRevenueOnGoing", + "namespace": "us-gaap" + }, + { + "tag": "LicensesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RoyaltyRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesOfOilAndGasProspects", + "namespace": "us-gaap" + }, + { + "tag": "ClearingFeesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ContractsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromGrants", + "namespace": "us-gaap" + }, + { + "tag": "RevenueOtherManufacturedProducts", + "namespace": "us-gaap" + }, + { + "tag": "ConstructionMaterialsRevenue", + "namespace": "us-gaap" + }, + { + "tag": "TimberRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RecyclingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "PassengerRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SaleOfTrustAssetsToPayExpenses", + "namespace": "us-gaap" + }, + { + "tag": "VehicleTollRevenue", + "namespace": "us-gaap" + }, + { + "tag": "CargoAndFreightRevenue", + "namespace": "us-gaap" + }, + { + "tag": "NetInvestmentIncome", + "namespace": "us-gaap" + }, + { + "tag": "RevenuesExcludingInterestAndDividends", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentBankingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "UnderwritingIncomeLoss", + "namespace": "us-gaap" + }, + { + "tag": "MarketDataRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricUtilityRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ReimbursementRevenue", + "namespace": "us-gaap" + }, + { + "tag": "LicenseAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "OilAndGasSalesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RefiningAndMarketingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "GasDomesticRegulatedRevenue", + "namespace": "us-gaap" + }, + { + "tag": "GoldProductsAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "NaturalGasProductionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentAdvisoryManagementAndAdministrativeFees", + "namespace": "us-gaap" + }, + { + "tag": "AssetManagementFees1", + "namespace": "us-gaap" + }, + { + "tag": "RevenueOilAndGasServices", + "namespace": "us-gaap" + }, + { + "tag": "ElectricalGenerationRevenue", + "namespace": "us-gaap" + }, + { + "tag": "FoodAndBeverageRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromPurchasedOilAndGas", + "namespace": "us-gaap" + }, + { + "tag": "TechnologyServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "HomeBuildingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RetailRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricalTransmissionAndDistributionRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueEnergyServices", + "namespace": "us-gaap" + }, + { + "tag": "OperatingLeasesIncomeStatementLeaseRevenue", + "namespace": "us-gaap" + }, + { + "tag": "ElectricDomesticRegulatedRevenue", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndFeeIncomeLoansConsumerInstallmentAutomobilesMarineAndOtherVehicles", + "namespace": "us-gaap" + }, + { + "tag": "FeesAndCommissions", + "namespace": "us-gaap" + }, + { + "tag": "LandSales", + "namespace": "us-gaap" + }, + { + "tag": "GasGatheringTransportationMarketingAndProcessingRevenue", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromRelatedParties", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationRevenue", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationRevenueNetOfPatientServiceRevenueProvisions", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationPatientServiceRevenueLessProvisionForBadDebts", + "namespace": "us-gaap" + }, + { + "tag": "HealthCareOrganizationPatientServiceRevenue", + "namespace": "us-gaap" + }, + { + "tag": "OtherSalesRevenueNet", + "namespace": "us-gaap" + }, + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap" + }, + { + "tag": "CoalProductsAndServicesRevenue", + "namespace": "us-gaap" + }, + { + "tag": "SalesOfRealEstate", + "namespace": "us-gaap" + }, + { + "tag": "FranchiseRevenue", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_operating_expenses", + "label": "Total Operating Expenses", + "description": "Generally recurring costs associated with normal operations.", + "parent": "total_operating_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OperatingExpenses", + "namespace": "us-gaap" + }, + { + "tag": "OperatingCostsAndExpenses", + "namespace": "us-gaap" + }, + { + "tag": "OperatingExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_operating_income", + "label": "Total Operating Income", + "description": "The net result for the period of deducting operating expenses from operating revenues.", + "parent": "total_pretax_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OperatingIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromOperatingActivities", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet", + "namespace": "us-gaap" + }, + { + "tag": "OperatingProfit", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_interest_expense", + "label": "Interest Expense", + "description": "Amount of interest expense classified as operating.", + "parent": "total_other_income", + "sequence": 1, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseOperating", + "namespace": "us-gaap", + "first_year": 2024, + "last_year": 2026 + }, + { + "tag": "InterestExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestExpenseDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FinanceCosts", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestExpenseOnLeaseLiabilities", + "namespace": "ifrs-full" + }, + { + "tag": "InterestExpenseOnBorrowings", + "namespace": "ifrs-full" + }, + { + "tag": "BorrowingCostsRecognisedAsExpense", + "namespace": "ifrs-full" + }, + { + "tag": "OtherFinanceCost", + "namespace": "ifrs-full" + }, + { + "tag": "InterestExpenseOnOtherFinancialLiabilities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_interest_income", + "label": "Interest & Investment Income", + "description": "Amount of operating interest income, including, but not limited to, amortization and accretion of premiums and discounts on securities.", + "parent": "total_other_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestAndDividendIncomeOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentIncomeInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InvestmentIncomeInterestAndDividend", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FinanceIncome", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromInterest", + "namespace": "ifrs-full" + }, + { + "tag": "InterestRevenueExpense", + "namespace": "ifrs-full" + }, + { + "tag": "InterestIncomeOnCashAndCashEquivalents", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_income", + "label": "Other Income / (Expense), net", + "description": "Amount of income (expense) related to nonoperating activities, classified as other.", + "parent": "total_other_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherNonoperatingIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNonoperatingIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherOperatingIncomeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "OtherNonoperatingIncomeExpense", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "FinanceIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherFinanceIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherFinanceIncomeCost", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_other_income", + "label": "Total Other Income / (Expense), net", + "description": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", + "parent": "total_pretax_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NonoperatingIncomeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NonoperatingGainsLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherGainsLosses", + "namespace": "ifrs-full" + }, + { + "tag": "NetForeignExchangeGain", + "namespace": "ifrs-full" + }, + { + "tag": "NetForeignExchangeLoss", + "namespace": "ifrs-full" + }, + { + "tag": "GainsOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + }, + { + "tag": "LossesOnChangeInFairValueOfDerivatives", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgedItemAttributableToHedgedRisk", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_before_equity_method", + "label": "Income Before Equity Method Investments", + "description": "Amount before equity method investments.", + "parent": "total_pretax_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "equity_method_investments", + "label": "Income from Equity Method Investments", + "description": "Equity method investee's income (loss).", + "parent": "total_pretax_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "EquityMethodInvestmentSummarizedFinancialInformationNetIncomeLoss", + "namespace": "us-gaap" + }, + { + "tag": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", + "namespace": "us-gaap" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAndJointVenturesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodNetOfTax", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_pretax_income", + "label": "Total Pre-Tax Income ", + "description": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", + "parent": "net_income_continuing", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossBeforeTax", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "AccountingProfit", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_current", + "label": "Current Income Tax Expense (Benefit)", + "description": "Current income tax expense.", + "parent": "income_tax_expense", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CurrentIncomeTaxExpenseBenefit", + "namespace": "us-gaap" + }, + { + "tag": "CurrentTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxExpenseIncomeAndAdjustmentsForCurrentTaxOfPriorPeriods", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForCurrentTaxOfPriorPeriod", + "namespace": "ifrs-full" + }, + { + "tag": "TaxExpenseIncomeAtApplicableTaxRate", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectOfForeignTaxRates", + "namespace": "ifrs-full" + }, + { + "tag": "OtherTaxEffectsForReconciliationBetweenAccountingProfitAndTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectFromChangeInTaxRate", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentAndDeferredTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "TaxBenefitArisingFromPreviouslyUnrecognisedTaxLossTaxCreditOrTemporaryDifferenceOfPriorPeriodUsedToReduceCurrentTaxExpense", + "namespace": "ifrs-full" + }, + { + "tag": "TaxExpenseRelatingToProfitLossFromOrdinaryActivitiesOfDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "TaxEffectOfExpenseNotDeductibleInDeterminingTaxableProfitTaxLoss", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_deferred", + "label": "Deferred Income Tax Expense (Benefit)", + "description": "Deferred income tax expense.", + "parent": "income_tax_expense", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxExpenseBenefit", + "namespace": "us-gaap" + }, + { + "tag": "DeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForDeferredTaxOfPriorPeriods", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRelatingToOriginationAndReversalOfTemporaryDifferences", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRelatingToTaxRateChangesOrImpositionOfNewTaxes", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxRelatingToItemsChargedOrCreditedDirectlyToEquity", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComponentsOfDeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseArisingFromWritedownOrReversalOfWritedownOfDeferredTaxAsset", + "namespace": "ifrs-full" + }, + { + "tag": "TaxBenefitArisingFromPreviouslyUnrecognisedTaxLossTaxCreditOrTemporaryDifferenceOfPriorPeriodUsedToReduceDeferredTaxExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_expense", + "label": "Income Tax Expense", + "description": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", + "parent": "net_income_continuing", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeTaxExpenseBenefit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxExpenseContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "FederalHomeLoanBankAssessments", + "namespace": "us-gaap" + }, + { + "tag": "FederalIncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "StateAndLocalIncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_continuing", + "label": "Net Income / (Loss) Continuing Operations", + "description": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", + "parent": "net_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossBeforeExtraordinaryItemsAndCumulativeEffectOfChangeInAccountingPrinciple", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperationsAttributableToOrdinaryEquityHoldersOfParentEntity", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income_discontinued", + "label": "Net Income / (Loss) Discontinued Operations", + "description": "Amount after tax of income (loss) from a discontinued operation including the portion attributable to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + "parent": "net_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromDiscontinuedOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "ProfitLossBeforeTaxDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "ProfitLossFromDiscontinuedOperationsAttributableToNoncontrollingInterests", + "namespace": "ifrs-full" + }, + { + "tag": "GainLossRecognisedOnMeasurementToFairValueLessCostsToSellOrOnDisposalOfAssetsOrDisposalGroupsConstitutingDiscontinuedOperation", + "namespace": "ifrs-full" + }, + { + "tag": "RevenueDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "ExpensesDiscontinuedOperations", + "namespace": "ifrs-full" + }, + { + "tag": "TaxExpenseRelatingToGainLossOnDiscontinuance", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "extraordinary_income", + "label": "Extraordinary Income / (Loss), net", + "description": "Description of the gains (losses), after tax, arising from an event or transaction that is both unusual in nature and infrequent in occurrence when considered in relation to the environment in which the entity operates and which represents the portion assigned to noncontrolling interest, if any. This amount is the income statement amount which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest).", + "parent": "net_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ExtraordinaryItemNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "IncomeLossFromExtraordinaryItemsNetOfTax", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_adjustments_to_consolidated_net_income", + "label": "Other Adjustments to Consolidated Net Income / (Loss)", + "description": "Amount after tax and reclassification adjustments of other comprehensive income (loss).", + "parent": "net_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTax", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "gain_on_sale_properties", + "label": "Gain (Loss) on Sale of Properties, Net of Tax", + "description": "Gain/loss on sale of property, net of tax.", + "parent": "net_income", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfPropertiesNetOfApplicableIncomeTaxes", + "namespace": "us-gaap" + }, + { + "tag": "GainsLossesOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnDisposalsOfInvestments", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_comprehensive_income_parent", + "label": "OCI Attributable to Parent", + "description": "Amount after tax of OCI attributable to parent.", + "parent": "comprehensive_income_parent", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", + "namespace": "us-gaap" + }, + { + "tag": "OtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxCashFlowHedges", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxGainsLossesOnRemeasurementsOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxChangeInFairValueOfFinancialLiabilityAttributableToChangeInCreditRiskOfLiability", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxGainsLossesFromInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxHedgesOfNetInvestmentsInForeignOperations", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxChangeInValueOfForwardElementsOfForwardContracts", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeThatWillBeReclassifiedToProfitOrLossNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeThatWillNotBeReclassifiedToProfitOrLossNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxCashFlowHedges", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxGainsLossesOnRemeasurementsOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxGainsLossesFromInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxHedgesOfNetInvestmentsInForeignOperations", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxChangeInValueOfForwardElementsOfForwardContracts", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnCashFlowHedgesNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnCashFlowHedgesBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgesOfNetInvestmentsInForeignOperationsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgesOfNetInvestmentsInForeignOperationsBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnRemeasuringAvailableforsaleFinancialAssetsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHeldtomaturityInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnCashFlowHedgesNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnCashFlowHedgesBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnExchangeDifferencesOnTranslationNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnExchangeDifferencesOnTranslationBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnHedgesOfNetInvestmentsInForeignOperationsBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnHedgesOfNetInvestmentsInForeignOperationsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnAvailableforsaleFinancialAssetsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncomeThatWillBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncomeThatWillNotBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToCashFlowHedgesOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToHedgesOfNetInvestmentsInForeignOperationsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToRemeasurementsOfDefinedBenefitPlansOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToExchangeDifferencesOnTranslationOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToChangeInValueOfForwardElementsOfForwardContractsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToAvailableforsaleFinancialAssetsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToChangesInFairValueOfFinancialLiabilityAttributableToChangeInCreditRiskOfLiabilityOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToInvestmentsInEquityInstrumentsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillNotBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillBeReclassifiedToProfitOrLossBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillNotBeReclassifiedToProfitOrLossBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeAttributableToOwnersOfParent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "comprehensive_income_parent", + "label": "Comprehensive Income (Loss) Attributable to Parent", + "description": "Amount after tax, attributable to parent.", + "parent": "comprehensive_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTax", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncomeAttributableToOwnersOfParent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_comprehensive_income_nci", + "label": "OCI Attributable to NCI", + "description": "Amount after tax of OCI attributable to NCI.", + "parent": "comprehensive_income_nci", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "comprehensive_income_nci", + "label": "Comprehensive Income (Loss) Attributable to NCI", + "description": "Amount after tax, attributable to NCI.", + "parent": "comprehensive_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncomeAttributableToNoncontrollingInterests", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "comprehensive_income", + "label": "Comprehensive Income (Loss)", + "description": "Amount after tax of increase (decrease) in equity.", + "parent": "net_income", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income", + "label": "Consolidated Net Income / (Loss)", + "description": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", + "parent": "net_income_to_common", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "preferred_dividends", + "label": "Preferred Stock Dividends Declared", + "description": "Amount of paid and unpaid preferred stock dividends declared with the form of settlement in cash, stock and payment-in-kind (PIK).", + "parent": "net_income_to_common", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DividendsPreferredStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PreferredStockDividendsAndOtherAdjustments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PreferredStockDividends", + "namespace": "us-gaap" + }, + { + "tag": "PreferredStockDividendsIncomeStatementImpact", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentToProfitLossForPreferenceShareDividends", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income_nci_redeemable", + "label": "Net Income Attributable to Redeemable NCI", + "description": "Income attributable to redeemable NCI.", + "parent": "net_income_to_noncontrolling_interest", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToRedeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterestInNetIncomeLossOperatingPartnershipsRedeemable", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_nci_nonredeemable", + "label": "Net Income Attributable to Nonredeemable NCI", + "description": "Income attributable to nonredeemable NCI.", + "parent": "net_income_to_noncontrolling_interest", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToNonredeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterestInNetIncomeLossPreferredUnitHoldersNonredeemable", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_to_noncontrolling_interest", + "label": "Net Income / (Loss) Attributable to Noncontrolling Interest", + "description": "Amount of Net Income (Loss) attributable to noncontrolling interest.", + "parent": "net_income_to_common", + "sequence": 3, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToNoncontrollingInterests", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_adjustments_to_net_income_to_common", + "label": "Other Adjustments to Net Income / (Loss) Attributable to Common Shareholders)", + "description": "The aggregate value of preferred stock dividends and other adjustments necessary to derive net income apportioned to common stockholders.", + "parent": "net_income_to_common", + "sequence": 4, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PreferredStockDividendsAndOtherAdjustments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic", + "namespace": "us-gaap" + }, + { + "tag": "UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + } + ] + }, + { + "tag": "net_income_to_common", + "label": "Net Income / (Loss) Attributable to Common Shareholders", + "description": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossAttributableToParent", + "namespace": "us-gaap" + }, + { + "tag": "ProfitLossAttributableToOrdinaryEquityHoldersOfParentEntity", + "namespace": "ifrs-full" + }, + { + "tag": "ProfitLossAttributableToOrdinaryEquityHoldersOfParentEntityIncludingDilutiveEffects", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "weighted_ave_basic_shares_os", + "label": "Weighted Average Basic Shares Outstanding", + "description": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", + "parent": "basic_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfSharesOutstandingBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "WeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "basic_eps", + "label": "Basic Earnings per Share", + "description": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BasicEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "BasicEarningsLossPerShareFromContinuingOperations", + "namespace": "ifrs-full" + }, + { + "tag": "BasicEarningsLossPerShareFromDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "weighted_ave_diluted_shares_os", + "label": "Weighted Average Diluted Shares Outstanding", + "description": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", + "parent": "diluted_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfDilutedSharesOutstanding", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustedWeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DilutiveEffectOfShareOptionsOnNumberOfOrdinaryShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "diluted_eps", + "label": "Diluted Earnings per Share", + "description": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + "parent": null, + "sequence": 4, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareDiluted", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DilutedEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DilutedEarningsLossPerShareFromContinuingOperations", + "namespace": "ifrs-full" + }, + { + "tag": "DilutedEarningsLossPerShareFromDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "weighted_ave_basic_diluted_shares_os", + "label": "Weighted Average Basic & Diluted Shares Outstanding", + "description": "Average number of shares or units issued and outstanding that are used in calculating basic and diluted earnings per share (EPS).", + "parent": "basic_diluted_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfShareOutstandingBasicAndDiluted", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2021 + }, + { + "tag": "WeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "basic_diluted_eps", + "label": "Basic & Diluted Earnings per Share", + "description": "The amount of net income or loss for the period per each share in instances when basic and diluted earnings per share are the same amount and reported as a single line item on the face of the financial statements. Basic earnings per share is the amount of net income or loss for the period per each share of common stock or unit outstanding during the reporting period. Diluted earnings per share includes the amount of net income or loss for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + "parent": null, + "sequence": 5, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareBasicAndDiluted", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "BasicEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "BasicAndDilutedEarningsLossPerShare", + "namespace": "ifrs-full" + }, + { + "tag": "BasicAndDilutedEarningsLossPerShareFromContinuingOperations", + "namespace": "ifrs-full" + }, + { + "tag": "BasicAndDilutedEarningsLossPerShareFromDiscontinuedOperations", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "cash_dividends_per_share", + "label": "Cash Dividends to Common per Share", + "description": "Aggregate dividends declared during the period for each share of common stock outstanding.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CommonStockDividendsPerShareDeclared", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommonStockDividendsPerShareCashPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPaidOrdinarySharesPerShare", + "namespace": "ifrs-full" + } + ] + } + ], + "insurance": [ + { + "tag": "other_gains", + "label": "Other Gains / (Losses), net", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": null, + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NonoperatingGainsLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets1", + "namespace": "us-gaap", + "first_year": 2013, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionOfAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GainLossOnDispositionStockInSubsidiaryOrEquityMethodInvestee", + "namespace": "us-gaap" + }, + { + "tag": "GainLossOnSaleOfPreviouslyUnissuedStockBySubsidiaryOrEquityInvesteeNonoperatingIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherNonrecurringGainLoss", + "namespace": "us-gaap" + }, + { + "tag": "OtherGainsLosses", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "premiums_earned", + "label": "Premiums Earned", + "description": "Amount, after premiums ceded to other entities and premiums assumed by the entity, of premiums earned.", + "parent": "total_revenue", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PremiumsEarnedNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PremiumsEarned", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_realized_capital_gains", + "label": "Net Realized & Unrealized Capital Gains on Investments", + "description": "Amount of realized and unrealized gain (loss) on investment.", + "parent": "total_revenue", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnInvestments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RealizedInvestmentGainsLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "AvailableForSaleSecuritiesGrossRealizedGainLossNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + } + ] + }, + { + "tag": "investment_securities_interest_income", + "label": "Investment Securities Interest Income", + "description": "Amount of operating interest income, including amortization and accretion of premiums and discounts, on securities subject to state, federal and other income tax.", + "parent": "total_revenue", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestIncomeSecuritiesTaxable", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestIncomeSecuritiesTaxExempt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestAndDividendIncomeSecurities", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetInvestmentIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "total_interest_income", + "label": "Interest and Dividend Income", + "description": "Amount of operating interest and dividend income.", + "parent": "total_revenue", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestAndDividendIncomeOperating", + "namespace": "us-gaap" + }, + { + "tag": "InterestIncomeOperating", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentIncomeInterest", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentIncomeInterestAndDividend", + "namespace": "us-gaap" + }, + { + "tag": "InterestAndDividendIncomeSecurities", + "namespace": "us-gaap" + }, + { + "tag": "InterestIncomeExpenseNet", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_noninterest_income", + "label": "Other Non-Interest Income", + "description": "Represents the total of noninterest income derived from certain activities and assets including (for example): (1) venture capital investments; (2) bank owned life insurance; (3) foreign currency transactions; and (4) mortgage servicing rights.", + "parent": "total_revenue", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NoninterestIncomeOther", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NoninterestIncomeOtherOperatingIncome", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "other_revenue", + "label": "Other Revenue", + "description": "Other revenue not classified elsewhere.", + "parent": "total_revenue", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingIncomeExpenseNet", + "namespace": "us-gaap" + }, + { + "tag": "OtherIncome", + "namespace": "us-gaap" + }, + { + "tag": "OtherOperatingIncome", + "namespace": "us-gaap" + }, + { + "tag": "OtherNonoperatingIncomeExpense", + "namespace": "us-gaap" + }, + { + "tag": "OtherRevenue", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_revenue", + "label": "Total Revenue", + "description": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", + "parent": "total_pretax_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SalesRevenueNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "Revenues", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RevenuesNetOfInterestExpense", + "namespace": "us-gaap" + }, + { + "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", + "namespace": "us-gaap" + }, + { + "tag": "SalesRevenueGoodsNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2017 + }, + { + "tag": "RevenueFromContractWithCustomerIncludingAssessedTax", + "namespace": "us-gaap", + "first_year": 2018, + "last_year": 2026 + }, + { + "tag": "Revenue", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "RevenueFromContractsWithCustomers", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "current_and_future_benefits", + "label": "Current and Future Benefits", + "description": "Amount, after effect of policies assumed or ceded, of expense related to provision for policy benefits and costs incurred for health insurance contracts.", + "parent": "benefits_costs_expenses", + "sequence": 1, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PolicyholderBenefitsAndClaimsIncurredHealthCare", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2023 + } + ] + }, + { + "tag": "property_liability_insurance_claims", + "label": "Property & Liability Insurance Claims", + "description": "Amount, after effects of policies assumed or ceded, of expense related to the provision for policy benefits and costs incurred.", + "parent": "benefits_costs_expenses", + "sequence": 2, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PolicyholderBenefitsAndClaimsIncurredNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "LiabilityForClaimsAndClaimsAdjustmentExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncurredClaimsPropertyCasualtyAndLiability", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2023 + } + ] + }, + { + "tag": "policy_acquisition_costs", + "label": "Insurance Policy Acquisition Costs", + "description": "Amount of deferred policy acquisition cost capitalized on contract remaining in force.", + "parent": "benefits_costs_expenses", + "sequence": 3, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "instant", + "xbrl_tags": [ + { + "tag": "DeferredPolicyAcquisitionCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DeferredPolicyAcquisitionCostsNet", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "amortization_of_deferred_policy_acquisition_costs", + "label": "Amortization of Deferred Policy Acquisition Costs", + "description": "Amount of amortization expense (reversal of expense) for deferred policy acquisition costs.", + "parent": "benefits_costs_expenses", + "sequence": 4, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredPolicyAcquisitionCostAmortizationExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AmortizationOfAcquisitionCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "salaries_and_employee_benefits_expense", + "label": "Salaries and Employee Benefits", + "description": "Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit.", + "parent": "benefits_costs_expenses", + "sequence": 5, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "LaborAndRelatedExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SalariesAndWages", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2012 + } + ] + }, + { + "tag": "depreciation_expense", + "label": "Depreciation Expense", + "description": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", + "parent": "depreciation_and_amortization", + "sequence": 6, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "Depreciation", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationNonproduction", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DepreciationPropertyPlantAndEquipment", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "amortization_expense", + "label": "Amortization Expense", + "description": "Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed.", + "parent": "depreciation_and_amortization", + "sequence": 7, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AmortizationOfIntangibleAssets", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "Amortization", + "namespace": "us-gaap" + }, + { + "tag": "AmortisationIntangibleAssetsOtherThanGoodwill", + "namespace": "ifrs-full" + }, + { + "tag": "AmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "depreciation_and_amortization", + "label": "Depreciation and Amortization", + "description": "The aggregate expense recognized in the current period that allocates the cost of tangible and intangible assets over their useful lives.", + "parent": "benefits_costs_expenses", + "sequence": 8, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DepreciationDepletionAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAmortizationAndAccretionNet", + "namespace": "us-gaap" + }, + { + "tag": "OtherDepreciationAndAmortization", + "namespace": "us-gaap" + }, + { + "tag": "DepreciationAndAmortisationExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "sga_expense", + "label": "Selling, General & Admin Expense", + "description": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", + "parent": "benefits_costs_expenses", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SellingGeneralAndAdministrativeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SellingGeneralAndAdministrativeExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SellingAndMarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GeneralAndAdministrativeExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GeneralAndAdministrativeExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "SalesAndMarketingExpense", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "marketing_expense", + "label": "Marketing Expense", + "description": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.", + "parent": "benefits_costs_expenses", + "sequence": 9, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "SellingAndMarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "MarketingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdvertisingExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdvertisingExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "impairment_expense", + "label": "Impairment Charge", + "description": "Amount of impairment loss for asset. Includes, but is not limited to, tangible and intangible assets and goodwill.", + "parent": "benefits_costs_expenses", + "sequence": 10, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "AssetImpairmentCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillImpairmentLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "GoodwillAndIntangibleAssetImpairment", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentOfLongLivedAssetsHeldForUse", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ImpairmentLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_operating_expenses", + "label": "Other Operating Expenses", + "description": "The net amount of other operating income and expenses, the components of which are not separately disclosed on the income statement, from items that are associated with the entity's normal revenue producing operations.", + "parent": "benefits_costs_expenses", + "sequence": 11, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherOperatingIncomeExpenseNet", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherCostAndExpenseOperating", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherGeneralExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "restructuring_charge", + "label": "Restructuring Charge", + "description": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.", + "parent": "benefits_costs_expenses", + "sequence": 12, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RestructuringCharges", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "RestructuringAndRelatedCostIncurredCost", + "namespace": "us-gaap" + }, + { + "tag": "ExpenseOfRestructuringActivities", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_special_charges", + "label": "Other Special Charges / (Income)", + "description": "Amount of restructuring charges, remediation cost, and asset impairment loss.", + "parent": "benefits_costs_expenses", + "sequence": 13, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "RestructuringSettlementAndImpairmentProvisions", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "OtherRestructuringCosts", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "SpecialChargesGainLoss", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "total_interest_expense", + "label": "Interest Expense", + "description": "Amount of interest expense classified as operating.", + "parent": "benefits_costs_expenses", + "sequence": 14, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "InterestExpenseOperating", + "namespace": "us-gaap", + "first_year": 2024, + "last_year": 2026 + }, + { + "tag": "InterestExpense", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "InterestExpense", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "InterestExpenseDebt", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "FinanceCosts", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "provision_for_credit_losses", + "label": "Provision for Credit Losses", + "description": "Amount of expense related to estimated loss from loan and lease transactions.", + "parent": "benefits_costs_expenses", + "sequence": 15, + "factor": "+", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProvisionForLoanAndLeaseLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "ProvisionForCreditLosses", + "namespace": "us-gaap" + }, + { + "tag": "ProvisionForLoanLeaseAndOtherLosses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "benefits_costs_expenses", + "label": "Benefits, Costs & Expenses", + "description": "The total amount of expense recognized during the period for future policy benefits, claims and claims adjustment costs, and for selling, general and administrative costs.", + "parent": "total_pretax_income", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "BenefitsLossesAndExpenses", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CostsAndExpenses", + "namespace": "us-gaap" + }, + { + "tag": "OperatingExpenses", + "namespace": "us-gaap" + }, + { + "tag": "OperatingCostsAndExpenses", + "namespace": "us-gaap" + }, + { + "tag": "CostOfSales", + "namespace": "ifrs-full" + }, + { + "tag": "CostOfMerchandiseSoldAndServiceProvided", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "non_operating_income", + "label": "Non-Operating Income (Loss)", + "description": "Amount of income (loss) related to nonoperating activities.", + "parent": "total_pretax_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NonoperatingIncomeExpense", + "namespace": "us-gaap" + }, + { + "tag": "OtherNonoperatingIncomeExpense", + "namespace": "us-gaap" + }, + { + "tag": "InvestmentIncomeNonoperating", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "income_before_equity_method", + "label": "Income Before Equity Method Investments", + "description": "Income before equity method investments.", + "parent": "total_pretax_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "equity_method_investments", + "label": "Income from Equity Method Investments", + "description": "Equity method investee's income.", + "parent": "total_pretax_income", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + }, + { + "tag": "EquityMethodInvestmentSummarizedFinancialInformationNetIncomeLoss", + "namespace": "us-gaap" + }, + { + "tag": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", + "namespace": "us-gaap" + }, + { + "tag": "ShareOfProfitLossOfAssociatesAndJointVenturesAccountedForUsingEquityMethod", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodNetOfTax", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "total_pretax_income", + "label": "Total Pre-Tax Income ", + "description": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", + "parent": "net_income_continuing", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossBeforeTax", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "income_tax_current", + "label": "Current Income Tax Expense (Benefit)", + "description": "Current income tax expense.", + "parent": "income_tax_expense", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CurrentIncomeTaxExpenseBenefit", + "namespace": "us-gaap" + }, + { + "tag": "CurrentTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "CurrentTaxExpenseIncomeAndAdjustmentsForCurrentTaxOfPriorPeriods", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_deferred", + "label": "Deferred Income Tax Expense (Benefit)", + "description": "Deferred income tax expense.", + "parent": "income_tax_expense", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DeferredIncomeTaxExpenseBenefit", + "namespace": "us-gaap" + }, + { + "tag": "DeferredTaxExpenseIncome", + "namespace": "ifrs-full" + }, + { + "tag": "DeferredTaxExpenseIncomeRecognisedInProfitOrLoss", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "income_tax_expense", + "label": "Income Tax Expense", + "description": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", + "parent": "net_income_continuing", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeTaxExpenseBenefit", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeTaxExpenseContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "FederalHomeLoanBankAssessments", + "namespace": "us-gaap" + }, + { + "tag": "FederalIncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + }, + { + "tag": "StateAndLocalIncomeTaxExpenseBenefitContinuingOperations", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_continuing", + "label": "Net Income / (Loss) Continuing Operations", + "description": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", + "parent": "net_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromContinuingOperations", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossBeforeExtraordinaryItemsAndCumulativeEffectOfChangeInAccountingPrinciple", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromContinuingOperationsAttributableToOrdinaryEquityHoldersOfParentEntity", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income_discontinued", + "label": "Net Income / (Loss) Discontinued Operations", + "description": "Amount after tax of income (loss) from a discontinued operation including the portion attributable to the noncontrolling interest. Includes, but is not limited to, the income (loss) from operations during the phase-out period, gain (loss) on disposal, gain (loss) for reversal of write-down (write-down) to fair value, less cost to sell, and adjustments to a prior period gain (loss) on disposal.", + "parent": "net_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossFromDiscontinuedOperations", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "extraordinary_income", + "label": "Extraordinary Income / (Loss), net", + "description": "Description of the gains (losses), after tax, arising from an event or transaction that is both unusual in nature and infrequent in occurrence when considered in relation to the environment in which the entity operates and which represents the portion assigned to noncontrolling interest, if any. This amount is the income statement amount which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest).", + "parent": "net_income", + "sequence": 3, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ExtraordinaryItemNetOfTax", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2015 + }, + { + "tag": "IncomeLossFromExtraordinaryItemsNetOfTax", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_adjustments_to_consolidated_net_income", + "label": "Other Adjustments to Consolidated Net Income / (Loss)", + "description": "Amount after tax and reclassification adjustments of other comprehensive income (loss).", + "parent": "net_income", + "sequence": 4, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTax", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2026 + }, + { + "tag": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + } + ] + }, + { + "tag": "gain_on_sale_properties", + "label": "Gain (Loss) on Sale of Properties, Net of Tax", + "description": "Gain/loss on sale of property.", + "parent": "net_income", + "sequence": 5, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfPropertiesNetOfApplicableIncomeTaxes", + "namespace": "us-gaap" + }, + { + "tag": "GainsLossesOnDisposalsOfPropertyPlantAndEquipment", + "namespace": "ifrs-full" + }, + { + "tag": "AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "gain_loss_disposition_subsidiary", + "label": "Gain (Loss) on Disposition of Stock in Subsidiary", + "description": "Gain/loss on sale of stock in subsidiary or equity method investee.", + "parent": "net_income", + "sequence": 6, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "GainLossOnSaleOfStockInSubsidiaryOrEquityMethodInvestee", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "other_comprehensive_income_parent", + "label": "OCI Attributable to Parent", + "description": "OCI attributable to parent.", + "parent": "comprehensive_income_parent", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", + "namespace": "us-gaap" + }, + { + "tag": "OtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxCashFlowHedges", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxGainsLossesOnRemeasurementsOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxChangeInFairValueOfFinancialLiabilityAttributableToChangeInCreditRiskOfLiability", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxGainsLossesFromInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxHedgesOfNetInvestmentsInForeignOperations", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxChangeInValueOfForwardElementsOfForwardContracts", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeNetOfTaxAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeThatWillBeReclassifiedToProfitOrLossNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeThatWillNotBeReclassifiedToProfitOrLossNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxCashFlowHedges", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxExchangeDifferencesOnTranslation", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxGainsLossesOnRemeasurementsOfDefinedBenefitPlans", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxGainsLossesFromInvestmentsInEquityInstruments", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxHedgesOfNetInvestmentsInForeignOperations", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxChangeInValueOfForwardElementsOfForwardContracts", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeBeforeTaxFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnCashFlowHedgesNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnCashFlowHedgesBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnExchangeDifferencesOnTranslationBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgesOfNetInvestmentsInForeignOperationsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHedgesOfNetInvestmentsInForeignOperationsBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnRemeasuringAvailableforsaleFinancialAssetsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnAvailableforsaleFinancialAssets", + "namespace": "ifrs-full" + }, + { + "tag": "GainsLossesOnHeldtomaturityInvestments", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnCashFlowHedgesNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnCashFlowHedgesBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnExchangeDifferencesOnTranslationNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnExchangeDifferencesOnTranslationBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncomeBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnHedgesOfNetInvestmentsInForeignOperationsBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnHedgesOfNetInvestmentsInForeignOperationsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "ReclassificationAdjustmentsOnAvailableforsaleFinancialAssetsNetOfTax", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncomeThatWillBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToComponentsOfOtherComprehensiveIncomeThatWillNotBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToCashFlowHedgesOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToFinancialAssetsMeasuredAtFairValueThroughOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToHedgesOfNetInvestmentsInForeignOperationsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToRemeasurementsOfDefinedBenefitPlansOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToExchangeDifferencesOnTranslationOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToChangeInValueOfForwardElementsOfForwardContractsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToAvailableforsaleFinancialAssetsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToChangesInFairValueOfFinancialLiabilityAttributableToChangeInCreditRiskOfLiabilityOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToInvestmentsInEquityInstrumentsOfOtherComprehensiveIncome", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "IncomeTaxRelatingToShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillNotBeReclassifiedToProfitOrLoss", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillBeReclassifiedToProfitOrLossBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "ShareOfOtherComprehensiveIncomeOfAssociatesAndJointVenturesAccountedForUsingEquityMethodThatWillNotBeReclassifiedToProfitOrLossBeforeTax", + "namespace": "ifrs-full" + }, + { + "tag": "OtherComprehensiveIncomeAttributableToOwnersOfParent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "comprehensive_income_parent", + "label": "Comprehensive Income (Loss) Attributable to Parent", + "description": "Comprehensive income attributable to parent.", + "parent": "comprehensive_income", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTax", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncomeAttributableToOwnersOfParent", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "other_comprehensive_income_nci", + "label": "OCI Attributable to NCI", + "description": "OCI attributable to NCI.", + "parent": "comprehensive_income_nci", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "comprehensive_income_nci", + "label": "Comprehensive Income (Loss) Attributable to NCI", + "description": "Comprehensive income attributable to NCI.", + "parent": "comprehensive_income", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncomeAttributableToNoncontrollingInterests", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "comprehensive_income", + "label": "Comprehensive Income (Loss)", + "description": "Comprehensive income including NCI.", + "parent": "net_income", + "sequence": 7, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "ComprehensiveIncome", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income", + "label": "Consolidated Net Income / (Loss)", + "description": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", + "parent": "net_income_to_common", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "ProfitLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLoss", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossIncludingPortionAttributableToNoncontrollingInterest", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "preferred_dividends", + "label": "Preferred Stock Dividends Declared", + "description": "Amount of paid and unpaid preferred stock dividends declared with the form of settlement in cash, stock and payment-in-kind (PIK).", + "parent": "net_income_to_common", + "sequence": 2, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "DividendsPreferredStock", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PreferredStockDividendsAndOtherAdjustments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "PreferredStockDividends", + "namespace": "us-gaap" + }, + { + "tag": "PreferredStockDividendsIncomeStatementImpact", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustmentToProfitLossForPreferenceShareDividends", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "net_income_nci_redeemable", + "label": "Net Income Attributable to Redeemable NCI", + "description": "Income attributable to redeemable NCI.", + "parent": "net_income_to_noncontrolling_interest", + "sequence": 1, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToRedeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterestInNetIncomeLossOperatingPartnershipsRedeemable", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_nci_nonredeemable", + "label": "Net Income Attributable to Nonredeemable NCI", + "description": "Income attributable to nonredeemable NCI.", + "parent": "net_income_to_noncontrolling_interest", + "sequence": 2, + "factor": "+", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToNonredeemableNoncontrollingInterest", + "namespace": "us-gaap" + }, + { + "tag": "NoncontrollingInterestInNetIncomeLossPreferredUnitHoldersNonredeemable", + "namespace": "us-gaap" + } + ] + }, + { + "tag": "net_income_to_noncontrolling_interest", + "label": "Net Income / (Loss) Attributable to Noncontrolling Interest", + "description": "Amount of Net Income (Loss) attributable to noncontrolling interest.", + "parent": "net_income_to_common", + "sequence": 3, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAttributableToNoncontrollingInterest", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToNoncontrollingInterests", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "other_adjustments_to_net_income_to_common", + "label": "Other Adjustments to Net Income / (Loss) Attributable to Common Shareholders)", + "description": "The aggregate value of preferred stock dividends and other adjustments necessary to derive net income apportioned to common stockholders.", + "parent": "net_income_to_common", + "sequence": 4, + "factor": "-", + "balance": "debit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "PreferredStockDividendsAndOtherAdjustments", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ParticipatingSecuritiesDistributedAndUndistributedEarningsLossBasic", + "namespace": "us-gaap" + }, + { + "tag": "UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic", + "namespace": "us-gaap", + "first_year": 2017, + "last_year": 2026 + } + ] + }, + { + "tag": "net_income_to_common", + "label": "Net Income / (Loss) Attributable to Common Shareholders", + "description": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders.", + "parent": null, + "sequence": 2, + "factor": "0", + "balance": "credit", + "unit": "monetary", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "NetIncomeLossAvailableToCommonStockholdersBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "NetIncomeLoss", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "ProfitLossAttributableToOwnersOfParent", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "IncomeLossAttributableToParent", + "namespace": "us-gaap" + }, + { + "tag": "ProfitLossAttributableToOrdinaryEquityHoldersOfParentEntity", + "namespace": "ifrs-full" + }, + { + "tag": "ProfitLossAttributableToOrdinaryEquityHoldersOfParentEntityIncludingDilutiveEffects", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "weighted_ave_basic_shares_os", + "label": "Weighted Average Basic Shares Outstanding", + "description": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", + "parent": "basic_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfSharesOutstandingBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "WeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "basic_eps", + "label": "Basic Earnings per Share", + "description": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", + "parent": null, + "sequence": 3, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareBasic", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "BasicEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "weighted_ave_diluted_shares_os", + "label": "Weighted Average Diluted Shares Outstanding", + "description": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", + "parent": "diluted_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfDilutedSharesOutstanding", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "AdjustedWeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + }, + { + "tag": "DilutiveEffectOfShareOptionsOnNumberOfOrdinaryShares", + "namespace": "ifrs-full" + } + ] + }, + { + "tag": "diluted_eps", + "label": "Diluted Earnings per Share", + "description": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + "parent": null, + "sequence": 4, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareDiluted", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DilutedEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "weighted_ave_basic_diluted_shares_os", + "label": "Weighted Average Basic & Diluted Shares Outstanding", + "description": "Average number of shares or units issued and outstanding that are used in calculating basic and diluted earnings per share (EPS).", + "parent": "basic_diluted_eps", + "sequence": 1, + "factor": "/", + "balance": "", + "unit": "shares", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "WeightedAverageNumberOfShareOutstandingBasicAndDiluted", + "namespace": "us-gaap", + "first_year": 2012, + "last_year": 2021 + }, + { + "tag": "WeightedAverageShares", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "basic_diluted_eps", + "label": "Basic & Diluted Earnings per Share", + "description": "The amount of net income or loss for the period per each share in instances when basic and diluted earnings per share are the same amount and reported as a single line item on the face of the financial statements. Basic earnings per share is the amount of net income or loss for the period per each share of common stock or unit outstanding during the reporting period. Diluted earnings per share includes the amount of net income or loss for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", + "parent": null, + "sequence": 5, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "EarningsPerShareBasicAndDiluted", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2021 + }, + { + "tag": "BasicEarningsLossPerShare", + "namespace": "ifrs-full", + "first_year": 2020, + "last_year": 2025 + } + ] + }, + { + "tag": "cash_dividends_per_share", + "label": "Cash Dividends to Common per Share", + "description": "Aggregate dividends declared during the period for each share of common stock outstanding.", + "parent": null, + "sequence": 6, + "factor": "0", + "balance": "", + "unit": "per_share", + "period_type": "duration", + "xbrl_tags": [ + { + "tag": "CommonStockDividendsPerShareDeclared", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "CommonStockDividendsPerShareCashPaid", + "namespace": "us-gaap", + "first_year": 2011, + "last_year": 2026 + }, + { + "tag": "DividendsPaidOrdinarySharesPerShare", + "namespace": "ifrs-full" + } + ] + } + ] +} diff --git a/openbb_platform/providers/sec/tests/record/CIK0002012383.json b/openbb_platform/providers/sec/tests/record/CIK0002012383.json new file mode 100644 index 00000000000..711e5fda948 --- /dev/null +++ b/openbb_platform/providers/sec/tests/record/CIK0002012383.json @@ -0,0 +1 @@ +{"cik":"0002012383","entityName":"BlackRock, Inc.","facts":{"dei":{"EntityCommonStockSharesOutstanding":{"label":"Entity Common Stock, Shares Outstanding","description":"Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.","units":{"shares":[{"end":"2024-10-31","val":154878930,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2025-01-31","val":155253443,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-04-30","val":154926181,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"}]}},"EntityPublicFloat":{"label":"Entity Public Float","description":"The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.","units":{"USD":[{"end":"2024-06-30","val":118000000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q2I"},{"end":"2025-06-30","val":159000000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q2I"}]}}},"us-gaap":{"AccountsPayableAndAccruedLiabilitiesCurrentAndNoncurrent":{"label":"Accounts Payable and Accrued Liabilities","description":"Sum of the carrying values as of the balance sheet date of obligations incurred through that date, including liabilities incurred and payable to vendors for goods and services received, taxes, interest, rent and utilities, compensation costs, payroll taxes and fringe benefits (other than pension and postretirement obligations), contractual rights and obligations, and statutory obligations.","units":{"USD":[{"end":"2023-12-31","val":1240000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1240000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":1449000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1536000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1536000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1536000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1536000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1536000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1619000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1686000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1646000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":1740000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"AccountsReceivableNet":{"label":"Accounts Receivable, after Allowance for Credit Loss","description":"Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business.","units":{"USD":[{"end":"2023-12-31","val":3916000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":3916000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":4385000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":4304000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":4304000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":4304000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":4304000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":4304000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":4281000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":4351000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":4796000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":5158000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment":{"label":"Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment","description":"Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.","units":{"USD":[{"end":"2023-12-31","val":1439000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1439000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":1635000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1553000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1553000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1553000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1553000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1553000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1630000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1702000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1768000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":1692000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"AccumulatedOtherComprehensiveIncomeLossNetOfTax":{"label":"Accumulated Other Comprehensive Income (Loss), Net of Tax","description":"Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.","units":{"USD":[{"end":"2023-12-31","val":-840000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":-840000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":-632000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":-1178000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":-1178000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":-1178000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":-1178000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":-1178000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":-951000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":-515000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":-558000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":-545000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"AdditionalPaidInCapitalCommonStock":{"label":"Additional Paid in Capital, Common Stock","description":"Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.","units":{"USD":[{"end":"2023-12-31","val":19833000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":19833000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":19905000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":13446000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":13446000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":13446000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":13446000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":13446000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":13744000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":13871000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":19649000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":19748000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation":{"label":"Share-based Payment Arrangement, Decrease for Tax Withholding Obligation","description":"Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":457000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":369000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":15000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":375000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":375000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":259000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":278000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":19000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":294000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":294000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":16000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":16000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":305000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":305000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":282000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":303000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":21000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":312000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":9000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":326000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue":{"label":"APIC, Share-based Payment Arrangement, Increase for Cost Recognition","description":"Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":708000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":469000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":146000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":630000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":630000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":176000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":355000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":179000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":511000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":511000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":156000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":156000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":753000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":753000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":241000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":467000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":226000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":886000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":419000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":1307000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"AmortizationOfIntangibleAssets":{"label":"Amortization of Intangible Assets","description":"The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.","units":{"USD":[{"start":"2024-01-01","end":"2024-03-31","val":38000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":77000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":39000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":116000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2025-01-01","end":"2025-03-31","val":117000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":254000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":137000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":507000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"}]}},"AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount":{"label":"Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount","description":"Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.","units":{"shares":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":194240,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":194240,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-06-30","val":372282,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":409298,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":338300,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"Assets":{"label":"Assets","description":"Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.","units":{"USD":[{"end":"2023-12-31","val":123211000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":123211000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":132816000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":138615000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":138615000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":138615000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":138615000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":138615000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":141942000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":146470000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":162682000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":169998000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CashAndCashEquivalentsAtCarryingValue":{"label":"Cash and Cash Equivalents, at Carrying Value","description":"Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.","units":{"USD":[{"end":"2023-12-31","val":8736000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":8736000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":14037000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":12762000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":12762000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":12762000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":12762000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":12762000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":7747000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":9478000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":9979000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":11468000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents":{"label":"Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents","description":"Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.","units":{"USD":[{"end":"2021-12-31","val":9340000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2021Q4I"},{"end":"2022-12-31","val":7433000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2022-12-31","val":7433000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2022-12-31","val":7433000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2022Q4I"},{"end":"2023-09-30","val":7333000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3I"},{"end":"2023-12-31","val":8753000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":8753000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":8753000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2023-12-31","val":8753000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2023-12-31","val":8753000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2023-12-31","val":8753000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-03-31","val":9391000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1I"},{"end":"2024-06-30","val":10245000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2I"},{"end":"2024-09-30","val":14054000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2024-09-30","val":14054000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3I"},{"end":"2024-12-31","val":12779000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":12779000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":12779000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":12779000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":12779000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":7764000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":9495000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":10001000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":11490000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect":{"label":"Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect","description":"Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-1907000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":-100000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":1320000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":1320000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":638000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1492000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":5301000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":5301000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":4026000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":4026000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-5015000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-3284000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":-2778000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":-1289000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"CommonStockDividendsPerShareDeclared":{"label":"Common Stock, Dividends, Per Share, Declared","description":"Aggregate dividends declared during the period for each share of common stock outstanding.","units":{"USD/shares":[{"start":"2022-01-01","end":"2022-12-31","val":19.52,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":15,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":5,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":20,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":20,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":5.1,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":10.2,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":5.1,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":15.3,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":15.3,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":5.1,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":5.1,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":20.4,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":20.4,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":5.21,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":10.42,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":5.21,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":15.63,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":5.21,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":20.84,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"CommonStockParOrStatedValuePerShare":{"label":"Common Stock, Par or Stated Value Per Share","description":"Face amount or stated value per share of common stock.","units":{"USD/shares":[{"end":"2023-12-31","val":0.01,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":0.01,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":0.01,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":0.01,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.01,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":0.01,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":0.01,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":0.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":0.01,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":0.01,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":0.01,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":0.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CommonStockSharesAuthorized":{"label":"Common Stock, Shares Authorized","description":"The maximum number of common shares permitted to be issued by an entity's charter and bylaws.","units":{"shares":[{"end":"2023-12-31","val":500000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":500000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":500000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":500000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":500000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":500000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":500000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":500000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":500000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":500000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":500000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":500000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CommonStockSharesIssued":{"label":"Common Stock, Shares, Issued","description":"Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.","units":{"shares":[{"end":"2023-12-31","val":172075373,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":172075373,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":172075373,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":155318170,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":155318170,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":155318170,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":155318170,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":155318170,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":156032049,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":156032049,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":156276289,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":156276289,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CommonStockSharesOutstanding":{"label":"Common Stock, Shares, Outstanding","description":"Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.","units":{"shares":[{"end":"2023-12-31","val":148500074,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":148500074,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":147953572,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":154947813,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":154947813,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":154947813,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":154947813,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":154947813,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":155022449,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":154751073,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":155124267,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":155069171,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CommonStockValue":{"label":"Common Stock, Value, Issued","description":"Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.","units":{"USD":[{"end":"2023-12-31","val":2000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":2000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":2000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":2000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":2000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":2000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":2000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":2000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":2000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":2000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":2000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":2000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"ComprehensiveIncomeNetOfTax":{"label":"Comprehensive Income (Loss), Net of Tax, Attributable to Parent","description":"Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":4627000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":4127000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":1383000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":5763000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":5763000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1480000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":2930000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":1450000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":4907000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":4907000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":1977000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":1977000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":6031000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":6031000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":1737000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":3766000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":2029000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":5046000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1280000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":6159000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest":{"label":"Comprehensive Income (Loss), Net of Tax, Attributable to Noncontrolling Interest","description":"Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income (loss) and other comprehensive income (loss), attributable to noncontrolling interests. Excludes changes in equity resulting from investments by owners and distributions to owners.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-184000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":60000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":-9000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":174000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":50000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":92000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":42000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":152000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":60000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":143000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":5000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":77000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":72000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"}]}},"ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest":{"label":"Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest","description":"Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income. Excludes changes in equity resulting from investments by owners and distributions to owners.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":4443000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":4187000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":1374000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":5937000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":5937000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1530000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":3022000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":1492000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":5059000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":5059000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":2037000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":2037000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":6174000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":6174000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":1742000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":3843000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":2101000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":5327000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1484000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":6548000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DebtInstrumentFaceAmount":{"label":"Debt Instrument, Face Amount","description":"Face (par) amount of debt instrument at time of issuance.","units":{"USD":[{"end":"2024-09-30","val":12481000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":12425000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":12456000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":12874000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":12875000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":12875000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet":{"label":"Debt Instrument, Unamortized Discount (Premium) and Debt Issuance Costs, Net","description":"Amount of unamortized debt discount (premium) and debt issuance costs.","units":{"USD":[{"end":"2024-09-30","val":111000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":111000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":107000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":112000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":109000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":107000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredIncomeTaxExpenseBenefit":{"label":"Deferred Income Tax Expense (Benefit)","description":"Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":602000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":41000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":124000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":124000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-41000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-80000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":-95000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":-95000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":-106000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-106000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":15000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-78000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":-238000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":-631000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DeferredIncomeTaxLiabilities":{"label":"Deferred Tax Liabilities, Gross","description":"Amount of deferred tax liability attributable to taxable temporary differences.","units":{"USD":[{"end":"2023-12-31","val":3506000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":3506000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":3385000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":3334000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":3334000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":3334000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":3334000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":3334000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":3675000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":3578000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":4997000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":4618000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DepreciationAmortizationAndAccretionNet":{"label":"Depreciation, Amortization and Accretion, Net","description":"The aggregate net amount of depreciation, amortization, and accretion recognized during an accounting period. As a noncash item, the net amount is added back to net income when calculating cash provided by or used in operations using the indirect method.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":418000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":316000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":427000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":427000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":111000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":219000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":329000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":329000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":529000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":529000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":194000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":411000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":757000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":1126000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DerivativeGainLossOnDerivativeNet":{"label":"Derivative, Gain (Loss) on Derivative, Net","description":"Amount of increase (decrease) in the fair value of derivatives recognized in the income statement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-103000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":43000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":6000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":10000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":10000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-37000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-31000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":6000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":16000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":16000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":47000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":47000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":-25000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-25000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":51000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":6000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":-45000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":-96000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":-102000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":-127000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DerivativeNotionalAmount":{"label":"Derivative, Notional Amount","description":"Nominal or face amount used to calculate payment on derivative.","units":{"USD":[{"end":"2023-12-31","val":204000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":204000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":210000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":197000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":197000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":197000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":197000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":197000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":218000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":221000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":237000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":231000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DividendsCash":{"label":"Dividends, Cash","description":"Amount of paid and unpaid cash dividends declared for classes of stock, for example, but not limited to, common and preferred.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":2990000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":2292000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":748000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":3035000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":3035000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":795000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1553000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":758000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":2310000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":2310000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":757000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":757000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":3101000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":3101000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":838000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1646000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":808000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":2456000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":810000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":3265000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EarningsPerShareBasic":{"label":"Earnings Per Share, Basic","description":"The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.","units":{"USD/shares":[{"start":"2022-01-01","end":"2022-12-31","val":34.31,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":27.6,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":10.75,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":36.85,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":36.85,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":10.58,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":20.65,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":10.07,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":31.67,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":31.67,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":11.02,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":11.02,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":42.45,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":42.45,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":9.74,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":20.03,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":10.29,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":28.57,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":8.54,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":35.83,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EarningsPerShareDiluted":{"label":"Earnings Per Share, Diluted","description":"The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.","units":{"USD/shares":[{"start":"2022-01-01","end":"2022-12-31","val":33.97,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":27.36,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":10.66,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":36.51,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":36.51,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":10.48,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":20.47,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":9.99,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":31.37,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":31.37,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":10.9,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":10.9,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":42.01,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":42.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":9.64,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":19.83,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":10.19,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":28.21,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":8.43,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":35.31,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents":{"label":"Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents","description":"Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-291000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":-5000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":106000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":106000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-27000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-60000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":82000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":82000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":-162000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-162000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":110000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":398000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":317000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":329000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EmployeeRelatedLiabilitiesCurrentAndNoncurrent":{"label":"Employee-related Liabilities","description":"Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits.","units":{"USD":[{"end":"2023-12-31","val":2393000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":2393000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":2074000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":2964000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":2964000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":2964000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":2964000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":2964000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1153000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1737000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":2785000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":3830000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"EquityMethodInvestmentDividendsOrDistributions":{"label":"Proceeds from Equity Method Investment, Distribution","description":"Amount of distribution received from equity method investee for return on investment, classified as operating activities. Excludes distribution for return of investment, classified as investing activities.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":50000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":32000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":49000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":49000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":8000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":26000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":41000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":41000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":57000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":57000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":14000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":147000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":155000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":429000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EquitySecuritiesFvNi":{"label":"Equity Securities, FV-NI","description":"Amount of investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI).","units":{"USD":[{"end":"2023-12-31","val":1585000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1585000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":2532000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1950000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1950000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1950000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1950000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1950000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":2208000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":2278000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":2273000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":2282000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss":{"label":"Fair Value, Asset, Recurring Basis, Still Held, Unrealized Gain (Loss)","description":"Amount of unrealized gain (loss) recognized in income from asset measured at fair value on recurring basis using unobservable input (level 3) and still held.","units":{"USD":[{"start":"2023-01-01","end":"2023-09-30","val":3000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":-20000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":6000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-6000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-3000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":3000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":3000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":3000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":6000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":6000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":2000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":2000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-10000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":11000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":11000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":8000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueInvestmentsEntitiesThatCalculateNetAssetValuePerShareUnfundedCommittments":{"label":"Fair Value, Investments, Entities that Calculate Net Asset Value Per Share, Unfunded Commitments","description":"The amount of unfunded commitments for which the entity is obligated, to those certain investments for which net asset value per share is calculated (including by unit, membership interest, or other equity (ownership interest) unit measure) (alternative investments).","units":{"USD":[{"end":"2023-12-31","val":725000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":725000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":740000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1215000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1215000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1215000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1215000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1215000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1238000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1246000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1217000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":2356000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Gain (Loss) Included in Earnings","description":"Amount of gain (loss) recognized in income from asset measured at fair value on recurring basis using unobservable input (level 3).","units":{"USD":[{"start":"2023-01-01","end":"2023-09-30","val":3000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":-20000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":20000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-6000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-3000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":3000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":3000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":3000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":6000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":6000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":2000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":2000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-10000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":11000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":3000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":2000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":-1000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Purchases","description":"Amount of purchases of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.","units":{"USD":[{"start":"2023-01-01","end":"2023-09-30","val":246000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":119000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":197000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":397000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":471000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":74000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":475000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":475000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":4000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":4000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":474000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":474000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":15000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":20000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":5000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":21000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":161000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Sales","description":"Amount of sale of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.","units":{"USD":[{"start":"2023-01-01","end":"2023-09-30","val":40000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":2000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":76000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":17000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":354000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":337000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":442000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":442000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":88000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":88000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":456000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":456000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":30000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":49000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":19000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":145000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":96000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":145000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Transfers Into Level 3","description":"Amount of transfer of financial instrument classified as an asset into level 3 of the fair value hierarchy.","units":{"USD":[{"start":"2023-01-01","end":"2023-09-30","val":33000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":23000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":38000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":3000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":9000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":6000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":11000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":11000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":2000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":2000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":12000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":12000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Transfers out of Level 3","description":"Amount of transfers of financial instrument classified as an asset out of level 3 of the fair value hierarchy.","units":{"USD":[{"start":"2023-01-01","end":"2023-09-30","val":14000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":8000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":20000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":3000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":3000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":7000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":7000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":4000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":4000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":6000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":6000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":17000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":17000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":32000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Value","description":"Fair value of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.","units":{"USD":[{"end":"2022-12-31","val":300000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2022-12-31","val":300000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022Q4I"},{"end":"2023-06-30","val":416000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q2I"},{"end":"2023-09-30","val":528000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3I"},{"end":"2023-12-31","val":337000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":337000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":337000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2023-12-31","val":337000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2023-12-31","val":337000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2023-12-31","val":337000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-03-31","val":711000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-03-31","val":711000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q1I"},{"end":"2024-06-30","val":457000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2024-06-30","val":457000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-06-30","val":457000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q2I"},{"end":"2024-09-30","val":377000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2024-09-30","val":377000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3I"},{"end":"2024-12-31","val":363000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":363000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":363000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":363000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":363000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":338000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2025-03-31","val":338000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q1I"},{"end":"2025-06-30","val":335000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2025-06-30","val":335000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q2I"},{"end":"2025-09-30","val":246000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":367000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FairValueOfSecuritiesReceivedAsCollateralThatHaveBeenResoldOrRepledged":{"label":"Fair Value of Securities Received as Collateral that Have Been Resold or Repledged","description":"Fair value of the collateral, or portion thereof, that has been re-pledged, delivered, or otherwise used.","units":{"USD":[{"end":"2023-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3I"},{"end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2I"},{"end":"2024-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2024-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3I"},{"end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FiniteLivedIntangibleAssetsAccumulatedAmortization":{"label":"Finite-Lived Intangible Assets, Accumulated Amortization","description":"Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.","units":{"USD":[{"end":"2023-12-31","val":618000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":618000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":659000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":782000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":782000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":782000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":782000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":782000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":892000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":961000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1214000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":1482000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FiniteLivedIntangibleAssetsGross":{"label":"Finite-Lived Intangible Assets, Gross","description":"Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.","units":{"USD":[{"end":"2023-12-31","val":1298000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":5000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":3997000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":3997000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":9022000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FiniteLivedIntangibleAssetsNet":{"label":"Finite-Lived Intangible Assets, Net","description":"Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.","units":{"USD":[{"end":"2023-12-31","val":680000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":680000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":606000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":3215000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":3215000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":3215000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":3215000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":3215000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":4322000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":4149000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":7634000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":7540000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FinitelivedIntangibleAssetsAcquired1":{"label":"Finite-lived Intangible Assets Acquired","description":"Amount of increase in assets, excluding financial assets, lacking physical substance with a definite life, from an acquisition.","units":{"USD":[{"start":"2024-01-01","end":"2024-09-30","val":37000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2025-01-01","end":"2025-03-31","val":1222000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1182000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":4922000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"}]}},"GainLossOnInvestments":{"label":"Gain (Loss) on Investments","description":"Amount of realized and unrealized gain (loss) on investment.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-35000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":434000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":114000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":699000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":699000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":171000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":333000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":162000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":510000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":510000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":177000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":177000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":492000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":492000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":58000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":608000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":550000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":672000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":64000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":634000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"GeneralAndAdministrativeExpense":{"label":"General and Administrative Expense","description":"The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":2057000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1506000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":518000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":2095000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":2092000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":529000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1063000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":534000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":1625000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":1625000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":562000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":562000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":2221000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":2257000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":711000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1400000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":689000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":2182000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":782000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":2731000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"Goodwill":{"label":"Goodwill","description":"Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.","units":{"USD":[{"end":"2022-12-31","val":15341000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022Q4I"},{"end":"2023-12-31","val":15524000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":15524000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":15524000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":15665000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":25949000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":25949000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":25949000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":25949000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":25949000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":28298000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":28328000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":35356000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":35283000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"GoodwillAcquiredDuringPeriod":{"label":"Goodwill, Acquired During Period","description":"Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.","units":{"USD":[{"start":"2023-01-01","end":"2023-12-31","val":184000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-09-30","val":131000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":10428000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":10428000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":2344000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":2377000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":9413000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":9343000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"GoodwillImpairmentLoss":{"label":"Goodwill, Impairment Loss","description":"Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"end":"2023-07-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q2I"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"end":"2024-07-31","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2024-07-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q2I"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"end":"2025-07-31","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2025-07-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q2I"}]}},"GoodwillOtherIncreaseDecrease":{"label":"Goodwill, Other Increase (Decrease)","description":"Amount of increase (decrease), classified as other, of an asset representing the future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.","units":{"USD":[{"start":"2023-01-01","end":"2023-12-31","val":-1000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-09-30","val":10000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":-3000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-3000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":5000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":2000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":-6000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":-9000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"HeldToMaturitySecurities":{"label":"Debt Securities, Held-to-maturity","description":"Amount of investment in debt security measured at amortized cost (held-to-maturity).","units":{"USD":[{"end":"2023-12-31","val":617000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":617000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":566000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":547000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":547000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":547000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":547000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":547000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":530000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":551000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":532000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":507000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"HeldToMaturitySecuritiesDebtMaturitiesAfterFiveThroughTenYearsFairValue":{"label":"Debt Securities, Held-to-Maturity, Fair Value, Maturity, Allocated and Single Maturity Date, after Year 5 Through 10","description":"Fair value of investment in debt security measured at amortized cost (held-to-maturity), with single maturity date and allocated without single maturity date, maturing in sixth through tenth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-09-30","val":318000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":326000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":350000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":383000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":345000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":316000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"HeldToMaturitySecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue":{"label":"Debt Securities, Held-to-Maturity, Fair Value, Maturity, Allocated and Single Maturity Date, after Year One Through Five","description":"Fair value of investment in debt security measured at amortized cost (held-to-maturity), with single maturity date and allocated without single maturity date, maturing in second through fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-09-30","val":8000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":24000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":17000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":17000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":25000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":13000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"HeldToMaturitySecuritiesDebtMaturitiesAfterTenYearsFairValue":{"label":"Debt Securities, Held-to-Maturity, Fair Value, Maturity, Allocated and Single Maturity Date, after Year 10","description":"Fair value of investment in debt security measured at amortized cost (held-to-maturity), with single maturity date and allocated without single maturity date, maturing after tenth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-09-30","val":230000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":188000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":163000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":143000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":162000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":178000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"HeldToMaturitySecuritiesDebtMaturitiesWithinOneYearFairValue":{"label":"Debt Securities, Held-to-Maturity, Fair Value, Maturity, Allocated and Single Maturity Date, Year One","description":"Fair value of investment in debt security measured at amortized cost (held-to-maturity), with single maturity date and allocated without single maturity date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-09-30","val":10000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":9000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-06-30","val":8000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"}]}},"ImpairmentOfIntangibleAssetsExcludingGoodwill":{"label":"Impairment of Intangible Assets (Excluding Goodwill)","description":"The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to fair value.","units":{"USD":[{"start":"2024-01-01","end":"2024-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ImpairmentOfIntangibleAssetsFinitelived":{"label":"Impairment of Intangible Assets, Finite-lived","description":"The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of a finite-lived intangible asset to fair value.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-09-30","val":50000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":50000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":50000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":50000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill":{"label":"Impairment of Intangible Assets, Indefinite-lived (Excluding Goodwill)","description":"Amount of impairment loss resulting from write-down of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit to fair value.","units":{"USD":[{"end":"2022-07-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022Q2I"},{"end":"2023-07-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-07-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q2I"},{"end":"2024-07-31","val":50000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2024-07-31","val":50000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-07-31","val":50000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-07-31","val":50000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q2I"},{"start":"2024-01-01","end":"2024-09-30","val":50000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2025-07-31","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2025-07-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q2I"},{"start":"2025-01-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"}]}},"IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest":{"label":"Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest","description":"Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":6290000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":5228000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":1808000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":7155000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":7155000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1913000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":3927000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":2014000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":6192000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":6192000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":2265000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":2265000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":8295000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":8295000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":1763000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":4015000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":2252000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":6012000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1997000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":7619000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeLossFromEquityMethodInvestments":{"label":"Income (Loss) from Equity Method Investments","description":"Amount of income (loss) for proportionate share of equity method investee's income (loss).","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":29000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":304000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":378000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":378000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":48000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":92000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":119000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":119000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":41000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":41000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":51000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":93000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":48000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":51000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxExpenseBenefit":{"label":"Income Tax Expense (Benefit)","description":"Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":1296000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1041000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":213000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":1479000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":1479000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":290000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":767000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":477000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":1341000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":1341000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":574000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":574000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":1783000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":1783000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":248000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":835000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":587000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":1305000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":470000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":1677000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncreaseDecreaseInAccountsPayableAndAccruedLiabilities":{"label":"Increase (Decrease) in Accounts Payable and Accrued Liabilities","description":"The increase (decrease) during the reporting period in the amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-151000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":-67000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":-26000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":-26000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":196000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":96000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":225000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":225000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":259000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":259000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":84000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":182000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":-21000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":75000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncreaseDecreaseInAccountsReceivable":{"label":"Increase (Decrease) in Accounts Receivable","description":"The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-416000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":607000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":586000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":586000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":73000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":100000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":410000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":410000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":443000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":443000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-123000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-114000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":265000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":619000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncreaseDecreaseInEmployeeRelatedLiabilities":{"label":"Increase (Decrease) in Employee Related Liabilities","description":"The increase (decrease) during the reporting period in the aggregate amount of obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-711000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":-479000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":145000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":145000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-1339000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-948000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":-297000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":-297000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":367000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":367000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-1794000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-1186000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":-391000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":659000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncreaseDecreaseInOtherOperatingAssets":{"label":"Increase (Decrease) in Other Operating Assets","description":"Amount of increase (decrease) in operating assets classified as other.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":166000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1410000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":326000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":326000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":796000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1064000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":561000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":561000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":-317000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-317000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":3454000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":2480000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":2666000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":722000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncreaseDecreaseInOtherOperatingLiabilities":{"label":"Increase (Decrease) in Other Operating Liabilities","description":"Amount of increase (decrease) in operating liabilities classified as other.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-481000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1332000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":375000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":375000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":876000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1048000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":480000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":488000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":-382000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-382000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":2990000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1853000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":2389000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":225000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncreaseDecreaseInTradingSecurities":{"label":"Increase (Decrease) in Debt Securities, Trading, and Equity Securities, FV-NI","description":"Amount of increase (decrease) of investment in debt and equity securities, measured at fair value with changes in fair value recognized in net income.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-196000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":-52000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":-72000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":-72000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":9000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":40000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":34000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":34000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":-58000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-58000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-12000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-78000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":-139000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":-193000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IndefiniteLivedIntangibleAssetsExcludingGoodwill":{"label":"Indefinite-lived Intangible Assets (Excluding Goodwill)","description":"Amount of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit.","units":{"USD":[{"end":"2023-12-31","val":17578000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":17578000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":17528000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":17528000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":17528000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":17528000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":17528000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":17528000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":17528000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":17528000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":20528000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":20428000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"IndefinitelivedIntangibleAssetsAcquired":{"label":"Indefinite-lived Intangible Assets Acquired","description":"Amount of increase in assets, excluding financial assets and goodwill, lacking physical substance with an indefinite life, from an acquisition.","units":{"USD":[{"start":"2024-01-01","end":"2024-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":3000000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"}]}},"IntangibleAssetsNetExcludingGoodwill":{"label":"Intangible Assets, Net (Excluding Goodwill)","description":"Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.","units":{"USD":[{"end":"2023-12-31","val":18258000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":18258000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":18134000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":20743000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":20743000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":20743000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":20743000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":20743000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":21850000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":21677000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":28162000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":27968000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"InterestExpenseNonoperating":{"label":null,"description":null,"units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":212000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":210000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":82000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":292000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":292000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":92000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":218000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":126000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":372000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":372000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":154000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":154000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":538000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":538000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":166000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":339000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":173000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":474000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":135000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":614000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"InvestmentIncomeInterestAndDividend":{"label":"Investment Income, Interest and Dividend","description":"Amount before accretion (amortization) of purchase discount (premium) of interest income and dividend income on nonoperating securities.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":152000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":314000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":139000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":473000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":473000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":141000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":319000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":178000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":555000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":555000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":236000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":236000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":767000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":767000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":173000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":317000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":144000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":430000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":113000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":554000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"Investments":{"label":"Investments","description":"Sum of the carrying amounts as of the balance sheet date of all investments.","units":{"USD":[{"end":"2023-12-31","val":9740000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":9740000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":10539000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":9769000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":9769000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":9769000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":9769000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":9769000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":10525000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":10874000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":13669000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":13271000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LaborAndRelatedExpense":{"label":"Labor and Related Expense","description":"Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":5681000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":4276000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":1420000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":5779000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":5779000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1580000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":3083000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":1503000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":4661000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":4661000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":1578000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":1578000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":6546000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":6546000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":1741000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":3505000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":1764000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":5862000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":2357000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":8446000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"LeaseCost":{"label":"Lease, Cost","description":"Amount of lease cost recognized by lessee for lease contract.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":255000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":179000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":58000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":238000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":238000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":59000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":118000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":59000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":179000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":179000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":61000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":61000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":243000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":243000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":67000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":138000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":71000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":215000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":77000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":302000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"Liabilities":{"label":"Liabilities","description":"Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.","units":{"USD":[{"end":"2023-12-31","val":81971000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":81971000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":89192000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":89260000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":89260000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":89260000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":89260000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":89260000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":91752000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":94868000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":100827000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":108456000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LiabilitiesAndStockholdersEquity":{"label":"Liabilities and Equity","description":"Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.","units":{"USD":[{"end":"2023-12-31","val":123211000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":123211000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":132816000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":138615000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":138615000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":138615000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":138615000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":138615000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":141942000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":146470000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":162682000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":169998000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LongTermDebt":{"label":"Long-term Debt","description":"Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.","units":{"USD":[{"end":"2023-12-31","val":7918000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":7918000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":12370000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":12314000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":12314000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":12314000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":12314000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":12314000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":12349000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":12762000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":12766000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":12768000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LongTermDebtFairValue":{"label":"Long-term Debt, Fair Value","description":"The fair value amount of long-term debt whether such amount is presented as a separate caption or as a parenthetical disclosure. Additionally, this element may be used in connection with the fair value disclosures required in the footnote disclosures to the financial statements. The element may be used in both the balance sheet and disclosure in the same submission.","units":{"USD":[{"end":"2023-12-31","val":7400000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":7400000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":12279000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":11680000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":11700000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":11700000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":11700000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":11700000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":11911000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":12449000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":12572000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":12546000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"MinorityInterest":{"label":"Stockholders' Equity Attributable to Noncontrolling Interest","description":"Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which is directly or indirectly attributable to that ownership interest in subsidiary equity which is not attributable to the parent (that is, noncontrolling interest, previously referred to as minority interest).","units":{"USD":[{"end":"2023-12-31","val":153000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":153000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":172000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":169000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":169000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":169000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":169000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":169000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":170000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":165000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":216000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":227000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"NetCashProvidedByUsedInFinancingActivities":{"label":"Net Cash Provided by (Used in) Financing Activities","description":"Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-5442000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":-1489000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":-1992000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":-1992000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1095000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":454000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":2814000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":2814000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":2236000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":2236000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-661000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-635000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":-539000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":-1127000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"NetCashProvidedByUsedInInvestingActivities":{"label":"Net Cash Provided by (Used in) Investing Activities","description":"Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-1130000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":-773000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":-959000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":-959000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-22000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":141000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":67000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":67000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":-3004000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-3004000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-3336000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-3283000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":-4206000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":-4418000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"NetCashProvidedByUsedInOperatingActivities":{"label":"Net Cash Provided by (Used in) Operating Activities","description":"Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":4956000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":2167000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":4165000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":4165000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-408000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":957000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":2338000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":2338000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":4956000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":4956000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-1128000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":236000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":1650000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":3927000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"NetIncomeLoss":{"label":"Net Income (Loss) Attributable to Parent","description":"The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":5178000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":4127000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":1604000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":5502000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":5502000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1573000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":3068000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":1495000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":4699000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":4699000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":1631000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":1631000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":6369000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":6369000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":1510000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":3103000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":1593000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":4426000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1323000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":5553000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"NetIncomeLossAttributableToNoncontrollingInterest":{"label":"Net Income (Loss) Attributable to Noncontrolling Interest","description":"Amount of Net Income (Loss) attributable to noncontrolling interest.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-184000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":60000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":-9000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":174000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":50000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":92000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":42000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":152000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":60000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":143000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":5000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":77000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":72000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"}]}},"NoncurrentAssets":{"label":"Long-Lived Assets","description":"Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.","units":{"USD":[{"end":"2023-12-31","val":16636000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":16636000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":16745000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":27052000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":27052000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":27052000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":27052000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":27052000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":29418000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":29487000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":36583000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":36539000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"NonoperatingIncomeExpense":{"label":"Nonoperating Income (Expense)","description":"The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-95000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":538000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":171000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":880000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":880000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":220000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":434000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":214000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":693000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":693000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":259000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":259000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":721000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":721000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":65000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":586000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":521000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":628000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":42000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":574000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"NumberOfOperatingSegments":{"label":"Number of Operating Segments","description":"Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.","units":{"Segment":[{"start":"2024-01-01","end":"2024-09-30","val":1,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":1,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":1,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":1,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":1,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"OperatingExpenses":{"label":"Operating Expenses","description":"Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":11488000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":8538000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":2885000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":11584000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":11584000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":3035000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":6040000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":3005000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":9231000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":9231000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":3191000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":3191000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":12833000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":12833000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":3578000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":7270000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":3692000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":11824000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":4554000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":17171000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"OperatingIncomeLoss":{"label":"Operating Income (Loss)","description":"The net result for the period of deducting operating expenses from operating revenues.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":6385000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":4690000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":1637000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":6275000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":6275000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1693000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":3493000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":1800000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":5499000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":5499000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":2006000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":2006000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":7574000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":7574000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":1698000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":3429000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":1731000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":5384000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1955000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":7045000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"OperatingLeaseCost":{"label":"Operating Lease, Cost","description":"Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":216000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":144000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":43000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":189000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":189000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":45000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":91000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":46000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":136000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":136000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":45000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":45000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":183000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":183000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":50000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":105000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":55000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":164000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":59000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":233000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"OperatingLeaseLiability":{"label":"Operating Lease, Liability","description":"Present value of lessee's discounted obligation for lease payments from operating lease.","units":{"USD":[{"end":"2023-12-31","val":1784000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1784000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":1809000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1908000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1908000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1908000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1908000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1908000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1910000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1948000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":2277000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":2228000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"OperatingLeasePayments":{"label":"Operating Lease, Payments","description":"Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":162000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":109000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":142000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":142000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":44000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":89000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":136000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":136000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":183000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":183000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":49000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":98000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":150000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":210000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"OperatingLeaseRightOfUseAsset":{"label":"Operating Lease, Right-of-Use Asset","description":"Amount of lessee's right to use underlying asset under operating lease.","units":{"USD":[{"end":"2023-12-31","val":1421000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1421000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":1434000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1519000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1519000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1519000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1519000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1519000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1520000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1553000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1909000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":1874000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"OperatingLeaseRightOfUseAssetAmortizationExpense":{"label":"Operating Lease, Right-of-Use Asset, Amortization Expense","description":"Amount of amortization expense for right-of-use asset from operating lease.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":165000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":108000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":140000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":140000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":32000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":64000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":96000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":96000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":129000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":129000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":34000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":69000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":104000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":148000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"OperatingLeaseWeightedAverageDiscountRatePercent":{"label":"Operating Lease, Weighted Average Discount Rate, Percent","description":"Weighted average discount rate for operating lease calculated at point in time.","units":{"pure":[{"end":"2023-12-31","val":0.03,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":0.03,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":0.03,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":0.03,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.03,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":0.03,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":0.03,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":0.03,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":0.03,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":0.03,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":0.03,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":0.04,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"OtherAssets":{"label":"Other Assets","description":"Amount of assets classified as other.","units":{"USD":[{"end":"2023-12-31","val":3848000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":3848000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":4498000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":3596000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":3596000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":3596000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":3596000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":3596000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":7143000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":6648000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":7776000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":5700000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax":{"label":"Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax","description":"Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-551000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":-221000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":261000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":261000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-93000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-138000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":-45000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":208000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":208000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":346000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":346000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":-338000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-338000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":227000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":663000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":436000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":620000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":-43000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":606000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"OtherComprehensiveIncomeLossNetOfTax":{"label":"Other Comprehensive Income (Loss), Net of Tax","description":"Amount after tax and reclassification adjustments of other comprehensive income (loss).","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-551000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":-221000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":261000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":261000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-93000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-138000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":-45000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":208000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":208000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":346000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":346000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":-338000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-338000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":227000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":663000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":436000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":620000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":-43000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":606000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"OtherFiniteLivedIntangibleAssetsGross":{"label":"Other Finite-Lived Intangible Assets, Gross","description":"Amount before accumulated amortization of finite-lived intangible assets classified as other.","units":{"USD":[{"end":"2024-09-30","val":5000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2025-03-31","val":2000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":6000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":4000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"}]}},"OtherIndefiniteLivedIntangibleAssets":{"label":"Other Indefinite-lived Intangible Assets","description":"Amount after impairment of indefinite-lived intangible assets classified as other. Excludes financial assets and goodwill.","units":{"USD":[{"end":"2024-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"}]}},"OtherLiabilities":{"label":"Other Liabilities","description":"Amount of liabilities classified as other.","units":{"USD":[{"end":"2023-12-31","val":4474000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":4375000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":5061000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":4032000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":4032000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":4032000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":4032000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":4032000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":7198000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":6283000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":8570000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":6823000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"OtherNoncashIncome":{"label":"Other Noncash Income","description":"Amount of income or gain included in net income that result in no cash inflow (outflow), classified as other.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":268000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":24000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":59000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":128000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":128000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":126000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":126000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":36000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":433000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":360000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":289000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"PaymentsForRepurchaseOfCommonStock":{"label":"Payments for Repurchase of Common Stock","description":"The cash outflow to reacquire common stock during the period.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":2332000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1500000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":1884000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":634000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1153000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":1544000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":1930000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":657000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1053000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"}]}},"PaymentsForRestructuring":{"label":"Payments for Restructuring","description":"Amount of cash payments made as the result of exit or disposal activities. Excludes payments associated with a discontinued operation or an asset retirement obligation.","units":{"USD":[{"start":"2023-01-01","end":"2023-09-30","val":56000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":3000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":58000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-09-30","val":47000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":2000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":47000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":47000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-09-30","val":21000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":27000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"PaymentsOfDividends":{"label":"Payments of Dividends","description":"Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":2990000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":2292000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":3035000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":795000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1553000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":2310000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":3101000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":838000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1646000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"}]}},"PaymentsToAcquireBusinessesNetOfCashAcquired":{"label":"Payments to Acquire Businesses, Net of Cash Acquired","description":"The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":189000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":189000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":189000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":74000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":74000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":74000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":2936000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":2936000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":3123000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":3106000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":3496000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":3496000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"PaymentsToAcquireInvestments":{"label":"Payments to Acquire Investments","description":"The cash outflow associated with the purchase of all investments (debt, security, other) during the period.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":824000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":681000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":846000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":846000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":324000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":517000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":586000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":586000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":818000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":818000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":298000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":434000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":1144000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":1384000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"PaymentsToAcquirePropertyPlantAndEquipment":{"label":"Payments to Acquire Property, Plant, and Equipment","description":"The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":533000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":220000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":344000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":344000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":64000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":71000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":165000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":165000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":255000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":255000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":78000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":167000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":245000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":375000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ProceedsFromEquityMethodInvestmentDividendsOrDistributionsReturnOfCapital":{"label":"Proceeds from Equity Method Investment, Distribution, Return of Capital","description":"Amount of distribution received from equity method investee for return of investment, classified as investing activities. Excludes distribution for return on investment, classified as operating activities.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":70000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":26000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":46000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":46000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":162000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":317000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":344000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":344000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":366000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":366000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":13000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":262000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":297000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":390000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ProceedsFromIssuanceOfLongTermDebt":{"label":"Proceeds from Issuance of Long-term Debt","description":"The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1238000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":1238000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":1238000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":2979000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":2979000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":5474000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":5474000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":5474000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":5474000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1080000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":1080000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":1080000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ProceedsFromPaymentsForOtherFinancingActivities":{"label":"Proceeds from (Payments for) Other Financing Activities","description":"Amount of cash inflow (outflow) from financing activities classified as other.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":27000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":20000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":26000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":26000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":-15000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":-9000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":-19000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":-19000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":-18000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-18000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-4000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-5000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":2000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":5000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ProceedsFromPaymentsToMinorityShareholders":{"label":"Proceeds from (Payments to) Noncontrolling Interests","description":"Amount of cash inflow (outflow) from (to) a noncontrolling interest. Excludes dividends paid to the noncontrolling interest.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":618000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1032000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":1627000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":1627000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":430000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":955000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":1991000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":1991000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":2405000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":2405000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":811000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1716000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":3000000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":3827000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ProceedsFromSaleMaturityAndCollectionsOfInvestments":{"label":"Proceeds from Sale, Maturity and Collection of Investments","description":"The cash inflow associated with the sale, maturity and collection of all investments such as debt, security and so forth during the period.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":242000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":270000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":400000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":400000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":210000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":520000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":646000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":646000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":766000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":766000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":151000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":230000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":467000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":544000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ProceedsFromStockOptionsExercised":{"label":"Proceeds from Stock Options Exercised","description":"Amount of cash inflow from exercise of option under share-based payment arrangement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":11000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":51000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":95000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":95000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":144000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":163000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":247000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":247000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":464000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":464000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":51000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":98000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":153000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":167000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ProfitLoss":{"label":"Net Income (Loss), Including Portion Attributable to Noncontrolling Interest","description":"The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":4994000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":4187000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":1595000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":5676000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":5676000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1623000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":3160000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":1537000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":4851000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":4851000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":1691000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":1691000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":6512000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":6512000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":1515000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":3180000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":1665000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":4707000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1527000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":5942000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"PropertyPlantAndEquipmentNet":{"label":"Property, Plant and Equipment, Net","description":"Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.","units":{"USD":[{"end":"2023-12-31","val":1112000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1112000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":1080000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1103000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1103000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1103000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1103000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1103000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1120000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1159000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1227000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":1256000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"RepaymentsOfLongTermDebt":{"label":"Repayments of Long-term Debt","description":"The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":750000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":1000000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1000000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":1000000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":1000000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":1000000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":1000000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":796000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":796000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":796000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"RestrictedCash":{"label":"Restricted Cash","description":"Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.","units":{"USD":[{"end":"2023-12-31","val":17000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":17000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":17000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":17000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":17000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":17000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":17000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":17000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":17000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":17000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":22000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":22000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"RestructuringCharges":{"label":"Restructuring Charges","description":"Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":91000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2022-10-01","end":"2022-12-31","val":91000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2022Q4"},{"start":"2023-01-01","end":"2023-12-31","val":61000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":61000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2023-10-01","end":"2023-12-31","val":61000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-10-01","end":"2023-12-31","val":61000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4"},{"start":"2024-01-01","end":"2024-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-06-30","val":39000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-06-30","val":39000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25"},{"start":"2025-04-01","end":"2025-06-30","val":39000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":39000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":39000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":39000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"RestructuringReserve":{"label":"Restructuring Reserve","description":"Carrying amount (including both current and noncurrent portions of the accrual) as of the balance sheet date pertaining to a specified type of cost associated with exit from or disposal of business activities or restructuring pursuant to a duly authorized plan.","units":{"USD":[{"end":"2022-12-31","val":58000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2022-12-31","val":58000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022Q4I"},{"end":"2023-06-30","val":5000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q2I"},{"end":"2023-09-30","val":2000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3I"},{"end":"2023-12-31","val":47000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":47000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":47000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-06-30","val":2000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q2I"},{"end":"2024-09-30","val":0,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-06-30","val":27000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":6000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"RetainedEarningsUnappropriated":{"label":"Retained Earnings, Unappropriated","description":"A segregation of retained earnings which is available for dividend distribution. Earnings not paid out as dividends but instead reinvested in the core business or used to pay off debt. Unappropriated profit is part of shareholder equity. Also called cumulative distributions or earned surplus or accumulated earnings or unappropriated profit.","units":{"USD":[{"end":"2023-12-31","val":32343000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":32343000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":34732000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":35611000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":35611000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":35611000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":35611000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":35611000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":36283000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":37068000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":37581000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":37899000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"RevenueFromContractWithCustomerExcludingAssessedTax":{"label":"Revenue from Contract with Customer, Excluding Assessed Tax","description":"Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":17873000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":13228000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":4522000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":17859000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":17859000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":4728000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":9533000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":4805000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":14730000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":14730000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":5197000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":5197000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":20407000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":20407000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":5276000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":10699000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":5423000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":17208000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":6509000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":24216000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability":{"label":"Right-of-Use Asset Obtained in Exchange for Operating Lease Liability","description":"Amount of increase in right-of-use asset obtained in exchange for operating lease liability.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":115000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":20000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":32000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":32000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":27000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":110000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":104000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":104000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":235000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":235000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":30000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":83000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":478000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":489000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"SecuritiesBorrowedFairValueOfCollateral":{"label":"Securities Borrowed, Fair Value of Collateral","description":"Fair value of the securities received as collateral against securities borrowed.","units":{"USD":[{"end":"2023-12-31","val":4558000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":4558000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":6355000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":6059000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":6059000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":6059000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":6059000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":6059000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":5803000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":6293000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":6236000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":7922000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"SecuritiesLoanedOrSoldUnderAgreementsToRepurchaseFairValueDisclosure":{"label":"Securities Loaned or Sold under Agreements to Repurchase, Fair Value Disclosure","description":"Fair value portion of securities that an entity sells and agrees to repurchase at a specified date for a specified price.","units":{"USD":[{"end":"2023-12-31","val":9300000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":9300000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":10800000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":9900000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":9900000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":9900000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":9900000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":9900000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":10100000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":11300000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":10900000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":13300000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"SeparateAccountAssets":{"label":"Separate Account Asset","description":"Amount of asset at fair value held for benefit of separate account policyholder.","units":{"USD":[{"end":"2023-12-31","val":56098000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":56098000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":56689000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":52811000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":52811000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":52811000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":52811000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":52811000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":53655000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":56109000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":53572000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":60098000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"SeparateAccountsLiability":{"label":"Separate Account, Liability","description":"Amount of liability for variable contract in which all or portion of contract holder's funds is allocated to specific separate account and supported by assets held in separate account.","units":{"USD":[{"end":"2023-12-31","val":56098000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":56098000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":56689000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":52811000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":52811000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":52811000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":52811000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":52811000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":53655000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":56109000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":53572000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":60098000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"SeveranceCosts1":{"label":"Severance Costs","description":"Amount of expenses for special or contractual termination benefits provided to current employees involuntarily terminated under a benefit arrangement associated exit or disposal activities pursuant to an authorized plan. Excludes expenses related to one-time termination benefits, a discontinued operation or an asset retirement obligation.","units":{"USD":[{"start":"2022-10-01","end":"2022-12-31","val":58000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2022Q4"},{"start":"2023-10-01","end":"2023-12-31","val":47000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-10-01","end":"2023-12-31","val":47000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4"},{"start":"2025-01-01","end":"2025-06-30","val":27000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25"},{"start":"2025-04-01","end":"2025-06-30","val":27000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":27000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q2"}]}},"ShareBasedCompensation":{"label":"Share-based Payment Arrangement, Noncash Expense","description":"Amount of noncash expense for share-based payment arrangement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":708000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":469000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":630000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":630000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":176000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":355000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":511000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":511000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":753000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":753000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":241000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":467000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":886000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":1307000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period","description":"The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.","units":{"shares":[{"start":"2024-01-01","end":"2024-09-30","val":74291,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":12365,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":6180,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":23254,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":25274,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":26220,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value","description":"Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.","units":{"USD/shares":[{"start":"2024-01-01","end":"2024-09-30","val":745.32,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":784.44,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":812.93,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":809.88,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":816.37,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":818.95,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period","description":"The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).","units":{"shares":[{"start":"2024-01-01","end":"2024-09-30","val":864219,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":376136,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":136133,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":136902,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":168731,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":168731,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value","description":"The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).","units":{"USD/shares":[{"start":"2024-01-01","end":"2024-09-30","val":801.96,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":824.94,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":999.36,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":999.09,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":991.2,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":991.2,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value","description":"Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.","units":{"USD/shares":[{"end":"2023-12-31","val":757.49,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":767.69,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":778.21,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":806.71,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":806.71,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":806.71,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":806.71,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":806.71,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":841.26,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":842.24,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":847.49,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":847.43,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period","description":"The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.","units":{"shares":[{"start":"2024-01-01","end":"2024-09-30","val":760294,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":116029,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":54212,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":54212,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":54212,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":54212,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value","description":"The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.","units":{"USD/shares":[{"start":"2024-01-01","end":"2024-09-30","val":760.09,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-12-31","val":739.32,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":832.07,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":832.07,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":832.07,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":832.07,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Outstanding, Number","description":"Number of equity instruments other than options outstanding, including both vested and non-vested instruments.","units":{"shares":[{"end":"2023-12-31","val":1772639,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":456384,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":1802273,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":661547,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":661547,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":661547,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":661547,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":661547,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":665422,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":649117,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":678926,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":677980,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number","description":"Number of options outstanding, including both vested and non-vested options.","units":{"shares":[{"end":"2024-09-30","val":2115960,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1692481,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1562089,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1413229,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1287788,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":1260465,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Exercisable, Aggregate Intrinsic Value","description":"Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.","units":{"USD":[{"end":"2024-09-30","val":222000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":320000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":228000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":233000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":214000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":167000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value","description":"Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.","units":{"USD":[{"end":"2024-09-30","val":753000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":695000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":511000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":601000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":687000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":548000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions":{"label":"Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable","description":"The number of shares reserved for issuance pertaining to the outstanding exercisable stock options as of the balance sheet date in the customized range of exercise prices for which the market and performance vesting condition has been satisfied.","units":{"shares":[{"end":"2024-09-30","val":509416,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":625825,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":525977,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":434811,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":327679,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":300356,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"SponsorFees":{"label":"Sponsor Fees","description":"Fees paid to advisors who provide certain management support and administrative oversight services including the organization and sale of stock, investment funds, limited partnerships and mutual funds.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":2179000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1549000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":526000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":2051000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":2051000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":518000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":1057000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":539000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":1606000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":1606000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":549000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":549000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":2171000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":2171000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":570000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":1146000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":576000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":1784000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":638000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":2460000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"StockholdersEquity":{"label":"Stockholders' Equity Attributable to Parent","description":"Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.","units":{"USD":[{"end":"2023-12-31","val":39347000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":39347000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":41178000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":47495000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":47495000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":47495000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":47495000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":47495000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":48036000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":49141000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":55519000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":55888000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest":{"label":"Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest","description":"Amount of stockholders' equity (deficit), net of receivables from officers, directors, owners, and affiliates of the entity, attributable to both the parent and noncontrolling interests. Amount excludes temporary equity. Alternate caption for the concept is permanent equity.","units":{"USD":[{"end":"2021-12-31","val":37806000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2021Q4I"},{"end":"2022-12-31","val":37876000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2022-12-31","val":37876000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2022-12-31","val":37876000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2022Q4I"},{"end":"2023-06-30","val":38350000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q2I"},{"end":"2023-09-30","val":38780000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3I"},{"end":"2023-12-31","val":39500000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":39500000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":39500000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2023-12-31","val":39500000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2023-12-31","val":39500000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2023-12-31","val":39500000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-03-31","val":39895000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-03-31","val":39895000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q1I"},{"end":"2024-06-30","val":40271000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2024-06-30","val":40271000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-06-30","val":40271000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q2I"},{"end":"2024-09-30","val":41350000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2024-09-30","val":41350000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3I"},{"end":"2024-12-31","val":47664000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":47664000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":47664000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":47664000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":47664000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":48206000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2025-03-31","val":48206000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q1I"},{"end":"2025-06-30","val":49306000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2025-06-30","val":49306000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q2I"},{"end":"2025-09-30","val":55735000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":56115000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"StockIssued1":{"label":"Stock Issued","description":"The fair value of stock issued in noncash financing activities.","units":{"USD":[{"start":"2023-01-01","end":"2023-09-30","val":554000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-01-01","end":"2023-12-31","val":569000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":392000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":417000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-01-01","end":"2024-09-30","val":439000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":439000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":215000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":42000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":119000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":151000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"StockIssuedDuringPeriodValueEmployeeStockPurchasePlan":{"label":"Stock Issued During Period, Value, Employee Stock Purchase Plan","description":"Aggregate change in value for stock issued during the period as a result of employee stock purchase plan.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":38000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":79000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":32000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":129000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":129000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":151000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":176000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":25000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":267000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":267000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":91000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":91000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":491000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":491000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":58000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":112000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":54000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":174000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":62000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":195000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests":{"label":"Temporary Equity, Carrying Amount, Including Portion Attributable to Noncontrolling Interests","description":"Carrying amount, attributable to parent and noncontrolling interests, of an entity's issued and outstanding stock which is not included within permanent equity. Temporary equity is a security with redemption features that are outside the control of the issuer, is not classified as an asset or liability in conformity with GAAP, and is not mandatorily redeemable. Includes any type of security that is redeemable at a fixed or determinable price or on a fixed or determinable date or dates, is redeemable at the option of the holder, or has conditions for redemption which are not solely within the control of the issuer. Includes stock with a put option held by an ESOP and stock redeemable by a holder only in the event of a change in control of the issuer.","units":{"USD":[{"end":"2023-12-31","val":1740000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1740000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":2274000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1691000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1691000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1691000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1984000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":2296000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"}]}},"TradingSecuritiesDebt":{"label":"Debt Securities, Trading","description":"Amount of investment in debt security measured at fair value with change in fair value recognized in net income (trading).","units":{"USD":[{"end":"2023-12-31","val":1871000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1871000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":1969000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1823000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1823000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1823000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1751000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1751000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1964000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":2172000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":2619000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":2789000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TradingSecuritiesDebtAmortizedCost":{"label":"Debt Securities, Trading, Amortized Cost","description":"Amortized cost of investments in debt securities classified as trading.","units":{"USD":[{"end":"2023-12-31","val":1911000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":1911000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":1960000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":1847000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1847000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":1847000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":1757000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":1757000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1994000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":2179000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":2592000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":2768000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TranslationAdjustmentForNetInvestmentHedgeIncreaseDecreaseNetOfTax":{"label":"Gain (Loss) on Derivative Used in Net Investment Hedge, after Tax","description":"Amount, after tax, of reclassification from accumulated other comprehensive income (AOCI) of gain (loss) from increase (decrease) in fair value of net investment hedge.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":37000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":5000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":17000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":-20000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":-20000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":13000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":18000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":4000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":-6000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":-6000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":-24000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":-24000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":37000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":37000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-34000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-96000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":-62000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":-103000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":-96000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"TreasuryStockCommonShares":{"label":"Treasury Stock, Common, Shares","description":"Number of previously issued common shares repurchased by the issuing entity and held in treasury.","units":{"shares":[{"end":"2023-12-31","val":23575299,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":23575299,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":24121801,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":370357,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":370357,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":370357,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":370357,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":370357,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1009600,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1280976,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1152022,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":1207118,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TreasuryStockValue":{"label":"Treasury Stock, Value","description":"The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.","units":{"USD":[{"end":"2023-12-31","val":11991000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"end":"2023-12-31","val":11991000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-09-30","val":12829000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2024Q3I"},{"end":"2024-12-31","val":386000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":386000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":386000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":386000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":386000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":1042000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":1285000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":1155000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":1216000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TreasuryStockValueAcquiredCostMethod":{"label":"Treasury Stock, Value, Acquired, Cost Method","description":"Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":1875000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":1131000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":379000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":1509000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":1509000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":375000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":875000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":500000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":1250000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":1250000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":375000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":375000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":1625000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":1625000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":375000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":750000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":375000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"}]}},"VariableLeaseCost":{"label":"Variable Lease, Cost","description":"Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":39000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":35000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":15000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":49000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":49000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":14000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":27000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":13000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":43000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":43000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":16000000,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":16000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":60000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":60000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":17000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":33000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":16000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":51000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":18000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":69000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"WeightedAverageNumberOfDilutedSharesOutstanding":{"label":"Weighted Average Number of Shares Outstanding, Diluted","description":"The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.","units":{"shares":[{"start":"2022-01-01","end":"2022-12-31","val":152440471,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":150862023,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":150505143,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":150706451,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":150706451,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":150125182,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":149891535,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":149657889,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":149795958,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":149795958,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":149608575,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":149608575,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":151615085,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":151615085,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":156632023,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":156442469,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":156253855,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":159354027,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":165177482,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":160866521,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"WeightedAverageNumberOfSharesOutstandingBasic":{"label":"Weighted Average Number of Shares Outstanding, Basic","description":"Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.","units":{"shares":[{"start":"2022-01-01","end":"2022-12-31","val":150921161,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-09-30","val":149553652,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2023-07-01","end":"2023-09-30","val":149155258,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06","frame":"CY2023Q3"},{"start":"2023-01-01","end":"2023-12-31","val":149327558,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":149327558,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-03-31","val":148689172,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q1"},{"start":"2024-01-01","end":"2024-06-30","val":148566061,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2024-04-01","end":"2024-06-30","val":148442950,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2024Q2"},{"start":"2024-01-01","end":"2024-09-30","val":148392684,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-01-01","end":"2024-09-30","val":148392684,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":148049700,"accn":"0000950170-24-122256","fy":2024,"fp":"Q3","form":"10-Q","filed":"2024-11-06"},{"start":"2024-07-01","end":"2024-09-30","val":148049700,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":150042269,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":150042269,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":155038772,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":154953413,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":154868992,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":154942905,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":154922231,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":154984319,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"AccruedIncomeTaxes":{"label":"Accrued Income Taxes","description":"Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due. This amount is the total of current and noncurrent accrued income taxes.","units":{"USD":[{"end":"2023-12-31","val":85000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":134000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":134000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":188000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"AssetAcquisitionContingentConsiderationLiability":{"label":null,"description":null,"units":{"USD":[{"end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022Q4I"},{"end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":4246000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"}]}},"BusinessCombinationContingentConsiderationLiabilityCurrent":{"label":"Business Combination, Contingent Consideration, Liability, Current","description":"Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled within one year or the normal operating cycle, if longer.","units":{"USD":[{"end":"2023-12-31","val":99000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":4302000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":4302000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":4302000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":4302000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":4302000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":4390000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1I"},{"end":"2025-06-30","val":4472000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2I"},{"end":"2025-09-30","val":7978000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":8429000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"Capital":{"label":"Banking Regulation, Total Capital, Actual","description":"Amount of total capital as defined by regulatory framework.","units":{"USD":[{"end":"2023-12-31","val":775000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":961000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":961000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":851000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CapitalRequiredForCapitalAdequacy":{"label":"Banking Regulation, Total Risk-Based Capital, Capital Adequacy, Minimum","description":"Amount of minimum total risk-based capital required for capital adequacy as defined by regulatory framework.","units":{"USD":[{"end":"2023-12-31","val":43000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":50000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":50000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":59000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CapitalRequiredForCapitalAdequacyToRiskWeightedAssets":{"label":"Banking Regulation, Total Risk-Based Capital Ratio, Capital Adequacy, Minimum","description":"Ratio of minimum total risk-based capital to risk-weighted assets required for capital adequacy as defined by regulatory framework.","units":{"pure":[{"end":"2023-12-31","val":0.08,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":0.08,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.08,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.08,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CapitalRequiredToBeWellCapitalized":{"label":"Banking Regulation, Total Risk-Based Capital, Well Capitalized, Minimum","description":"Amount of minimum total risk-based capital categorized as well capitalized as defined by regulatory framework for prompt corrective action.","units":{"USD":[{"end":"2023-12-31","val":53000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":63000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":63000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":74000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CapitalRequiredToBeWellCapitalizedToRiskWeightedAssets":{"label":"Banking Regulation, Total Risk-Based Capital Ratio, Well Capitalized, Minimum","description":"Ratio of minimum total risk-based capital to risk-weighted assets categorized as well capitalized as defined by regulatory framework for prompt corrective action.","units":{"pure":[{"end":"2023-12-31","val":0.1,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":0.1,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.1,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.1,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CapitalToRiskWeightedAssets":{"label":"Banking Regulation, Total Risk-Based Capital Ratio, Actual","description":"Ratio of total risk-based capital to risk-weighted assets as defined by regulatory framework.","units":{"pure":[{"end":"2023-12-31","val":1.458,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":1.532,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.1532,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.1146,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CurrentFederalTaxExpenseBenefit":{"label":"Current Federal Tax Expense (Benefit)","description":"Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":255000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":641000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":641000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":960000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":960000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":1250000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"CurrentForeignTaxExpenseBenefit":{"label":"Current Foreign Tax Expense (Benefit)","description":"Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":448000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":538000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":538000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":787000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":787000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":844000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"CurrentIncomeTaxExpenseBenefit":{"label":"Current Income Tax Expense (Benefit)","description":"Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":694000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":1355000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":1355000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":1889000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":1889000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":2308000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"CurrentStateAndLocalTaxExpenseBenefit":{"label":"Current State and Local Tax Expense (Benefit)","description":"Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-9000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":176000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":176000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":142000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":142000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":214000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DeferredCompensationArrangementWithIndividualCompensationExpense":{"label":"Deferred Compensation Arrangement with Individual, Compensation Expense","description":"The compensation expense recognized during the period pertaining to the deferred compensation arrangement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":224000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":226000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":226000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":212000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":212000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":371000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DeferredFederalIncomeTaxExpenseBenefit":{"label":"Deferred Federal Income Tax Expense (Benefit)","description":"Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":562000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":101000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":101000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":-105000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-105000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":-530000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DeferredForeignIncomeTaxExpenseBenefit":{"label":"Deferred Foreign Income Tax Expense (Benefit)","description":"Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-24000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":12000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":12000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":-1000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-1000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":-71000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DeferredStateAndLocalIncomeTaxExpenseBenefit":{"label":"Deferred State and Local Income Tax Expense (Benefit)","description":"Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":64000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":11000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":11000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":-30000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DeferredTaxAssetsGross":{"label":"Deferred Tax Assets, Gross","description":"Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.","units":{"USD":[{"end":"2023-12-31","val":1511000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":1567000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1567000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":2335000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxAssetsNet":{"label":"Deferred Tax Assets, Net of Valuation Allowance","description":"Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.","units":{"USD":[{"end":"2023-12-31","val":1452000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":1498000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":1498000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":2154000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxAssetsOperatingLossCarryforwards":{"label":"Deferred Tax Assets, Operating Loss Carryforwards","description":"Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.","units":{"USD":[{"end":"2023-12-31","val":95000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":103000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":103000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":115000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxAssetsOther":{"label":"Deferred Tax Assets, Other","description":"Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.","units":{"USD":[{"end":"2023-12-31","val":825000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":795000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":795000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":855000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxAssetsTaxCreditCarryforwardsForeign":{"label":"Deferred Tax Assets, Tax Credit Carryforwards, Foreign","description":"Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign tax credit carryforwards.","units":{"USD":[{"end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":39000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":39000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":105000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits":{"label":"Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits","description":"Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from compensation and benefits costs.","units":{"USD":[{"end":"2023-12-31","val":375000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":354000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":354000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":534000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxAssetsValuationAllowance":{"label":"Deferred Tax Assets, Valuation Allowance","description":"Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.","units":{"USD":[{"end":"2023-12-31","val":59000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":69000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":69000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":181000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxLiabilities":{"label":"Deferred Tax Liabilities, Net","description":"Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.","units":{"USD":[{"end":"2023-12-31","val":3298000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":3153000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":3153000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":4429000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxLiabilitiesGoodwillAndIntangibleAssets":{"label":"Deferred Tax Liabilities, Goodwill and Intangible Assets","description":"Amount of deferred tax liability attributable to taxable temporary differences from intangible assets including goodwill.","units":{"USD":[{"end":"2023-12-31","val":4299000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":4199000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":4199000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":4943000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DeferredTaxLiabilitiesOther":{"label":"Deferred Tax Liabilities, Other","description":"Amount of deferred tax liability attributable to taxable temporary differences classified as other.","units":{"USD":[{"end":"2023-12-31","val":340000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":341000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":341000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":493000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"DepreciationAndAmortization":{"label":"Depreciation, Depletion and Amortization, Nonproduction","description":"The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":251000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":263000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":263000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":270000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":270000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":297000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DerivativesUsedInNetInvestmentHedgeTaxExpenseBenefit":{"label":"Derivatives used in Net Investment Hedge, Tax Expense (Benefit)","description":"Amount of income tax expense (benefit) from transactions on foreign currency derivatives that are designated as, and are effective as, economic hedges of a net investment in a foreign entity.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":12000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":-6000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":12000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"}]}},"EffectiveIncomeTaxRateContinuingOperations":{"label":"Effective Income Tax Rate Reconciliation, Percent","description":"Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.","units":{"pure":[{"start":"2022-01-01","end":"2022-12-31","val":0.2,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0.21,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0.21,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0.22,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0.22,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":0.23,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate":{"label":"Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent","description":"Percentage of domestic federal statutory tax rate applicable to pretax income (loss).","units":{"pure":[{"start":"2022-01-01","end":"2022-12-31","val":0.21,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0.21,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0.21,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0.21,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0.21,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":0.21,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate":{"label":"Effective Income Tax Rate Reconciliation, Change in Enacted Tax Rate, Percent","description":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the income tax rates.","units":{"pure":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential":{"label":"Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent","description":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to statutory income tax expense (benefit) outside of the country of domicile.","units":{"pure":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0.02,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0.02,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0.01,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"EffectiveIncomeTaxRateReconciliationOtherAdjustments":{"label":"Effective Income Tax Rate Reconciliation, Other Adjustments, Percent","description":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.","units":{"pure":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount":{"label":"Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-based Payment Arrangement, Amount","description":"Amount of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-87000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":-41000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":-37000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"}]}},"EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent":{"label":"Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-based Payment Arrangement, Percent","description":"Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.","units":{"pure":[{"start":"2022-01-01","end":"2022-12-31","val":-0.01,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":-0.01,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"}]}},"EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes":{"label":"Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent","description":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).","units":{"pure":[{"start":"2022-01-01","end":"2022-12-31","val":0.02,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0.02,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0.02,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0.02,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0.02,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":0.02,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss":{"label":"Fair Value, Liability, Recurring Basis, Still Held, Unrealized Gain (Loss)","description":"Amount of unrealized gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3) and still held.","units":{"USD":[{"start":"2024-01-01","end":"2024-12-31","val":35000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-35000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-96000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":178000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":82000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":270000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":92000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":729000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Liability, Transfers Into Level 3","description":"Amount of transfers of financial instrument classified as a liability into level 3 of the fair value hierarchy.","units":{"USD":[{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Liability, Transfers out of Level 3","description":"Amount of transfers of financial instrument classified as a liability out of level 3 of the fair value hierarchy.","units":{"USD":[{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings","description":"Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3).","units":{"USD":[{"start":"2024-01-01","end":"2024-12-31","val":35000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":-35000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-96000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":178000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":82000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":270000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":92000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":712000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Purchases","description":"Amount of purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.","units":{"USD":[{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":0,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-04-01","end":"2025-06-30","val":0,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q2"},{"start":"2025-01-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue":{"label":"Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value","description":"Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.","units":{"USD":[{"end":"2023-12-31","val":279000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":279000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":4431000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":4431000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2024-12-31","val":4431000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2024-12-31","val":4431000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"end":"2024-12-31","val":4431000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-03-31","val":4492000000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07"},{"end":"2025-03-31","val":4492000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06","frame":"CY2025Q1I"},{"end":"2025-06-30","val":4569000000,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"end":"2025-06-30","val":4569000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q2I"},{"end":"2025-09-30","val":8059000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":8429000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths":{"label":"Finite-Lived Intangible Asset, Expected Amortization, Year One","description":"Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":429000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":1104000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FiniteLivedIntangibleAssetsAmortizationExpenseYearFive":{"label":"Finite-Lived Intangible Asset, Expected Amortization, Year Five","description":"Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":271000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":809000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FiniteLivedIntangibleAssetsAmortizationExpenseYearFour":{"label":"Finite-Lived Intangible Asset, Expected Amortization, Year Four","description":"Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":283000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":852000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FiniteLivedIntangibleAssetsAmortizationExpenseYearThree":{"label":"Finite-Lived Intangible Asset, Expected Amortization, Year Three","description":"Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":384000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":927000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo":{"label":"Finite-Lived Intangible Asset, Expected Amortization, Year Two","description":"Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":457000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":1038000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"IncomeTaxesPaidNet":{"label":"Income Taxes Paid, Net","description":"The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":1067000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":1392000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":1392000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":1699000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":1699000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":2298000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxReceivable":{"label":"Income Taxes Receivable","description":"Carrying amount as of the balance sheet date of income taxes previously overpaid to tax authorities (such as U.S. Federal, state and local tax authorities) representing refunds of overpayments or recoveries based on agreed-upon resolutions of disputes. Also called income tax refund receivable.","units":{"USD":[{"end":"2023-12-31","val":252000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":215000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":215000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":247000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"IncomeTaxReconciliationChangeInEnactedTaxRate":{"label":"Effective Income Tax Rate Reconciliation, Change in Enacted Tax Rate, Amount","description":"Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in the income tax rates.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":-25000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":12000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":12000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"IncomeTaxReconciliationForeignIncomeTaxRateDifferential":{"label":"Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount","description":"Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":23000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":112000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":112000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":84000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":84000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate":{"label":"Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount","description":"The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":1360000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":1466000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":1466000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":1712000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":1712000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":1545000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxReconciliationOtherReconcilingItems":{"label":"Effective Income Tax Rate Reconciliation, Other Reconciling Items, Amount","description":"Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority noncontrolling interest income (loss), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, increase (decrease) in enacted tax rate, prior year income taxes, increase (decrease) in deferred tax asset valuation allowance, and other adjustments.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":53000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":36000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":36000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":19000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":19000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"IncomeTaxReconciliationStateAndLocalIncomeTaxes":{"label":"Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount","description":"Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit).","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":115000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":110000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":110000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":130000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":130000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":137000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IntangibleAssetsGrossExcludingGoodwill":{"label":"Intangible Assets, Gross (Excluding Goodwill)","description":"Amount before accumulated amortization of intangible assets, excluding goodwill.","units":{"USD":[{"end":"2023-12-31","val":18876000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":21525000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":21525000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":29450000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"InterestPaidNet":{"label":"Interest Paid, Excluding Capitalized Interest, Operating Activities","description":"Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":177000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":200000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":200000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":289000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":289000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":482000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"LesseeOperatingLeaseLiabilityPaymentsDue":{"label":"Lessee, Operating Lease, Liability, to be Paid","description":"Amount of lessee's undiscounted obligation for lease payment for operating lease.","units":{"USD":[{"end":"2024-12-31","val":2327000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":2784000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive":{"label":"Lessee, Operating Lease, Liability, to be Paid, after Year Five","description":"Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":1439000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":1617000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths":{"label":"Lessee, Operating Lease, Liability, to be Paid, Year One","description":"Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":198000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":237000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LesseeOperatingLeaseLiabilityPaymentsDueYearFive":{"label":"Lessee, Operating Lease, Liability, to be Paid, Year Five","description":"Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":156000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":218000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LesseeOperatingLeaseLiabilityPaymentsDueYearFour":{"label":"Lessee, Operating Lease, Liability, to be Paid, Year Four","description":"Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":170000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":227000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LesseeOperatingLeaseLiabilityPaymentsDueYearThree":{"label":"Lessee, Operating Lease, Liability, to be Paid, Year Three","description":"Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":179000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":239000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LesseeOperatingLeaseLiabilityPaymentsDueYearTwo":{"label":"Lessee, Operating Lease, Liability, to be Paid, Year Two","description":"Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).","units":{"USD":[{"end":"2024-12-31","val":185000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":246000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"LesseeOperatingLeaseLiabilityUndiscountedExcessAmount":{"label":"Lessee, Operating Lease, Liability, Undiscounted Excess Amount","description":"Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.","units":{"USD":[{"end":"2024-12-31","val":419000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":556000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"PaymentsToAcquireBusinessesGross":{"label":"Payments to Acquire Businesses, Gross","description":"The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.","units":{"USD":[{"start":"2024-12-01","end":"2024-12-31","val":9200000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"}]}},"PropertyPlantAndEquipmentGross":{"label":"Property, Plant and Equipment, Gross","description":"Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.","units":{"USD":[{"end":"2023-12-31","val":2551000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":2656000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":2656000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":2948000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"RestrictedStockExpense":{"label":"Restricted Stock or Unit Expense","description":"Amount of noncash expense for award of restricted stock or unit under share-based payment arrangement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":686000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":596000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":596000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":718000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":718000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":1282000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"Revenues":{"label":"Revenues","description":"Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":11061000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":11012000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":12794000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsPeriodIncreaseDecrease":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Period Increase (Decrease)","description":"The net total number of shares (or other type of equity) under an equity-based award plan, other than a stock option plan, that were granted, vested and forfeited during the reporting period.","units":{"shares":[{"start":"2024-01-01","end":"2024-12-31","val":-42579,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-03-31","val":-71866,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2025Q1"},{"start":"2025-01-01","end":"2025-06-30","val":-71866,"accn":"0000950170-25-103780","fy":2025,"fp":"Q2","form":"10-Q","filed":"2025-08-06"},{"start":"2025-01-01","end":"2025-09-30","val":71866,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":-71866,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized":{"label":"Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized","description":"Number of shares authorized for issuance under share-based payment arrangement.","units":{"shares":[{"end":"2024-12-31","val":48500000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":48500000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"StockIssuedDuringPeriodValueAcquisitions":{"label":"Stock Issued During Period, Value, Acquisitions","description":"Value of stock issued pursuant to acquisitions during the period.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":5904000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":5904000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"StockIssuedDuringPeriodValueShareBasedCompensation":{"label":"Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture","description":"Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":576000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":569000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":215000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2024"}]}},"StockOptionPlanExpense":{"label":"Stock or Unit Option Plan Expense","description":"Amount of noncash expense for option under share-based payment arrangement.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":22000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":34000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":34000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":35000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":35000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":25000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"TierOneLeverageCapital":{"label":"Banking Regulation, Tier One Leverage Capital, Actual","description":"Amount of Tier 1 leverage capital as defined by regulatory framework.","units":{"USD":[{"end":"2023-12-31","val":771000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":953000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":953000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":846000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneLeverageCapitalRequiredForCapitalAdequacy":{"label":"Banking Regulation, Tier One Leverage Capital, Capital Adequacy, Minimum","description":"Amount of minimum Tier 1 leverage capital required for capital adequacy as defined by regulatory framework.","units":{"USD":[{"end":"2023-12-31","val":47000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":53000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":53000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":50000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneLeverageCapitalRequiredForCapitalAdequacyToAverageAssets":{"label":"Banking Regulation, Tier One Leverage Capital Ratio, Capital Adequacy, Minimum","description":"Ratio of minimum Tier 1 leverage capital to average assets required for capital adequacy as defined by regulatory framework.","units":{"pure":[{"end":"2023-12-31","val":0.04,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":0.04,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.04,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.04,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneLeverageCapitalRequiredToBeWellCapitalized":{"label":"Banking Regulation, Tier One Leverage Capital, Well Capitalized, Minimum","description":"Amount of minimum Tier 1 leverage capital categorized as well capitalized as defined by regulatory framework for prompt corrective action.","units":{"USD":[{"end":"2023-12-31","val":59000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":67000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":67000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":63000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneLeverageCapitalRequiredToBeWellCapitalizedToAverageAssets":{"label":"Banking Regulation, Tier One Leverage Capital Ratio, Well Capitalized, Minimum","description":"Ratio of minimum Tier 1 leverage capital to average assets categorized as well capitalized as defined by regulatory framework for prompt corrective action.","units":{"pure":[{"end":"2023-12-31","val":0.05,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":0.05,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.05,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.05,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneLeverageCapitalToAverageAssets":{"label":"Banking Regulation, Tier One Leverage Capital Ratio, Actual","description":"Ratio of Tier 1 capital to average assets as defined by regulatory framework.","units":{"pure":[{"end":"2023-12-31","val":0.659,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":0.713,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.713,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.676,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneRiskBasedCapital":{"label":"Banking Regulation, Tier One Risk-Based Capital, Actual","description":"Amount of Tier 1 risk-based capital as defined by regulatory framework.","units":{"USD":[{"end":"2023-12-31","val":771000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":953000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":953000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":846000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneRiskBasedCapitalRequiredForCapitalAdequacy":{"label":"Banking Regulation, Tier One Risk-Based Capital, Capital Adequacy, Minimum","description":"Amount of minimum Tier 1 risk-based capital required for capital adequacy as defined by regulatory framework.","units":{"USD":[{"end":"2023-12-31","val":32000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":38000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":38000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":45000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneRiskBasedCapitalRequiredForCapitalAdequacyToRiskWeightedAssets":{"label":"Banking Regulation, Tier One Risk-Based Capital Ratio, Capital Adequacy, Minimum","description":"Ratio of minimum Tier 1 risk-based capital to risk-weighted assets required for capital adequacy as defined by regulatory framework.","units":{"pure":[{"end":"2023-12-31","val":0.06,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":0.06,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.06,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.06,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneRiskBasedCapitalRequiredToBeWellCapitalized":{"label":"Banking Regulation, Tier One Risk-Based Capital, Well Capitalized, Minimum","description":"Amount of minimum Tier 1 risk-based capital categorized as well capitalized as defined by regulatory framework for prompt corrective action.","units":{"USD":[{"end":"2023-12-31","val":43000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":50000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":50000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":59000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneRiskBasedCapitalRequiredToBeWellCapitalizedToRiskWeightedAssets":{"label":"Banking Regulation, Tier One Risk-Based Capital Ratio, Well Capitalized, Minimum","description":"Ratio of minimum Tier 1 risk-based capital to risk-weighted assets categorized as well capitalized as defined by regulatory framework for prompt corrective action.","units":{"pure":[{"end":"2023-12-31","val":0.08,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":0.08,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.08,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.08,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TierOneRiskBasedCapitalToRiskWeightedAssets":{"label":"Banking Regulation, Tier One Risk-Based Capital Ratio, Actual","description":"Ratio of Tier 1 risk-based capital to risk-weighted assets as defined by regulatory framework.","units":{"pure":[{"end":"2023-12-31","val":1.451,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":1.519,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":0.1519,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":0.114,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"TreasuryStockRetiredCostMethodAmount":{"label":"Treasury Stock, Retired, Cost Method, Amount","description":"Amount of decrease of par value, additional paid in capital (APIC) and retained earnings of common and preferred stock retired from treasury when treasury stock is accounted for under the cost method.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":12829000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":12829000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"TreasuryStockRetiredParValueMethodAmount":{"label":"Treasury Stock, Retired, Par Value Method, Amount","description":"Amount of decrease of par value, additional paid in capital (APIC) and retained earnings of common and preferred stock retired from treasury when treasury stock is accounted for under the par value method.","units":{"USD":[{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"UnrecognizedTaxBenefits":{"label":"Unrecognized Tax Benefits","description":"Amount of unrecognized tax benefits.","units":{"USD":[{"end":"2021-12-31","val":1022000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2021Q4I"},{"end":"2022-12-31","val":912000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2022-12-31","val":912000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2022Q4I"},{"end":"2023-12-31","val":749000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":749000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":517000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":517000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":511000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions":{"label":"Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions","description":"Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":75000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":22000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":22000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":10000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":10000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":8000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities":{"label":"Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities","description":"Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":103000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":231000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":231000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":303000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":303000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":87000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued":{"label":"Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued","description":"Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.","units":{"USD":[{"end":"2022-12-31","val":160000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022Q4I"},{"end":"2023-12-31","val":140000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":140000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":203000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":203000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":173000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"UnrecognizedTaxBenefitsIncreasesResultingFromAcquisition":{"label":"Unrecognized Tax Benefits, Increase Resulting from Acquisition","description":"Amount of increase in unrecognized tax benefits resulting from acquisitions.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":16000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":16000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions":{"label":"Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions","description":"Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":55000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":49000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":49000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":51000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":51000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":79000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions":{"label":"Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions","description":"Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.","units":{"USD":[{"start":"2022-01-01","end":"2022-12-31","val":13000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022"},{"start":"2023-01-01","end":"2023-12-31","val":25000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2023-01-01","end":"2023-12-31","val":25000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":30000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"start":"2024-01-01","end":"2024-12-31","val":30000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":15000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate":{"label":"Unrecognized Tax Benefits that Would Impact Effective Tax Rate","description":"The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.","units":{"USD":[{"end":"2022-12-31","val":497000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25","frame":"CY2022Q4I"},{"end":"2023-12-31","val":505000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2023-12-31","val":505000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023Q4I"},{"end":"2024-12-31","val":431000000,"accn":"0000950170-25-026584","fy":2024,"fp":"FY","form":"10-K","filed":"2025-02-25"},{"end":"2024-12-31","val":431000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":435000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"StockIssuedDuringPeriodSharesAcquisitions":{"label":"Stock Issued During Period, Shares, Acquisitions","description":"Number of shares of stock issued during the period pursuant to acquisitions.","units":{"shares":[{"start":"2024-12-01","end":"2024-12-31","val":9200000,"accn":"0000950170-25-065838","fy":2025,"fp":"Q1","form":"10-Q","filed":"2025-05-07","frame":"CY2024Q4I"}]}},"AssetAcquisitionConsiderationTransferredContingentConsideration":{"label":null,"description":null,"units":{"USD":[{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-09-30","val":0,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-01-01","end":"2024-12-31","val":4246000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-09-30","val":3413000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-01-01","end":"2025-12-31","val":3413000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"BusinessCombinationContingentConsiderationLiability":{"label":"Business Combination, Contingent Consideration, Liability","description":"Amount of liability recognized arising from contingent consideration in a business combination.","units":{"USD":[{"end":"2025-09-30","val":8000000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"},{"end":"2025-12-31","val":8400000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"CryptoAssetCost":{"label":null,"description":null,"units":{"USD":[{"end":"2025-09-30","val":516000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"}]}},"CryptoAssetFairValue":{"label":null,"description":null,"units":{"USD":[{"end":"2025-09-30","val":574000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3I"}]}},"InterestIncomeExpenseNonoperatingNet":{"label":"Interest Income (Expense), Nonoperating, Net","description":"The net amount of nonoperating interest income (expense).","units":{"USD":[{"start":"2024-01-01","end":"2024-09-30","val":183000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":82000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2025-01-01","end":"2025-09-30","val":-44000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":-22000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"}]}},"NetIncomeLossAvailableToCommonStockholdersDiluted":{"label":"Net Income (Loss) Available to Common Stockholders, Diluted","description":"Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities, and addition from assumption of issuance of common shares for dilutive potential common shares; of income (loss) available to common shareholders.","units":{"USD":[{"start":"2023-01-01","end":"2023-12-31","val":5502000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-09-30","val":4699000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2024-07-01","end":"2024-09-30","val":1631000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2024Q3"},{"start":"2024-01-01","end":"2024-12-31","val":6369000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-09-30","val":4496000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":1393000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"},{"start":"2025-01-01","end":"2025-12-31","val":5680000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"StockholdersEquityOther":{"label":"Stockholders' Equity, Other","description":"This element represents movements included in the statement of changes in stockholders' equity which are not separately disclosed or provided for elsewhere in the taxonomy.","units":{"USD":[{"start":"2025-01-01","end":"2025-09-30","val":41000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05"},{"start":"2025-07-01","end":"2025-09-30","val":41000000,"accn":"0001193125-25-267043","fy":2025,"fp":"Q3","form":"10-Q","filed":"2025-11-05","frame":"CY2025Q3"}]}},"BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1":{"label":"Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability","description":"Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.","units":{"USD":[{"start":"2023-01-01","end":"2023-12-31","val":3000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":-36000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":720000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"DeferredTaxAssetsInvestments":{"label":"Deferred Tax Assets, Investments","description":"Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from investments (excludes investments in subsidiaries and equity method investments).","units":{"USD":[{"end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024Q4I"},{"end":"2025-12-31","val":24000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025Q4I"}]}},"EffectiveIncomeTaxRateReconciliationBeatAmount":{"label":null,"description":null,"units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":106000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationBeatPercent":{"label":null,"description":null,"units":{"pure":[{"start":"2025-01-01","end":"2025-12-31","val":0.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance":{"label":"Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent","description":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the valuation allowance for deferred tax assets.","units":{"pure":[{"start":"2025-01-01","end":"2025-12-31","val":0.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationCrossBorderOtherAmount":{"label":null,"description":null,"units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":-60000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationCrossBorderOtherPercent":{"label":null,"description":null,"units":{"pure":[{"start":"2025-01-01","end":"2025-12-31","val":-0.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationGiltiAmount":{"label":null,"description":null,"units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":100000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationGiltiPercent":{"label":null,"description":null,"units":{"pure":[{"start":"2025-01-01","end":"2025-12-31","val":0.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther":{"label":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Percent","description":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other nondeductible expenses.","units":{"pure":[{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost":{"label":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-based Payment Arrangement, Percent","description":"Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for share-based payment arrangement.","units":{"pure":[{"start":"2023-01-01","end":"2023-12-31","val":-0.01,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"EffectiveIncomeTaxRateReconciliationTaxCredits":{"label":"Effective Income Tax Rate Reconciliation, Tax Credit, Percent","description":"Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits.","units":{"pure":[{"start":"2025-01-01","end":"2025-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxPaidFederalAfterRefundReceived":{"label":null,"description":null,"units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":1089000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxPaidForeignAfterRefundReceived":{"label":null,"description":null,"units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":902000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxPaidStateAndLocalAfterRefundReceived":{"label":null,"description":null,"units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":307000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance":{"label":"Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount","description":"Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.","units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":92000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxReconciliationNondeductibleExpenseOther":{"label":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount","description":"Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other nondeductible expenses.","units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":7000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost":{"label":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-based Payment Arrangement, Amount","description":"Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.","units":{"USD":[{"start":"2023-01-01","end":"2023-12-31","val":-41000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":-37000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"}]}},"IncomeTaxReconciliationTaxCredits":{"label":"Effective Income Tax Rate Reconciliation, Tax Credit, Amount","description":"Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits.","units":{"USD":[{"start":"2025-01-01","end":"2025-12-31","val":10000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"NoncashContributionExpense":{"label":"Noncash Contribution Expense","description":"Noncash charitable contributions made by the entity during the period.","units":{"USD":[{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":109000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}},"UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations":{"label":"Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations","description":"Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.","units":{"USD":[{"start":"2023-01-01","end":"2023-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2023"},{"start":"2024-01-01","end":"2024-12-31","val":0,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2024"},{"start":"2025-01-01","end":"2025-12-31","val":5000000,"accn":"0001193125-26-071966","fy":2025,"fp":"FY","form":"10-K","filed":"2026-02-25","frame":"CY2025"}]}}}}} \ No newline at end of file diff --git a/openbb_platform/providers/sec/tests/test_company_facts.py b/openbb_platform/providers/sec/tests/test_company_facts.py new file mode 100644 index 00000000000..f483bff7e13 --- /dev/null +++ b/openbb_platform/providers/sec/tests/test_company_facts.py @@ -0,0 +1,2645 @@ +"""Test company facts resolution and imputation logic.""" + +# pylint: disable=C0302,W0613,W0621 +# flake8: noqa: D102,D103,D403 + +import json +from pathlib import Path + +import pytest +from openbb_sec.utils.company_facts import resolve_company_facts +from openbb_sec.utils.statement_schema import StatementSchema + +_FIXTURE_DIR = Path(__file__).parent / "record" + + +@pytest.fixture(scope="module") +def schema(): + return StatementSchema() + + +# --------------------------------------------------------------------------- +# BLK (BlackRock) fixture — real SEC XBRL data (CIK 0002012383, ~477 KB) +# --------------------------------------------------------------------------- + + +@pytest.fixture(scope="module") +def blk_facts(): + """Load the BlackRock company-facts JSON fixture.""" + with open(_FIXTURE_DIR / "CIK0002012383.json") as f: + return json.load(f) + + +@pytest.fixture(scope="module") +def blk_annual(blk_facts): + """Annual extraction of BLK fixture.""" + return resolve_company_facts(blk_facts, period="annual") + + +def _val(records, tag, date="2025-12-31"): + """Get values for a specific tag/date.""" + for r in records: + if r["tag"] == tag and r["period_ending"] == date: + return r["value"], r["source"] + return None, None + + +def create_mock_facts(entries: list): + facts = {} + for e in entries: + ns = e.get("ns", "us-gaap") + tag = e["tag"] + val = e["val"] + start = e.get("start") + end = e["end"] + form = e.get("form", "10-K") + filed = e.get("filed", "2024-03-01") + fy = e.get("fy", int(end[:4])) + + # Determine fp if not provided. + if "fp" in e: + fp = e["fp"] + elif form == "10-Q": + # Just a simplistic inferring for the mock + if end.endswith("-03-31"): + fp = "Q1" + elif end.endswith("-06-30"): + fp = "Q2" + elif end.endswith("-09-30"): + fp = "Q3" + else: + fp = "Q4" + else: + fp = "FY" + + if ns not in facts: + facts[ns] = {} + if tag not in facts[ns]: + facts[ns][tag] = {"units": {"USD": []}} + + entry_data = { + "end": end, + "val": val, + "form": form, + "filed": filed, + "fy": fy, + "fp": fp, + } + if start: + entry_data["start"] = start + facts[ns][tag]["units"]["USD"].append(entry_data) + + return {"cik": "0000000000", "entityName": "Mock Company Inc.", "facts": facts} + + +def test_company_type_detection(schema): + industrial = create_mock_facts( + [{"tag": "CostOfGoodsAndServicesSold", "val": 100, "end": "2023-12-31"}] + ) + assert schema.detect_type(industrial["facts"]) == "industrial" + + financial = create_mock_facts( + [ + {"tag": "InterestIncomeExpenseNet", "val": 100, "end": "2023-12-31"}, + {"tag": "NoninterestIncome", "val": 100, "end": "2023-12-31"}, + ] + ) + assert schema.detect_type(financial["facts"]) == "financial" + + insurance = create_mock_facts( + [ + {"tag": "PremiumsEarnedNet", "val": 100, "end": "2023-12-31"}, + { + "tag": "LiabilityForFuturePolicyBenefits", + "val": 100, + "end": "2023-12-31", + }, + ] + ) + assert schema.detect_type(insurance["facts"]) == "insurance" + + diversified = create_mock_facts( + [{"tag": "CostsAndExpenses", "val": 100, "end": "2023-12-31"}] + ) + assert schema.detect_type(diversified["facts"]) == "diversified" + + +def test_basic_extraction_and_imputation(): + def anchor_tags(year): + return [ + {"tag": "Assets", "val": 1000, "end": f"{year}-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + }, + ] + + mock_data = create_mock_facts( + anchor_tags(2023) + + anchor_tags(2024) + + [ + {"tag": "Revenues", "val": 500, "start": "2023-01-01", "end": "2023-12-31"}, + { + "tag": "CostOfGoodsAndServicesSold", + "val": 300, + "start": "2023-01-01", + "end": "2023-12-31", + }, + {"tag": "Revenues", "val": 600, "start": "2024-01-01", "end": "2024-12-31"}, + { + "tag": "CostOfGoodsAndServicesSold", + "val": 350, + "start": "2024-01-01", + "end": "2024-12-31", + }, + ] + ) + + res = resolve_company_facts(mock_data, period="annual") + is_records = res.income_statement + gp_2024 = [ + r + for r in is_records + if r["tag"] == "total_gross_profit" and r["period_ending"] == "2024-12-31" + ] + assert len(gp_2024) == 1 + assert gp_2024[0]["value"] == 250.0 + assert gp_2024[0]["source"] == "imputed: total_revenue - total_cost_of_revenue" + + +def test_suspect_zero_policy(): + def anchor_tags(year): + return [ + {"tag": "Assets", "val": 1000, "end": f"{year}-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + }, + ] + + mock_data = create_mock_facts( + anchor_tags(2023) + + [ + {"tag": "Revenues", "val": 500, "start": "2023-01-01", "end": "2023-12-31"}, + { + "tag": "CostOfGoodsAndServicesSold", + "val": 500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock_data, period="annual") + gp_2023 = [ + r + for r in res.income_statement + if r["tag"] == "total_gross_profit" and r["period_ending"] == "2023-12-31" + ] + assert gp_2023[0]["value"] == 0.0 + assert "imputed-zero" in gp_2023[0]["source"] + + +def test_corrected_mathematical_flaw_costs_and_expenses(): + def anchor_tags(year): + return [ + {"tag": "Assets", "val": 1000, "end": f"{year}-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + }, + ] + + mock_data = create_mock_facts( + anchor_tags(2023) + + [ + { + "tag": "Revenues", + "val": 1000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "OperatingIncomeLoss", + "val": 200, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeBeforeEquityMethodInvestments", + "val": 300, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock_data, period="annual") + ce_2023 = [ + r + for r in res.income_statement + if r["tag"] == "costs_and_expenses" and r["period_ending"] == "2023-12-31" + ] + assert ce_2023[0]["value"] == 800.0 + + +def test_q4_derivation_and_bs_immunity(): + def q_anchor(start, end): + return [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": start, + "end": end, + "form": "10-Q", + } + ] + + mock_data = create_mock_facts( + [ + {"tag": "Assets", "val": 1000, "end": "2023-12-31", "form": "10-K"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 400, + "start": "2023-01-01", + "end": "2023-12-31", + "form": "10-K", + }, + { + "tag": "Revenues", + "val": 100, + "start": "2023-01-01", + "end": "2023-03-31", + "form": "10-Q", + }, + {"tag": "Assets", "val": 900, "end": "2023-03-31", "form": "10-Q"}, + *q_anchor("2023-01-01", "2023-03-31"), + { + "tag": "Revenues", + "val": 150, + "start": "2023-04-01", + "end": "2023-06-30", + "form": "10-Q", + }, + {"tag": "Assets", "val": 920, "end": "2023-06-30", "form": "10-Q"}, + *q_anchor("2023-04-01", "2023-06-30"), + { + "tag": "Revenues", + "val": 200, + "start": "2023-07-01", + "end": "2023-09-30", + "form": "10-Q", + }, + {"tag": "Assets", "val": 940, "end": "2023-09-30", "form": "10-Q"}, + *q_anchor("2023-07-01", "2023-09-30"), + { + "tag": "Revenues", + "val": 600, + "start": "2023-01-01", + "end": "2023-12-31", + "form": "10-K", + }, + ] + ) + res = resolve_company_facts(mock_data, period="quarterly") + is_q4 = [ + r + for r in res.income_statement + if r["fiscal_period"] == "Q4" and r["tag"] == "total_revenue" + ] + assert is_q4[0]["value"] == 150.0 + assert "Q4:" in is_q4[0]["source"] + # Enriched Q4 source should include XBRL tags in brackets + assert "FY[" in is_q4[0]["source"] + assert "Q1[" in is_q4[0]["source"] + assert "Q2[" in is_q4[0]["source"] + assert "Q3[" in is_q4[0]["source"] + bs_q4 = [ + r + for r in res.balance_sheet + if r["fiscal_period"] == "Q4" and r["tag"] == "total_assets" + ] + assert bs_q4[0]["value"] == 1000.0 + assert "Q4:" not in bs_q4[0]["source"] + + +def test_diagnostics_produced(): + mock_data = create_mock_facts( + [ + {"tag": "Assets", "val": 1000000000, "end": "2023-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + {"tag": "Revenues", "val": 500, "start": "2023-01-01", "end": "2023-12-31"}, + { + "tag": "LiabilitiesAndStockholdersEquity", + "val": 900000000, + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock_data, period="annual") + warnings = [d for d in res.diagnostics if d.tag == "total_assets"] + assert warnings[0].actual == 1000000000.0 + assert warnings[0].expected == 900000000.0 + + +def test_cross_vintage_fallback(): + mock_data = create_mock_facts( + [ + {"tag": "Assets", "val": 1000, "end": "2023-12-31", "filed": "2024-03-01"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + "filed": "2024-03-01", + }, + { + "tag": "Revenues", + "val": 500, + "start": "2023-01-01", + "end": "2023-12-31", + "filed": "2024-03-01", + }, + { + "tag": "CostOfRevenue", + "val": 200, + "start": "2023-01-01", + "end": "2023-12-31", + "filed": "2025-03-01", + }, + ] + ) + res = resolve_company_facts(mock_data, period="annual") + rev = [r for r in res.income_statement if r["tag"] == "total_revenue"] + assert rev[0]["value"] == 500.0 + assert "(fallback)" in rev[0]["source"] + + +def test_deep_cascading_imputation(): + def anchor_tags(year): + return [ + {"tag": "Assets", "val": 1000, "end": f"{year}-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + }, + ] + + mock_data = create_mock_facts( + anchor_tags(2023) + + [ + { + "tag": "Revenues", + "val": 1000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "CostOfGoodsAndServicesSold", + "val": 400, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "OperatingExpenses", + "val": 200, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", + "val": 350, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "val": 0, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock_data, period="annual") + + def get_val(tag_name): + matches = [ + r + for r in res.income_statement + if r["tag"] == tag_name and r["period_ending"] == "2023-12-31" + ] + return matches[0]["value"] if matches else None + + assert get_val("total_revenue") == 1000.0 + assert get_val("total_cost_of_revenue") == 400.0 + assert get_val("total_gross_profit") == 600.0 + assert get_val("total_operating_expenses") == 200.0 + assert get_val("total_operating_income") == 400.0 + assert get_val("total_other_income") == -50.0 + assert get_val("total_pretax_income") == 350.0 + assert get_val("net_income_continuing") == 250.0 + assert get_val("net_income") == 250.0 + + +def test_ifrs_namespace(): + def anchor_tags(year): + return [ + { + "ns": "ifrs-full", + "tag": "Assets", + "val": 1000, + "end": f"{year}-12-31", + "form": "20-F", + }, + { + "ns": "ifrs-full", + "tag": "CashFlowsFromUsedInOperatingActivities", + "val": 100, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + "form": "20-F", + }, + ] + + mock_data = create_mock_facts( + anchor_tags(2023) + + [ + { + "ns": "ifrs-full", + "tag": "Revenue", + "val": 1000, + "start": "2023-01-01", + "end": "2023-12-31", + "form": "20-F", + }, + ] + ) + res = resolve_company_facts(mock_data, period="annual") + rev = [r for r in res.income_statement if r["tag"] == "total_revenue"] + assert rev[0]["value"] == 1000.0 + + +def test_mixed_10k_10q_period_filtering(): + def q_anchor(start, end, form): + return [ + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 10, + "start": start, + "end": end, + "form": form, + } + ] + + mock_data = create_mock_facts( + [ + {"tag": "Assets", "val": 1000, "end": "2023-12-31", "form": "10-K"}, + *q_anchor("2023-01-01", "2023-12-31", "10-K"), + { + "tag": "Revenues", + "val": 400, + "start": "2023-01-01", + "end": "2023-12-31", + "form": "10-K", + }, + {"tag": "Assets", "val": 900, "end": "2023-03-31", "form": "10-Q"}, + *q_anchor("2023-01-01", "2023-03-31", "10-Q"), + { + "tag": "Revenues", + "val": 100, + "start": "2023-01-01", + "end": "2023-03-31", + "form": "10-Q", + }, + ] + ) + res_annual = resolve_company_facts(mock_data, period="annual") + assert all(r["fiscal_period"] == "FY" for r in res_annual.balance_sheet) + res_quarterly = resolve_company_facts(mock_data, period="quarterly") + periods = {r["fiscal_period"] for r in res_quarterly.balance_sheet} + assert "Q1" in periods + + +# ========================================================================= +# BLK fixture tests — real SEC XBRL data for BlackRock (CIK 0002012383) +# ========================================================================= + + +class TestBLKCompanyType: + """Company-type detection for BlackRock (diversified asset manager).""" + + def test_detected_as_diversified(self, blk_annual): + assert blk_annual.company_type == "diversified" + + def test_entity_metadata(self, blk_annual): + assert blk_annual.entity_name == "BlackRock, Inc." + assert blk_annual.currency == "USD" + + +class TestBLKZeroDiagnostics: + """All accounting identities must hold — zero violations.""" + + def test_no_identity_violations(self, blk_annual): + assert ( + len(blk_annual.diagnostics) == 0 + ), f"Expected 0 diagnostics, got {len(blk_annual.diagnostics)}: " + "; ".join( + f"{d.tag}@{d.date}: expected={d.expected}, actual={d.actual}" + for d in blk_annual.diagnostics + ) + + +class TestBLKDates: + """Verify the expected reporting periods are present.""" + + def test_three_annual_dates(self, blk_annual): + dates = sorted(set(r["period_ending"] for r in blk_annual.income_statement)) + assert dates == ["2023-12-31", "2024-12-31", "2025-12-31"] + + def test_bs_dates_match_is(self, blk_annual): + is_dates = sorted(set(r["period_ending"] for r in blk_annual.income_statement)) + bs_dates = sorted(set(r["period_ending"] for r in blk_annual.balance_sheet)) + assert is_dates == bs_dates + + def test_cf_dates_match_is(self, blk_annual): + is_dates = sorted(set(r["period_ending"] for r in blk_annual.income_statement)) + cf_dates = sorted(set(r["period_ending"] for r in blk_annual.cash_flow)) + assert is_dates == cf_dates + + +class TestBLKIncomeStatement: + """Income statement XBRL tag selection, values, and imputation.""" + + # --- Direct XBRL extractions (tag selection) --- + + def test_revenue_tag_selection(self, blk_annual): + v, s = _val(blk_annual.income_statement, "total_revenue") + assert v == 24_216_000_000 + assert "RevenueFromContractWithCustomerExcludingAssessedTax" in s + + def test_operating_income(self, blk_annual): + v, s = _val(blk_annual.income_statement, "total_operating_income") + assert v == 7_045_000_000 + assert "OperatingIncomeLoss" in s + + def test_pretax_income(self, blk_annual): + v, s = _val(blk_annual.income_statement, "total_pretax_income") + assert v == 7_619_000_000 + + def test_income_tax_expense(self, blk_annual): + v, s = _val(blk_annual.income_statement, "income_tax_expense") + assert v == 1_677_000_000 + assert "IncomeTaxExpenseBenefit" in s + + def test_net_income(self, blk_annual): + v, s = _val(blk_annual.income_statement, "net_income") + assert v == 5_942_000_000 + assert "ProfitLoss" in s + + def test_net_income_to_common(self, blk_annual): + v, s = _val(blk_annual.income_statement, "net_income_to_common") + assert v == 5_553_000_000 + assert "NetIncomeLoss" in s + + def test_sga_expense(self, blk_annual): + v, s = _val(blk_annual.income_statement, "sga_expense") + assert v == 2_731_000_000 + assert "GeneralAndAdministrativeExpense" in s + + def test_operating_expenses(self, blk_annual): + v, s = _val(blk_annual.income_statement, "total_operating_expenses") + assert v == 17_171_000_000 + assert "OperatingExpenses" in s + + def test_eps_values(self, blk_annual): + basic, _ = _val(blk_annual.income_statement, "basic_eps") + diluted, _ = _val(blk_annual.income_statement, "diluted_eps") + assert basic == 35.83 + assert diluted == 35.31 + + def test_equity_method_investments(self, blk_annual): + v, s = _val(blk_annual.income_statement, "equity_method_investments") + assert v == 51_000_000 + assert "IncomeLossFromEquityMethodInvestments" in s + + # --- Imputed values --- + + def test_costs_and_expenses_rollup(self, blk_annual): + """C&E is imputed as sum of mapped children (diversified template).""" + v, s = _val(blk_annual.income_statement, "costs_and_expenses") + assert v == 3_067_000_000 + assert "imputed-rollup" in s + # Enriched source should list child tags with their signs + assert "sga_expense(+)" in s + assert "restructuring_charge(+)" in s + assert "depreciation_and_amortization(+)" in s + # Should be sum of sga_expense (2731M) + D&A (297M) + restructuring_charge (39M) + sga, _ = _val(blk_annual.income_statement, "sga_expense") + da, _ = _val(blk_annual.income_statement, "depreciation_and_amortization") + restr, _ = _val(blk_annual.income_statement, "restructuring_charge") + assert v == sga + da + restr + + def test_income_before_equity_method(self, blk_annual): + """income_before_equity_method from XBRL (same tag as total_pretax_income for BLK).""" + v, s = _val(blk_annual.income_statement, "income_before_equity_method") + assert v == 7_619_000_000 + + def test_comprehensive_income_nci_imputed(self, blk_annual): + """comprehensive_income_nci = comprehensive_income - comprehensive_income_parent.""" + v, s = _val(blk_annual.income_statement, "comprehensive_income_nci") + ci, _ = _val(blk_annual.income_statement, "comprehensive_income") + ci_p, _ = _val(blk_annual.income_statement, "comprehensive_income_parent") + assert v == ci - ci_p + assert "imputed" in s + + def test_plug_rows_present(self, blk_annual): + """Plug rows fill the balancing remainder in each IS sub-hierarchy.""" + plugs = { + "other_operating_income", + "other_other_income", + "other_pretax_income", + "other_net_income", + "other_net_income_to_common", + "other_comprehensive_income", + } + for tag in plugs: + v, s = _val(blk_annual.income_statement, tag) + assert v is not None, f"{tag} missing" + assert "imputed-plug" in s, f"{tag} should be a plug, got: {s}" + + def test_tax_decomposition(self, blk_annual): + """Current + deferred tax should sum to total income tax expense.""" + current, _ = _val(blk_annual.income_statement, "income_tax_current") + deferred, _ = _val(blk_annual.income_statement, "income_tax_deferred") + total, _ = _val(blk_annual.income_statement, "income_tax_expense") + assert current == 2_308_000_000 + assert deferred == -631_000_000 + assert current + deferred == total + + +class TestBLKBalanceSheet: + """Balance sheet XBRL tag selection, values, and rollups.""" + + # --- Direct XBRL extractions --- + + def test_total_assets(self, blk_annual): + v, s = _val(blk_annual.balance_sheet, "total_assets") + assert v == 169_998_000_000 + assert "Assets" in s + + def test_total_liabilities(self, blk_annual): + v, s = _val(blk_annual.balance_sheet, "total_liabilities") + assert v == 108_456_000_000 + assert "Liabilities" in s + + def test_total_equity(self, blk_annual): + v, s = _val(blk_annual.balance_sheet, "total_equity") + assert v == 55_888_000_000 + assert "StockholdersEquity" in s + + def test_total_liabilities_and_equity(self, blk_annual): + v, s = _val(blk_annual.balance_sheet, "total_liabilities_and_equity") + assert v == 169_998_000_000 + assert "LiabilitiesAndStockholdersEquity" in s + + def test_noncontrolling_interests(self, blk_annual): + v, s = _val(blk_annual.balance_sheet, "noncontrolling_interests") + assert v == 227_000_000 + assert "MinorityInterest" in s + + def test_goodwill(self, blk_annual): + v, s = _val(blk_annual.balance_sheet, "goodwill") + assert v == 35_283_000_000 + + def test_ppe_decomposition(self, blk_annual): + gross, _ = _val(blk_annual.balance_sheet, "gross_ppe") + accum, _ = _val(blk_annual.balance_sheet, "accumulated_depreciation") + net, _ = _val(blk_annual.balance_sheet, "net_ppe") + assert gross == 2_948_000_000 + assert accum == 1_692_000_000 + assert net == 1_256_000_000 + assert gross - accum == net + + # --- BS primary identity: Assets = Liabilities + Equity (+ mezzanine) --- + + def test_assets_equal_liabilities_and_equity(self, blk_annual): + ta, _ = _val(blk_annual.balance_sheet, "total_assets") + tle, _ = _val(blk_annual.balance_sheet, "total_liabilities_and_equity") + assert ta == tle + + def test_liabilities_plus_equity_plus_mezzanine(self, blk_annual): + """L + ENCI + other_l&e (mezzanine) = L&E.""" + tl, _ = _val(blk_annual.balance_sheet, "total_liabilities") + teni, _ = _val( + blk_annual.balance_sheet, "total_equity_and_noncontrolling_interests" + ) + other_le, _ = _val(blk_annual.balance_sheet, "other_liabilities_and_equity") + tle, _ = _val(blk_annual.balance_sheet, "total_liabilities_and_equity") + assert tl + teni + other_le == tle + + # --- Mezzanine equity (redeemable NCI) --- + + def test_redeemable_nci_imputed(self, blk_annual): + """BLK has redeemable NCI (temporary equity) imputed from the identity gap.""" + v, s = _val(blk_annual.balance_sheet, "redeemable_noncontrolling_interest") + assert v == 5_427_000_000 + assert "imputed" in s + assert "total_liabilities_and_equity" in s + + def test_mezzanine_equals_other_liabilities_and_equity(self, blk_annual): + """Redeemable NCI fills the same slot as other_liabilities_and_equity.""" + mezz, _ = _val(blk_annual.balance_sheet, "redeemable_noncontrolling_interest") + other_le, _ = _val(blk_annual.balance_sheet, "other_liabilities_and_equity") + assert mezz == other_le + + # --- Rollups --- + + def test_total_common_equity_rollup(self, blk_annual): + """total_common_equity is a rollup of equity components (with sign factors).""" + tce, s = _val(blk_annual.balance_sheet, "total_common_equity") + assert tce == 55_888_000_000 + assert "imputed-rollup" in s + # Enriched source should list child tags + assert "(+)" in s # at least one child with factor shown + # Verify it matches total_equity (from XBRL) + te, _ = _val(blk_annual.balance_sheet, "total_equity") + assert tce == te + + # --- Plug rows --- + + def test_other_assets_plug(self, blk_annual): + v, s = _val(blk_annual.balance_sheet, "other_assets") + assert v == 86_969_000_000 + assert "imputed-plug" in s + # Enriched source should reference parent tag and children + assert "total_assets" in s + + def test_other_liabilities_plug(self, blk_annual): + v, s = _val(blk_annual.balance_sheet, "other_liabilities") + assert v == 87_240_000_000 + assert "imputed-plug" in s + # Enriched source should reference parent tag and children + assert "total_liabilities" in s + + +class TestBLKCashFlow: + """Cash flow statement values, identities, and imputation.""" + + # --- Direct XBRL extractions --- + + def test_operating_activities(self, blk_annual): + v, s = _val(blk_annual.cash_flow, "net_cash_from_operating_activities") + assert v == 3_927_000_000 + assert "NetCashProvidedByUsedInOperatingActivities" in s + + def test_investing_activities(self, blk_annual): + v, s = _val(blk_annual.cash_flow, "net_cash_from_investing_activities") + assert v == -4_418_000_000 + + def test_financing_activities(self, blk_annual): + v, s = _val(blk_annual.cash_flow, "net_cash_from_financing_activities") + assert v == -1_127_000_000 + + def test_fx_effect(self, blk_annual): + v, s = _val(blk_annual.cash_flow, "effect_of_exchange_rate_changes") + assert v == 329_000_000 + + def test_net_change_in_cash(self, blk_annual): + v, s = _val(blk_annual.cash_flow, "net_change_in_cash") + assert v == -1_289_000_000 + + def test_depreciation(self, blk_annual): + v, s = _val(blk_annual.cash_flow, "depreciation_and_amortization") + assert v == 297_000_000 + + # --- CF identity: op + inv + fin + fx = net_change --- + + def test_activity_sum_equals_net_change(self, blk_annual): + op, _ = _val(blk_annual.cash_flow, "net_cash_from_operating_activities") + inv, _ = _val(blk_annual.cash_flow, "net_cash_from_investing_activities") + fin, _ = _val(blk_annual.cash_flow, "net_cash_from_financing_activities") + fx, _ = _val(blk_annual.cash_flow, "effect_of_exchange_rate_changes") + nc, _ = _val(blk_annual.cash_flow, "net_change_in_cash") + assert op + inv + fin + fx == nc + + # --- Cash bridge: begin + net_change = end --- + + def test_cash_bridge(self, blk_annual): + begin, _ = _val(blk_annual.cash_flow, "cash_at_beginning_of_period") + end, _ = _val(blk_annual.cash_flow, "cash_at_end_of_period") + nc, _ = _val(blk_annual.cash_flow, "net_change_in_cash") + assert begin + nc == end + assert begin == 12_779_000_000 + assert end == 11_490_000_000 + + # --- Identity lock: CF net_income comes from IS --- + + def test_net_income_identity_lock(self, blk_annual): + v, s = _val(blk_annual.cash_flow, "net_income") + assert v == 5_942_000_000 + assert "identity_lock" in s + # Enriched source should indicate which statement the lock came from + assert "identity_lock:cash_flow" in s + + # --- Rollups --- + + def test_operating_capital_rollup(self, blk_annual): + """increase_decrease_in_operating_capital is a rollup of WC changes.""" + v, s = _val(blk_annual.cash_flow, "increase_decrease_in_operating_capital") + assert v == -1_266_000_000 + assert "imputed-rollup" in s + # Should be sum of mapped WC children + ar, _ = _val(blk_annual.cash_flow, "change_in_accounts_receivable") + ap, _ = _val(blk_annual.cash_flow, "change_in_accounts_payable") + other_wc, _ = _val( + blk_annual.cash_flow, "change_in_other_operating_assets_and_liabilities" + ) + assert ar + ap + other_wc == v + + # --- Plug rows --- + + def test_operating_plug(self, blk_annual): + v, s = _val( + blk_annual.cash_flow, "other_net_cash_from_continuing_operating_activities" + ) + assert "imputed-plug" in s + + def test_investing_plug(self, blk_annual): + v, s = _val( + blk_annual.cash_flow, "other_net_cash_from_continuing_investing_activities" + ) + assert "imputed-plug" in s + + def test_financing_plug(self, blk_annual): + v, s = _val( + blk_annual.cash_flow, "other_net_cash_from_continuing_financing_activities" + ) + assert "imputed-plug" in s + + +class TestBLKCrossStatement: + """Cross-statement consistency checks.""" + + def test_cf_net_income_equals_is_net_income(self, blk_annual): + """Net income in CF must match net income in IS (identity lock).""" + cf_ni, _ = _val(blk_annual.cash_flow, "net_income") + is_ni, _ = _val(blk_annual.income_statement, "net_income") + assert cf_ni == is_ni + + def test_cross_statement_consistency_all_dates(self, blk_annual): + """CF net_income = IS net_income for every date.""" + is_ni = { + r["period_ending"]: r["value"] + for r in blk_annual.income_statement + if r["tag"] == "net_income" + } + cf_ni = { + r["period_ending"]: r["value"] + for r in blk_annual.cash_flow + if r["tag"] == "net_income" + } + for date, value in is_ni.items(): + assert date in cf_ni, f"CF missing net_income for {date}" + assert value == cf_ni[date], f"NI mismatch at {date}" + + def test_bs_identity_all_dates(self, blk_annual): + """Assets = L&E for every date.""" + dates = sorted(set(r["period_ending"] for r in blk_annual.balance_sheet)) + for date in dates: + ta, _ = _val(blk_annual.balance_sheet, "total_assets", date) + tle, _ = _val( + blk_annual.balance_sheet, "total_liabilities_and_equity", date + ) + assert ta == tle, f"A≠L&E at {date}: {ta} vs {tle}" + + def test_cf_identity_all_dates(self, blk_annual): + """op + inv + fin + fx = net_change for every date.""" + dates = sorted(set(r["period_ending"] for r in blk_annual.cash_flow)) + for date in dates: + op, _ = _val( + blk_annual.cash_flow, "net_cash_from_operating_activities", date + ) + inv, _ = _val( + blk_annual.cash_flow, "net_cash_from_investing_activities", date + ) + fin, _ = _val( + blk_annual.cash_flow, "net_cash_from_financing_activities", date + ) + fx, _ = _val(blk_annual.cash_flow, "effect_of_exchange_rate_changes", date) + nc, _ = _val(blk_annual.cash_flow, "net_change_in_cash", date) + if all(x is not None for x in (op, inv, fin, fx, nc)): + assert op + inv + fin + fx == nc, f"CF identity fails at {date}" + + +class TestBLKImputationCounts: + """Verify the expected number and types of imputed values.""" + + def test_is_imputed_count(self, blk_annual): + imputed = [ + r + for r in blk_annual.income_statement + if r["period_ending"] == "2025-12-31" and "imputed" in r["source"] + ] + assert len(imputed) == 8 + + def test_bs_imputed_count(self, blk_annual): + imputed = [ + r + for r in blk_annual.balance_sheet + if r["period_ending"] == "2025-12-31" and "imputed" in r["source"] + ] + assert len(imputed) == 5 + + def test_cf_imputed_count(self, blk_annual): + imputed = [ + r + for r in blk_annual.cash_flow + if r["period_ending"] == "2025-12-31" and "imputed" in r["source"] + ] + assert len(imputed) == 5 + + def test_no_suspect_zeros(self, blk_annual): + """No imputed values should be suspect zeros for BLK.""" + all_records = ( + blk_annual.income_statement + + blk_annual.balance_sheet + + blk_annual.cash_flow + ) + suspect = [r for r in all_records if "imputed-zero" in r.get("source", "")] + assert len(suspect) == 0 + + +class TestBLKMultiYear: + """Verify consistent extraction across all three years.""" + + @pytest.mark.parametrize("date", ["2023-12-31", "2024-12-31", "2025-12-31"]) + def test_revenue_positive_all_years(self, blk_annual, date): + v, _ = _val(blk_annual.income_statement, "total_revenue", date) + assert v is not None and v > 0 + + @pytest.mark.parametrize("date", ["2023-12-31", "2024-12-31", "2025-12-31"]) + def test_assets_positive_all_years(self, blk_annual, date): + v, _ = _val(blk_annual.balance_sheet, "total_assets", date) + assert v is not None and v > 0 + + def test_tag_coverage_stable(self, blk_annual): + """Each date should have similar tag coverage (within reason).""" + dates = sorted(set(r["period_ending"] for r in blk_annual.income_statement)) + counts = { + d: len([r for r in blk_annual.income_statement if r["period_ending"] == d]) + for d in dates + } + max_count = max(counts.values()) + min_count = min(counts.values()) + # Tag count shouldn't vary widely between years + assert max_count - min_count <= 10, f"Tag count varies too much: {counts}" + + +# ========================================================================= +# Mock-based tests — scenarios NOT coverable with BLK fixture +# ========================================================================= + + +def _anchor(year, extra=None): + """Minimal tags to anchor a year (BS instant + CF duration).""" + base = [ + {"tag": "Assets", "val": 1000, "end": f"{year}-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + }, + ] + if extra: + base.extend(extra) + return base + + +class TestFinancialIS: + """Financial institution revenue decomposition (banks).""" + + def test_revenue_from_nii_plus_noninterest(self): + """total_revenue = net_interest_income + total_noninterest_income.""" + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "InterestIncomeExpenseNet", + "val": 50_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "NoninterestIncome", + "val": 30_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxes" + "ExtraordinaryItemsNoncontrollingInterest", + "val": 60_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 15_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + assert res.company_type == "financial" + + rev = [ + r + for r in res.income_statement + if r["tag"] == "total_revenue" and r["period_ending"] == "2023-12-31" + ] + assert len(rev) == 1 + assert rev[0]["value"] == 80_000 # 50k NII + 30k noninterest + assert "imputed" in rev[0]["source"] + + def test_provision_for_credit_losses(self): + """net_interest_income_after_provision = NII - provision.""" + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "InterestIncomeExpenseNet", + "val": 60_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "NoninterestIncome", + "val": 20_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "ProvisionForLoanAndLeaseLosses", + "val": 5_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxes" + "ExtraordinaryItemsNoncontrollingInterest", + "val": 50_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 10_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + niiap = [ + r + for r in res.income_statement + if r["tag"] == "net_interest_income_after_provision" + and r["period_ending"] == "2023-12-31" + ] + assert len(niiap) == 1 + assert niiap[0]["value"] == 55_000 # 60k - 5k + + +class TestInsuranceIS: + """Insurance company revenue/benefit structure.""" + + def test_insurance_detection_and_pretax(self): + """total_pretax_income = total_revenue - benefits_costs_expenses.""" + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "PremiumsEarnedNet", + "val": 100_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Revenues", + "val": 120_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "BenefitsLossesAndExpenses", + "val": 80_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "LiabilityForFuturePolicyBenefits", + "val": 200_000, + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 8_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + assert res.company_type == "insurance" + + pretax = [ + r + for r in res.income_statement + if r["tag"] == "total_pretax_income" and r["period_ending"] == "2023-12-31" + ] + assert len(pretax) == 1 + assert pretax[0]["value"] == 40_000 # 120k rev - 80k benefits + + def test_insurance_net_income_cascade(self): + """net_income_continuing = total_pretax_income - income_tax_expense.""" + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "PremiumsEarnedNet", + "val": 100_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Revenues", + "val": 120_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "BenefitsLossesAndExpenses", + "val": 80_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "LiabilityForFuturePolicyBenefits", + "val": 200_000, + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 8_000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + nic = [ + r + for r in res.income_statement + if r["tag"] == "net_income_continuing" + and r["period_ending"] == "2023-12-31" + ] + assert len(nic) == 1 + assert nic[0]["value"] == 32_000 # 40k pretax - 8k tax + + +class TestDiscontinuedOperations: + """Discontinued operations impact on net income.""" + + def test_discontinued_ops_adds_to_net_income(self): + """net_income = net_income_continuing + net_income_discontinued.""" + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "Revenues", + "val": 1000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "CostOfGoodsAndServicesSold", + "val": 400, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxes" + "ExtraordinaryItemsNoncontrollingInterest", + "val": 500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + # Explicit continuing-ops tag avoids ProfitLoss fallback + "tag": "IncomeLossFromContinuingOperations", + "val": 400, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeLossFromDiscontinuedOperationsNetOfTax", + "val": 50, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "ProfitLoss", + "val": 450, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + + def get_val(tag): + return next( + ( + r["value"] + for r in res.income_statement + if r["tag"] == tag and r["period_ending"] == "2023-12-31" + ), + None, + ) + + assert get_val("net_income_continuing") == 400 # explicit continuing tag + assert get_val("net_income_discontinued") == 50 + assert get_val("net_income") == 450 # ProfitLoss + assert get_val("net_income_continuing") + get_val( + "net_income_discontinued" + ) == get_val("net_income") + + +class TestPreferredEquity: + """Preferred stock decomposition in BS equity.""" + + def test_common_equity_with_preferred(self): + """total_common_equity = total_equity - total_preferred_equity.""" + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 10000, "end": "2023-12-31"}, + { + "tag": "LiabilitiesAndStockholdersEquity", + "val": 10000, + "end": "2023-12-31", + }, + {"tag": "Liabilities", "val": 7000, "end": "2023-12-31"}, + {"tag": "StockholdersEquity", "val": 2800, "end": "2023-12-31"}, + { + "tag": "StockholdersEquityIncludingPortionAttributableTo" + "NoncontrollingInterest", + "val": 3000, + "end": "2023-12-31", + }, + {"tag": "MinorityInterest", "val": 200, "end": "2023-12-31"}, + {"tag": "PreferredStockValue", "val": 500, "end": "2023-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + # IS duration tag required for date alignment across all 3 statements + { + "tag": "Revenues", + "val": 500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + + def bs_val(tag): + return next( + ( + r["value"] + for r in res.balance_sheet + if r["tag"] == tag and r["period_ending"] == "2023-12-31" + ), + None, + ) + + assert bs_val("total_equity") == 2800 + assert bs_val("total_preferred_equity") == 500 + # common = total_equity - preferred + tce = bs_val("total_common_equity") + assert tce == 2300 + + def test_common_equity_without_preferred(self): + """Without preferred, total_common_equity == total_equity.""" + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 5000, "end": "2023-12-31"}, + { + "tag": "LiabilitiesAndStockholdersEquity", + "val": 5000, + "end": "2023-12-31", + }, + {"tag": "Liabilities", "val": 3000, "end": "2023-12-31"}, + {"tag": "StockholdersEquity", "val": 2000, "end": "2023-12-31"}, + { + "tag": "StockholdersEquityIncludingPortionAttributableTo" + "NoncontrollingInterest", + "val": 2000, + "end": "2023-12-31", + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 50, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Revenues", + "val": 300, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + + def bs_val(tag): + return next( + ( + r["value"] + for r in res.balance_sheet + if r["tag"] == tag and r["period_ending"] == "2023-12-31" + ), + None, + ) + + tce = bs_val("total_common_equity") + assert tce == 2000 + + +class TestMergeFacts: + """merge_facts() combines multiple CIK JSON dicts.""" + + def test_basic_merge(self, schema): + """Two CIKs with different years produce combined history.""" + old_cik = create_mock_facts( + [ + { + "tag": "Revenues", + "val": 1000, + "start": "2020-01-01", + "end": "2020-12-31", + "filed": "2021-03-01", + }, + ] + ) + new_cik = create_mock_facts( + [ + { + "tag": "Revenues", + "val": 1500, + "start": "2023-01-01", + "end": "2023-12-31", + "filed": "2024-03-01", + }, + ] + ) + merged = StatementSchema.merge_facts(old_cik, new_cik) + revenue_entries = merged["us-gaap"]["Revenues"]["units"]["USD"] + assert len(revenue_entries) == 2 + vals = {e["val"] for e in revenue_entries} + assert vals == {1000, 1500} + + def test_deduplication(self, schema): + """Identical entries across CIKs are not duplicated.""" + facts_a = create_mock_facts( + [ + { + "tag": "Assets", + "val": 5000, + "end": "2023-12-31", + "filed": "2024-03-01", + }, + ] + ) + facts_b = create_mock_facts( + [ + { + "tag": "Assets", + "val": 5000, + "end": "2023-12-31", + "filed": "2024-03-01", + }, + ] + ) + merged = StatementSchema.merge_facts(facts_a, facts_b) + entries = merged["us-gaap"]["Assets"]["units"]["USD"] + assert len(entries) == 1 + + def test_merge_preserves_namespaces(self, schema): + """Merge combines tags across different namespaces.""" + us_facts = create_mock_facts( + [{"tag": "Revenues", "val": 100, "end": "2023-12-31"}] + ) + ifrs_facts = create_mock_facts( + [{"ns": "ifrs-full", "tag": "Revenue", "val": 200, "end": "2023-12-31"}] + ) + merged = StatementSchema.merge_facts(us_facts, ifrs_facts) + assert "us-gaap" in merged + assert "ifrs-full" in merged + + def test_merge_different_values_same_tag_different_dates(self, schema): + """Same tag reported with different values on different dates retained.""" + a = create_mock_facts( + [ + { + "tag": "Assets", + "val": 1000, + "end": "2022-12-31", + "filed": "2023-03-01", + }, + ] + ) + b = create_mock_facts( + [ + { + "tag": "Assets", + "val": 2000, + "end": "2023-12-31", + "filed": "2024-03-01", + }, + ] + ) + merged = StatementSchema.merge_facts(a, b) + entries = merged["us-gaap"]["Assets"]["units"]["USD"] + assert len(entries) == 2 + + +class TestTagChainPriority: + """First matching XBRL tag in the chain wins.""" + + def test_newer_revenue_tag_preferred(self): + """RevenueFromContractWithCustomer... is first in operating_revenue chain. + + operating_revenue and total_revenue are separate schema rows with + independent tag chains. RFCWCE is position #1 for operating_revenue + but lower priority for total_revenue (where Revenues is preferred). + """ + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", + "val": 1000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Revenues", + "val": 1100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "CostOfGoodsAndServicesSold", + "val": 400, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + # operating_revenue uses RFCWCE as first-priority tag + orev = [ + r + for r in res.income_statement + if r["tag"] == "operating_revenue" and r["period_ending"] == "2023-12-31" + ] + assert orev[0]["value"] == 1000 + assert ( + "RevenueFromContractWithCustomerExcludingAssessedTax" in orev[0]["source"] + ) + # total_revenue picks Revenues (higher in its own chain) + trev = [ + r + for r in res.income_statement + if r["tag"] == "total_revenue" and r["period_ending"] == "2023-12-31" + ] + assert trev[0]["value"] == 1100 + assert "Revenues" in trev[0]["source"] + + def test_fallback_to_secondary_tag(self): + """When primary tag absent, secondary tag is used.""" + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "Revenues", + "val": 900, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "CostOfGoodsAndServicesSold", + "val": 300, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + rev = [ + r + for r in res.income_statement + if r["tag"] == "total_revenue" and r["period_ending"] == "2023-12-31" + ] + assert rev[0]["value"] == 900 + assert "Revenues" in rev[0]["source"] + + +class TestCFFxDerivation: + """Deriving FX effect from the CF identity.""" + + def test_fx_derived_when_missing(self): + """effect_of_exchange_rate_changes = net_change - op - inv - fin.""" + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 1000, "end": "2023-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "NetCashProvidedByUsedInInvestingActivities", + "val": -200, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "NetCashProvidedByUsedInFinancingActivities", + "val": -150, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" + "PeriodIncreaseDecreaseIncludingExchangeRateEffect", + "val": 160, + "start": "2023-01-01", + "end": "2023-12-31", + }, + # IS duration tag required for date alignment across all 3 statements + { + "tag": "Revenues", + "val": 800, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + fx = [ + r + for r in res.cash_flow + if r["tag"] == "effect_of_exchange_rate_changes" + and r["period_ending"] == "2023-12-31" + ] + assert len(fx) == 1 + # FX = 160 - 500 - (-200) - (-150) = 160 - 500 + 200 + 150 = 10 + assert fx[0]["value"] == 10 + assert "imputed" in fx[0]["source"] + + +class TestCFDepreciationDecomposition: + """D&A = depreciation + amortization when only components given.""" + + def test_da_from_components(self): + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 1000, "end": "2023-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Depreciation", + "val": 60, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "AmortizationOfIntangibleAssets", + "val": 40, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + da = [ + r + for r in res.cash_flow + if r["tag"] == "depreciation_and_amortization" + and r["period_ending"] == "2023-12-31" + ] + assert len(da) == 1 + assert da[0]["value"] == 100 # 60 + 40 + + +class TestBSNoncurrentDerivation: + """Noncurrent = total - current decomposition.""" + + def test_noncurrent_assets_derived(self): + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 10000, "end": "2023-12-31"}, + { + "tag": "LiabilitiesAndStockholdersEquity", + "val": 10000, + "end": "2023-12-31", + }, + {"tag": "AssetsCurrent", "val": 3000, "end": "2023-12-31"}, + {"tag": "Liabilities", "val": 6000, "end": "2023-12-31"}, + { + "tag": "LiabilitiesCurrent", + "val": 2000, + "end": "2023-12-31", + }, + {"tag": "StockholdersEquity", "val": 4000, "end": "2023-12-31"}, + { + "tag": "StockholdersEquityIncludingPortionAttributableTo" + "NoncontrollingInterest", + "val": 4000, + "end": "2023-12-31", + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Revenues", + "val": 600, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + + def bs_val(tag): + return next( + ( + r["value"] + for r in res.balance_sheet + if r["tag"] == tag and r["period_ending"] == "2023-12-31" + ), + None, + ) + + assert bs_val("total_noncurrent_assets") == 7000 # 10000 - 3000 + assert bs_val("total_noncurrent_liabilities") == 4000 # 6000 - 2000 + + +class TestBSLiabilitiesImputed: + """Total liabilities imputed from L&E identity.""" + + def test_liabilities_from_identity(self): + """total_liabilities = L&E - total_equity_and_nci.""" + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 10000, "end": "2023-12-31"}, + # L&E must be extracted directly (not from rollup) + { + "tag": "LiabilitiesAndStockholdersEquity", + "val": 10000, + "end": "2023-12-31", + }, + {"tag": "StockholdersEquity", "val": 3000, "end": "2023-12-31"}, + { + "tag": "StockholdersEquityIncludingPortionAttributableTo" + "NoncontrollingInterest", + "val": 3500, + "end": "2023-12-31", + }, + {"tag": "MinorityInterest", "val": 500, "end": "2023-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Revenues", + "val": 400, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + + def bs_val(tag): + return next( + ( + r["value"] + for r in res.balance_sheet + if r["tag"] == tag and r["period_ending"] == "2023-12-31" + ), + None, + ) + + # L = L&E - E_nci = 10000 - 3500 = 6500 + assert bs_val("total_liabilities") == 6500 + assert bs_val("total_assets") == 10000 + assert bs_val("total_liabilities_and_equity") == 10000 + + +class TestDiversifiedISCascade: + """Diversified IS imputation: operating income without COGS/GP.""" + + def test_diversified_cascade_with_operating_income(self): + """Diversified IS cascade: OI → pretax → NI works correctly.""" + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", + "val": 5000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "CostsAndExpenses", + "val": 3500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + # OperatingIncomeLoss extracted directly avoids rollup + "tag": "OperatingIncomeLoss", + "val": 1500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "NonoperatingIncomeExpense", + "val": 200, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 300, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + assert res.company_type == "diversified" + + def get_val(tag): + return next( + ( + r["value"] + for r in res.income_statement + if r["tag"] == tag and r["period_ending"] == "2023-12-31" + ), + None, + ) + + assert get_val("total_revenue") == 5000 + assert get_val("costs_and_expenses") == 3500 + assert get_val("total_operating_income") == 1500 + assert get_val("total_other_income") == 200 + # pretax = OI + other_income = 1700 + assert get_val("total_pretax_income") == 1700 + assert get_val("net_income_continuing") == 1400 # 1700 - 300 + + +class TestNoncurrentAssetsOnly: + """Current/noncurrent: when only total_current_assets present, noncurrent derived.""" + + def test_equity_nci_fallback(self): + """When no NCI, total_equity_and_noncontrolling_interests = total_equity.""" + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 5000, "end": "2023-12-31"}, + {"tag": "Liabilities", "val": 3000, "end": "2023-12-31"}, + {"tag": "StockholdersEquity", "val": 2000, "end": "2023-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Revenues", + "val": 350, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + + def bs_val(tag): + return next( + ( + r["value"] + for r in res.balance_sheet + if r["tag"] == tag and r["period_ending"] == "2023-12-31" + ), + None, + ) + + # Fallback: E_nci = E when no NCI present + assert bs_val("total_equity") == 2000 + assert bs_val("total_equity_and_noncontrolling_interests") == 2000 + # L&E = Assets + assert bs_val("total_liabilities_and_equity") == 5000 + # Identity: no diagnostics + assert len(res.diagnostics) == 0 + + +class TestCOGSDisambiguation: + """Narrow COGS override when COGS + OpEx << CostsAndExpenses.""" + + def test_narrow_cogs_corrected(self): + """When narrow COGS reported, it's overridden to C&E - OpEx.""" + mock = create_mock_facts( + _anchor(2023) + + [ + { + "tag": "Revenues", + "val": 10000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + # Narrow COGS (product-only): 2000 + "tag": "CostOfGoodsAndServicesSold", + "val": 2000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + # But CostsAndExpenses is much larger: 8000 + "tag": "CostsAndExpenses", + "val": 8000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "OperatingExpenses", + "val": 3000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "OperatingIncomeLoss", + "val": 2000, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxes" + "ExtraordinaryItemsNoncontrollingInterest", + "val": 2200, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 400, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + + def get_val(tag): + matches = [ + r + for r in res.income_statement + if r["tag"] == tag and r["period_ending"] == "2023-12-31" + ] + return matches[0] if matches else None + + # COGS should be corrected to C&E - OpEx = 8000 - 3000 = 5000 + cogs = get_val("total_cost_of_revenue") + if cogs and "corrected" in cogs["source"]: + assert cogs["value"] == 5000 + else: + # If not corrected, gross profit still articulates + gp = get_val("total_gross_profit") + assert gp is not None + + # Operating income should still be 2000 regardless + oi = get_val("total_operating_income") + assert oi["value"] == 2000 + + +class TestIdentityLockCrossStatement: + """Identity lock: CF net_income is forced to match IS net_income.""" + + def test_cf_net_income_overridden_by_is(self): + """CF ProfitLoss with identity_lock uses IS net_income value.""" + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 1000, "end": "2023-12-31"}, + { + "tag": "Revenues", + "val": 500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "CostOfGoodsAndServicesSold", + "val": 200, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeLossFromContinuingOperationsBeforeIncomeTaxes" + "ExtraordinaryItemsNoncontrollingInterest", + "val": 250, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "IncomeTaxExpenseBenefit", + "val": 50, + "start": "2023-01-01", + "end": "2023-12-31", + }, + # This ProfitLoss appears in both IS and CF + { + "tag": "ProfitLoss", + "val": 200, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 300, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + + is_ni = next( + ( + r["value"] + for r in res.income_statement + if r["tag"] == "net_income" and r["period_ending"] == "2023-12-31" + ), + None, + ) + cf_ni = next( + ( + r["value"] + for r in res.cash_flow + if r["tag"] == "net_income" and r["period_ending"] == "2023-12-31" + ), + None, + ) + # Both should be the same regardless of source + if is_ni is not None and cf_ni is not None: + assert is_ni == cf_ni + + +class TestMultiDateDiagnostics: + """Diagnostics capture failures at specific dates.""" + + def test_bs_identity_violation_flagged(self): + """When Assets != L&E by > 1M, a diagnostic is produced. + + The verification tolerance is $1M, so values must be large enough + that the mismatch exceeds the threshold. + """ + mock = create_mock_facts( + [ + {"tag": "Assets", "val": 1_000_000_000, "end": "2023-12-31"}, + { + "tag": "LiabilitiesAndStockholdersEquity", + "val": 900_000_000, + "end": "2023-12-31", + }, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + { + "tag": "Revenues", + "val": 500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + # Should see diagnostic for total_assets mismatch + asset_diags = [d for d in res.diagnostics if d.tag == "total_assets"] + assert len(asset_diags) >= 1 + assert asset_diags[0].date == "2023-12-31" + assert asset_diags[0].actual == 1_000_000_000 + assert asset_diags[0].expected == 900_000_000 + + +class TestCashBridgePeriodCarryover: + """cash_at_beginning_of_period derived from prior year end.""" + + def test_begin_derived_from_prior_end(self): + """Begin-of-period cash = end-of-period cash from prior year.""" + mock = create_mock_facts( + _anchor(2022) + + _anchor(2023) + + [ + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "val": 500, + "end": "2022-12-31", + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", + "val": 600, + "end": "2023-12-31", + }, + { + "tag": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" + "PeriodIncreaseDecreaseIncludingExchangeRateEffect", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + begin = [ + r + for r in res.cash_flow + if r["tag"] == "cash_at_beginning_of_period" + and r["period_ending"] == "2023-12-31" + ] + if begin: + # Begin 2023 should be end 2022 + assert begin[0]["value"] == 500 + assert "derived" in begin[0]["source"] + + +# --------------------------------------------------------------------------- +# TTM (Trailing Twelve Months) tests +# --------------------------------------------------------------------------- + + +class TestTTM: + @staticmethod + def _quarterly_revenue(years_quarters): + entries = [] + anchor_entries = [] + for year, quarter, val in years_quarters: + q_map = {"Q1": "03-31", "Q2": "06-30", "Q3": "09-30", "Q4": "12-31"} + q_start_map = {"Q1": "01-01", "Q2": "04-01", "Q3": "07-01", "Q4": "10-01"} + end = f"{year}-{q_map[quarter]}" + start = f"{year}-{q_start_map[quarter]}" + entries.append( + { + "tag": "Revenues", + "val": val, + "start": start, + "end": end, + "form": "10-Q" if quarter != "Q4" else "10-K", + "fp": quarter if quarter != "Q4" else "FY", + "fy": year, + } + ) + anchor_entries.append( + { + "tag": "Assets", + "val": 1000, + "end": end, + } + ) + anchor_entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 50, + "start": start, + "end": end, + "form": "10-Q" if quarter != "Q4" else "10-K", + "fp": quarter if quarter != "Q4" else "FY", + "fy": year, + } + ) + for year in {y for y, _, _ in years_quarters}: + total = sum(v for y, q, v in years_quarters if y == year) + entries.append( + { + "tag": "Revenues", + "val": total, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + "form": "10-K", + "fp": "FY", + "fy": year, + } + ) + anchor_entries.append( + { + "tag": "Assets", + "val": 1000, + "end": f"{year}-12-31", + } + ) + anchor_entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 200, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + "form": "10-K", + "fp": "FY", + "fy": year, + } + ) + return create_mock_facts(entries + anchor_entries) + + def test_ttm_sum_for_duration_items(self): + mock = self._quarterly_revenue( + [ + (2023, "Q1", 100), + (2023, "Q2", 110), + (2023, "Q3", 120), + (2023, "Q4", 130), + ] + ) + res = resolve_company_facts(mock, period="ttm") + ttm_recs = [r for r in res.income_statement if r["tag"] == "total_revenue"] + assert len(ttm_recs) >= 1 + latest = max(ttm_recs, key=lambda r: r["period_ending"]) + assert latest["value"] == 460 + assert latest["fiscal_period"] == "TTM" + assert latest["frequency"] == "ttm" + assert "TTM: sum(" in latest["source"] + + def test_ttm_fewer_than_4_quarters_skipped(self): + entries = [] + for q, end_md, start_md, val in [ + ("Q1", "03-31", "01-01", 100), + ("Q2", "06-30", "04-01", 110), + ]: + entries.append( + { + "tag": "Revenues", + "val": val, + "start": f"2023-{start_md}", + "end": f"2023-{end_md}", + "form": "10-Q", + "fp": q, + "fy": 2023, + } + ) + entries.append( + { + "tag": "Assets", + "val": 1000, + "end": f"2023-{end_md}", + } + ) + entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 50, + "start": f"2023-{start_md}", + "end": f"2023-{end_md}", + "form": "10-Q", + "fp": q, + "fy": 2023, + } + ) + mock = create_mock_facts(entries) + res = resolve_company_facts(mock, period="ttm") + ttm_recs = [r for r in res.income_statement if r["tag"] == "total_revenue"] + assert len(ttm_recs) == 0 + + def test_ttm_avg_for_instant_items(self): + entries = [] + for q, end in [ + ("Q1", "2023-03-31"), + ("Q2", "2023-06-30"), + ("Q3", "2023-09-30"), + ("Q4", "2023-12-31"), + ]: + entries.append( + { + "tag": "Assets", + "val": 1000 + int(q[1]) * 100, + "end": end, + "form": "10-Q" if q != "Q4" else "10-K", + "fp": q if q != "Q4" else "FY", + "fy": 2023, + } + ) + entries.append( + { + "tag": "Assets", + "val": 1300, + "end": "2023-12-31", + "form": "10-K", + "fp": "FY", + "fy": 2023, + } + ) + entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + "form": "10-K", + "fp": "FY", + "fy": 2023, + } + ) + for q, end in [ + ("Q1", "2023-03-31"), + ("Q2", "2023-06-30"), + ("Q3", "2023-09-30"), + ("Q4", "2023-12-31"), + ]: + start = { + "Q1": "2023-01-01", + "Q2": "2023-04-01", + "Q3": "2023-07-01", + "Q4": "2023-10-01", + }[q] + entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 25, + "start": start, + "end": end, + "form": "10-Q" if q != "Q4" else "10-K", + "fp": q if q != "Q4" else "FY", + "fy": 2023, + } + ) + + mock = create_mock_facts(entries) + res = resolve_company_facts(mock, period="ttm") + asset_recs = [r for r in res.balance_sheet if r["tag"] == "total_assets"] + if asset_recs: + latest = max(asset_recs, key=lambda r: r["period_ending"]) + assert "TTM: avg(" in latest["source"] + assert latest["value"] == (1100 + 1200 + 1300 + 1400) / 4 + + def test_ttm_provenance_string(self): + mock = self._quarterly_revenue( + [ + (2023, "Q1", 100), + (2023, "Q2", 110), + (2023, "Q3", 120), + (2023, "Q4", 130), + ] + ) + res = resolve_company_facts(mock, period="ttm") + ttm_recs = [r for r in res.income_statement if r["tag"] == "total_revenue"] + if ttm_recs: + src = ttm_recs[0]["source"] + assert src.startswith("TTM:") + assert "2023-" in src + + def test_ttm_rolling_windows(self): + mock = self._quarterly_revenue( + [ + (2023, "Q1", 100), + (2023, "Q2", 110), + (2023, "Q3", 120), + (2023, "Q4", 130), + (2024, "Q1", 140), + ] + ) + res = resolve_company_facts(mock, period="ttm") + ttm_recs = sorted( + [r for r in res.income_statement if r["tag"] == "total_revenue"], + key=lambda r: r["period_ending"], + ) + assert len(ttm_recs) >= 2 + assert ttm_recs[0]["value"] == 460 # Q1-Q4 2023 + assert ttm_recs[1]["value"] == 500 # Q2 2023 - Q1 2024 + + +# --------------------------------------------------------------------------- +# Percentage change tests +# --------------------------------------------------------------------------- + + +class TestPctChange: + @staticmethod + def _annual_revenue(year_vals): + entries = [] + for year, val in year_vals: + entries.append( + { + "tag": "Revenues", + "val": val, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + "form": "10-K", + "fp": "FY", + "fy": year, + } + ) + entries.append( + { + "tag": "Assets", + "val": 1000, + "end": f"{year}-12-31", + } + ) + entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + "form": "10-K", + "fp": "FY", + "fy": year, + } + ) + return create_mock_facts(entries) + + def test_yoy_annual(self): + mock = self._annual_revenue([(2023, 1000), (2024, 1100)]) + res = resolve_company_facts(mock, period="yoy") + yoy_recs = [r for r in res.income_statement if r["tag"] == "total_revenue"] + assert len(yoy_recs) >= 1 + latest = max(yoy_recs, key=lambda r: r["period_ending"]) + assert abs(latest["value"] - 0.1) < 0.001 + assert latest["unit"] == "percent" + assert latest["currency"] == "" + assert "yoy:" in latest["source"] + + def test_yoy_quarterly(self): + entries = [] + for year in [2023, 2024]: + for q, end_md, start_md in [ + ("Q1", "03-31", "01-01"), + ("Q2", "06-30", "04-01"), + ]: + entries.append( + { + "tag": "Revenues", + "val": 100 * (year - 2022) + (10 if q == "Q2" else 0), + "start": f"{year}-{start_md}", + "end": f"{year}-{end_md}", + "form": "10-Q", + "fp": q, + "fy": year, + } + ) + entries.append( + { + "tag": "Assets", + "val": 1000, + "end": f"{year}-{end_md}", + } + ) + entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 50, + "start": f"{year}-{start_md}", + "end": f"{year}-{end_md}", + "form": "10-Q", + "fp": q, + "fy": year, + } + ) + total = sum( + 100 * (year - 2022) + (10 if q == "Q2" else 0) for q in ["Q1", "Q2"] + ) + entries.append( + { + "tag": "Revenues", + "val": total, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + "form": "10-K", + "fp": "FY", + "fy": year, + } + ) + entries.append( + { + "tag": "Assets", + "val": 1000, + "end": f"{year}-12-31", + } + ) + entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": f"{year}-01-01", + "end": f"{year}-12-31", + "form": "10-K", + "fp": "FY", + "fy": year, + } + ) + mock = create_mock_facts(entries) + res = resolve_company_facts(mock, period="yoy_quarterly") + yoy_recs = [r for r in res.income_statement if r["tag"] == "total_revenue"] + assert len(yoy_recs) >= 1 + for rec in yoy_recs: + assert rec["frequency"] == "yoy_quarterly" + assert rec["unit"] == "percent" + + def test_pop(self): + entries = [] + for q, end_md, start_md, val in [ + ("Q1", "03-31", "01-01", 100), + ("Q2", "06-30", "04-01", 120), + ]: + entries.append( + { + "tag": "Revenues", + "val": val, + "start": f"2023-{start_md}", + "end": f"2023-{end_md}", + "form": "10-Q", + "fp": q, + "fy": 2023, + } + ) + entries.append( + { + "tag": "Assets", + "val": 1000, + "end": f"2023-{end_md}", + } + ) + entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 50, + "start": f"2023-{start_md}", + "end": f"2023-{end_md}", + "form": "10-Q", + "fp": q, + "fy": 2023, + } + ) + entries.append( + { + "tag": "Revenues", + "val": 220, + "start": "2023-01-01", + "end": "2023-12-31", + "form": "10-K", + "fp": "FY", + "fy": 2023, + } + ) + entries.append( + { + "tag": "Assets", + "val": 1000, + "end": "2023-12-31", + } + ) + entries.append( + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + "form": "10-K", + "fp": "FY", + "fy": 2023, + } + ) + mock = create_mock_facts(entries) + res = resolve_company_facts(mock, period="pop") + pop_recs = [r for r in res.income_statement if r["tag"] == "total_revenue"] + assert len(pop_recs) >= 1 + latest = max(pop_recs, key=lambda r: r["period_ending"]) + assert abs(latest["value"] - 20.0) < 0.01 + assert latest["frequency"] == "pop" + + def test_division_by_zero_skipped(self): + mock = self._annual_revenue([(2023, 0), (2024, 100)]) + res = resolve_company_facts(mock, period="yoy") + yoy_recs = [ + r + for r in res.income_statement + if r["tag"] == "total_revenue" and r["period_ending"] == "2024-12-31" + ] + assert len(yoy_recs) == 0 + + def test_negative_to_positive(self): + mock = self._annual_revenue([(2023, -100), (2024, 50)]) + res = resolve_company_facts(mock, period="yoy") + yoy_recs = [ + r + for r in res.income_statement + if r["tag"] == "total_revenue" and r["period_ending"] == "2024-12-31" + ] + assert len(yoy_recs) >= 1 + assert abs(yoy_recs[0]["value"] - 1.5) < 0.01 + + def test_pct_change_unit_and_currency(self): + mock = self._annual_revenue([(2023, 1000), (2024, 1200)]) + res = resolve_company_facts(mock, period="yoy") + yoy_recs = [r for r in res.income_statement if r["tag"] == "total_revenue"] + for rec in yoy_recs: + assert rec["unit"] == "percent" + assert rec["currency"] == "" + + def test_provenance_string(self): + mock = self._annual_revenue([(2023, 1000), (2024, 1100)]) + res = resolve_company_facts(mock, period="yoy") + yoy_recs = [ + r + for r in res.income_statement + if r["tag"] == "total_revenue" and r["period_ending"] == "2024-12-31" + ] + if yoy_recs: + src = yoy_recs[0]["source"] + assert "yoy:" in src + assert "2024-12-31" in src + assert "2023-12-31" in src + + +# --------------------------------------------------------------------------- +# Period type propagation tests +# --------------------------------------------------------------------------- + + +class TestPeriodType: + def test_period_type_in_records(self): + mock = create_mock_facts( + [ + { + "tag": "Revenues", + "val": 500, + "start": "2023-01-01", + "end": "2023-12-31", + }, + {"tag": "Assets", "val": 1000, "end": "2023-12-31"}, + { + "tag": "NetCashProvidedByUsedInOperatingActivities", + "val": 100, + "start": "2023-01-01", + "end": "2023-12-31", + }, + ] + ) + res = resolve_company_facts(mock, period="annual") + rev = [r for r in res.income_statement if r["tag"] == "total_revenue"] + if rev: + assert "period_type" in rev[0] + assert rev[0]["period_type"] == "duration" + assets = [r for r in res.balance_sheet if r["tag"] == "total_assets"] + if assets: + assert assets[0]["period_type"] == "instant" diff --git a/openbb_platform/providers/sec/tests/test_sec_fetchers.py b/openbb_platform/providers/sec/tests/test_sec_fetchers.py index 65a39a87f8c..ac7059c2ea1 100644 --- a/openbb_platform/providers/sec/tests/test_sec_fetchers.py +++ b/openbb_platform/providers/sec/tests/test_sec_fetchers.py @@ -1,9 +1,16 @@ """Tests for the SEC fetchers.""" +import json from datetime import date +from pathlib import Path +from unittest.mock import patch import pytest from openbb_core.app.service.user_service import UserService +from openbb_sec.models.balance_sheet import SecBalanceSheetFetcher +from openbb_sec.models.balance_sheet_growth import SecBalanceSheetGrowthFetcher +from openbb_sec.models.cash_flow import SecCashFlowStatementFetcher +from openbb_sec.models.cash_flow_growth import SecCashFlowStatementGrowthFetcher from openbb_sec.models.cik_map import SecCikMapFetcher from openbb_sec.models.company_filings import SecCompanyFilingsFetcher from openbb_sec.models.compare_company_facts import SecCompareCompanyFactsFetcher @@ -11,6 +18,8 @@ from openbb_sec.models.equity_ftd import SecEquityFtdFetcher from openbb_sec.models.equity_search import SecEquitySearchFetcher from openbb_sec.models.form_13FHR import SecForm13FHRFetcher from openbb_sec.models.htm_file import SecHtmFileFetcher +from openbb_sec.models.income_statement import SecIncomeStatementFetcher +from openbb_sec.models.income_statement_growth import SecIncomeStatementGrowthFetcher from openbb_sec.models.insider_trading import SecInsiderTradingFetcher from openbb_sec.models.institutions_search import SecInstitutionsSearchFetcher from openbb_sec.models.latest_financial_reports import SecLatestFinancialReportsFetcher @@ -23,6 +32,7 @@ from openbb_sec.models.schema_files import SecSchemaFilesFetcher from openbb_sec.models.sec_filing import SecFilingFetcher from openbb_sec.models.sic_search import SecSicSearchFetcher from openbb_sec.models.symbol_map import SecSymbolMapFetcher +from openbb_sec.utils.company_facts import resolve_company_facts test_credentials = UserService().default_user_settings.credentials.dict() @@ -234,3 +244,101 @@ def test_sec_htm_file_fetcher(credentials=test_credentials): fetcher = SecHtmFileFetcher() result = fetcher.test(params, credentials) assert result is None + + +# --------------------------------------------------------------------------- +# Financial statement fetcher tests using BLK fixture (no HTTP) +# --------------------------------------------------------------------------- + +_FIXTURE_DIR = Path(__file__).parent / "record" + + +@pytest.fixture(scope="module") +def blk_facts(): + with open(_FIXTURE_DIR / "CIK0002012383.json") as f: + return json.load(f) + + +def _mock_get_standardized(blk_facts): + async def _inner( + symbol=None, + cik=None, + fiscal_years=None, + period="both", + use_cache=True, + pit_mode=False, + include_preliminary=False, + ): + return resolve_company_facts( + blk_facts, + period=period, + include_preliminary=include_preliminary, + ) + + return _inner + + +def test_sec_income_statement_fetcher(blk_facts, credentials=test_credentials): + params = {"symbol": "BLK", "period": "annual", "use_cache": False} + fetcher = SecIncomeStatementFetcher() + with patch( + "openbb_sec.utils.company_facts.get_standardized_financials", + new=_mock_get_standardized(blk_facts), + ): + result = fetcher.test(params, credentials) + assert result is None + + +def test_sec_balance_sheet_fetcher(blk_facts, credentials=test_credentials): + params = {"symbol": "BLK", "period": "annual", "use_cache": False} + fetcher = SecBalanceSheetFetcher() + with patch( + "openbb_sec.utils.company_facts.get_standardized_financials", + new=_mock_get_standardized(blk_facts), + ): + result = fetcher.test(params, credentials) + assert result is None + + +def test_sec_cash_flow_fetcher(blk_facts, credentials=test_credentials): + params = {"symbol": "BLK", "period": "annual", "use_cache": False} + fetcher = SecCashFlowStatementFetcher() + with patch( + "openbb_sec.utils.company_facts.get_standardized_financials", + new=_mock_get_standardized(blk_facts), + ): + result = fetcher.test(params, credentials) + assert result is None + + +def test_sec_income_statement_growth_fetcher(blk_facts, credentials=test_credentials): + params = {"symbol": "BLK", "period": "annual", "use_cache": False} + fetcher = SecIncomeStatementGrowthFetcher() + with patch( + "openbb_sec.utils.company_facts.get_standardized_financials", + new=_mock_get_standardized(blk_facts), + ): + result = fetcher.test(params, credentials) + assert result is None + + +def test_sec_balance_sheet_growth_fetcher(blk_facts, credentials=test_credentials): + params = {"symbol": "BLK", "period": "annual", "use_cache": False} + fetcher = SecBalanceSheetGrowthFetcher() + with patch( + "openbb_sec.utils.company_facts.get_standardized_financials", + new=_mock_get_standardized(blk_facts), + ): + result = fetcher.test(params, credentials) + assert result is None + + +def test_sec_cash_flow_growth_fetcher(blk_facts, credentials=test_credentials): + params = {"symbol": "BLK", "period": "annual", "use_cache": False} + fetcher = SecCashFlowStatementGrowthFetcher() + with patch( + "openbb_sec.utils.company_facts.get_standardized_financials", + new=_mock_get_standardized(blk_facts), + ): + result = fetcher.test(params, credentials) + assert result is None diff --git a/openbb_platform/providers/sec/tests/test_xbrl_taxonomy.py b/openbb_platform/providers/sec/tests/test_xbrl_taxonomy.py index 22f5367bcb0..a40c5323170 100644 --- a/openbb_platform/providers/sec/tests/test_xbrl_taxonomy.py +++ b/openbb_platform/providers/sec/tests/test_xbrl_taxonomy.py @@ -124,9 +124,11 @@ def us_gaap_lab_bytes(): """Raw bytes of the us-gaap 2024 label linkbase (fetched once).""" from openbb_sec.utils.xbrl_taxonomy_helper import FASBClient - return FASBClient().fetch_file( - "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-lab-2024.xml" - ).read() + return ( + FASBClient() + .fetch_file("https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-lab-2024.xml") + .read() + ) @pytest.fixture(scope="module") @@ -134,9 +136,11 @@ def us_gaap_doc_bytes(): """Raw bytes of the us-gaap 2024 documentation linkbase (fetched once).""" from openbb_sec.utils.xbrl_taxonomy_helper import FASBClient - return FASBClient().fetch_file( - "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-doc-2024.xml" - ).read() + return ( + FASBClient() + .fetch_file("https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-doc-2024.xml") + .read() + ) @pytest.fixture(scope="module") @@ -144,9 +148,13 @@ def us_gaap_pres_bytes(): """Raw bytes of the us-gaap sfp-cls presentation linkbase (fetched once).""" from openbb_sec.utils.xbrl_taxonomy_helper import FASBClient - return FASBClient().fetch_file( - "https://xbrl.fasb.org/us-gaap/2024/stm/us-gaap-stm-sfp-cls-pre-2024.xml" - ).read() + return ( + FASBClient() + .fetch_file( + "https://xbrl.fasb.org/us-gaap/2024/stm/us-gaap-stm-sfp-cls-pre-2024.xml" + ) + .read() + ) @pytest.fixture(scope="module") @@ -154,9 +162,13 @@ def us_gaap_cal_bytes(): """Raw bytes of the us-gaap sfp-cls calculation linkbase (fetched once).""" from openbb_sec.utils.xbrl_taxonomy_helper import FASBClient - return FASBClient().fetch_file( - "https://xbrl.fasb.org/us-gaap/2024/stm/us-gaap-stm-sfp-cls-cal-2024.xml" - ).read() + return ( + FASBClient() + .fetch_file( + "https://xbrl.fasb.org/us-gaap/2024/stm/us-gaap-stm-sfp-cls-cal-2024.xml" + ) + .read() + ) @pytest.fixture(scope="module") @@ -1044,9 +1056,7 @@ class TestUSGaapLabelsParsing: "doc file not loaded" ) - has_both = [ - eid for eid in mgr.parser.labels if eid in mgr.parser.documentation - ] + has_both = [eid for eid in mgr.parser.labels if eid in mgr.parser.documentation] assert ( len(has_both) > 100 ), f"Only {len(has_both)} elements have both label + documentation" @@ -1056,9 +1066,7 @@ class TestUSGaapLabelsParsing: ): """Should produce a tree structure for us-gaap classified balance sheet.""" p = XBRLParser() - p.parse_label_linkbase( - BytesIO(us_gaap_lab_bytes), TaxonomyStyle.FASB_STANDARD - ) + p.parse_label_linkbase(BytesIO(us_gaap_lab_bytes), TaxonomyStyle.FASB_STANDARD) nodes = p.parse_presentation( BytesIO(us_gaap_pres_bytes), TaxonomyStyle.FASB_STANDARD ) @@ -1163,8 +1171,7 @@ class TestHMRCDPLNetwork: ), f"Expected >=170 DPL labels, got {len(dpl_labels)}" assert "dpl_AdministrativeExpenses" in mgr.parser.labels assert ( - mgr.parser.labels["dpl_AdministrativeExpenses"] - == "Administrative expenses" + mgr.parser.labels["dpl_AdministrativeExpenses"] == "Administrative expenses" ) def test_hmrc_dpl_element_properties(self, hmrc_dpl_loaded): diff --git a/openbb_platform/providers/sec/validate_corpus.py b/openbb_platform/providers/sec/validate_corpus.py new file mode 100644 index 00000000000..0a6f9a87547 --- /dev/null +++ b/openbb_platform/providers/sec/validate_corpus.py @@ -0,0 +1,1561 @@ +"""Corpus validation script. + +Downloads company facts JSON from SEC for all target CIKs (rate-limited to +10 req/s), runs the full extraction + validation pipeline (annual & quarterly), +and writes a detailed report of all identity violations and diagnostics. + +Usage: + cd openbb_platform/providers/sec + python tests/validate_corpus.py + +Output: + tests/corpus_validation_report.txt + +WARNING: This script will download nearly 1000 files from the SEC site and run complete extractions. +""" + +# pylint: disable=C0302,R0911,R0912,R0913,R0914,R0915,W0603 +# flake8: noqa + +import json +import os +import sys +import time +from concurrent.futures import ProcessPoolExecutor, as_completed +from pathlib import Path + +import requests + +from openbb_sec.utils.company_facts import ( + MULTI_CIK_TICKERS, + resolve_company_facts, +) +from openbb_sec.utils.statement_schema import StatementSchema + +_SEC_ROOT = Path(__file__).resolve().parent.parent +sys.path.insert(0, str(_SEC_ROOT)) + +FULL_CORPUS: dict[str, str] = { + "0000001800": "Abbott Laboratories", + "0000002488": "Advanced Micro Devices Inc.", + "0000002969": "Air Products and Chemicals, Inc.", + "0000003570": "Cheniere Energy, Inc.", + "0000004127": "Skyworks Solutions, Inc.", + "0000004281": "Howmet Aerospace Inc.", + "0000004457": "U-Haul Holding Company", + "0000004904": "American Electric Power", + "0000004962": "American Express Co", + "0000004977": "Aflac Incorporated", + "0000005272": "American International Group, Inc.", + "0000005513": "Unum Group", + "0000006201": "American Airlines Group Inc.", + "0000006281": "Analog Devices", + "0000006951": "Applied Materials", + "0000007084": "Archer-Daniels-Midland Company", + "0000007431": "Armstrong World Industries, Inc.", + "0000007536": "Arrow Electronics, Inc.", + "0000008670": "ADP", + "0000008818": "Avery Dennison Corporation", + "0000008858": "Avnet, Inc.", + "0000009389": "Ball Corporation", + "0000010456": "Baxter International Inc.", + "0000010795": "Becton, Dickinson and Company", + "0000011544": "W. R. Berkley Corporation", + "0000012208": "Bio-Rad Laboratories, Inc.", + "0000012659": "H&R Block, Inc.", + "0000012927": "Boeing Co", + "0000014272": "Bristol-Myers Squibb Company", + "0000014693": "Brown-Forman Corporation", + "0000014930": "Brunswick Corporation", + "0000015615": "MasTec, Inc.", + "0000016058": "CACI International Inc", + "0000016732": "Campbell Soup Company", + "0000016918": "Constellation Brands, Inc.", + "0000017843": "Carpenter Technology Corporation", + "0000018230": "Caterpillar Inc", + "0000019584": "Chemed Corporation", + "0000019617": "JPMorgan Chase & Co", + "0000020212": "Churchill Downs Incorporated", + "0000020286": "Cincinnati Financial Corporation", + "0000021076": "The Clorox Company", + "0000021175": "CNA Financial Corporation", + "0000021344": "Coca Cola Co", + "0000021665": "Colgate-Palmolive Company", + "0000022356": "Commerce Bancshares, Inc.", + "0000023217": "Conagra Brands, Inc.", + "0000024545": "Molson Coors Beverage Company", + "0000024741": "Corning Incorporated", + "0000025232": "Cousins Properties Incorporated", + "0000025445": "Crane NXT, Co.", + "0000026172": "Cummins Inc.", + "0000026324": "Curtiss-Wright Corporation", + "0000027419": "Target Corporation", + "0000027904": "Delta Air Lines, Inc.", + "0000028917": "Dillard's, Inc.", + "0000029534": "Dollar General Corporation", + "0000029644": "Donaldson Company, Inc.", + "0000029905": "Dover Corporation", + "0000029989": "Omnicom Group Inc.", + "0000030625": "Flowserve Corporation", + "0000030697": "The Wendy's Company", + "0000031462": "Ecolab Inc.", + "0000031791": "PerkinElmer, Inc.", + "0000032604": "Emerson Electric Co.", + "0000033185": "Equifax Inc.", + "0000033213": "EQT Corporation", + "0000034088": "Exxon Mobil Corporation", + "0000034903": "Federal Realty Investment Trust", + "0000035527": "Fifth Third Bancorp", + "0000036104": "U.S. Bancorp", + "0000036270": "M&T Bank Corporation", + "0000036377": "First Hawaiian, Inc.", + "0000036966": "First Horizon Corporation", + "0000037785": "FMC Corporation", + "0000037808": "F.N.B. Corporation", + "0000037996": "Ford Motor Company", + "0000038777": "Franklin Resources, Inc.", + "0000039263": "Cullen/Frost Bankers, Inc.", + "0000039911": "The Gap, Inc.", + "0000040533": "General Dynamics Corporation", + "0000040545": "GE Aerospace", + "0000040704": "General Mills, Inc.", + "0000040729": "Ally Financial Inc.", + "0000040987": "Genuine Parts Company", + "0000042888": "Graco Inc.", + "0000045012": "Halliburton Company", + "0000046080": "Hasbro, Inc.", + "0000046619": "HEICO Corporation", + "0000047111": "The Hershey Company", + "0000047217": "HP Inc.", + "0000048465": "Hormel Foods Corporation", + "0000048898": "Hubbell Incorporated", + "0000049071": "Humana Inc.", + "0000049196": "Huntington Bancshares Incorporated", + "0000049600": "EastGroup Properties, Inc.", + "0000049826": "Illinois Tool Works Inc.", + "0000050863": "Intel", + "0000051143": "IBM Corporation", + "0000051253": "International Flavors & Fragrances Inc.", + "0000051434": "International Paper Company", + "0000052827": "Rayonier Inc.", + "0000052988": "Jacobs Solutions Inc.", + "0000055785": "Kimberly-Clark Corporation", + "0000056047": "Kirby Corporation", + "0000056873": "The Kroger Co.", + "0000059478": "Eli Lilly and Company", + "0000059527": "Lincoln Electric Holdings, Inc.", + "0000059558": "Lincoln National Corporation", + "0000060086": "Loews Corporation", + "0000060519": "Louisiana-Pacific Corporation", + "0000060667": "Lowe's Companies, Inc.", + "0000062709": "Marsh & McLennan Companies, Inc.", + "0000062996": "Masco Corporation", + "0000063276": "Mattel, Inc.", + "0000063754": "McCormick & Company, Incorporated", + "0000063908": "McDonald's Corporation", + "0000064040": "S&P Global Inc.", + "0000064803": "CVS Health Corporation", + "0000065984": "Entergy Corporation", + "0000066570": "MSA Safety Incorporated", + "0000066740": "3M Company", + "0000067716": "MDU Resources Group, Inc.", + "0000068505": "Motorola Solutions, Inc.", + "0000070145": "National Fuel Gas Company", + "0000070318": "Tenet Healthcare Corporation", + "0000070858": "Bank of America Corporation", + "0000071691": "The New York Times Company", + "0000072331": "Nordson Corporation", + "0000072741": "Eversource Energy", + "0000072903": "Xcel Energy", + "0000072971": "Wells Fargo & Company", + "0000073124": "Northern Trust Corporation", + "0000073309": "Nucor Corporation", + "0000074208": "UDR, Inc.", + "0000074260": "Old Republic International Corporation", + "0000074303": "Olin Corporation", + "0000075362": "Paccar", + "0000075677": "Packaging Corporation of America", + "0000076334": "Parker-Hannifin Corporation", + "0000077476": "PepsiCo", + "0000078003": "Pfizer Inc.", + "0000078128": "Essential Utilities, Inc.", + "0000078239": "PVH Corp.", + "0000079282": "Brown & Brown, Inc.", + "0000079879": "PPG Industries, Inc.", + "0000080424": "Procter & Gamble Co", + "0000080661": "The Progressive Corporation", + "0000082811": "Regal Rexnord Corporation", + "0000084246": "RLI Corp.", + "0000084839": "Rollins, Inc.", + "0000085535": "Royal Gold, Inc.", + "0000085961": "Ryder System, Inc.", + "0000086312": "The Travelers Companies, Inc.", + "0000088121": "Seaboard Corporation", + "0000089089": "Service Corporation International", + "0000089439": "Mueller Industries, Inc.", + "0000089800": "The Sherwin-Williams Company", + "0000091142": "A. O. Smith Corporation", + "0000091388": "SMITHFIELD FOODS INC", + "0000091419": "The J. M. Smucker Company", + "0000091440": "Snap-on Incorporated", + "0000091576": "KeyCorp", + "0000091767": "Sonoco Products Company", + "0000092122": "The Southern Company", + "0000092230": "Truist Financial Corporation", + "0000092380": "Southwest Airlines Co.", + "0000093410": "Chevron Corp", + "0000093556": "Stanley Black & Decker, Inc.", + "0000093751": "State Street Corporation", + "0000096021": "Sysco Corporation", + "0000096223": "Jefferies Financial Group Inc.", + "0000096943": "Teleflex Incorporated", + "0000097210": "Teradyne, Inc.", + "0000097476": "Texas Instruments", + "0000097745": "Thermo Fisher Scientific Inc.", + "0000098362": "The Timken Company", + "0000100493": "Tyson Foods, Inc.", + "0000100517": "United Airlines Holdings, Inc.", + "0000100885": "Union Pacific Corporation", + "0000101829": "RTX Corporation", + "0000102729": "Valmont Industries, Inc.", + "0000103379": "V.F. Corporation", + "0000104169": "Walmart Inc.", + "0000105016": "Watsco, Inc.", + "0000105634": "EMCOR Group, Inc.", + "0000105770": "West Pharmaceutical Services, Inc.", + "0000106040": "Western Digital", + "0000106535": "Weyerhaeuser Company", + "0000106640": "Whirlpool Corporation", + "0000107263": "The Williams Companies, Inc.", + "0000108312": "Woodward, Inc.", + "0000109198": "The TJX Companies, Inc.", + "0000109380": "Zions Bancorporation, National Association", + "0000109563": "Applied Industrial Technologies, Inc.", + "0000110621": "RPM International Inc.", + "0000200406": "Johnson & Johnson", + "0000202058": "L3Harris Technologies, Inc.", + "0000216228": "ITT Inc.", + "0000217346": "Textron Inc.", + "0000275880": "Parsons Corporation", + "0000277135": "W.W. Grainger, Inc.", + "0000277948": "CSX Corporation", + "0000310158": "Merck & Co., Inc.", + "0000310764": "Stryker Corporation", + "0000313616": "Danaher Corporation", + "0000313927": "Church & Dwight Co., Inc.", + "0000315189": "Deere & Company", + "0000315213": "Robert Half International Inc.", + "0000315293": "Aon plc", + "0000315852": "Range Resources Corporation", + "0000316709": "The Charles Schwab Corporation", + "0000317540": "Coca-Cola Consolidated, Inc.", + "0000318154": "Amgen Inc", + "0000319201": "KLA Corporation", + "0000320187": "NIKE, Inc.", + "0000320193": "Apple Inc.", + "0000320335": "Globe Life Inc.", + "0000350698": "AutoNation, Inc.", + "0000350894": "SEI Investments Company", + "0000352541": "Alliant Energy Corporation", + "0000352915": "Universal Health Services, Inc.", + "0000354190": "Arthur J. Gallagher & Co.", + "0000354950": "HOME DEPOT, INC.", + "0000355811": "Gentex Corporation", + "0000701985": "Bath & Body Works, Inc.", + "0000702165": "Norfolk Southern Corporation", + "0000704532": "Onto Innovation Inc.", + "0000707549": "Lam Research", + "0000711404": "The Cooper Companies, Inc.", + "0000712515": "Electronic Arts", + "0000713676": "The PNC Financial Services Group, Inc.", + "0000715957": "Dominion Energy, Inc.", + "0000717605": "Hexcel Corporation", + "0000719955": "Williams-Sonoma, Inc.", + "0000720005": "Raymond James Financial, Inc.", + "0000720672": "Stifel Financial Corp.", + "0000721371": "Cardinal Health, Inc.", + "0000723125": "Micron Technology", + "0000723254": "Cintas", + "0000723531": "Paychex", + "0000723612": "Avis Budget Group, Inc.", + "0000726728": "Realty Income Corporation", + "0000726958": "Casey's General Stores, Inc.", + "0000728535": "J.B. Hunt Transport Services, Inc.", + "0000730263": "Thor Industries, Inc.", + "0000730272": "Repligen Corporation", + "0000731766": "UnitedHealth Group Incorporated", + "0000731802": "Atmos Energy Corporation", + "0000732712": "Verizon Communications Inc", + "0000732717": "AT&T Inc.", + "0000737758": "The Toro Company", + "0000740260": "Ventas, Inc.", + "0000745732": "Ross Stores", + "0000746515": "Expeditors International of Washington, Inc.", + "0000749251": "Gartner, Inc.", + "0000751364": "NNN REIT, Inc.", + "0000753308": "NextEra Energy, Inc.", + "0000759944": "Citizens Financial Group, Inc.", + "0000763901": "Popular, Inc.", + "0000764038": "SouthState Corporation", + "0000764065": "Cleveland-Cliffs Inc.", + "0000764180": "Altria Group, Inc.", + "0000764478": "Best Buy Co., Inc.", + "0000764622": "Pinnacle West Capital Corporation", + "0000765880": "Healthpeak Properties, Inc.", + "0000766421": "Alaska Air Group, Inc.", + "0000766704": "Welltower Inc.", + "0000769397": "Autodesk", + "0000769520": "The Middleby Corporation", + "0000772406": "Cirrus Logic, Inc.", + "0000773840": "Honeywell International Inc", + "0000775158": "Oshkosh Corporation", + "0000776867": "White Mountains Insurance Group, Ltd.", + "0000779152": "Jack Henry & Associates, Inc.", + "0000783325": "WEC Energy Group, Inc.", + "0000785161": "Encompass Health Corporation", + "0000788784": "Public Service Enterprise Group Incorporated", + "0000789019": "MICROSOFT CORPORATION", + "0000789570": "MGM Resorts International", + "0000790051": "Carlisle Companies Incorporated", + "0000793952": "Harley-Davidson, Inc.", + "0000794170": "Toll Brothers, Inc.", + "0000794367": "Macy's, Inc.", + "0000796343": "Adobe Inc.", + "0000797468": "Occidental Petroleum Corporation", + "0000798354": "Fiserv, Inc.", + "0000798941": "First Citizens BancShares, Inc.", + "0000801337": "Webster Financial Corporation", + "0000802481": "Pilgrim's Pride Corporation", + "0000804328": "Qualcomm", + "0000811156": "CMS Energy Corporation", + "0000811809": "BHP GROUP LIMITED", + "0000812011": "Vail Resorts, Inc.", + "0000813672": "Cadence Design Systems", + "0000814453": "Newell Brands Inc.", + "0000814547": "Fair Isaac Corporation", + "0000815556": "Fastenal", + "0000816761": "Teradata Corporation", + "0000818479": "DENTSPLY SIRONA Inc.", + "0000820027": "Ameriprise Financial, Inc.", + "0000820313": "Amphenol Corporation", + "0000820318": "Coherent, Inc.", + "0000821189": "EOG Resources, Inc.", + "0000822416": "PulteGroup, Inc.", + "0000822818": "Clean Harbors, Inc.", + "0000823768": "Waste Management, Inc.", + "0000824142": "AAON, Inc.", + "0000825542": "The Scotts Miracle-Gro Company", + "0000827052": "Edison International", + "0000827054": "Microchip Technology", + "0000829224": "Starbucks", + "0000831001": "Citigroup Inc.", + "0000831259": "Freeport-McMoRan Inc.", + "0000831641": "Tetra Tech, Inc.", + "0000832101": "IDEX Corporation", + "0000842023": "Bio-Techne Corporation", + "0000842162": "Lear Corporation", + "0000849399": "NortonLifeLock Inc.", + "0000849869": "Silgan Holdings Inc.", + "0000851205": "Cognex Corporation", + "0000851968": "Mohawk Industries, Inc.", + "0000853816": "Landstar System, Inc.", + "0000855658": "Lattice Semiconductor Corporation", + "0000857005": "PTC Inc.", + "0000858470": "Coterra Energy Inc.", + "0000858877": "CISCO SYSTEMS, INC.", + "0000859737": "Hologic, Inc.", + "0000860730": "HCA Healthcare, Inc.", + "0000860731": "Tyler Technologies, Inc.", + "0000860748": "Kemper Corporation", + "0000861884": "Reliance Steel & Aluminum Co.", + "0000864749": "Trimble Inc.", + "0000865752": "Monster Beverage", + "0000866291": "Allegro MicroSystems, Inc.", + "0000866374": "Flex Ltd.", + "0000866787": "AutoZone, Inc.", + "0000868857": "Aecom", + "0000871763": "ManpowerGroup Inc.", + "0000872589": "Regeneron Pharmaceuticals", + "0000873303": "Sarepta Therapeutics, Inc.", + "0000874015": "Ionis Pharmaceuticals, Inc.", + "0000874716": "Idexx Laboratories", + "0000874761": "The AES Corporation", + "0000874766": "The Hartford Financial Services Group, Inc.", + "0000875045": "Biogen Inc.", + "0000875320": "Vertex Pharmaceuticals", + "0000875357": "BOK Financial Corporation", + "0000876437": "MGIC Investment Corporation", + "0000877212": "Zebra Technologies Corporation", + "0000878927": "Old Dominion Freight Line", + "0000879101": "Kimco Realty Corporation", + "0000879169": "Incyte Corporation", + "0000880266": "AGCO Corporation", + "0000882095": "Gilead Sciences", + "0000882184": "D.R. Horton, Inc.", + "0000882835": "Roper Technologies", + "0000883241": "Synopsys", + "0000884614": "UGI Corporation", + "0000885550": "Credit Acceptance Corporation", + "0000885725": "Boston Scientific Corporation", + "0000886982": "GOLDMAN SACHS GROUP INC", + "0000887343": "Columbia Banking System, Inc.", + "0000887936": "FTI Consulting, Inc.", + "0000888491": "Omega Healthcare Investors, Inc.", + "0000889331": "Littelfuse, Inc.", + "0000891103": "Match Group, Inc.", + "0000895126": "Expand Energy Corporation", + "0000895417": "Equity LifeStyle Properties, Inc.", + "0000895421": "Morgan Stanley", + "0000896622": "AptarGroup, Inc.", + "0000896878": "Intuit", + "0000898173": "O'Reilly Automotive", + "0000898174": "Reinsurance Group of America, Incorporated", + "0000898293": "Jabil Inc.", + "0000899051": "The Allstate Corporation", + "0000899689": "Vornado Realty Trust", + "0000900075": "Copart", + "0000906107": "Equity Residential", + "0000906163": "NVR, Inc.", + "0000906345": "Camden Property Trust", + "0000906553": "Boyd Gaming Corporation", + "0000908255": "BorgWarner Inc.", + "0000908937": "Sirius XM Holdings Inc.", + "0000909832": "Costco", + "0000910521": "Deckers Outdoor Corporation", + "0000910606": "Regency Centers Corporation", + "0000912593": "Sun Communities, Inc.", + "0000912595": "Mid-America Apartment Communities, Inc.", + "0000912958": "Millicom International Cellular S.A.", + "0000913144": "RenaissanceRe Holdings Ltd.", + "0000914475": "Neurocrine Biosciences, Inc.", + "0000915389": "Eastman Chemical Company", + "0000915912": "AvalonBay Communities, Inc.", + "0000915913": "Albemarle Corporation", + "0000916076": "Martin Marietta Materials, Inc.", + "0000916365": "Tractor Supply Company", + "0000916540": "Darling Ingredients Inc.", + "0000917251": "Agree Realty Corporation", + "0000918646": "Eagle Materials Inc.", + "0000920148": "Labcorp Holdings Inc.", + "0000920371": "Simpson Manufacturing Co., Inc.", + "0000920522": "Essex Property Trust, Inc.", + "0000920760": "Lennar Corporation", + "0000921082": "Highwoods Properties, Inc.", + "0000921738": "PENN Entertainment, Inc.", + "0000921825": "First Industrial Realty Trust, Inc.", + "0000922224": "PPL Corporation", + "0000924805": "Freedom Holding Corp.", + "0000927066": "DaVita Inc.", + "0000927628": "Capital One Financial Corporation", + "0000927653": "McKesson Corporation", + "0000929008": "WESCO International, Inc.", + "0000935703": "Dollar Tree, Inc.", + "0000936340": "DTE Energy Company", + "0000936395": "Ciena Corporation", + "0000936468": "Lockheed Martin Corporation", + "0000937556": "Masimo Corporation", + "0000937966": "ASML Holding", + "0000939767": "Exelixis, Inc.", + "0000940944": "Darden Restaurants, Inc.", + "0000943452": "Westinghouse Air Brake Technologies Corporation", + "0000943819": "ResMed Inc.", + "0000944695": "The Hanover Insurance Group, Inc.", + "0000945841": "Pool Corporation", + "0000946581": "Take-Two Interactive", + "0000947263": "TORONTO DOMINION BANK", + "0000947484": "Arch Capital Group Ltd.", + "0000949870": "The Boston Beer Company, Inc.", + "0001000228": "Henry Schein, Inc.", + "0001000697": "Waters Corporation", + "0001001039": "Legacy Walt Disney Co", + "0001001250": "The Estee Lauder Companies Inc.", + "0001001838": "Southern Copper Corporation", + "0001002047": "NetApp, Inc.", + "0001002910": "Ameren Corporation", + "0001003078": "MSC Industrial Direct Co., Inc.", + "0001004434": "Affiliated Managers Group, Inc.", + "0001004980": "PG&E Corporation", + "0001005284": "Universal Display Corporation", + "0001012100": "Sealed Air Corporation", + "0001013237": "FactSet Research Systems Inc.", + "0001013857": "Pegasystems Inc.", + "0001013871": "NRG Energy, Inc.", + "0001014473": "VeriSign, Inc.", + "0001015328": "Wintrust Financial Corporation", + "0001018724": "AMAZON COM INC", + "0001018963": "ATI Inc.", + "0001019849": "Penske Automotive Group, Inc.", + "0001020569": "Iron Mountain Incorporated", + "0001021635": "OGE Energy Corp.", + "0001021860": "NOV Inc.", + "0001022079": "Quest Diagnostics Incorporated", + "0001022671": "Steel Dynamics, Inc.", + "0001023128": "Lithia Motors, Inc.", + "0001024305": "Coty Inc.", + "0001024478": "Rockwell Automation, Inc.", + "0001025378": "W. P. Carey Inc.", + "0001025996": "Kilroy Realty Corporation", + "0001029199": "Euronet Worldwide, Inc.", + "0001031296": "FirstEnergy Corp.", + "0001031308": "Bentley Systems, Incorporated", + "0001032033": "SLM Corporation", + "0001032208": "Sempra", + "0001034054": "SBA Communications Corporation", + "0001035002": "Valero Energy Corporation", + "0001035267": "Intuitive Surgical", + "0001035443": "Alexandria Real Estate Equities, Inc.", + "0001035983": "Comfort Systems USA, Inc.", + "0001037038": "Ralph Lauren Corporation", + "0001037540": "BXP, Inc.", + "0001037646": "Mettler-Toledo International Inc.", + "0001037868": "AMETEK, Inc.", + "0001037976": "Jones Lang LaSalle Incorporated", + "0001039684": "ONEOK, Inc.", + "0001041061": "Yum! Brands, Inc.", + "0001042046": "American Financial Group, Inc.", + "0001043219": "Annaly Capital Management, Inc.", + "0001043277": "C.H. Robinson Worldwide, Inc.", + "0001045450": "EPR Properties", + "0001045609": "Prologis, Inc.", + "0001045810": "NVIDIA CORP", + "0001046257": "Ingredion Incorporated", + "0001046311": "Choice Hotels International, Inc.", + "0001047127": "Amkor Technology, Inc.", + "0001047862": "Consolidated Edison, Inc.", + "0001048286": "Marriott International", + "0001048477": "BioMarin Pharmaceutical Inc.", + "0001048695": "F5, Inc.", + "0001048911": "FedEx Corporation", + "0001049502": "MKS Inc.", + "0001050446": "MicroStrategy Inc.", + "0001050797": "Columbia Sportswear Company", + "0001050915": "Quanta Services, Inc.", + "0001051470": "Crown Castle Inc.", + "0001053507": "American Tower Corporation", + "0001056696": "Manhattan Associates, Inc.", + "0001057352": "CoStar Group", + "0001057877": "IDACORP, Inc.", + "0001058090": "Chipotle Mexican Grill, Inc.", + "0001058290": "Cognizant", + "0001059556": "Moody's Corporation", + "0001060391": "Republic Services, Inc.", + "0001062579": "Amdocs Limited", + "0001063761": "Simon Property Group, Inc.", + "0001065088": "eBay Inc.", + "0001065280": "Netflix", + "0001065696": "LKQ Corporation", + "0001067701": "United Rentals, Inc.", + "0001067983": "BERKSHIRE HATHAWAY INC", + "0001068851": "Prosperity Bancshares, Inc.", + "0001069157": "East West Bancorp, Inc.", + "0001069183": "Axon Enterprise Inc.", + "0001069202": "Lennox International Inc.", + "0001069878": "Trex Company, Inc.", + "0001070750": "Host Hotels & Resorts, Inc.", + "0001071739": "Centene Corporation", + "0001075124": "Thomson Reuters Corporation", + "0001075531": "Booking Holdings", + "0001082554": "United Therapeutics Corporation", + "0001086222": "Akamai Technologies, Inc.", + "0001088856": "Corcept Therapeutics Incorporated", + "0001089063": "DICK'S Sporting Goods, Inc.", + "0001090012": "Devon Energy Corporation", + "0001090425": "Lamar Advertising Company", + "0001090727": "United Parcel Service, Inc.", + "0001090872": "Agilent Technologies, Inc.", + "0001091667": "Charter Communications", + "0001093557": "DexCom", + "0001094285": "Teledyne Technologies Incorporated", + "0001096343": "Markel Corporation", + "0001097149": "Align Technology, Inc.", + "0001097864": "ON Semiconductor Corporation", + "0001099219": "MetLife, Inc.", + "0001099590": "MercadoLibre", + "0001099800": "Edwards Lifesciences Corporation", + "0001100682": "Charles River Laboratories International, Inc.", + "0001101239": "Equinix, Inc.", + "0001101302": "Entegris, Inc.", + "0001103982": "Mondelez International", + "0001104506": "Insmed Incorporated", + "0001108524": "Salesforce, Inc.", + "0001109354": "Bruker Corporation", + "0001109357": "Exelon", + "0001110803": "Illumina, Inc.", + "0001111711": "NiSource Inc.", + "0001111928": "IPG Photonics Corporation", + "0001113169": "T. Rowe Price Group, Inc.", + "0001115055": "Pinnacle Financial Partners, Inc.", + "0001116132": "Tapestry, Inc.", + "0001120193": "Nasdaq, Inc.", + "0001121788": "Garmin Ltd.", + "0001123360": "Global Payments Inc.", + "0001124140": "Exact Sciences Corporation", + "0001126328": "Principal Financial Group, Inc.", + "0001128928": "Flowers Foods, Inc.", + "0001130310": "CenterPoint Energy, Inc.", + "0001133421": "Northrop Grumman Corporation", + "0001136869": "Zimmer Biomet Holdings, Inc.", + "0001136893": "Fidelity National Information Services, Inc.", + "0001137774": "Prudential Financial, Inc.", + "0001137789": "Seagate Technology Holdings", + "0001138118": "CBRE Group, Inc.", + "0001140859": "Cencora, Inc.", + "0001141391": "Mastercard Incorporated", + "0001142417": "Nexstar Media Group, Inc.", + "0001144215": "Acuity Brands, Inc.", + "0001145197": "Insulet Corporation", + "0001156039": "Elevance Health Inc.", + "0001156375": "CME Group Inc.", + "0001159036": "Halozyme Therapeutics, Inc.", + "0001159152": "James Hardie Industries plc", + "0001163165": "ConocoPhillips", + "0001164727": "Newmont Corporation", + "0001166003": "XPO Logistics, Inc.", + "0001166691": "Comcast", + "0001170010": "CarMax, Inc.", + "0001174922": "Wynn Resorts, Limited", + "0001175454": "Corpay, Inc.", + "0001176948": "Ares Management Corporation", + "0001177394": "TD SYNNEX Corporation", + "0001177609": "Five Below, Inc.", + "0001177702": "Saia, Inc.", + "0001178670": "Alnylam Pharmaceuticals", + "0001179929": "Molina Healthcare, Inc.", + "0001206264": "Somnigroup International Inc", + "0001212545": "Western Alliance Bancorporation", + "0001214816": "AXIS Capital Holdings Limited", + "0001219601": "Crown Holdings, Inc.", + "0001232524": "Jazz Pharmaceuticals plc", + "0001236275": "QXO, Inc.", + "0001237831": "Globus Medical, Inc.", + "0001260221": "TransDigm Group Incorporated", + "0001261333": "DocuSign, Inc.", + "0001262039": "Fortinet", + "0001262823": "Westlake Corporation", + "0001267238": "Assurant, Inc.", + "0001273813": "Assured Guaranty Ltd.", + "0001274494": "First Solar, Inc.", + "0001278021": "MarketAxess Holdings Inc.", + "0001280452": "Monolithic Power Systems", + "0001281761": "Regions Financial Corporation", + "0001282637": "NewMarket Corporation", + "0001283699": "T-Mobile US", + "0001285785": "The Mosaic Company", + "0001286681": "Domino's Pizza, Inc.", + "0001287865": "Medical Properties Trust, Inc.", + "0001288776": "Google Inc.", + "0001289419": "Morningstar, Inc.", + "0001289460": "Texas Roadhouse, Inc.", + "0001289490": "Extra Space Storage Inc.", + "0001297989": "ExlService Holdings, Inc.", + "0001297996": "Digital Realty Trust, Inc.", + "0001298675": "CubeSmart", + "0001300514": "Las Vegas Sands Corp.", + "0001302215": "Houlihan Lokey, Inc.", + "0001306830": "Celanese Corporation", + "0001307954": "Huntsman Corporation", + "0001308547": "Dolby Laboratories, Inc.", + "0001309108": "WEX Inc.", + "0001311370": "Lazard Ltd", + "0001315098": "Roblox Corporation", + "0001316835": "Builders FirstSource, Inc.", + "0001318605": "Tesla, Inc.", + "0001321655": "Palantir Technologies", + "0001321732": "Penumbra, Inc.", + "0001324404": "CF Industries Holdings, Inc.", + "0001324424": "Expedia Group, Inc.", + "0001324948": "RBC Bearings Incorporated", + "0001326160": "Duke Energy Corporation", + "0001326380": "GameStop Corp.", + "0001326801": "Meta Platforms", + "0001327567": "Palo Alto Networks", + "0001327811": "Workday, Inc.", + "0001331875": "Fidelity National Financial, Inc.", + "0001333986": "Equitable Holdings, Inc.", + "0001334036": "Crocs, Inc.", + "0001335258": "Live Nation Entertainment, Inc.", + "0001336917": "Under Armour, Inc.", + "0001336920": "Leidos Holdings, Inc.", + "0001341439": "Oracle Corporation", + "0001341766": "Celsius Holdings, Inc.", + "0001352010": "EPAM Systems, Inc.", + "0001357615": "KBR, Inc.", + "0001360604": "Healthcare Realty Trust Incorporated", + "0001360901": "Evercore Inc.", + "0001361658": "Travel + Leisure Co.", + "0001364742": "BLACKROCK FINANCE, INC.", + "0001365135": "The Western Union Company", + "0001370637": "Etsy, Inc.", + "0001370946": "Owens Corning", + "0001373715": "ServiceNow, Inc.", + "0001375365": "Super Micro Computer, Inc.", + "0001381197": "Interactive Brokers Group, Inc.", + "0001381668": "TFS Financial Corporation", + "0001383312": "Broadridge Financial Solutions, Inc.", + "0001384905": "RingCentral, Inc.", + "0001389170": "Targa Resources Corp.", + "0001390777": "The Bank of New York Mellon Corporation", + "0001393052": "Veeva Systems Inc.", + "0001393311": "Public Storage", + "0001393818": "Blackstone Inc.", + "0001396009": "Vulcan Materials Company", + "0001397187": "Lululemon Athletica Inc.", + "0001397911": "LPL Financial Holdings Inc.", + "0001398659": "Genpact Limited", + "0001402057": "CDW Corporation", + "0001402436": "SS&C Technologies Holdings, Inc.", + "0001403161": "VISA INC.", + "0001403568": "Ulta Beauty, Inc.", + "0001404655": "HubSpot, Inc.", + "0001404912": "KKR & Co. Inc.", + "0001408075": "Graphic Packaging Holding Company", + "0001408198": "MSCI Inc.", + "0001410636": "American Water Works Company, Inc.", + "0001411207": "Allison Transmission Holdings, Inc.", + "0001413329": "Philip Morris International Inc.", + "0001413447": "NXP Semiconductors", + "0001418135": "Keurig Dr Pepper", + "0001418819": "Iridium Communications Inc.", + "0001423689": "AGNC Investment Corp.", + "0001428439": "Roku, Inc.", + "0001433195": "AppFolio, Inc.", + "0001433270": "Antero Resources Corporation", + "0001433642": "Hamilton Lane Incorporated", + "0001434588": "Grand Canyon Education, Inc.", + "0001437107": "Warner Bros. Discovery", + "0001437578": "Bright Horizons Family Solutions Inc.", + "0001441816": "MongoDB, Inc.", + "0001442145": "Verisk", + "0001443646": "Booz Allen Hamilton Holding Corporation", + "0001447669": "Twilio Inc.", + "0001455863": "Americold Realty Trust, Inc.", + "0001463101": "Enphase Energy, Inc.", + "0001465128": "Starwood Property Trust, Inc.", + "0001466258": "Trane Technologies plc", + "0001467623": "Dropbox, Inc.", + "0001467831": "Howard Hughes Holdings Inc.", + "0001467858": "General Motors Company", + "0001468174": "Hyatt Hotels Corporation", + "0001468522": "Ferrovial SE", + "0001472787": "First American Financial Corporation", + "0001474432": "Everpure, Inc", + "0001474735": "Generac Holdings Inc.", + "0001475922": "Primerica, Inc.", + "0001477294": "Sensata Technologies Holding plc", + "0001477333": "Cloudflare, Inc.", + "0001478242": "IQVIA Holdings Inc.", + "0001479094": "STAG Industrial, Inc.", + "0001486159": "Chord Energy Corporation", + "0001486957": "BWX Technologies, Inc.", + "0001487712": "Air Lease Corporation", + "0001492422": "Apellis Pharmaceuticals, Inc.", + "0001492691": "Knight-Swift Transportation Holdings Inc.", + "0001493594": "MACOM Technology Solutions Holdings, Inc.", + "0001501585": "Huntington Ingalls Industries, Inc.", + "0001506293": "Pinterest, Inc.", + "0001506307": "Kinder Morgan, Inc.", + "0001507079": "Floor & Decor Holdings, Inc.", + "0001510295": "Marathon Petroleum Corporation", + "0001511737": "Ubiquiti Inc.", + "0001512673": "Block, Inc.", + "0001515673": "Ultragenyx Pharmaceutical Inc.", + "0001516513": "Doximity, Inc.", + "0001519751": "Fortune Brands Home & Security, Inc.", + "0001520006": "Matador Resources Company", + "0001520697": "Acadia Healthcare Company, Inc.", + "0001524472": "Xylem Inc.", + "0001527166": "The Carlyle Group Inc.", + "0001528396": "Guidewire Software, Inc.", + "0001528849": "Rh", + "0001530950": "Post Holdings, Inc.", + "0001531152": "BJ's Wholesale Club Holdings, Inc.", + "0001534701": "Phillips 66", + "0001535527": "CrowdStrike", + "0001535929": "Voya Financial, Inc.", + "0001539838": "Diamondback Energy", + "0001543151": "Uber Technologies, Inc.", + "0001551152": "AbbVie Inc.", + "0001552033": "TransUnion", + "0001555280": "Zoetis Inc.", + "0001556593": "Rithm Capital Corp.", + "0001557860": "Globant S.A.", + "0001559720": "Airbnb", + "0001560385": "Liberty Live Group", + "0001561550": "Datadog", + "0001562088": "Duolingo, Inc.", + "0001562401": "American Homes 4 Rent", + "0001564708": "News Corporation", + "0001567683": "Clearway Energy, Inc.", + "0001570585": "Liberty Global plc", + "0001571123": "Science Applications International Corporation", + "0001571283": "Rexford Industrial Realty, Inc.", + "0001571949": "Intercontinental Exchange, Inc.", + "0001571996": "Dell Technologies Inc.", + "0001573516": "Murphy USA Inc.", + "0001575515": "Sprouts Farmers Market, Inc.", + "0001575965": "Gaming and Leisure Properties, Inc.", + "0001579091": "Instacart (Maplebear Inc.)", + "0001579298": "Burlington Stores, Inc.", + "0001581068": "Brixmor Property Group Inc.", + "0001583708": "SentinelOne, Inc.", + "0001584207": "OneMain Holdings, Inc.", + "0001584509": "Aramark", + "0001585521": "Zoom Communications, Inc.", + "0001585689": "Hilton Worldwide Holdings Inc.", + "0001590364": "FTAI Aviation Ltd.", + "0001590714": "Element Solutions Inc", + "0001590895": "Caesars Entertainment, Inc.", + "0001590955": "Paycom Software, Inc.", + "0001591698": "Paylocity Holding Corporation", + "0001592386": "Virtu Financial, Inc.", + "0001594805": "Shopify", + "0001596532": "Arista Networks, Inc.", + "0001599298": "Summit Therapeutics Inc.", + "0001600033": "e.l.f. Beauty, Inc.", + "0001601046": "Keysight Technologies, Inc.", + "0001601712": "Synchrony Financial", + "0001602065": "Viper Energy, Inc.", + "0001603923": "Weatherford International plc", + "0001604028": "Advanced Drainage Systems, Inc.", + "0001604778": "Qorvo, Inc.", + "0001604821": "Natera, Inc.", + "0001607678": "Viking Therapeutics, Inc.", + "0001609550": "Inspire Medical Systems, Inc.", + "0001609711": "GoDaddy Inc.", + "0001611052": "Procore Technologies, Inc.", + "0001611647": "Freshpet, Inc.", + "0001611983": "Liberty Broadband Corporation", + "0001616707": "Wayfair Inc.", + "0001617406": "Park Hotels & Resorts Inc.", + "0001617640": "Zillow Group, Inc. Class A", + "0001618563": "National Storage Affiliates Trust", + "0001618673": "Performance Food Group Company", + "0001618732": "Nutanix, Inc.", + "0001622536": "Talen Energy Corporation", + "0001623925": "Antero Midstream Corporation", + "0001627857": "SailPoint, Inc.", + "0001628171": "Revolution Medicines, Inc.", + "0001633917": "PayPal", + "0001633931": "TopBuild Corp.", + "0001633978": "Lumentum Holdings Inc.", + "0001635088": "Roivant Sciences Ltd.", + "0001636222": "Wingstop Inc.", + "0001636519": "Madison Square Garden Sports Corp.", + "0001637207": "Planet Fitness, Inc.", + "0001637459": "Kraft Heinz", + "0001639300": "Ollie's Bargain Outlet Holdings, Inc.", + "0001639438": "CAVA Group, Inc.", + "0001639920": "Spotify Technology S.A.", + "0001640147": "Snowflake Inc.", + "0001642896": "Samsara Inc.", + "0001645590": "Hewlett Packard Enterprise Company", + "0001646972": "Albertsons Companies, Inc.", + "0001647088": "WillScot Holdings Corporation", + "0001650107": "Coca-Cola Europacific Partners", + "0001650164": "Toast, Inc.", + "0001650372": "Atlassian", + "0001650729": "SiteOne Landscape Supply, Inc.", + "0001652044": "Alphabet Inc.", + "0001653482": "GitLab Inc.", + "0001658566": "Permian Resources Corporation", + "0001659166": "Fortive Corporation", + "0001660134": "Okta, Inc.", + "0001665918": "US Foods Holding Corp.", + "0001666700": "DuPont de Nemours, Inc.", + "0001668397": "Medpace Holdings, Inc.", + "0001669162": "Kinsale Capital Group, Inc.", + "0001670592": "YETI Holdings, Inc.", + "0001671933": "The Trade Desk, Inc.", + "0001674101": "Vertiv Holdings Co", + "0001674862": "Ashland Inc.", + "0001674910": "Valvoline Inc.", + "0001675149": "Alcoa Corporation", + "0001679273": "Lamb Weston Holdings, Inc.", + "0001679788": "Coinbase Global, Inc.", + "0001681459": "TechnipFMC plc", + "0001682852": "Moderna, Inc.", + "0001685040": "Brighthouse Financial, Inc.", + "0001687229": "Invitation Homes Inc.", + "0001688568": "DXC Technology Company", + "0001690820": "Carvana Co.", + "0001691493": "Nu Holdings Ltd.", + "0001692063": "Schneider National, Inc.", + "0001692819": "Vistra Corp.", + "0001699150": "Ingersoll Rand Inc.", + "0001699838": "Confluent, Inc.", + "0001701605": "Baker Hughes", + "0001703056": "ADT Inc.", + "0001705696": "VICI Properties Inc.", + "0001707753": "Elastic N.V.", + "0001707925": "Linde plc", + "0001709048": "GLOBALFOUNDRIES Inc.", + "0001711269": "Evergy, Inc.", + "0001713445": "Reddit, Inc.", + "0001713683": "Zscaler", + "0001717115": "Tempus AI, Inc.", + "0001718512": "Gates Industrial Corporation plc", + "0001720635": "nVent Electric plc", + "0001722482": "Avantor, Inc.", + "0001722684": "Wyndham Hotels & Resorts, Inc.", + "0001730168": "Broadcom Inc.", + "0001734722": "UiPath Inc.", + "0001736297": "Astera Labs, Inc. Common Stock", + "0001737806": "PDD Holdings", + "0001739104": "Elanco Animal Health Incorporated", + "0001739940": "Cigna Corporation", + "0001744489": "Walt Disney Co", + "0001745201": "Viking Holdings Ltd", + "0001748790": "Amcor plc", + "0001751008": "Applovin Corp", + "0001751788": "Dow Inc.", + "0001754301": "Fox Corporation", + "0001755672": "Corteva, Inc.", + "0001757073": "Envista Holdings Corp", + "0001757898": "STERIS plc", + "0001758730": "Tradeweb Markets Inc.", + "0001759509": "Lyft, Inc.", + "0001764046": "Clarivate Plc", + "0001766502": "Chewy, Inc.", + "0001772016": "BellRing Brands, Inc.", + "0001773383": "Dynatrace, Inc.", + "0001780312": "AST SpaceMobile, Inc.", + "0001781335": "Otis Worldwide Corporation", + "0001783180": "Carrier Global Corporation", + "0001783398": "UWM Holdings Corporation", + "0001783879": "Robinhood Markets, Inc.", + "0001786352": "Bill.com Holdings, Inc.", + "0001786431": "Reynolds Consumer Products Inc.", + "0001786842": "Vontier Corporation", + "0001787425": "XP Inc.", + "0001792044": "Viatris Inc.", + "0001792580": "Ovintiv Inc.", + "0001792789": "DoorDash", + "0001794515": "ZoomInfo Technologies Inc.", + "0001794669": "Shift4 Payments, Inc.", + "0001796209": "APi Group Corporation", + "0001800227": "IAC InterActive Corp.", + "0001801368": "MP Materials Corp.", + "0001802768": "Royalty Pharma plc", + "0001803599": "Concentrix Corporation", + "0001805284": "Rocket Companies, Inc.", + "0001810806": "Unity Software Inc.", + "0001811074": "Texas Pacific Land Corporation", + "0001811210": "Lucid Group, Inc.", + "0001811414": "QuantumScape Corporation", + "0001818201": "CCC Intelligent Solutions Holdings Inc.", + "0001818874": "SoFi Technologies, Inc.", + "0001819928": "DoubleVerify Holdings, Inc.", + "0001819994": "Rocket Lab USA, Inc.", + "0001820953": "Affirm Holdings, Inc.", + "0001821825": "Organon & Co.", + "0001822479": "Sotera Health Company", + "0001823945": "Blue Owl Capital Inc.", + "0001827090": "Certara, Inc.", + "0001828108": "Aurora Innovation, Inc.", + "0001833756": "Leonardo DRS, Inc.", + "0001834584": "Coupang, Inc.", + "0001834622": "Hayward Holdings, Inc.", + "0001835632": "Marvell Technology", + "0001841666": "APA Corporation", + "0001842022": "DT Midstream, Inc.", + "0001849253": "Ryan Specialty Holdings, Inc.", + "0001849635": "Trump Media & Technology Group Corp.", + "0001852244": "GXO Logistics, Inc.", + "0001856525": "Core & Main, Inc.", + "0001858681": "Apollo Global Management, Inc.", + "0001858985": "On Holding AG", + "0001866581": "Dutch Bros Inc.", + "0001867072": "Kyndryl Holdings, Inc.", + "0001868159": "Lineage, Inc.", + "0001868275": "Constellation Energy", + "0001872195": "Bullish", + "0001874178": "Rivian Automotive, Inc.", + "0001876042": "Circle Internet Group", + "0001877322": "ESAB Corporation", + "0001880661": "TPG Inc.", + "0001883685": "DraftKings Inc.", + "0001897762": "Ingram Micro Holding Corporation", + "0001902733": "nCino, Inc.", + "0001915657": "HF Sinclair Corporation", + "0001932393": "GE HealthCare", + "0001943896": "Rubrik, Inc.", + "0001944013": "Crane Company", + "0001944048": "Kenvue Inc.", + "0001957132": "SharkNinja, Inc.", + "0001964738": "Solventum Corporation", + "0001967680": "Veralto Corporation", + "0001973239": "Arm Holdings", + "0001973266": "TKO Group Holdings, Inc.", + "0001977102": "Birkenstock Holding plc", + "0001988894": "Amer Sports, Inc.", + "0001996810": "GE Vernova Inc.", + "0001996862": "Bunge Global S.A.", + "0002000178": "Loar Holdings Inc.", + "0002011286": "Amentum Holdings, Inc.", + "0002011641": "Ferguson plc", + "0002012383": "BlackRock, Inc.", + "0002015845": "Everus Construction Group, Inc.", + "0002017206": "Millrose Properties, Inc.", + "0002019410": "Caris Life Sciences, Inc.", + "0002023554": "Sandisk Corporation", + "0002025410": "StandardAero, Inc.", + "0002040127": "Karman Holdings Inc.", + "0002041385": "Ralliant Corp.", + "0002042694": "Primo Brands Corporation", + "0002054696": "NIQ Global Intelligence Plc", + "0002057463": "GCI Liberty, Inc.", + "0002058873": "Qnity Electronics, Inc.", + "0002064124": "Figure Technology Solutions, Inc. Class A Common Stock", + "0002064953": "Solstice Advanced Materials Inc.", + "0002067876": "Versant Media Group, Inc. Class A Common Stock When-Issued", + "0002071778": "Fermi Inc. Common Stock", +} + +# All CIK*.json files live alongside this script in openbb_sec/ +CACHE_DIR = Path(__file__).resolve().parent + +HEADERS = { + "User-Agent": "OpenBB Research validation@openbb.co", + "Accept-Encoding": "gzip, deflate", +} + +# Conservative rate limiter: 5 requests/second (well under SEC's 10/s limit) +_MIN_INTERVAL = 0.2 # seconds between requests +_last_request_time: float = 0.0 + + +def _rate_limit(): + """Sleep to enforce at most 5 requests per second.""" + global _last_request_time + now = time.monotonic() + elapsed = now - _last_request_time + if elapsed < _MIN_INTERVAL: + time.sleep(_MIN_INTERVAL - elapsed) + _last_request_time = time.monotonic() + + +def download_facts(cik: str) -> dict | None: + """Download (or load from cache) the company-facts JSON for a CIK.""" + cache_path = CACHE_DIR / f"CIK{cik}.json" + if cache_path.exists(): + with open(cache_path) as f: + return json.load(f) + + url = f"https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json" + _rate_limit() + try: + resp = requests.get(url, headers=HEADERS, timeout=30) + resp.raise_for_status() + except requests.RequestException as exc: + print(f" FAILED ({exc})", end="") + return None + + data = resp.json() + with open(cache_path, "w") as f: + json.dump(data, f) + return data + + +_schema = StatementSchema() +# Source provenance categories (ordered from most to least reliable). +_SOURCE_CATEGORIES = ( + "direct_xbrl", # Raw XBRL tag value from SEC filing + "q4_h2_derived", # Q4 = FY-(Q1+Q2+Q3), H2 = FY-H1 (expected quarterly math) + "cross_stmt_lock", # Value locked from another statement (identity_lock) + "algebraic_impute", # Derived from algebraic identity (imputed: X + Y - Z) + "hierarchical_rollup", # Parent = sum of children (imputed-rollup) + "balancing_plug", # Residual "other_*" plug (imputed-plug) + "scope_correction", # Scope/tag correction (corrected, scope-aligned, reconciled) + "identity_enforced", # Overridden by identity verification pass + "period_derived", # Cash BOP = prior period EOP (derived: cash_at_end_of_period) + "suspect_zero", # Zero-valued imputed item (imputed-zero) +) + + +def _classify_source(source: str) -> str: + """Classify a source string into a provenance category.""" + if not source: + return "direct_xbrl" # shouldn't happen, but safe default + if source.startswith("imputed-zero"): + return "suspect_zero" + if source.startswith("Q4:") or source.startswith("H2:"): + return "q4_h2_derived" + if "(identity_lock)" in source: + return "cross_stmt_lock" + if source.startswith("imputed-rollup"): + return "hierarchical_rollup" + if source.startswith("imputed-plug"): + return "balancing_plug" + if source.startswith("imputed"): + return "algebraic_impute" + if source.startswith(("corrected:", "scope-aligned:", "reconciled:")): + return "scope_correction" + if source.startswith("identity-enforced:"): + return "identity_enforced" + if source.startswith("derived:"): + return "period_derived" + # Anything with a namespace prefix (us-gaap:, ifrs-full:) is direct XBRL. + # Also includes (fallback) and (NCI-corrected) variants — still raw data. + return "direct_xbrl" + + +def validate_one(cik: str, name: str, facts_json: dict) -> dict: + """Run full annual + quarterly validation for one company. + + Returns a dict summarizing the results. + """ + result = { + "cik": cik, + "name": name, + "entity_name": facts_json.get("entityName", ""), + "company_type": "", + "annual": {"diagnostics": [], "dates": {}, "error": None, "sources": {}}, + "quarterly": {"diagnostics": [], "dates": {}, "error": None, "sources": {}}, + } + + for freq in ("annual", "quarterly"): + try: + res = resolve_company_facts(facts_json, period=freq) + result["company_type"] = res.company_type + + # Collect dates per statement + is_dates = sorted({r["period_ending"] for r in res.income_statement}) + bs_dates = sorted({r["period_ending"] for r in res.balance_sheet}) + cf_dates = sorted({r["period_ending"] for r in res.cash_flow}) + result[freq]["dates"] = { + "income_statement": is_dates, + "balance_sheet": bs_dates, + "cash_flow": cf_dates, + } + + # Collect source provenance counts per statement + stmt_sources: dict[str, dict[str, int]] = {} + for stmt_name, records in [ + ("income_statement", res.income_statement), + ("balance_sheet", res.balance_sheet), + ("cash_flow", res.cash_flow), + ]: + counts: dict[str, int] = {cat: 0 for cat in _SOURCE_CATEGORIES} + for rec in records: + cat = _classify_source(rec.get("source", "")) + counts[cat] += 1 + stmt_sources[stmt_name] = counts + result[freq]["sources"] = stmt_sources + + # Collect diagnostics + for d in res.diagnostics: + result[freq]["diagnostics"].append( + { + "date": d.date, + "tag": d.tag, + "expected": d.expected, + "actual": d.actual, + "formula": d.formula, + "identity": d.identity, + "diff": abs(d.actual - d.expected), + } + ) + except Exception as exc: + result[freq]["error"] = f"{type(exc).__name__}: {exc}" + + return result + + +def format_report(all_results: list[dict]) -> str: + """Format the full validation results into a readable report.""" + lines: list[str] = [] + sep = "=" * 90 + + lines.append(sep) + lines.append(" EXPANDED CORPUS VALIDATION REPORT") + lines.append(f" Generated: {time.strftime('%Y-%m-%d %H:%M:%S')}") + lines.append(f" Total companies: {len(all_results)}") + lines.append(sep) + lines.append("") + + # ---------- Summary statistics ---------- + n_annual_clean = 0 + n_quarterly_clean = 0 + n_annual_diag = 0 + n_quarterly_diag = 0 + n_annual_error = 0 + n_quarterly_error = 0 + total_annual_violations = 0 + total_quarterly_violations = 0 + + for r in all_results: + if r["annual"]["error"]: + n_annual_error += 1 + elif r["annual"]["diagnostics"]: + n_annual_diag += 1 + total_annual_violations += len(r["annual"]["diagnostics"]) + else: + n_annual_clean += 1 + + if r["quarterly"]["error"]: + n_quarterly_error += 1 + elif r["quarterly"]["diagnostics"]: + n_quarterly_diag += 1 + total_quarterly_violations += len(r["quarterly"]["diagnostics"]) + else: + n_quarterly_clean += 1 + + lines.append("SUMMARY") + lines.append("-" * 50) + lines.append( + f" Annual — Clean: {n_annual_clean} | " + f"Violations: {n_annual_diag} ({total_annual_violations} total) | " + f"Errors: {n_annual_error}" + ) + lines.append( + f" Quarterly — Clean: {n_quarterly_clean} | " + f"Violations: {n_quarterly_diag} ({total_quarterly_violations} total) | " + f"Errors: {n_quarterly_error}" + ) + lines.append("") + + # ---------- Company type breakdown ---------- + type_counts: dict[str, int] = {} + for r in all_results: + ct = r["company_type"] or "(unknown)" + type_counts[ct] = type_counts.get(ct, 0) + 1 + lines.append("COMPANY TYPE BREAKDOWN") + lines.append("-" * 50) + for ct, cnt in sorted(type_counts.items()): + lines.append(f" {ct}: {cnt}") + lines.append("") + + # ---------- Source provenance breakdown ---------- + # Aggregate across all companies per (frequency, statement) + _CAT_LABELS = { + "direct_xbrl": "Direct XBRL", + "q4_h2_derived": "Q4/H2 derivation", + "cross_stmt_lock": "Cross-stmt lock", + "algebraic_impute": "Algebraic impute", + "hierarchical_rollup": "Hierarchical rollup", + "balancing_plug": "Balancing plug", + "scope_correction": "Scope correction", + "identity_enforced": "Identity enforced", + "period_derived": "Period derived", + "suspect_zero": "Suspect zero", + } + + for freq_label, freq_key in [("ANNUAL", "annual"), ("QUARTERLY", "quarterly")]: + lines.append(f"SOURCE PROVENANCE — {freq_label}") + lines.append("-" * 90) + # Header + lines.append( + f" {'Category':<25s} {'Income Stmt':>12s} {'Balance Sheet':>14s}" + f" {'Cash Flow':>12s} {'Total':>12s}" + ) + lines.append(" " + "-" * 80) + + # Aggregate + totals_by_stmt: dict[str, dict[str, int]] = { + s: {cat: 0 for cat in _SOURCE_CATEGORIES} + for s in ("income_statement", "balance_sheet", "cash_flow") + } + for r in all_results: + freq_data = r.get(freq_key, {}) + for stmt_name, counts in freq_data.get("sources", {}).items(): + for cat, cnt in counts.items(): + totals_by_stmt[stmt_name][cat] += cnt + + grand_total = 0 + for cat in _SOURCE_CATEGORIES: + is_n = totals_by_stmt["income_statement"][cat] + bs_n = totals_by_stmt["balance_sheet"][cat] + cf_n = totals_by_stmt["cash_flow"][cat] + row_total = is_n + bs_n + cf_n + grand_total += row_total + if row_total == 0: + continue + lines.append( + f" {_CAT_LABELS.get(cat, cat):<25s}" + f" {is_n:>12,d} {bs_n:>14,d} {cf_n:>12,d} {row_total:>12,d}" + ) + + # Totals row + is_t = sum(totals_by_stmt["income_statement"].values()) + bs_t = sum(totals_by_stmt["balance_sheet"].values()) + cf_t = sum(totals_by_stmt["cash_flow"].values()) + lines.append(" " + "-" * 80) + lines.append( + f" {'TOTAL':<25s} {is_t:>12,d} {bs_t:>14,d}" + f" {cf_t:>12,d} {grand_total:>12,d}" + ) + + # Percentage breakdown (excluding Q4/H2 since it's expected) + if grand_total > 0: + direct = sum(totals_by_stmt[s]["direct_xbrl"] for s in totals_by_stmt) + q4h2 = sum(totals_by_stmt[s]["q4_h2_derived"] for s in totals_by_stmt) + computed = grand_total - direct - q4h2 + lines.append("") + lines.append( + f" Direct XBRL: {direct:,d} ({100*direct/grand_total:.1f}%)" + f" | Q4/H2: {q4h2:,d} ({100*q4h2/grand_total:.1f}%)" + f" | Other computed: {computed:,d} ({100*computed/grand_total:.1f}%)" + ) + lines.append("") + + # ---------- Failures & violations detail ---------- + lines.append(sep) + lines.append(" DETAILED RESULTS — FAILURES AND VIOLATIONS") + lines.append(sep) + lines.append("") + + any_issues = False + for r in all_results: + has_issue = ( + r["annual"]["error"] + or r["quarterly"]["error"] + or r["annual"]["diagnostics"] + or r["quarterly"]["diagnostics"] + ) + if not has_issue: + continue + any_issues = True + + lines.append(f"--- {r['name']} (CIK {r['cik']}) ---") + lines.append(f" Entity: {r['entity_name']}") + lines.append(f" Type: {r['company_type']}") + lines.append("") + + for freq in ("annual", "quarterly"): + fd = r[freq] + if fd["error"]: + lines.append(f" [{freq.upper()}] ERROR: {fd['error']}") + lines.append("") + elif fd["diagnostics"]: + lines.append( + f" [{freq.upper()}] {len(fd['diagnostics'])} identity violation(s):" + ) + for d in fd["diagnostics"]: + lines.append( + f" • {d['date']} | {d['tag']}" + f" expected={d['expected']:,.0f}" + f" actual={d['actual']:,.0f}" + f" diff={d['diff']:,.0f}" + ) + lines.append(f" identity: {d['identity']}") + lines.append(f" formula: {d['formula']}") + lines.append("") + + lines.append("") + + if not any_issues: + lines.append(" *** ALL COMPANIES PASSED WITH ZERO DIAGNOSTICS ***") + lines.append("") + + # ---------- Clean companies list ---------- + lines.append(sep) + lines.append(" CLEAN COMPANIES (zero diagnostics, no errors)") + lines.append(sep) + lines.append("") + for r in all_results: + has_issue = ( + r["annual"]["error"] + or r["quarterly"]["error"] + or r["annual"]["diagnostics"] + or r["quarterly"]["diagnostics"] + ) + if not has_issue: + # Summarize source counts for this company + parts = [] + for fk in ("annual", "quarterly"): + src = r.get(fk, {}).get("sources", {}) + direct = sum(s.get("direct_xbrl", 0) for s in src.values()) + total = sum(sum(s.values()) for s in src.values()) + if total > 0: + pct = 100 * direct / total + parts.append(f"{fk[0].upper()}:{direct}/{total}={pct:.0f}%") + src_summary = f" [{', '.join(parts)}]" if parts else "" + lines.append( + f" ✓ {r['name']} (CIK {r['cik']}, type={r['company_type']})" + f"{src_summary}" + ) + + lines.append("") + lines.append(sep) + lines.append(" END OF REPORT") + lines.append(sep) + + return "\n".join(lines) + + +def main(): + """Run the full validation pipeline and save the report.""" + report_path = Path(__file__).resolve().parent / "corpus_validation_report.txt" + print(f"Corpus: {len(FULL_CORPUS)} companies") + print(f"Cache dir: {CACHE_DIR}") + print() + + # --- Phase 1: Download all company facts (rate-limited) --- + print("Phase 1: Downloading company facts from SEC ...") + download_failures = [] + facts_cache: dict[str, dict] = {} + + for i, (cik, name) in enumerate(sorted(FULL_CORPUS.items()), 1): + cache_path = CACHE_DIR / f"CIK{cik}.json" + status = "cached" if cache_path.exists() else "downloading" + print( + f" [{i:3d}/{len(FULL_CORPUS)}] CIK {cik} {name:40s} ... {status}", + end="", + flush=True, + ) + + data = download_facts(cik) + if data is None: + print(" FAILED") + download_failures.append((cik, name)) + else: + facts_cache[cik] = data + print(" ok") + + if download_failures: + print(f"\n WARNING: {len(download_failures)} download failure(s):") + for cik, name in download_failures: + print(f" - CIK {cik} ({name})") + print() + + # --- Phase 1b: Download and prepare multi-CIK merged entities --- + # For tickers in MULTI_CIK_TICKERS, download any missing CIKs + # and build a merged facts_json for unified validation. + merged_entities: dict[str, tuple[str, dict]] = ( + {} + ) # ticker -> (display_name, merged_facts_json) + merged_ciks: set[str] = set() # CIKs that are part of a merge group + + for ticker, cik_list in MULTI_CIK_TICKERS.items(): + # Check if at least one CIK from this group is in the corpus + in_corpus = [c for c in cik_list if c in FULL_CORPUS] + if not in_corpus: + continue + + # Download any missing CIKs not already in facts_cache + all_facts = [] + all_ok = True + for c in cik_list: + if c in facts_cache: + all_facts.append(facts_cache[c]) + else: + # Need to download this CIK (it's not in the corpus but needed for merge) + print( + f" Downloading CIK {c} for {ticker} merge ... ", end="", flush=True + ) + data = download_facts(c) + if data: + facts_cache[c] = data + all_facts.append(data) + print("ok") + else: + print("FAILED") + all_ok = False + + if not all_ok or len(all_facts) < 2: + continue + + # Merge using StatementSchema.merge_facts + primary = all_facts[0] # first = newest CIK + merged_facts = _schema.merge_facts(*all_facts) + merged_json = { + "entityName": primary.get("entityName", ""), + "cik": primary.get("cik", ""), + "facts": merged_facts, + } + display_name = f"{FULL_CORPUS.get(cik_list[0], primary.get('entityName', ticker))} [MERGED:{ticker}]" + merged_entities[ticker] = (display_name, merged_json) + merged_ciks.update(cik_list) + print(f" Prepared merged entity: {display_name} ({len(cik_list)} CIKs)") + + print() + + # --- Phase 2: Run validation pipeline (parallel) --- + print("Phase 2: Running validation pipeline ...") + + # Build work items: list of (cik, name, facts_json) + work_items: list[tuple[str, str, dict]] = [] + + non_merged = {k: v for k, v in FULL_CORPUS.items() if k not in merged_ciks} + for cik, name in sorted(non_merged.items()): + if cik in facts_cache: + work_items.append((cik, name, facts_cache[cik])) + + for ticker, (display_name, merged_json) in sorted(merged_entities.items()): + cik_primary = MULTI_CIK_TICKERS[ticker][0] + work_items.append((cik_primary, display_name, merged_json)) + + total_to_validate = len(work_items) + n_workers = min(os.cpu_count() or 4, total_to_validate) + print(f" {total_to_validate} companies, {n_workers} workers") + + all_results: list[dict] = [] + t0 = time.monotonic() + + with ProcessPoolExecutor(max_workers=n_workers) as pool: + future_to_item = { + pool.submit(validate_one, cik, name, facts_json): (cik, name) + for cik, name, facts_json in work_items + } + for idx, future in enumerate(as_completed(future_to_item), 1): + cik, name = future_to_item[future] + result = future.result() + + n_diag_a = len(result["annual"]["diagnostics"]) + n_diag_q = len(result["quarterly"]["diagnostics"]) + err_a = result["annual"]["error"] + err_q = result["quarterly"]["error"] + + status_parts = [] + if err_a: + status_parts.append("annual-ERROR") + elif n_diag_a: + status_parts.append(f"annual:{n_diag_a} violations") + if err_q: + status_parts.append("quarterly-ERROR") + elif n_diag_q: + status_parts.append(f"quarterly:{n_diag_q} violations") + + if status_parts: + print( + f" [{idx:3d}/{total_to_validate}] {name:40s} ⚠ {' | '.join(status_parts)}" + ) + else: + print( + f" [{idx:3d}/{total_to_validate}] {name:40s} ✓ clean ({result['company_type']})" + ) + + all_results.append(result) + + elapsed = time.monotonic() - t0 + print(f" Validated {total_to_validate} companies in {elapsed:.1f}s") + + # --- Phase 3: Write report --- + print() + print(f"Phase 3: Writing report to {report_path} ...") + report_text = format_report(all_results) + with open(report_path, "w") as f: + f.write(report_text) + print("Done.") + + # Also write machine-readable JSON + json_path = report_path.with_suffix(".json") + with open(json_path, "w") as f: + json.dump(all_results, f, indent=2, default=str) + print(f"JSON results: {json_path}") + + # Quick summary to stdout + print() + n_fail = sum( + 1 + for r in all_results + if r["annual"]["diagnostics"] + or r["quarterly"]["diagnostics"] + or r["annual"]["error"] + or r["quarterly"]["error"] + ) + print(f"=== {len(all_results)} companies validated, {n_fail} with issues ===") + + +if __name__ == "__main__": + main()