Annual report pursuant to Section 13 and 15(d)

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

v2.4.1.9
Outstanding Loans and Leases - Home Loans - TDRs Entering Payment Default That Were Modified During the Preceding 12 Months (Details) (Residential Portfolio Segment, USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Financing Receivable, Modifications [Line Items]      
Carrying value of loans entered into payment default that are no longer held $ 2,000bac_FinancingReceivableModificationsSubsequentDefaultRecordedInvestmentNoLongerHeld $ 2,400bac_FinancingReceivableModificationsSubsequentDefaultRecordedInvestmentNoLongerHeld $ 667bac_FinancingReceivableModificationsSubsequentDefaultRecordedInvestmentNoLongerHeld
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 4,264us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 6,961us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 4,818us-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 considered past due after modification 90 days    
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 4,122us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
6,911us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
4,723us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
Home equity lines of credit
     
Financing Receivable, Modifications [Line Items]      
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 142us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
50us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
95us-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 700us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
456us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
210us-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 696us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
454us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
202us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
Modifications under government programs | Home equity lines of credit
     
Financing Receivable, Modifications [Line Items]      
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 4us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
2us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_GovernmentModificationsMember
8us-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 726us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
1,121us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
956us-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 714us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
1,117us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
942us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
Modifications under proprietary programs | Home equity lines of credit
     
Financing Receivable, Modifications [Line Items]      
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 12us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
4us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ProprietaryModificationsMember
14us-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 551us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
994us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
1,281us-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 481us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
964us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
1,228us-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 lines of credit
     
Financing Receivable, Modifications [Line Items]      
Trouble debt restructurings entered payment default that were modified during the preceding twelve months 70us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
30us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_ChapterSevenBankruptcyMember
53us-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 2,287us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
4,390us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
2,371us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ 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 2,231us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
4,376us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
2,351us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ResidentialMortgageMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
Trial modifications | Home equity lines of credit
     
Financing Receivable, Modifications [Line Items]      
Trouble debt restructurings entered payment default that were modified during the preceding twelve months $ 56us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
$ 14us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember
$ 20us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_HomeEquityMember
/ bac_LoanRestructuringModificationAxis
= bac_TrialModificationsMember