Annual report pursuant to Section 13 and 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) (Consumer Portfolio Segment, USD $)
In Millions, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs $ 1,141us-gaap_FinancingReceivableModificationsRecordedInvestment $ 2,079us-gaap_FinancingReceivableModificationsRecordedInvestment
Percent of balances current or less than 30 days past due 79.51%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue 78.77%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
Internal Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 541us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
1,143us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
External Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 447us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
739us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
Other
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 153us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
197us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
Credit Card Receivable | United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 856us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,465us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Percent of balances current or less than 30 days past due 84.99%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
82.77%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit Card Receivable | Non United States
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 168us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
240us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Percent of balances current or less than 30 days past due 47.56%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
49.01%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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 450us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= country_US
842us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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 41us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
71us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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 397us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= country_US
607us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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 16us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
26us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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 9us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
/ us-gaap_StatementGeographicalAxis
= country_US
16us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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 111us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CreditCardReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
143us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ 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 117us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
314us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
Percent of balances current or less than 30 days past due 85.21%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
84.29%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
Direct/Indirect Consumer | Internal Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 50us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
170us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
Direct/Indirect Consumer | External Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 34us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
106us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
Direct/Indirect Consumer | Other
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 33us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
38us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_DirectandIndirectFinancingReceivableMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
Other consumer
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 0us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
60us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
Percent of balances current or less than 30 days past due 0.00%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
71.08%bac_FinancingReceivableModificationsRecordedInvestmentPercentofBalanceCurrentorLessThanThirtyDaysPastDue
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
Other consumer | Internal Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 0us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
60us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_InternalProgramsMember
Other consumer | External Programs
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs 0us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
0us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_ExternalProgramsMember
Other consumer | Other
   
Financing Receivable, Modifications [Line Items]    
Renegotiated TDRs $ 0us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember
$ 0us-gaap_FinancingReceivableModificationsRecordedInvestment
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_OtherFinancingReceivablesMember
/ bac_LoanRestructuringModificationNameAxis
= bac_OtherProgramMember