Outstanding Loans and Leases - Commercial Loans TDRs (Details) (USD $)
In Millions, unless otherwise specified |
12 Months Ended | ||
---|---|---|---|
Dec. 31, 2014
|
Dec. 31, 2013
|
Dec. 31, 2012
|
|
Financing Receivable, Modifications [Line Items] | |||
Threshold period past due for nonperforming status of financing receivables | 90 days | ||
Commercial Portfolio Segment | |||
Financing Receivable, Modifications [Line Items] | |||
Unpaid Principal Balance |
$ 1,211bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
$ 1,478bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
$ 1,495bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Carrying Value |
1,177us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
1,388us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
1,390us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Net Charge-offs |
57us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
44us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
60us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember |
Threshold period past due for nonperforming status of financing receivables | 90 days | ||
Commercial Portfolio Segment | U.S. Commercial | |||
Financing Receivable, Modifications [Line Items] | |||
Unpaid Principal Balance |
818bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
926bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
590bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
Carrying Value |
785us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
910us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
558us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
Net Charge-offs |
49us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
33us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
34us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
Trouble debt restructurings entered payment default that were modified during the preceding twelve months |
103us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
55us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
130us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
Commercial Portfolio Segment | Non United States | |||
Financing Receivable, Modifications [Line Items] | |||
Unpaid Principal Balance |
44bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
61bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
90bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
Carrying Value |
43us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
44us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
89us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
Net Charge-offs |
0us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
7us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
1us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
Commercial Portfolio Segment | Commercial Real Estate | |||
Financing Receivable, Modifications [Line Items] | |||
Unpaid Principal Balance |
346bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
483bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
793bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
Carrying Value |
346us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
425us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
721us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
Net Charge-offs |
8us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
3us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
20us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
Trouble debt restructurings entered payment default that were modified during the preceding twelve months |
211us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
128us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
455us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_RealEstateLoanMember |
Commercial Portfolio Segment | Small Business Commercial | |||
Financing Receivable, Modifications [Line Items] | |||
Unpaid Principal Balance |
3bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
8bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
22bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
Carrying Value |
3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
9us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
22us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
Net Charge-offs |
$ 0us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
$ 1us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
$ 5us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = bac_SmallBusinessFinancingReceivableMember |
X | ||||||||||
- Definition
Financing Receivable, Modifications, Unpaid Principal Balance No definition available.
|
X | ||||||||||
- Definition
Threshold Period Past Due for Nonperforming Status of Financing Receivables No definition available.
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Post-modification amount of investment in financing receivables modified by troubled debt restructurings. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of investment related to financing receivables modified by troubled debt restructurings within the previous 12 months, for which there was a payment default. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Reflects the amount of the write-down related to a troubled debt restructuring. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|