Quarterly report pursuant to Section 13 or 15(d)

Outstanding Loans and Leases Outstanding Loans and Leases - Consumer Real Estate - Modification Programs (Details)

v2.4.1.9
Outstanding Loans and Leases Outstanding Loans and Leases - Consumer Real Estate - Modification Programs (Details) (Consumer Real Estate, USD $)
In Millions, unless otherwise specified
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Financing Receivable, Modifications [Line Items]    
Carrying Value $ 1,824us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 $ 1,475us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 1,640us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
1,335us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 184us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
140us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
Modifications under government programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 105us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
268us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Modifications under government programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 91us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
234us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Modifications under government programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 14us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
34us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Modifications under proprietary programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 129us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
218us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Modifications under proprietary programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 98us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
210us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Modifications under proprietary programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 31us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Trial modifications
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 1,436us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_TrialModificationsMember
731us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_TrialModificationsMember
Trial modifications | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 1,340us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationNameAxis
= bac_TrialModificationsMember
693us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationNameAxis
= bac_TrialModificationsMember
Trial modifications | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 96us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationNameAxis
= bac_TrialModificationsMember
38us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationNameAxis
= bac_TrialModificationsMember
Loans discharged in Chapter 7 bankruptcy
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 154us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
258us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
Loans discharged in Chapter 7 bankruptcy | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 111us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
198us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
Loans discharged in Chapter 7 bankruptcy | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 43us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
60us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ChapterSevenBankruptcyMember
Contractual interest rate reduction | Modifications under government programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 87us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
237us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Contractual interest rate reduction | Modifications under government programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 76us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
213us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Contractual interest rate reduction | Modifications under government programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 11us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
24us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Contractual interest rate reduction | Modifications under proprietary programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 52us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
139us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Contractual interest rate reduction | Modifications under proprietary programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 50us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
135us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Contractual interest rate reduction | Modifications under proprietary programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
4us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ContractualInterestRateReductionMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Capitalization of past due amounts | Modifications under proprietary programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 32us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_CapitlizationOfPastDueAmountsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
22us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_CapitlizationOfPastDueAmountsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Capitalization of past due amounts | Modifications under proprietary programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 30us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_CapitlizationOfPastDueAmountsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
21us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_CapitlizationOfPastDueAmountsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Capitalization of past due amounts | Modifications under proprietary programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_CapitlizationOfPastDueAmountsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_CapitlizationOfPastDueAmountsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Principal and/or interest forbearance | Modifications under government programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
10us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Principal and/or interest forbearance | Modifications under government programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Principal and/or interest forbearance | Modifications under government programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
9us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Principal and/or interest forbearance | Modifications under proprietary programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 13us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
32us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Principal and/or interest forbearance | Modifications under proprietary programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 11us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
29us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Principal and/or interest forbearance | Modifications under proprietary programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_PrincipalInterestForbearanceMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Other modifications | Modifications under government programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 15us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
21us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Other modifications | Modifications under government programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 15us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
20us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Other modifications | Modifications under government programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_GovernmentModificationsMember
Other modifications | Modifications under proprietary programs
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 32us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
25us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Other modifications | Modifications under proprietary programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Carrying Value 7us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
25us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
Other modifications | Modifications under proprietary programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Carrying Value $ 25us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember
$ 0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_OtherModificationsMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ProprietaryModificationsMember