Quarterly report pursuant to Section 13 or 15(d)

Outstanding Loans and Leases - Consumer Real Estate - TDRs Entering Payment Default That Were Modified During the Preceding 12 Months (Details)

v2.4.1.9
Outstanding Loans and Leases - Consumer Real Estate - TDRs Entering Payment Default That Were Modified During the Preceding 12 Months (Details) (Consumer Real Estate, USD $)
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months $ 2,033,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 $ 1,331,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Number of missing payments causing default 3bac_FinancingReceivableModificationsNumberofMissingPaymentsCausingDefault
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
 
Threshold period past due after modification of financing receivable 90 days  
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 1,986,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
1,326,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
Home equity
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 47,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
5,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
Modifications under government programs
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 108,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
159,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
Modifications under government programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 107,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
158,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
Modifications under government programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 1,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
1,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
Modifications under proprietary programs
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 52,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
272,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
Modifications under proprietary programs | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 40,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
272,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
Modifications under proprietary programs | Home equity
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 12,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
Loans discharged in Chapter 7 bankruptcy
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 81,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
122,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
Loans discharged in Chapter 7 bankruptcy | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 71,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
121,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
Loans discharged in Chapter 7 bankruptcy | Home equity
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 10,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
1,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
Trial modifications
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 1,792,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
778,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
Loans in which customer did not response with payment to Department of Justice mailings 1,400,000,000bac_FinancingReceivableModificationsSubsequentDefaultRecordedInvestmentDepartmentofJusticeMailingsWithNoCustomerResponse
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
 
Trial modifications | Residential Mortgage
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 1,768,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
775,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
Trial modifications | Home equity
   
Financing Receivable, Modifications [Line Items]    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months $ 24,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
$ 3,000,000us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember