|
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
|
|
|