Quarterly report pursuant to Section 13 or 15(d)

Securitizations and Other Variable Interest Entities - Other Asset Backed (Details)

v2.4.1.9
Securitizations and Other Variable Interest Entities - Other Asset Backed (Details) (USD $)
In Millions, unless otherwise specified
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Dec. 31, 2014
On-balance sheet assets      
Trading account assets $ 186,860us-gaap_TradingSecurities   $ 191,785us-gaap_TradingSecurities
Debt securities carried at fair value 324,174bac_DebtSecuritiesCarriedAtFairValue   320,695bac_DebtSecuritiesCarriedAtFairValue
Held-to-maturity securities 59,815us-gaap_HeldToMaturitySecurities   59,766us-gaap_HeldToMaturitySecurities
Loans held-for-sale 9,732us-gaap_LoansReceivableHeldForSaleNet   12,836us-gaap_LoansReceivableHeldForSaleNet
All other assets 109,574us-gaap_OtherAssets   112,063us-gaap_OtherAssets
Total assets 2,143,545us-gaap_Assets 2,149,851us-gaap_Assets 2,104,534us-gaap_Assets
On-balance sheet liabilities      
Short-term borrowings 237,028us-gaap_ShortTermBorrowings   232,449us-gaap_ShortTermBorrowings
Long-term debt 237,858us-gaap_LongTermDebt   243,139us-gaap_LongTermDebt
Total liabilities 1,893,357us-gaap_Liabilities   1,861,063us-gaap_Liabilities
Resecuritization Trusts      
On-balance sheet liabilities      
Cash proceeds from new securitizations 6,100us-gaap_CashFlowsBetweenTransfereeAndTransferorProceedsFromNewTransfers
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
2,300us-gaap_CashFlowsBetweenTransfereeAndTransferorProceedsFromNewTransfers
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
 
Automobile and Other Securitization Trusts      
On-balance sheet liabilities      
Principal amount outstanding 1,100us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
  1,900us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
Automobile Loan      
On-balance sheet liabilities      
Principal amount outstanding 313us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= us-gaap_AutomobileLoanMember
  400us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= us-gaap_AutomobileLoanMember
Student Loan      
On-balance sheet liabilities      
Principal amount outstanding 549us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_StudentLoanMember
  609us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_StudentLoanMember
Other Loan and Receivable      
On-balance sheet liabilities      
Principal amount outstanding 209us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_OtherLoanAndReceivableMember
  876us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_OtherLoanAndReceivableMember
Unconsolidated VIEs | Resecuritization Trusts      
On-balance sheet assets      
Unconsolidated total assets of VIEs 30,563us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  28,065us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Municipal Bond Trusts      
On-balance sheet assets      
Unconsolidated total assets of VIEs 3,237us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  3,314us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Automobile and Other Securitization Trusts      
On-balance sheet assets      
Unconsolidated total assets of VIEs 522us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  1,276us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs      
On-balance sheet liabilities      
Weighted average remaining life of bonds held in the trusts in years 7 years 0 months    
Unconsolidated VIEs | Resecuritization Trusts      
Variable Interest Entity [Line Items]      
Maximum loss exposure 8,051us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  8,569us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
On-balance sheet assets      
Residual interests held 2us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  7us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
All other assets 0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Total assets 8,051us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  8,569us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Resecuritization Trusts | Senior Lien      
On-balance sheet assets      
Trading account assets 941us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  767us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 6,246bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  6,945bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Held-to-maturity securities 736us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  740us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Resecuritization Trusts | Junior Lien      
On-balance sheet assets      
Trading account assets 52us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  37us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 74bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  73bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Municipal Bond Trusts      
Variable Interest Entity [Line Items]      
Maximum loss exposure 2,045us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  2,100us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
On-balance sheet assets      
Residual interests held 0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
All other assets 0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Total assets 2us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  25us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
On-balance sheet liabilities      
Liquidity commitments to unconsolidated securitization trusts 2,000bac_QualitativeandQuantitativeInformationTransferorsContinuingInvolvementLiquidityCommitment
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  2,100bac_QualitativeandQuantitativeInformationTransferorsContinuingInvolvementLiquidityCommitment
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Municipal Bond Trusts | Senior Lien      
On-balance sheet assets      
Trading account assets 2us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  25us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Municipal Bond Trusts | Junior Lien      
On-balance sheet assets      
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Automobile and Other Securitization Trusts      
Variable Interest Entity [Line Items]      
Maximum loss exposure 69us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  77us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
On-balance sheet assets      
Residual interests held 0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
All other assets 10us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  10us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Total assets 69us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  77us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Automobile and Other Securitization Trusts | Senior Lien      
On-balance sheet assets      
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  6us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 59bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  61bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Unconsolidated VIEs | Automobile and Other Securitization Trusts | Junior Lien      
On-balance sheet assets      
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
  0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Consolidated VIEs | Resecuritization Trusts      
Variable Interest Entity [Line Items]      
Maximum loss exposure 200us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  654us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet assets      
Trading account assets 496us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  1,295us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Loans held-for-sale 0us-gaap_LoansReceivableHeldForSaleNet
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_LoansReceivableHeldForSaleNet
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
All other assets 0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total assets 496us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  1,295us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet liabilities      
Short-term borrowings 0us-gaap_ShortTermBorrowings
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_ShortTermBorrowings
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Long-term debt 296us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  641us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
All other liabilities 0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total liabilities 296us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  641us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Consolidated VIEs | Municipal Bond Trusts      
Variable Interest Entity [Line Items]      
Maximum loss exposure 2,027us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  2,440us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet assets      
Trading account assets 2,038us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  2,452us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Loans held-for-sale 0us-gaap_LoansReceivableHeldForSaleNet
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_LoansReceivableHeldForSaleNet
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
All other assets 1us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total assets 2,039us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  2,452us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet liabilities      
Short-term borrowings 630us-gaap_ShortTermBorrowings
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  1,032us-gaap_ShortTermBorrowings
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Long-term debt 12us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  12us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
All other liabilities 0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total liabilities 642us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  1,044us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Consolidated VIEs | Automobile and Other Securitization Trusts      
Variable Interest Entity [Line Items]      
Maximum loss exposure 65us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  92us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet assets      
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Loans held-for-sale 495us-gaap_LoansReceivableHeldForSaleNet
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  555us-gaap_LoansReceivableHeldForSaleNet
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
All other assets 54us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  54us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total assets 549us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  609us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet liabilities      
Short-term borrowings 0us-gaap_ShortTermBorrowings
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  0us-gaap_ShortTermBorrowings
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Long-term debt 483us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  516us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
All other liabilities 1us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  1us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total liabilities $ 484us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
  $ 517us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember