Outstanding Loans and Leases - Credit Card and Other Consumer - Renegotiated TDRs Entered into During the Period by Program Type (Details) (Credit card and other consumer, USD $) In Millions, unless otherwise specified
|
3 Months Ended |
Mar. 31, 2015
|
Mar. 31, 2014
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
$ 127us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
|
$ 179us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
|
Direct/Indirect Consumer
|
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
5us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember
|
9us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember
|
Percent expected to be in payment default within 12 months after modification |
12.00%bac_FinancingReceivableModificationSubsequentDefaultPercentExpectedtoBeinPaymentDefaultWithin12MonthsAfterModification / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
Trouble debt restructurings entered payment default that were modified during the preceding twelve months |
1us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember
|
2us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember
|
Other consumer
|
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
|
2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_OtherFinancingReceivablesMember
|
United States | Credit Card Receivable
|
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
76us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
100us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Percent expected to be in payment default within 12 months after modification |
14.00%bac_FinancingReceivableModificationSubsequentDefaultPercentExpectedtoBeinPaymentDefaultWithin12MonthsAfterModification / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Trouble debt restructurings entered payment default that were modified during the preceding twelve months |
12us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
13us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Non United States | Credit Card Receivable
|
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
46us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
68us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Percent expected to be in payment default within 12 months after modification |
83.00%bac_FinancingReceivableModificationSubsequentDefaultPercentExpectedtoBeinPaymentDefaultWithin12MonthsAfterModification / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Trouble debt restructurings entered payment default that were modified during the preceding twelve months |
41us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
56us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Internal Programs |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
52us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember
|
78us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember
|
Internal Programs | Direct/Indirect Consumer |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember
|
3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember
|
Internal Programs | Other consumer |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
|
2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_OtherFinancingReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember
|
Internal Programs | United States | Credit Card Receivable |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
51us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember / us-gaap_StatementGeographicalAxis = country_US
|
70us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember / us-gaap_StatementGeographicalAxis = country_US
|
Internal Programs | Non United States | Credit Card Receivable |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_InternalProgramsMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
External Programs |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
27us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember
|
34us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember
|
External Programs | Direct/Indirect Consumer |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember
|
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember
|
External Programs | Other consumer |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
|
0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_OtherFinancingReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember
|
External Programs | United States | Credit Card Receivable |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
25us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember / us-gaap_StatementGeographicalAxis = country_US
|
30us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember / us-gaap_StatementGeographicalAxis = country_US
|
External Programs | Non United States | Credit Card Receivable |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_ExternalProgramsMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Other |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
48us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember
|
67us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember
|
Other | Direct/Indirect Consumer |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
5us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember
|
5us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_DirectandIndirectFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember
|
Other | Other consumer |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
|
0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_OtherFinancingReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember
|
Other | United States | Credit Card Receivable |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember / us-gaap_StatementGeographicalAxis = country_US
|
0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember / us-gaap_StatementGeographicalAxis = country_US
|
Other | Non United States | Credit Card Receivable |
|
|
Financing Receivable, Modifications [Line Items] |
|
|
Carrying Value |
$ 43us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
$ 62us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = us-gaap_CreditCardReceivablesMember / bac_LoanRestructuringModificationNameAxis = bac_OtherProgramMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|