Quarterly report pursuant to Section 13 or 15(d)

Outstanding Loans and Leases - Commercial Loans TDRs (Details)

v2.4.1.9
Outstanding Loans and Leases - Commercial Loans TDRs (Details) (USD $)
In Millions, unless otherwise specified
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Financing Receivable, Modifications [Line Items]    
Threshold period past due for nonperforming status of financing receivables 90 days  
Commercial    
Financing Receivable, Modifications [Line Items]    
Unpaid Principal Balance $ 390bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
$ 772bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Carrying Value 370us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
605us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Net Charge-offs 3us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
2us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Threshold period past due for nonperforming status of financing receivables 90 days  
Commercial | U.S. Commercial    
Financing Receivable, Modifications [Line Items]    
Unpaid Principal Balance 346bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
443bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
Carrying Value 327us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
276us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
Net Charge-offs 3us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
2us-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 110us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
95us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | Non United States    
Financing Receivable, Modifications [Line Items]    
Unpaid Principal Balance 8bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
58bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Carrying Value 8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
58us-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
0us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Commercial | Commercial Real Estate    
Financing Receivable, Modifications [Line Items]    
Unpaid Principal Balance 34bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_RealEstateLoanMember
269bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_RealEstateLoanMember
Carrying Value 33us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_RealEstateLoanMember
269us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_RealEstateLoanMember
Net Charge-offs 0us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_RealEstateLoanMember
0us-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 60us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_RealEstateLoanMember
121us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_RealEstateLoanMember
Commercial | Small Business Commercial    
Financing Receivable, Modifications [Line Items]    
Unpaid Principal Balance 2bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_SmallBusinessFinancingReceivableMember
2bac_FinancingReceivableModificationsPostModificationUnpaidPrincipalBalance
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_SmallBusinessFinancingReceivableMember
Carrying Value 2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_SmallBusinessFinancingReceivableMember
2us-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
$ 0us-gaap_FinancingReceivablesImpairedTroubledDebtRestructuringWriteDown
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= bac_SmallBusinessFinancingReceivableMember