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
|