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
|