Outstanding Loans and Leases - Commerical Loans - Impaired Loans (Details) (Commercial Portfolio Segment, USD $)
In Millions, unless otherwise specified |
12 Months Ended | ||
---|---|---|---|
Dec. 31, 2014
|
Dec. 31, 2013
|
Dec. 31, 2012
|
|
Financing Receivable, Impaired [Line Items] | |||
Real estate acquired through foreclosure | $ 67us-gaap_RealEstateAcquiredThroughForeclosure | $ 90us-gaap_RealEstateAcquiredThroughForeclosure | |
U.S. Commercial
|
|||
Impaired Financing Receivable, Unpaid Principal Balance [Abstract] | |||
With no recorded allowance |
668us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
609us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
|
With an allowance recorded |
1,139us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
1,581us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
|
Total |
1,807us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
2,190us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
|
Impaired Financing Receivable, Recorded Investment [Abstract] | |||
With no recorded allowance |
650us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
577us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
|
With an allowance recorded |
839us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
1,262us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
|
Total |
1,489us-gaap_ImpairedFinancingReceivableRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
1,839us-gaap_ImpairedFinancingReceivableRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
|
Related Allowance |
75us-gaap_ImpairedFinancingReceivableRelatedAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
164us-gaap_ImpairedFinancingReceivableRelatedAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
|
Impaired Financing Receivable, Average Recorded Investment [Abstract] | |||
With no recorded allowance |
546us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
442us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
588us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
With an allowance recorded |
1,198us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
1,553us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
2,104us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
Total |
1,744us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
1,995us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
2,692us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
Impaired Financing Receivable, Interest Income, Accrual and Cash Basis Method [Abstract] | |||
With no recorded allowance |
12bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
6bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
9bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
With an allowance recorded |
51bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
47bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
55bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
Total |
63bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
53bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
64bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US |
Non United States
|
|||
Impaired Financing Receivable, Unpaid Principal Balance [Abstract] | |||
With no recorded allowance |
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
10us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
|
With an allowance recorded |
47us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
254us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
|
Total |
47us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
264us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
|
Impaired Financing Receivable, Recorded Investment [Abstract] | |||
With no recorded allowance |
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
10us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
|
With an allowance recorded |
44us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
64us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
|
Total |
44us-gaap_ImpairedFinancingReceivableRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
74us-gaap_ImpairedFinancingReceivableRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
|
Related Allowance |
1us-gaap_ImpairedFinancingReceivableRelatedAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
16us-gaap_ImpairedFinancingReceivableRelatedAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
|
Impaired Financing Receivable, Average Recorded Investment [Abstract] | |||
With no recorded allowance |
15us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
28us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
104us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
With an allowance recorded |
52us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
109us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
77us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
Total |
67us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
137us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
181us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
Impaired Financing Receivable, Interest Income, Accrual and Cash Basis Method [Abstract] | |||
With no recorded allowance |
0bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
0bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
0bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
With an allowance recorded |
3bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
5bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
4bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
Total |
3bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
5bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
4bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember |
Commercial Real Estate
|
|||
Impaired Financing Receivable, Unpaid Principal Balance [Abstract] | |||
With no recorded allowance |
60us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
254us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
|
With an allowance recorded |
678us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
1,066us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
|
Total |
738us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
1,320us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
|
Impaired Financing Receivable, Recorded Investment [Abstract] | |||
With no recorded allowance |
48us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
228us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
|
With an allowance recorded |
495us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
731us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
|
Total |
543us-gaap_ImpairedFinancingReceivableRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
959us-gaap_ImpairedFinancingReceivableRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
|
Related Allowance |
48us-gaap_ImpairedFinancingReceivableRelatedAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
61us-gaap_ImpairedFinancingReceivableRelatedAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
|
Impaired Financing Receivable, Average Recorded Investment [Abstract] | |||
With no recorded allowance |
166us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
269us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
1,119us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
With an allowance recorded |
632us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
1,148us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
2,126us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
Total |
798us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
1,417us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
3,245us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
Impaired Financing Receivable, Interest Income, Accrual and Cash Basis Method [Abstract] | |||
With no recorded allowance |
3bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
3bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
3bac_ImpairedFinancingReceivablewithNoRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
With an allowance recorded |
16bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
28bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
29bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
Total |
19bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
31bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
32bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember |
Small Business Commercial
|
|||
Impaired Financing Receivable, Unpaid Principal Balance [Abstract] | |||
With an allowance recorded |
133us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
186us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
|
Total |
133us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
186us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
|
Impaired Financing Receivable, Recorded Investment [Abstract] | |||
With an allowance recorded |
122us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
176us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
|
Total |
122us-gaap_ImpairedFinancingReceivableRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
176us-gaap_ImpairedFinancingReceivableRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
|
Related Allowance |
35us-gaap_ImpairedFinancingReceivableRelatedAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
36us-gaap_ImpairedFinancingReceivableRelatedAllowance / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
|
Impaired Financing Receivable, Average Recorded Investment [Abstract] | |||
With an allowance recorded |
151us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
236us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
409us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
Total |
151us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
236us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
409us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
Impaired Financing Receivable, Interest Income, Accrual and Cash Basis Method [Abstract] | |||
With an allowance recorded |
3bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
6bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
13bac_ImpairedFinancingReceivablewithRelatedAllowanceInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
Total |
$ 3bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
$ 6bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
$ 13bac_ImpairedFinancingReceivableInterestIncomeAccrualMethodandCashMethod / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember |
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Impaired Financing Receivable, Interest Income, Accrual Method and Cash Method No definition available.
|
X | ||||||||||
- Definition
Impaired Financing Receivable, with No Related Allowance, Interest Income, Accrual Method and Cash Method No definition available.
|
X | ||||||||||
- Definition
Impaired Financing Receivable, with Related Allowance, Interest Income, Accrual Method and Cash Method No definition available.
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Average amount of investment of impaired financing receivables with related allowance for credit losses and without a related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Amount of investment of impaired financing receivables with related allowance for credit losses and without a related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Amount of allowance for credit losses related to recorded investment. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of unpaid principal balance of impaired financing receivables with related allowance for credit losses and without related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Amount of average investment of impaired financing receivables for which there is no related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of investment in impaired financing receivables for which there is no related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of unpaid principal balance of impaired financing receivables for which there is no related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of average investment of impaired financing receivables for which there is a related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of investment in impaired financing receivables for which there is a related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Unpaid principal balance of impaired financing receivables for which there is a related allowance for credit losses. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Carrying amount as of the balance sheet date of land and buildings obtained through foreclosure proceedings or defeasance in full or partial satisfaction of a debt arrangement. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|