conceptMappings top-level constant
Maps standardized metrics to possible SEC XBRL concept tags. Tags are ordered by priority - more common/reliable tags first.
Implementation
const Map<FinancialMetric, List<String>> conceptMappings = {
// ============= INCOME STATEMENT =============
FinancialMetric.revenue: [
// ASC 606 (Revenue from Contracts) - Primary for modern filings
'RevenueFromContractWithCustomerExcludingAssessedTax',
'RevenueFromContractWithCustomerIncludingAssessedTax',
// General revenue tags
'Revenues',
'Revenue',
'NetRevenues',
'TotalRevenues',
// Sales-based (retail, manufacturing)
'SalesRevenueNet',
'SalesRevenueGoodsNet',
'SalesRevenueServicesNet',
'NetSales',
// Industry-specific
'RevenuesNetOfInterestExpense', // Banks
'InterestAndDividendIncomeOperating', // Banks, Insurance
'InterestIncomeExpenseNet', // Financial services
'PremiumsEarnedNet', // Insurance
'TotalRevenuesAndOtherIncome',
'OperatingRevenue', // Utilities
'RegulatedAndUnregulatedOperatingRevenue', // Utilities
'ElectricUtilityRevenue', // Electric utilities
'OilAndGasRevenue', // Energy
'RealEstateRevenueNet', // REITs
'HealthCareOrganizationPatientServiceRevenue', // Healthcare
],
FinancialMetric.grossProfit: [
'GrossProfit',
'GrossProfitLoss',
],
FinancialMetric.operatingIncome: [
'OperatingIncomeLoss',
'IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest',
'IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments',
'IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet',
'IncomeLossFromContinuingOperations',
'OperatingProfit',
],
FinancialMetric.netIncome: [
'NetIncomeLoss',
'NetIncomeLossAvailableToCommonStockholdersBasic',
'NetIncomeLossAttributableToParent',
'ProfitLoss',
'NetIncomeLossAvailableToCommonStockholdersDiluted',
'ComprehensiveIncomeNetOfTax',
'ComprehensiveIncomeNetOfTaxAttributableToParent',
],
FinancialMetric.earningsPerShareBasic: [
'EarningsPerShareBasic',
'IncomeLossFromContinuingOperationsPerBasicShare',
'NetIncomeLossPerShareBasic',
],
FinancialMetric.earningsPerShareDiluted: [
'EarningsPerShareDiluted',
'IncomeLossFromContinuingOperationsPerDilutedShare',
'NetIncomeLossPerShareDiluted',
],
FinancialMetric.researchAndDevelopment: [
'ResearchAndDevelopmentExpense',
'ResearchAndDevelopmentExpenseExcludingAcquiredInProcessCost',
'ResearchAndDevelopmentExpenseSoftwareExcludingAcquiredInProcessCost',
],
FinancialMetric.costOfRevenue: [
'CostOfRevenue',
'CostOfGoodsAndServicesSold',
'CostOfGoodsSold',
'CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization',
'CostOfServices',
'CostOfSalesMember',
],
// ============= BALANCE SHEET =============
FinancialMetric.totalAssets: [
'Assets',
'AssetsNet',
],
FinancialMetric.totalLiabilities: [
'Liabilities',
'LiabilitiesTotal',
],
FinancialMetric.stockholdersEquity: [
'StockholdersEquity',
'StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest',
'EquityAttributableToParent',
'TotalEquity',
'MembersEquity', // Partnerships, LLCs
'PartnersCapital', // Partnerships
],
FinancialMetric.cashAndEquivalents: [
'CashAndCashEquivalentsAtCarryingValue',
'CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents',
'CashCashEquivalentsAndShortTermInvestments',
'Cash',
'CashAndCashEquivalentsAtCarryingValueIncludingDiscontinuedOperations',
'CashEquivalentsAtCarryingValue',
],
FinancialMetric.currentAssets: [
'AssetsCurrent',
'AssetsCurrentTotal',
],
FinancialMetric.currentLiabilities: [
'LiabilitiesCurrent',
'LiabilitiesCurrentTotal',
],
FinancialMetric.longTermDebt: [
'LongTermDebt',
'LongTermDebtNoncurrent',
'LongTermDebtAndCapitalLeaseObligations',
'DebtAndCapitalLeaseObligations',
'LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities',
'NotesPayable',
'SeniorNotes',
'ConvertibleDebt',
'SecuredDebt',
'UnsecuredDebt',
],
FinancialMetric.nonCurrentLiabilities: [
'LiabilitiesNoncurrent',
'LiabilitiesOtherThanLongtermDebtNoncurrent',
'NoncurrentLiabilities',
],
// ============= CASH FLOW STATEMENT =============
FinancialMetric.operatingCashFlow: [
'NetCashProvidedByUsedInOperatingActivities',
'NetCashProvidedByUsedInOperatingActivitiesContinuingOperations',
'CashFlowsFromUsedInOperatingActivities',
],
FinancialMetric.investingCashFlow: [
'NetCashProvidedByUsedInInvestingActivities',
'NetCashProvidedByUsedInInvestingActivitiesContinuingOperations',
'CashFlowsFromUsedInInvestingActivities',
],
FinancialMetric.financingCashFlow: [
'NetCashProvidedByUsedInFinancingActivities',
'NetCashProvidedByUsedInFinancingActivitiesContinuingOperations',
'CashFlowsFromUsedInFinancingActivities',
],
FinancialMetric.capitalExpenditures: [
'PaymentsToAcquirePropertyPlantAndEquipment',
'PaymentsToAcquireProductiveAssets',
'PaymentsForCapitalImprovements',
'CapitalExpendituresIncurredButNotYetPaid',
'PaymentsToAcquireAndDevelopRealEstate', // REITs
'PaymentsToAcquireOtherPropertyPlantAndEquipment',
'PaymentsForProceedsFromProductiveAssets',
'PurchaseOfPropertyPlantAndEquipment',
],
FinancialMetric.depreciationAmortization: [
'DepreciationDepletionAndAmortization',
'DepreciationAndAmortization',
'Depreciation',
'DepreciationNonproduction',
'AmortizationOfIntangibleAssets',
'DepreciationAmortizationAndAccretionNet',
],
FinancialMetric.dividendsPaid: [
'PaymentsOfDividends',
'PaymentsOfDividendsCommonStock',
'PaymentsOfOrdinaryDividends',
'DividendsPaid',
'PaymentsOfDividendsMinorityInterest',
'Dividends',
'DividendsCash',
],
// ============= OTHER =============
FinancialMetric.sharesOutstanding: [
'CommonStockSharesOutstanding',
'WeightedAverageNumberOfSharesOutstandingBasic',
'WeightedAverageNumberOfDilutedSharesOutstanding',
'CommonStockSharesIssued',
'SharesOutstanding',
],
FinancialMetric.dividendsPerShare: [
'CommonStockDividendsPerShareDeclared',
'CommonStockDividendsPerShareCashPaid',
'DividendsPerShare',
'DividendsPerShareCashPaid',
],
};