Annual report pursuant to Section 13 and 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
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
On-balance sheet assets    
Trading account assets $ 191,785us-gaap_TradingSecurities $ 200,993us-gaap_TradingSecurities
Loans and leases 881,391us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome 928,233us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
Loans held-for-sale 12,836us-gaap_LoansReceivableHeldForSaleNet 11,362us-gaap_LoansReceivableHeldForSaleNet
Debt securities carried at fair value 320,695bac_DebtSecuritiesCarriedAtFairValue 268,795bac_DebtSecuritiesCarriedAtFairValue
Held-to-maturity securities 59,766us-gaap_HeldToMaturitySecurities 55,150us-gaap_HeldToMaturitySecurities
All other assets 112,063us-gaap_OtherAssets 124,090us-gaap_OtherAssets
Total assets 2,104,534us-gaap_Assets 2,102,273us-gaap_Assets
On-balance sheet liabilities    
Long-term debt 243,139us-gaap_LongTermDebt 249,674us-gaap_LongTermDebt
Total liabilities 1,861,063us-gaap_Liabilities 1,869,588us-gaap_Liabilities
Resecuritization Trusts    
On-balance sheet liabilities    
Cash proceeds from new securitizations 14,400us-gaap_CashFlowsBetweenTransfereeAndTransferorProceedsFromNewTransfers
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
26,500us-gaap_CashFlowsBetweenTransfereeAndTransferorProceedsFromNewTransfers
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
Gain (loss) on securitizations 71us-gaap_SecuritizationFinancialAssetForWhichTransferIsAccountedAsSaleGainLossOnSale
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
 
Automobile and Other Securitization Trusts    
On-balance sheet liabilities    
Principal balance outstanding 1,900us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
2,500us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
Automobile Loan    
On-balance sheet liabilities    
Principal balance outstanding 400us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= us-gaap_AutomobileLoanMember
877us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= us-gaap_AutomobileLoanMember
Student Loan    
On-balance sheet liabilities    
Principal balance outstanding 609us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_StudentLoanMember
741us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_StudentLoanMember
Other Loan and Receivable    
On-balance sheet liabilities    
Principal balance outstanding 876us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_OtherLoanAndReceivableMember
911us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_OtherLoanAndReceivableMember
Available-for-sale Securities | Resecuritization Trusts    
On-balance sheet liabilities    
Cash proceeds from new securitizations 1,500us-gaap_CashFlowsBetweenTransfereeAndTransferorProceedsFromNewTransfers
/ us-gaap_DebtSecurityAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
 
Unconsolidated VIEs | Resecuritization Trusts    
On-balance sheet assets    
Unconsolidated total assets of VIEs 28,065us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
40,924us-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,314us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
3,643us-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 1,276us-gaap_VariableInterestEntityNonconsolidatedCarryingAmountAssets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1,788us-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 2 months 12 days  
Unconsolidated VIEs | Resecuritization Trusts    
Variable Interest Entity [Line Items]    
Maximum loss exposure 8,569us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
11,913us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
On-balance sheet assets    
Residual interests held 7us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
5us-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,569us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
11,913us-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 767us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
971us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 6,945bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
10,866bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Held-to-maturity securities 740us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-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 37us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 73bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
71bac_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,100us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
2,192us-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 25us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
53us-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,100bac_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 25us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
53us-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 77us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
81us-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 77us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
81us-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 6us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
Debt securities carried at fair value 61bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
70bac_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 654us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
164us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet assets    
Trading account assets 1,295us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
319us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ 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 1,295us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
319us-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 641us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
155us-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 641us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
155us-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,440us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,667us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet assets    
Trading account assets 2,452us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,684us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ 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 0us-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,452us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,684us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
On-balance sheet liabilities    
Short-term borrowings 1,032us-gaap_ShortTermBorrowings
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
1,073us-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
17us-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 1,044us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
1,090us-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 92us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
94us-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 and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
680us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Loans held-for-sale 555us-gaap_LoansReceivableHeldForSaleNet
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-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
61us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total assets 609us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
741us-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 516us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
646us-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 $ 517us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
$ 647us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_AutomobileAndOtherSecuritizationTrustsMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember