Quarterly report pursuant to Section 13 or 15(d)

Outstanding Loans and Leases - Credit Card and Other Consumer - Renegotiated TDRs by Program Type (Details)

v2.4.1.9
Outstanding Loans and Leases - Credit Card and Other Consumer - Renegotiated TDRs by Program Type (Details) (Credit card and other consumer, USD $)
In Millions, unless otherwise specified
Mar. 31, 2015
Dec. 31, 2014
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs $ 1,020us-gaap_FinancingReceivableModificationsRecordedInvestment $ 1,141us-gaap_FinancingReceivableModificationsRecordedInvestment
Percent of balances current or less than 30 days past due 80.19%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue 79.51%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
Internal Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 480us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
541us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
External Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 402us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
447us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
Other
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 138us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
153us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
Credit Card Receivable | United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 779us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
856us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Percent of balances current or less than 30 days past due 85.86%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
84.99%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit Card Receivable | Non United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 152us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
168us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Percent of balances current or less than 30 days past due 47.71%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
47.56%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Credit Card Receivable | Internal Programs | United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 412us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= country_US
450us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit Card Receivable | Internal Programs | Non United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 33us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
41us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Credit Card Receivable | External Programs | United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 364us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= country_US
397us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit Card Receivable | External Programs | Non United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 14us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
16us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Credit Card Receivable | Other | United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 3us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
/ us-gaap_StatementGeographicalAxis
= country_US
9us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit Card Receivable | Other | Non United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 105us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
111us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Direct/Indirect Consumer
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 89us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
117us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
Percent of balances current or less than 30 days past due 86.05%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
85.21%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
Direct/Indirect Consumer | Internal Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 35us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
50us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
Direct/Indirect Consumer | External Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 24us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
34us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
Direct/Indirect Consumer | Other
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs $ 30us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
$ 33us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember