Annual report pursuant to Section 13 and 15(d)

Accumulated Other Comprehensive Income (Loss) - Reclassifications Out of AOCI (Details)

v2.4.1.9
Accumulated Other Comprehensive Income (Loss) - Reclassifications Out of AOCI (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Gains on sales of debt securities $ 1,354us-gaap_MarketableSecuritiesRealizedGainLossExcludingOtherThanTemporaryImpairments $ 1,271us-gaap_MarketableSecuritiesRealizedGainLossExcludingOtherThanTemporaryImpairments $ 1,662us-gaap_MarketableSecuritiesRealizedGainLossExcludingOtherThanTemporaryImpairments
Net interest income 39,952us-gaap_InterestIncomeExpenseNet 42,265us-gaap_InterestIncomeExpenseNet 40,656us-gaap_InterestIncomeExpenseNet
Trading account profits 6,309us-gaap_TradingGainsLosses 7,056us-gaap_TradingGainsLosses 5,870us-gaap_TradingGainsLosses
Other income (loss) 1,203us-gaap_NoninterestIncomeOtherOperatingIncome (49)us-gaap_NoninterestIncomeOtherOperatingIncome (2,087)us-gaap_NoninterestIncomeOtherOperatingIncome
Personnel (33,787)us-gaap_LaborAndRelatedExpense (34,719)us-gaap_LaborAndRelatedExpense (35,648)us-gaap_LaborAndRelatedExpense
Equity investment income 1,130us-gaap_PrincipalInvestmentGainsLosses 2,901us-gaap_PrincipalInvestmentGainsLosses 2,070us-gaap_PrincipalInvestmentGainsLosses
Income Before Income Taxes 6,855us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest 16,172us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest 3,072us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
Income tax expense (benefit) 2,022us-gaap_IncomeTaxExpenseBenefit 4,741us-gaap_IncomeTaxExpenseBenefit (1,116)us-gaap_IncomeTaxExpenseBenefit
Net income 4,833us-gaap_NetIncomeLoss 11,431us-gaap_NetIncomeLoss 4,188us-gaap_NetIncomeLoss
Reclassification out of Accumulated Other Comprehensive Income      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Net income 315us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
624us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
67us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
Reclassification out of Accumulated Other Comprehensive Income | Accumulated Net Unrealized Investment Gain (Loss) | Debt securities      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Gains on sales of debt securities 1,354us-gaap_MarketableSecuritiesRealizedGainLossExcludingOtherThanTemporaryImpairments
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
1,271us-gaap_MarketableSecuritiesRealizedGainLossExcludingOtherThanTemporaryImpairments
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
1,662us-gaap_MarketableSecuritiesRealizedGainLossExcludingOtherThanTemporaryImpairments
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Other income (loss) (16)us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
(20)us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
(53)us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Income Before Income Taxes 1,338us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
1,251us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
1,609us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Income tax expense (benefit) 508us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
463us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
595us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Net income 830us-gaap_NetIncomeLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
788us-gaap_NetIncomeLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
1,014us-gaap_NetIncomeLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Reclassification out of Accumulated Other Comprehensive Income | Accumulated Net Unrealized Investment Gain (Loss) | Equity securities      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Equity investment income 0us-gaap_PrincipalInvestmentGainsLosses
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
771us-gaap_PrincipalInvestmentGainsLosses
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
19us-gaap_PrincipalInvestmentGainsLosses
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Income Before Income Taxes 0us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
771us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
19us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Income tax expense (benefit) 0us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
285us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
7us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Net income 0us-gaap_NetIncomeLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
486us-gaap_NetIncomeLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
12us-gaap_NetIncomeLoss
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember
Reclassification out of Accumulated Other Comprehensive Income | Accumulated Net Gain (Loss) from Designated or Qualifying Cash Flow Hedges      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Income Before Income Taxes (760)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(773)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(1,035)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Income tax expense (benefit) (285)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(286)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(383)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Net income (475)us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(487)us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(652)us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Reclassification out of Accumulated Other Comprehensive Income | Accumulated Net Gain (Loss) from Designated or Qualifying Cash Flow Hedges | Interest rate contracts      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Net interest income (1,119)us-gaap_InterestIncomeExpenseNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(1,119)us-gaap_InterestIncomeExpenseNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(956)us-gaap_InterestIncomeExpenseNet
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Other income (loss) 0us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
18us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
0us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_InterestRateContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Reclassification out of Accumulated Other Comprehensive Income | Accumulated Net Gain (Loss) from Designated or Qualifying Cash Flow Hedges | Commodity contracts      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Trading account profits 0us-gaap_TradingGainsLosses
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(1)us-gaap_TradingGainsLosses
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(1)us-gaap_TradingGainsLosses
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_CommodityContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Reclassification out of Accumulated Other Comprehensive Income | Accumulated Net Gain (Loss) from Designated or Qualifying Cash Flow Hedges | Equity contracts      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Personnel 359us-gaap_LaborAndRelatedExpense
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
329us-gaap_LaborAndRelatedExpense
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
(78)us-gaap_LaborAndRelatedExpense
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_EquityContractMember
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedNetGainLossFromDesignatedOrQualifyingCashFlowHedgesMember
Reclassification out of Accumulated Other Comprehensive Income | Prior service cost      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Personnel (5)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentNetPriorServiceCostCreditMember
(4)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentNetPriorServiceCostCreditMember
(6)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentNetPriorServiceCostCreditMember
Reclassification out of Accumulated Other Comprehensive Income | Transition obligation      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Personnel 0us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentNetTransitionAssetObligationMember
0us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentNetTransitionAssetObligationMember
(32)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentNetTransitionAssetObligationMember
Reclassification out of Accumulated Other Comprehensive Income | Net actuarial losses      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Personnel (50)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= bac_AccumulatedDefinedBenefitPlansAdjustmentsNetActuarialLossesMember
(225)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= bac_AccumulatedDefinedBenefitPlansAdjustmentsNetActuarialLossesMember
(443)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= bac_AccumulatedDefinedBenefitPlansAdjustmentsNetActuarialLossesMember
Reclassification out of Accumulated Other Comprehensive Income | Settlements and curtailments      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Personnel 0us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= bac_AccumulatedDefinedBenefitPlansAdjustmentsSettlementsandCurtailmentsMember
(8)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= bac_AccumulatedDefinedBenefitPlansAdjustmentsSettlementsandCurtailmentsMember
(58)us-gaap_LaborAndRelatedExpense
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= bac_AccumulatedDefinedBenefitPlansAdjustmentsSettlementsandCurtailmentsMember
Reclassification out of Accumulated Other Comprehensive Income | Accumulated Defined Benefit Plans Adjustment      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Income Before Income Taxes (55)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
(237)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
(539)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
Income tax expense (benefit) (23)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
(79)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
(212)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
Net income (32)us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
(158)us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
(327)us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember
Reclassification out of Accumulated Other Comprehensive Income | Foreign currency      
Reclassification Adjustment out of Accumulated Other Comprehensive Income [Line Items]      
Other income (loss) (20)us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(138)us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
30us-gaap_NoninterestIncomeOtherOperatingIncome
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
Income Before Income Taxes (20)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(138)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
30us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
Income tax expense (benefit) (12)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
(133)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
10us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
Net income $ (8)us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
$ (5)us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember
$ 20us-gaap_NetIncomeLoss
/ us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis
= us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedTranslationAdjustmentMember