Annual report pursuant to Section 13 and 15(d)

Securitizations and Other Variable Interest Entities - First Lien Mortgages VIE (Details)

v2.4.1.9
Securitizations and Other Variable Interest Entities - First Lien Mortgages VIE (Details) (USD $)
In Millions, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Dec. 31, 2011
On-balance sheet assets        
Trading account assets $ 191,785us-gaap_TradingSecurities $ 200,993us-gaap_TradingSecurities    
Debt securities carried at fair value 320,695bac_DebtSecuritiesCarriedAtFairValue 268,795bac_DebtSecuritiesCarriedAtFairValue    
Held-to-maturity securities 59,766us-gaap_HeldToMaturitySecurities 55,150us-gaap_HeldToMaturitySecurities    
Loans and leases 881,391us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome 928,233us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome    
Allowance for loan and lease losses (14,419)us-gaap_LoansAndLeasesReceivableAllowance (17,428)us-gaap_LoansAndLeasesReceivableAllowance (24,179)us-gaap_LoansAndLeasesReceivableAllowance (33,783)us-gaap_LoansAndLeasesReceivableAllowance
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    
Unpaid principal balance of mortgage loans eligible for repurchase 635bac_UnpaidPrincipalBalanceofMortgageLoansEligibleforRepurchase 1,600bac_UnpaidPrincipalBalanceofMortgageLoansEligibleforRepurchase    
Principal amount that would be payable to the securitization vehicles 635bac_PrincipalAmountThatWouldBePayableToSecuritizationVehiclesUnderRepurchaseOption 1,600bac_PrincipalAmountThatWouldBePayableToSecuritizationVehiclesUnderRepurchaseOption    
Unconsolidated VIEs | Agency        
Variable Interest Entity [Line Items]        
Maximum loss exposure 14,918us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
21,140us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
On-balance sheet assets        
Residual interests held 0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
All other assets 24us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
27us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Total assets 14,918us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
21,140us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal balance outstanding 397,055us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
437,765us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Agency | Senior Lien        
On-balance sheet assets        
Trading account assets 584us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
650us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 13,473bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
19,451bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 837us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1,012us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Agency | Junior Lien        
On-balance sheet assets        
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Prime        
Variable Interest Entity [Line Items]        
Maximum loss exposure 1,288us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1,527us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
On-balance sheet assets        
Residual interests held 10us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
13us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
All other assets 56us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
71us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Total assets 897us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1,087us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal balance outstanding 20,167us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
25,104us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Prime | Senior Lien        
On-balance sheet assets        
Trading account assets 3us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 816bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
988bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Prime | Junior Lien        
On-balance sheet assets        
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 12bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
15bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Subprime        
Variable Interest Entity [Line Items]        
Maximum loss exposure 3,167us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
591us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
On-balance sheet assets        
Residual interests held 0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
All other assets 1us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Total assets 2,831us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
236us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal balance outstanding 32,592us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
36,854us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Subprime | Senior Lien        
On-balance sheet assets        
Trading account assets 14us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 2,811bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
220bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Subprime | Junior Lien        
On-balance sheet assets        
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
8us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 5bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
6bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Alt-A        
Variable Interest Entity [Line Items]        
Maximum loss exposure 710us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
437us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
On-balance sheet assets        
Residual interests held 0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
All other assets 245us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
325us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Total assets 710us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
437us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal balance outstanding 50,054us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
56,454us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Alt-A | Senior Lien        
On-balance sheet assets        
Trading account assets 81us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
3us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 383bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
109bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Alt-A | Junior Lien        
On-balance sheet assets        
Trading account assets 1us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Commercial Mortgage        
Variable Interest Entity [Line Items]        
Maximum loss exposure 352us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
432us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
On-balance sheet assets        
Residual interests held 22us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
16us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
All other assets 0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Total assets 325us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
402us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal balance outstanding 20,593us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
19,730us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Commercial Mortgage | Senior Lien        
On-balance sheet assets        
Trading account assets 54us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
14us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 76bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
306bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 42us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Commercial Mortgage | Junior Lien        
On-balance sheet assets        
Trading account assets 58us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
13us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 58bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
53bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 15us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Consolidated VIEs | Agency        
Variable Interest Entity [Line Items]        
Maximum loss exposure 38,345us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
42,420us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet assets        
Trading account assets 1,538us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
1,640us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Loans and leases 36,187us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
40,316us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Allowance for loan and lease losses (2)us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(3)us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other assets 623us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
474us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total assets 38,346us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
42,427us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet liabilities        
Long-term debt 1us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
7us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other liabilities 0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total liabilities 1us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
7us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Consolidated VIEs | Non-agency | Prime        
Variable Interest Entity [Line Items]        
Maximum loss exposure 77us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
79us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet assets        
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Loans and leases 130us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
140us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Allowance for loan and lease losses 0us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other assets 6us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total assets 136us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
140us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet liabilities        
Long-term debt 56us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
61us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other liabilities 3us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total liabilities 59us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
61us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Consolidated VIEs | Non-agency | Subprime        
Variable Interest Entity [Line Items]        
Maximum loss exposure 206us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
183us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet assets        
Trading account assets 30us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Loans and leases 768us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
803us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Allowance for loan and lease losses 0us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other assets 15us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
7us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total assets 813us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
810us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet liabilities        
Long-term debt 770us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
803us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other liabilities 13us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
7us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total liabilities 783us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
810us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Consolidated VIEs | Non-agency | Alt-A        
Variable Interest Entity [Line Items]        
Maximum loss exposure 0us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet assets        
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Allowance for loan and lease losses 0us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other assets 0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total assets 0us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet liabilities        
Long-term debt 0us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other liabilities 0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total liabilities 0us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Consolidated VIEs | Commercial Mortgage        
Variable Interest Entity [Line Items]        
Maximum loss exposure 0us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet assets        
Trading account assets 0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Allowance for loan and lease losses 0us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other assets 0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total assets 0us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet liabilities        
Long-term debt 0us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other liabilities 0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total liabilities $ 0us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
$ 0us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember