Outstanding Loans and Leases - Nonperforming (Details) (USD $) In Millions, unless otherwise specified
|
12 Months Ended |
Dec. 31, 2014
|
Dec. 31, 2013
|
Dec. 31, 2012
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Threshold period past due for nonperforming status of financing receivables |
90 days
|
|
|
Loans and leases |
$ 881,391us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
|
$ 928,233us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
19,754us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
|
28,263us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
|
|
Proceeds from sales |
28,765us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment
|
12,331us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment
|
1,837us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment
|
Nonperforming loans and leases |
11,932us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
|
17,149us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
|
|
Accruing past due 90 days or more |
12,654us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
|
18,759us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
|
|
Nonaccruing troubled debt restructurings excluded from nonperforming loans |
102bac_NonaccruingTroubledDebtRestructuringsExcludedFromNonperformingLoans
|
260bac_NonaccruingTroubledDebtRestructuringsExcludedFromNonperformingLoans
|
|
Other consumer | Non United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
3us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
5us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Residential Mortgage |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Accruing past due 90 days or more |
4,100us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
|
4,000us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
|
|
Nonperforming Financing Receivable | Junior Lien Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
800us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_JuniorLienHomeEquityFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
1,200us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_JuniorLienHomeEquityFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
|
Chapter Seven Bankruptcy | Nonperforming Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Threshold period past due for nonperforming status of financing receivables |
90 days
|
|
|
Loans and leases |
1,400us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, current with contractual payments |
901us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
395us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Nonperforming loans discharged more than twelve months prior (greater than) |
80.00%bac_LoansandLeasesReceivableNonperformingAmountDischargedMorethanTwelveMonthsPrior / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Nonperforming loans discharged more than twenty four months prior (greater than) |
60.00%bac_LoansandLeasesReceivableNonperformingAmountDischargedMorethanTwentyFourMonthsPrior / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Federal Housing Administration | Residential Mortgage |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Nonperforming loans and leases |
7,300us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / us-gaap_RegulatoryAgencyAxis = bac_FederalHousingAdministrationMember
|
13,000us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / us-gaap_RegulatoryAgencyAxis = bac_FederalHousingAdministrationMember
|
|
Residential Portfolio Segment | Junior Lien Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Threshold period past due for nonperforming status of financing receivables |
90 days
|
|
|
Residential Portfolio Segment | Core Portfolio, Residential Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
5,561us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
7,188us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
|
Nonperforming loans and leases |
2,398us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
3,316us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
|
Accruing past due 90 days or more |
3,942us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
5,137us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
|
Residential Portfolio Segment | Core Portfolio, Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Threshold period past due for nonperforming status of financing receivables |
90 days
|
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
744us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
693us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
|
Nonperforming loans and leases |
1,496us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
1,431us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
|
Accruing past due 90 days or more |
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
|
Residential Portfolio Segment | Legacy Assets and Servicing Portfolio, Residential Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
10,513us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
16,746us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
|
Nonperforming loans and leases |
4,491us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
8,396us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
|
Accruing past due 90 days or more |
7,465us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
11,824us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
|
Residential Portfolio Segment | Legacy Assets and Servicing Portfolio, Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
1,166us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
1,292us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
|
Nonperforming loans and leases |
2,405us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
2,644us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
|
Accruing past due 90 days or more |
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
|
Residential Portfolio Segment | Residential Mortgage |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Threshold period past due for nonperforming status of financing receivables |
90 days
|
|
|
Consumer Portfolio Segment |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
488,570us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
531,950us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
19,012us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
27,533us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
|
Nonperforming loans and leases |
10,819us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
15,840us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
|
Accruing past due 90 days or more |
12,433us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
18,555us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
|
Consumer Portfolio Segment | Core Portfolio, Residential Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
162,220us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
177,336us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
|
Consumer Portfolio Segment | Core Portfolio, Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
51,887us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
54,499us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
|
Consumer Portfolio Segment | Legacy Assets and Servicing Portfolio, Residential Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
38,825us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
52,058us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
|
Consumer Portfolio Segment | Legacy Assets and Servicing Portfolio, Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
28,221us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
32,580us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
|
Consumer Portfolio Segment | Credit Card Receivable | United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
91,879us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
92,338us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
866us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
1,053us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Accruing past due 90 days or more |
866us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
1,053us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Consumer Portfolio Segment | Credit Card Receivable | Non United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
10,465us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
11,541us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
95us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
131us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Accruing past due 90 days or more |
95us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
131us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Consumer Portfolio Segment | Direct/Indirect Consumer |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
80,381us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
82,192us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
65us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
410us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
Nonperforming loans and leases |
28us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
35us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
Accruing past due 90 days or more |
64us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
408us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
Consumer Portfolio Segment | Other consumer |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
1,846us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
1,977us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
2us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
20us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
|
Nonperforming loans and leases |
1us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
18us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
|
Accruing past due 90 days or more |
1us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
2us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
|
Consumer Portfolio Segment | Nonperforming Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Proceeds from sales |
4,800us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
2,000us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
|
Gain (loss) on the sale of loans and leases receivable |
247us-gaap_LoansAndLeasesReceivableGainLossOnSalesNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
58us-gaap_LoansAndLeasesReceivableGainLossOnSalesNet / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
|
Commercial Portfolio Segment |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Threshold period past due for nonperforming status of financing receivables |
90 days
|
|
|
Loans and leases |
392,821us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
396,283us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
742us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
730us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Nonperforming loans and leases |
1,113us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
1,309us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Accruing past due 90 days or more |
221us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
204us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
Commercial Portfolio Segment | United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
220,293us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
212,557us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
318us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
309us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Nonperforming loans and leases |
701us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
819us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Accruing past due 90 days or more |
110us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
47us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Commercial Portfolio Segment | Non United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
80,083us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
89,462us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
|
17us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Nonperforming loans and leases |
1us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
64us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Accruing past due 90 days or more |
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
17us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Commercial Portfolio Segment | Commercial Real Estate |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
47,682us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
47,893us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
288us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
243us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
|
Nonperforming loans and leases |
321us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
322us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
|
Accruing past due 90 days or more |
3us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
21us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
|
Commercial Portfolio Segment | Commercial Real Estate | United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
45,200us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = country_US
|
46,300us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = country_US
|
|
Commercial Portfolio Segment | Commercial Real Estate | Non United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
2,500us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
1,600us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
Commercial Portfolio Segment | Commercial Lease Financing |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
24,866us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
25,199us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
42us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
48us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
|
Nonperforming loans and leases |
3us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
16us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
|
Accruing past due 90 days or more |
41us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
41us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
|
Commercial Portfolio Segment | Small Business Commercial |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
94us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
113us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
|
Nonperforming loans and leases |
87us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
88us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
|
Accruing past due 90 days or more |
67us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
78us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
|
Commercial Portfolio Segment | Small Business Commercial | United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
$ 13,293us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember / us-gaap_StatementGeographicalAxis = country_US
|
$ 13,294us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember / us-gaap_StatementGeographicalAxis = country_US
|
|