Quarterly report pursuant to Section 13 or 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
Mar. 31, 2015
Dec. 31, 2014
Mar. 31, 2014
Dec. 31, 2013
On-balance sheet assets        
Trading account assets $ 186,860us-gaap_TradingSecurities $ 191,785us-gaap_TradingSecurities    
Debt securities carried at fair value 324,174bac_DebtSecuritiesCarriedAtFairValue 320,695bac_DebtSecuritiesCarriedAtFairValue    
Held-to-maturity securities 59,815us-gaap_HeldToMaturitySecurities 59,766us-gaap_HeldToMaturitySecurities    
Loans and leases 877,956us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome 881,391us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome    
Allowance for loan and lease losses (13,676)us-gaap_LoansAndLeasesReceivableAllowance (14,419)us-gaap_LoansAndLeasesReceivableAllowance (16,618)us-gaap_LoansAndLeasesReceivableAllowance (17,428)us-gaap_LoansAndLeasesReceivableAllowance
All other assets 109,574us-gaap_OtherAssets 112,063us-gaap_OtherAssets    
Total assets 2,143,545us-gaap_Assets 2,104,534us-gaap_Assets 2,149,851us-gaap_Assets  
On-balance sheet liabilities        
Long-term debt 237,858us-gaap_LongTermDebt 243,139us-gaap_LongTermDebt    
Total liabilities 1,893,357us-gaap_Liabilities 1,861,063us-gaap_Liabilities    
Unpaid principal balance of mortgage loans eligible for repurchase 365bac_UnpaidPrincipalBalanceofMortgageLoansEligibleforRepurchase 635bac_UnpaidPrincipalBalanceofMortgageLoansEligibleforRepurchase    
Principal amount that would be payable to the securitization vehicles 365bac_PrincipalAmountThatWouldBePayableToSecuritizationVehiclesUnderRepurchaseOption 635bac_PrincipalAmountThatWouldBePayableToSecuritizationVehiclesUnderRepurchaseOption    
Unconsolidated VIEs | Agency        
Variable Interest Entity [Line Items]        
Maximum loss exposure 19,523us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
14,918us-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 23us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
24us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Total assets 19,523us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
14,918us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal amount outstanding 386,169us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
397,055us-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 526us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
584us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 18,178bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
13,473bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 796us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
837us-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,223us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1,288us-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 12us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
10us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
All other assets 51us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
56us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Total assets 832us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
897us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal amount outstanding 19,304us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
20,167us-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
3us-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 755bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
816bac_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 11bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
12bac_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,089us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
3,167us-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,764us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
2,831us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal amount outstanding 31,601us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
32,592us-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 25us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
14us-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,716bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
2,811bac_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 18us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
0us-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 4bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
5bac_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 Loan        
Variable Interest Entity [Line Items]        
Maximum loss exposure 654us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
710us-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 225us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
245us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Total assets 654us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
710us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal amount outstanding 48,208us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
50,054us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Unconsolidated VIEs | Non-agency | Alt-A Loan | Senior Lien        
On-balance sheet assets        
Trading account assets 49us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
81us-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 378bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
383bac_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 Loan | Junior Lien        
On-balance sheet assets        
Trading account assets 2us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_AltALoanMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
1us-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 324us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
352us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
On-balance sheet assets        
Residual interests held 41us-gaap_RetainedInterestFairValueDisclosure
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
22us-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 278us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
325us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Principal amount outstanding 25,034us-gaap_ContinuingInvolvementWithTransferredFinancialAssetsPrincipalAmountOutstanding
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
20,593us-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 79us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
54us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 14bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
76bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 37us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_SeniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
42us-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 39us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
58us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Debt securities carried at fair value 55bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
58bac_DebtSecuritiesCarriedAtFairValue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
   
Held-to-maturity securities 13us-gaap_HeldToMaturitySecurities
/ us-gaap_FinancialInstrumentAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ bac_LienCategoryAxis
= bac_JuniorLienMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityNotPrimaryBeneficiaryMember
15us-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 36,644us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
38,345us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet assets        
Trading account assets 1,099us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
1,538us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Loans and leases 34,734us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
36,187us-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
(2)us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other assets 815us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
623us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total assets 36,646us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
38,346us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
On-balance sheet liabilities        
Long-term debt 2us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
1us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other liabilities 1us-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 3us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyUSGovernmentSponsoredEnterprisesMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
1us-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 76us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
77us-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 128us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
130us-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
6us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total assets 134us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
136us-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 55us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
56us-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
3us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total liabilities 58us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_PrimeMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
59us-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 197us-gaap_VariableInterestEntityEntityMaximumLossExposureAmount
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
206us-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 29us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
30us-gaap_TradingSecurities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Loans and leases 767us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
768us-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 14us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
15us-gaap_OtherAssets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total assets 810us-gaap_Assets
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
813us-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
770us-gaap_LongTermDebt
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
All other liabilities 11us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
13us-gaap_OtherLiabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Total liabilities 781us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
783us-gaap_Liabilities
/ us-gaap_FinancialInstrumentAxis
= bac_ResidentialMortgagebackedSecuritiesIssuedbyPrivateEnterprisesMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_SubprimeLoanMember
/ us-gaap_VariableInterestEntitiesByClassificationOfEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
   
Consolidated VIEs | Non-agency | Alt-A Loan        
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