Quarterly report pursuant to Section 13 or 15(d)

Outstanding Loans and Leases - Commercial - Credit Quality Indicators (Details)

v2.4.1.9
Outstanding Loans and Leases - Commercial - Credit Quality Indicators (Details) (USD $)
In Millions, unless otherwise specified
Mar. 31, 2015
Dec. 31, 2014
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases $ 877,956us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome $ 881,391us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
Loans and leases, measured at fair value 8,466us-gaap_LoansReceivableFairValueDisclosure 8,681us-gaap_LoansReceivableFairValueDisclosure
Percentage outstanding, current or less than 30 days past due 93.96%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding 93.44%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 403,474us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
392,821us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Loans and leases, measured at fair value 6,411us-gaap_LoansReceivableFairValueDisclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
6,604us-gaap_LoansReceivableFairValueDisclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Commercial | Commercial Real Estate    
Financing Receivable, Recorded Investment [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
Commercial | Commercial Lease Financing    
Financing Receivable, Recorded Investment [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
Commercial | Pass rated | Commercial Real Estate    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 48,616us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_RealEstateLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
46,632us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_RealEstateLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
Commercial | Pass rated | Commercial Lease Financing    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 23,401us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_FinanceLeasesFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
23,832us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_FinanceLeasesFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
Commercial | Reservable criticized | Commercial Real Estate    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 830us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_RealEstateLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
1,050us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_RealEstateLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
Commercial | Reservable criticized | Commercial Lease Financing    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,067us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_FinanceLeasesFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
1,034us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_FinanceLeasesFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
Commercial | United States    
Financing Receivable, Recorded Investment [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
Loans and leases, measured at fair value 2,000us-gaap_LoansReceivableFairValueDisclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,900us-gaap_LoansReceivableFairValueDisclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | United States | Commercial Real Estate    
Financing Receivable, Recorded Investment [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 | United States | Small Business Commercial    
Financing Receivable, Recorded Investment [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
Commercial | United States | Pass rated    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 217,773us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
/ us-gaap_StatementGeographicalAxis
= country_US
213,839us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | United States | Pass rated | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 675us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
/ us-gaap_StatementGeographicalAxis
= country_US
751us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | United States | Reservable criticized    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 7,308us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
/ us-gaap_StatementGeographicalAxis
= country_US
6,454us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | United States | Reservable criticized | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 155us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
/ us-gaap_StatementGeographicalAxis
= country_US
182us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | United States | Internal Credit Metrics | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Percentage outstanding, current or less than 30 days past due 99.00%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalCreditMetricsMember
/ us-gaap_StatementGeographicalAxis
= country_US
98.00%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_InternalCreditMetricsMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | United States | Business Card and Small Business Loan | Refreshed FICO or Internal Credit Metric | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 720us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedFICOorInternalCreditMetricMember
/ us-gaap_ProductOrServiceAxis
= bac_BusinessCardandSmallBusinessLoanMember
/ us-gaap_StatementGeographicalAxis
= country_US
762us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RefreshedFICOorInternalCreditMetricMember
/ us-gaap_ProductOrServiceAxis
= bac_BusinessCardandSmallBusinessLoanMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | Non United States    
Financing Receivable, Recorded Investment [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
Loans and leases, measured at fair value 4,500us-gaap_LoansReceivableFairValueDisclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
4,700us-gaap_LoansReceivableFairValueDisclosure
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Commercial | Non United States | Commercial Real Estate    
Financing Receivable, Recorded Investment [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 | Non United States | Pass rated    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 83,976us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
79,367us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsPassRatedMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Commercial | Non United States | Reservable criticized    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 866us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
716us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= bac_RiskRatingsReservableCriticizedMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Commercial | Less than 620 | United States | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 188us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
184us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | Greater than or equal to 620 and less than 680 | United States | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 537us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
529us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | Greater than or equal to 680 and less than 740 | United States | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,621us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,591us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | Greater than or equal to 740 | United States | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 2,981us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
2,910us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial | Refreshed FICO score other internal credit metrics [Member] | United States | Small Business Commercial    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases $ 7,069us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFicoScoreOtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
$ 7,146us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFicoScoreOtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_SmallBusinessFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US