|
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
|