Outstanding Loans and Leases - Nonperforming (Details) (USD $) In Millions, unless otherwise specified
|
3 Months Ended |
|
Mar. 31, 2015
|
Mar. 31, 2014
|
Dec. 31, 2014
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Threshold period past due for nonperforming status of financing receivables |
90 days
|
|
|
Loans and leases |
$ 877,956us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
|
|
$ 881,391us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
17,061us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
|
|
19,754us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
|
Proceeds from sales |
5,781us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment
|
4,508us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment
|
|
Purchased credit impaired loans sold |
586us-gaap_CertainLoansAcquiredInTransferAccountedForAsHeldToMaturityDebtSecuritiesAccretableYieldDisposalsOfLoans
|
454us-gaap_CertainLoansAcquiredInTransferAccountedForAsHeldToMaturityDebtSecuritiesAccretableYieldDisposalsOfLoans
|
|
Nonperforming loans and leases |
11,205us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
|
|
11,932us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
|
Accruing past due 90 days or more |
10,968us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
|
|
12,654us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
|
Nonaccruing troubled debt restructurings excluded from nonperforming loans |
86bac_NonaccruingTroubledDebtRestructuringsExcludedFromNonperformingLoans
|
|
102bac_NonaccruingTroubledDebtRestructuringsExcludedFromNonperformingLoans
|
Residential Mortgage |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Accruing past due 90 days or more |
3,700us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
|
|
4,100us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
|
Federal Housing Administration | Residential Mortgage |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Nonperforming loans and leases |
6,200us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / us-gaap_RegulatoryAgencyAxis = bac_FederalHousingAdministrationMember
|
|
7,300us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / us-gaap_RegulatoryAgencyAxis = bac_FederalHousingAdministrationMember
|
Nonperforming Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Proceeds from sales |
1,000us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
730us-gaap_ProceedsFromSaleOfLoansAndLeasesHeldForInvestment / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
|
Valuation Allowances and Reserves, Recoveries |
40us-gaap_ValuationAllowancesAndReservesRecoveries / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
|
|
Nonperforming Financing Receivable | Junior Lien Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
657us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_JuniorLienHomeEquityFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
|
800us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_JuniorLienHomeEquityFinancingReceivableMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
Chapter Seven Bankruptcy |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
2,300us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Chapter Seven Bankruptcy | Nonperforming Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
1,100us-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 |
660us-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 |
354us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Nonperforming loans discharged more than twelve months prior |
80.00%bac_LoansandLeasesReceivableNonperformingAmountDischargedMorethanTwelveMonthsPrior / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Nonperforming loans discharged more than twenty four months prior |
60.00%bac_LoansandLeasesReceivableNonperformingAmountDischargedMorethanTwentyFourMonthsPrior / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember / bac_LoanRestructuringModificationNameAxis = bac_ChapterSevenBankruptcyMember
|
|
|
Consumer Portfolio Segment |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
474,482us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
|
488,570us-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 |
16,557us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
|
19,012us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Nonperforming loans and leases |
10,209us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
|
10,819us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Accruing past due 90 days or more |
10,847us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
|
12,433us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ConsumerPortfolioSegmentMember
|
Consumer Real Estate | 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
|
|
|
Consumer Real Estate | Core Portfolio, Residential Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
156,888us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
|
162,220us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
5,000us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
|
5,561us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Nonperforming loans and leases |
2,278us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
|
2,398us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Accruing past due 90 days or more |
3,573us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
|
3,942us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioResidentialFinancingReceivableMember
|
Consumer Real Estate | Core Portfolio, Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
51,029us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
|
51,887us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
754us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
|
744us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
Nonperforming loans and leases |
1,473us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_CorePortfolioHomeEquityFinancingReceivableMember
|
|
1,496us-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
|
Consumer Real Estate | Legacy Assets and Servicing Portfolio, Residential Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
36,852us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
|
38,825us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
8,697us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
|
10,513us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Nonperforming loans and leases |
4,143us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
|
4,491us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Accruing past due 90 days or more |
6,339us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
|
7,465us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioResidentialFinancingReceivableMember
|
Consumer Real Estate | Legacy Assets and Servicing Portfolio, Home Equity Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
27,188us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
|
28,221us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
Non-performing troubled debt with no change in repayment terms at time of discharge, 90 days or more past due |
1,169us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
|
1,166us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
Nonperforming loans and leases |
2,286us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_LegacyAssetsandServicingPortfolioHomeEquityFinancingReceivableMember
|
|
2,405us-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
|
Credit card and other consumer | Credit Card Receivable | United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
87,288us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
|
91,879us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / 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 |
795us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
|
866us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Accruing past due 90 days or more |
795us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
|
866us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = country_US
|
Credit card and other consumer | Credit Card Receivable | Non United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
9,660us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
10,465us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / 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 |
88us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
95us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Accruing past due 90 days or more |
88us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
95us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CreditCardReceivablesMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Credit card and other consumer | Direct/Indirect Consumer |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
82,141us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
80,381us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / 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 |
53us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
65us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
Nonperforming loans and leases |
28us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
28us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
Accruing past due 90 days or more |
51us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
|
64us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_DirectandIndirectFinancingReceivableMember
|
Credit card and other consumer | Other consumer |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
1,842us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
|
1,846us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / 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 |
1us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
|
2us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
Nonperforming loans and leases |
1us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
|
1us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
Accruing past due 90 days or more |
1us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
|
1us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = bac_CreditCardandOtherConsumerPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_OtherFinancingReceivablesMember
|
Commercial |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Threshold period past due for nonperforming status of financing receivables |
90 days
|
|
|
Loans and leases |
403,474us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
392,821us-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 |
504us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
742us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Nonperforming loans and leases |
996us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
1,113us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Accruing past due 90 days or more |
121us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
|
221us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember
|
Commercial | United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
225,081us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
|
220,293us-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 |
269us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
|
318us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Nonperforming loans and leases |
680us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
|
701us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Accruing past due 90 days or more |
22us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
|
110us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = country_US
|
Commercial | Non United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
84,842us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
80,083us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Nonperforming loans and leases |
79us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
1us-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
|
|
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Commercial | Commercial Real Estate |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
49,446us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
|
47,682us-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 |
137us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
|
288us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
Nonperforming loans and leases |
132us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
|
321us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
Accruing past due 90 days or more |
25us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
|
3us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember
|
Commercial | Commercial Real Estate | United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
46,700us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = country_US
|
|
45,200us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = country_US
|
Commercial | Commercial Real Estate | Non United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
2,800us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
|
2,500us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_RealEstateLoanMember / us-gaap_StatementGeographicalAxis = bac_NonUnitedStatesMember
|
Commercial | Commercial Lease Financing |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
24,468us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
|
24,866us-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 |
14us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
|
42us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
Nonperforming loans and leases |
16us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
|
3us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_FinanceLeasesFinancingReceivableMember
|
Accruing past due 90 days or more |
9us-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 | 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 |
84us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
|
94us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
Nonperforming loans and leases |
89us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
|
87us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
Accruing past due 90 days or more |
65us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
|
67us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember
|
Commercial | Small Business Commercial | United States |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Loans and leases |
13,226us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember / us-gaap_StatementGeographicalAxis = country_US
|
|
13,293us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome / bac_FinancingReceivablePortfolioSegmentAxis = us-gaap_CommercialPortfolioSegmentMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bac_SmallBusinessFinancingReceivableMember / us-gaap_StatementGeographicalAxis = country_US
|
Noninterest income | Nonperforming Financing Receivable |
|
|
|
Financing Receivable, Recorded Investment, Past Due [Line Items] |
|
|
|
Gain (loss) on sale |
$ 35us-gaap_LoansAndLeasesReceivableGainLossOnSalesNet / us-gaap_IncomeStatementLocationAxis = bac_NoninterestIncomeMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
|
|
|