Quarterly report pursuant to Section 13 or 15(d)

Outstanding Loans and Leases - Credit Card and Other Consumer - Credit Quality Indicators (Details)

v2.4.1.9
Outstanding Loans and Leases - Credit Card and Other Consumer - Credit Quality Indicators (Details) (USD $)
Mar. 31, 2015
Dec. 31, 2014
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases $ 877,956,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome $ 881,391,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
Percentage outstanding, current or less than 30 days past due 93.96%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding 93.44%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
Percentage outstanding, Equal to Greater than 90 days past due 1.94%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding 2.24%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding
Credit card and other consumer | Direct/Indirect Consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 82,141,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
80,381,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Securities based lending overcollateralized 40,500,000,000bac_LoansandLeasesReceivableSecuritiesBasedLendingOvercollateralized
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
39,700,000,000bac_LoansandLeasesReceivableSecuritiesBasedLendingOvercollateralized
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Loans no longer originated by corporation 611,000,000bac_LoansandLeasesReceivableLoansNoLongerOriginatedbyCorporation
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
632,000,000bac_LoansandLeasesReceivableLoansNoLongerOriginatedbyCorporation
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Credit card and other consumer | Other consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,842,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
1,846,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Percentage from exited businesses 35.00%bac_LoansandLeasesReceivablePercentageFromExitedBusinesses
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
37.00%bac_LoansandLeasesReceivablePercentageFromExitedBusinesses
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Credit card and other consumer | United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 87,288,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
91,879,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit card and other consumer | Non United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 9,660,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
10,465,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Percentage outstanding, current or less than 30 days past due 98.00%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
98.00%bac_FinancingReceivableRecordedInvestmentCurrentand1to29DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Percentage outstanding, 30-89 days past due 1.00%bac_FinancingReceivableRecordedInvestment30to89DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
1.00%bac_FinancingReceivableRecordedInvestment30to89DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Percentage outstanding, Equal to Greater than 90 days past due 1.00%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
1.00%bac_FinancingReceivableRecordedInvestmentEqualtoGreaterthan90DaysPastDuePercentageofTotalOutstanding
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Credit card and other consumer | Less than 620 | Direct/Indirect Consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,355,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
1,296,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Credit card and other consumer | Less than 620 | Other consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 255,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
266,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Credit card and other consumer | Less than 620 | United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 4,347,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
4,467,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit card and other consumer | Less than 620 | Non United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreLessThan620Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Credit card and other consumer | Greater than or equal to 620 and less than 680 | Direct/Indirect Consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 1,878,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
1,892,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Credit card and other consumer | Greater than or equal to 620 and less than 680 | Other consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 222,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
227,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Credit card and other consumer | Greater than or equal to 620 and less than 680 | United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 12,325,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
12,177,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit card and other consumer | Greater than or equal to 620 and less than 680 | Non United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween620and680Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Credit card and other consumer | Greater than or equal to 680 and less than 740 | Direct/Indirect Consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 10,821,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
10,749,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Credit card and other consumer | Greater than or equal to 680 and less than 740 | Other consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 310,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
307,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Credit card and other consumer | Greater than or equal to 680 and less than 740 | United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 33,958,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
34,986,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit card and other consumer | Greater than or equal to 680 and less than 740 | Non United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScorebetween680and740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Credit card and other consumer | Greater than or equal to 740 | Direct/Indirect Consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 26,161,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
25,279,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Credit card and other consumer | Greater than or equal to 740 | Other consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 932,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
881,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Credit card and other consumer | Greater than or equal to 740 | United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 36,658,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
40,249,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit card and other consumer | Greater than or equal to 740 | Non United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_RefreshedFICOScoreGreaterThanOrEqualTo740Member
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
Credit card and other consumer | Other internal credit metrics | Direct/Indirect Consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 41,926,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
41,165,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_DirectandIndirectFinancingReceivableMember
Credit card and other consumer | Other internal credit metrics | Other consumer    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 123,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
165,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bac_OtherFinancingReceivablesMember
Credit card and other consumer | Other internal credit metrics | United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
Credit card and other consumer | Other internal credit metrics | Non United States | Credit Card Receivable    
Financing Receivable, Recorded Investment [Line Items]    
Loans and leases $ 9,660,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember
$ 10,465,000,000us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bac_CreditScoreFicoAxis
= bac_OtherInternalCreditMetricsMember
/ bac_FinancingReceivablePortfolioSegmentAxis
= bac_CreditCardandOtherConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CreditCardReceivablesMember
/ us-gaap_StatementGeographicalAxis
= bac_NonUnitedStatesMember